在实际的多人音视频通讯场景中,1 对 1 通讯只是诸多场景的一种。而在教育或者会议的场景中,更多是 1 对多或者是多对多通讯。综合目前多方通信方案来看,基本都是以下三种架构方案:Mesh 架构、MCU 架构、SFU 架构。
如上图所示:5 个浏览器,两两建立 p2p 连接,每个浏览器与其它 4 个建立连接,总共需要 10 个连接,整个传输形成一个网格拓扑结构。如果每条连接占用 1m 带宽,则每个端上行需要 4m,下行带宽也要 4m,总共带宽消耗 20m。他们通过 STUN 服务进行穿越,因此不需要媒体服务,每个浏览器上要处理音视频 “编码 / 解码”,一般这种架构只能支持 4-6 人左右,不过优点也很明显,没有中心节点,实现很简单。
如上图所示:每个浏览器仅与中心的 MCU 服务连接,有这个中心服务负责处理所有的视频编码、转码、解码、混合等复杂逻辑。而这个处理过程如下图所示:
如上图所示:每个浏览器与中心 SFU 服务连接,但与 MCU 服务不同的是,SFU 服务只负责转发,所以服务器的压力会低很多。每个浏览器用一个上行连接传输自己的音视频,另外还要有 n-1 个连接用于下载其它音视频数据。所以总连接数为 5*5,消耗的带宽也是最大的,如果每个连接 1M 带宽,总共需要 25M 带宽。相比 MCU,SFU 在结构上相对简单很多,只是接收流然后转发给其他人。这也带来了其他好处:比如根据带宽和网络延时,单独调整音视频的码率等。另外也能灵活调整画面布局。
一般建议:如果规模不大 (5 人以下) Mesh 框架就够用了,毕竟实现简单;如果 50 人以下,且带宽有限,选择 MCU 比较适合;如果规模更大,且带宽良好,SFU 相对更适合。
但在互联网 5G 时代,要求更个性化的体验(美颜,更个性化的控制等等),更大的规模的用户同时在线人数。总的来说 SFU 架构更适合互联网时代。随着 5G 技术的推广,可以预见带宽越来越不是问题,所以 SFU 在未来,可能会更有优势。
参考文章:
WebRTC Multiparty Video Alternatives, and Why SFU is the Winning Model
WebRTC Media Servers – SFUs vs MCUs
紧追技术前沿,深挖专业领域
扫码关注我们吧!