WebRTC[19]-WebRTC服务器架构

目录

前言

正文

1. Mesh(P2P)

    简介 

    缺点 

    优点

2. MCU(Multi-point Control Unit)

    简介

    缺点

    优点

3. SFU(Selective Forwarding Unit)

    简介

    缺点

    优点

结论


前言

WebRTC 在构建浏览器视频会话的时候,肯定少不了服务器的支持。目前,WebRTC 主要有三种网络架构:Mesh、MCU、SFU。今天就来分别介绍一下三者,带大家认识一下它们的优点和缺点。

《WebRTC工作原理精讲》系列-总览

正文

1. Mesh(P2P)

简介 

Mesh 服务器架构其实就是标准 P2P 通讯模式的混用,每一个 P2P 连接有独立的传输策略控制,通讯质量有一定的保障。但是,这种架构对于客户端系统是一种浪费,一方面需要分配更多的端口,消耗更多的系统资源;另一方面,由于要向其它三个客户端发送本地音视频数据,增加了上行网络带宽的消耗,在同等带宽条件下,支持的多人通话路数就相对有限,视频质量(码率)也比较低。这种架构比较适合网络状况较好,人数较少,比如一对一的场景中。

缺点 

a. 占用大量带宽。以上图为例,假设所有上下行媒体流占用带宽都是 1MB,那么,每个客户端需要提供 3MB 的上行带宽和 3MB 的下行带宽,每个客户端总体消耗的带宽是 6MB。如果复用 PeerConnection 通道的话,也需要建立六条链路。

b. 占用客户端资源。如上图所示,每个客户端在通讯过程中需要同时编码三路媒体流,分别发送给另外三个参会者,而不是共用一路编码媒体流。因此,会占用比较多的客户端资源。

优点

a. 对服务器资源占用最小。这一点也非常好理解,因为压根儿就没有用到流媒体服务器,只需要一个 ICE 穿透服务器就可以满足 P2P 打洞从而建立连接。

b. 成本最低。不像其他架构类型需要对流媒体服务器投入大量的资金和人力成本,节省了在服务器方面的绝大多数支出费用。

c. 去中心化。充分利用了客户端的算力,在边缘计算的大时代下,可能未来还会迎来新的机遇和挑战。

2. MCU(Multi-point Control Unit)

简介

MCU 将接收到的多路流进行转码和混合,并向每个终端输出单路流的做法,节省了终端用户的下行带宽,并且还能够对不同网络条件的用户,订制不同码率的输出视频流,让多人场景有更好的用户体验。典型的应用场景是多人音视频通话。这种架构比较适合客户端条件较差的场景中,比如使用手机进行多人的视频通话,由服务端来抵消移动端的资源消耗。

缺点

MCU 服务架构需要系统提供一个中心化的 MCU 混流服务器,所有媒体流的解码、编码、转码、混合都在服务器端完成。如上图所示,四个客户端需要把自己的媒体流推流到 MCU 服务器,然后 MCU 服务器再对这四路媒体流进行解码、混流,最

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

WebRTC工作原理精讲 文章被收录于专栏

WebRTC 作为当下最热门的实时音视频通讯框架,涉及非常多的过程,比如采集、编码、组包、发包、传输、收包、丢包重传、解封装、解码、音视频同步、渲染等,同时还包括很多功能特性,比如ANS、AGC、AEC,REMB、GCC、CNG、FEC、PLI、SVC等,需要一点点深入理解其中的奥秘。

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务