24 | 多人音视频实时通讯是怎样的架构?
该思维导图由 AI 生成,仅供参考
- 深入了解
- 翻译
- 解释
- 总结
多人音视频实时通讯架构涉及WebRTC技术的应用,主要包括Mesh方案、MCU方案和SFU方案。在1对1通信模型中,WebRTC首先尝试两个终端之间是否可以通过P2P直接进行通信,如果无法直接通信,则会通过STUN/TURN服务器进行中转。Mesh方案通过多个终端之间两两相连,形成网状结构,但对带宽和资源消耗较大。MCU方案由一个服务器和多个终端组成星形结构,服务器对音视频流进行混合处理,但需要大量运算和资源消耗。SFU方案也由一个服务器和多个终端组成,但不对音视频进行混流,而是直接转发给其他终端,减少了服务器的压力。总的来说,Mesh方案利用客户端带宽资源,MCU方案技术成熟但资源消耗大,SFU方案减轻了服务器压力。因此,针对不同需求和场景,可以选择适合的多人音视频实时通讯架构。 SFU方案是一个媒体流路由器,接收终端的音视频流,根据需要转发给其他终端。SFU 在音视频会议中应用非常广泛,尤其是 WebRTC 普及以后。支持 WebRTC 多方通信的媒体服务器基本都是 SFU 结构。SFU 的拓扑机构和功能模型如下图:SFU方案架构图。SFU的优势在于对CPU资源消耗小、降低延迟、灵活适应不同网络状况和终端类型。然而,SFU也存在不同参与人观看多路视频可能不同步的问题。SFU实现还支持Simulcast和SVC模式,进一步提高了灵活性和适应性。 在三种多对多音视频通信架构中,SFU是优势最明显而劣势相对较少的一种架构方案。它被广泛采用,尤其配合Simulcast和SVC模式,使其更加灵活和性能更高。相比之下,Mesh架构在实际应用中几乎没有人使用,MCU架构在硬件视频会议中应用广泛但资源消耗大,而SFU架构则成为目前主流选择。
《从 0 打造音视频直播系统》,新⼈⾸单¥59
全部留言(17)
- 最新
- 精选
- Derek思考题:录制桌面?
作者回复: 不错!
2019-09-1524 - 宇宙之王老师您好,我的需求就是让多个用户通过浏览器观看服务器上的MP4视频时能实现边下载边播放,因为视频比较大,所以想到流媒体,搜到了咱们的教程,发现好像没有讲这方面内容,请问要实现我的需求采用什么架构比较好呢,或用什么开源的工具实现呢?谢谢老师!
作者回复: 你这个应该是点播业务,可以看看阿里或腾讯的点播业务。
2020-09-273 - 被雨水过滤的空气怎么样让浏览器和服务器建立webrtc连接呢?有什么开源的库吗?望老师解答!
作者回复: 文章中不是已经介绍了medooze了吗,它就是一个开源的webrtc流媒体服务器库呀!另外,mediasoup, janus都是非常不错的webrtc流媒体服务器库
2020-04-1023 - JohnSFU相当于中转服务器 他的outbound bandwidth流量会消耗很大呀 很烧钱呀 李哥有没有更省钱又不影响效果的方案呢
作者回复: 没有,烧不烧钱其实与你的业务有很大关系,如果人数少的话你用Mesh方案是最省钱的。
2019-09-1733 - 涂滔老师,请问怎么用webRTC实现播放以前录制的视频呢
作者回复: 可以的,这块我没讲,你可以通过h5 的player 将播出的数据转给rtc 就好了
2020-04-2922 - 澈使用Mesh架构,如果客户端全是Native的(iOS和Android设备,不允许浏览器接入,那么允许最对的连接数是多少)
作者回复: 许多,许多!1万个,10万个一点问题都没有,关键点不在这里,你想你应该可以想瓶颈是什么
2019-09-1852 - 小沙弥老师,我想问一下,浏览器中用js可以实现回音消除吗?我在做一个sip的终端与浏览器互通的项目,噪声回音怎么处理啊?
作者回复: js里有回音消除的开关,应该是在 getUserMedia这个 API 的contraints中的音频配置中设置的,你可以将它打开。
2019-09-092 - Walter1对1 方案中的云服务器需要2M的带宽,sfu方案是不是需要更高的带宽呢?
作者回复: 必须的!
2019-09-092 - 三角形小于零Mesh 的方案 : 能穿过去确实可以节省服务器资源。 但如果全部走了 relay ,那此时 Mesh 应该是3种中最耗服务器资源的吗?
作者回复: Mesh就不走服务器
2020-11-261 - A周峰李老师您好!media soap 怎么实现级连!jitsi meet 好像原生支持级连,这个适合商用吗
作者回复: mediasoup 可以通过 piperouter来实现级联,如果你要商用的话,自己需要改造一下!
2019-12-191