ZLMediaKit解决webrtc前端replaceTrack断流问题

简介: ZLMediaKit解决webrtc前端replaceTrack断流问题

解决webrtc前端replaceTrack断流问题

  在前端replaceTrack时,会发送rtcp byte消息,而ZLM目前的处理是收到bye就关闭连接,所以前端新的流就推不上来。

  查看源码大约760行左右的处理rtcp的函数的

case RtcpType::RTCP_BYE: {
            // 对方汇报停止发送rtp
            RtcpBye *bye = (RtcpBye *)rtcp;
            for (auto ssrc : bye->getSSRC()) {
                auto it = _ssrc_to_track.find(*ssrc);
                if (it == _ssrc_to_track.end()) {
                    WarnL << "未识别的bye rtcp包:" << rtcp->dumpString();
                    continue;
                }
                _ssrc_to_track.erase(it);
            }
            onShutdown(SockException(Err_eof, "rtcp bye message received"));
            break;
        }

  onShutdown会关闭掉当前的会话。注释掉此行代码重新测试即可

void WebRtcTransportImp::onShutdown(const SockException &ex) {
    WarnL << ex.what();
    unrefSelf();
    for (auto &pr : _history_sessions) {
        auto session = pr.second.lock();
        if (session) {
            session->shutdown(ex);
        }
    }
}

  ‍

相关文章
|
Web App开发 编解码 算法
WebRTC简介
WebRTC (Web Real-Time Communications) 是一项实时通讯技术,它允许网络应用或者站点,在不借助中间媒介的情况下,建立浏览器之间点对点(Peer-to-Peer)的连接,实现视频流和(或)音频流或者其他任意数据的传输。WebRTC包含的这些标准使用户在无需安装任何插件或者第三方的软件的情况下,创建点对点(Peer-to-Peer)的数据分享和电话会议成为可能。
596 0
WebRTC简介
|
26天前
|
Web App开发 编解码 API
WebRTC简介及使用
WebRTC简介及使用
72 0
|
11月前
|
Web App开发 编解码 安全
WebRTC的应用
WebRTC的应用
|
Web App开发 编解码 JavaScript
webRTC架构说明
WebRTC系列
155 0
|
Web App开发 编解码 Linux
webRTC开篇
WebRTC系列
215 0
|
Web App开发 人工智能 移动开发
什么是WebRTC
什么是WebRTC
243 0
|
Web App开发 编解码 网络性能优化
《WebRTC源码深入剖析》总结
我精心打造的新课 **《WebRTC源码深入剖析》** 终于更新完了!!!2021年年初,在完成了我的处女作《WebRTC音视频实时互动技术——原理、实战与源码分析》一书之后,我终于下定决心,出一部WebRTC源码分析的课程了...
《WebRTC源码深入剖析》总结
|
Web App开发 移动开发 视频直播
实时视频直播客户端技术盘点:Native、HTML5、WebRTC、微信小程序
1、前言 2017 年 12 月,微信小程序向开发者开放了实时音视频能力,给业内带来广阔的想象空间。连麦互动视频直播技术在 2016 年直播风口中成为视频直播的标配,然而只有在原生的 APP 上才能保障良好的用户体验。
3387 0
|
Web App开发 编解码 网络协议
WebRTC 简介
最近一段时间的主要工作内容是开发一个远程控制手机的功能,其中使用到的一个关键技术就是WebRTC,在此准备分享一下我对这个技术的理解。
|
Web App开发 移动开发 前端开发
如何用 Electron + WebRTC 开发一个跨平台的视频会议应用
在搭建在线教育、医疗、视频会议等场景时,很多中小型公司常常面临 PC 客户端和 Web 端二选一的抉择。Electron 技术的出现解决了这一难题,只需前端开发就能完成一个跨平台的 PC 端应用。本文主要介绍使用 Electron + WebRTC 搭建跨平台的视频会议应用的技术方案。
如何用 Electron + WebRTC 开发一个跨平台的视频会议应用