目录

多人实时音视频架构1:Mesh结构

这是最简单的多人视频通话架构模式,所有媒体流都不需要经过服务端,客户端直接P2P,可通过webrtc建立多个PeerConnection,结构图如下:打个比方,如果要实现四个人之间的音视频通话,那么每个人与其它三个人都需要建立P2P连接,每一个P2P连接都有自己的媒体传输通道,负责音视频数据流的传输。网状模型是基于WebRTC技术的原生实现,每一个点对点连接有独立的传输策略控制,通讯质量有一定的保障。但是,这种架构对于客户端系统是一种浪费,一方面需要分配更多的端口,消耗更多的系统资源;另一方面,由于要向其它三个客户端发送本地音视频数据,增加了上行网络带宽的消耗,在同等带宽条件下,支持的多人通话路数就相对有限,视频质量(码率)也比较低,尤其是对于1对多的直播场景,这种情况更加明显。而且这种实现方式也不利于其它非WebRTC客户端的接入。

该方案优点: 服务端压力最小,大多数情况下不需要用到流媒体服务。

该方案缺点: 客户端负载太大,不事宜扩展,特别是移动端,编解码压力会非常大。

多人实时音视频架构2:Mixer结构(MCU(Multipoint Control Unit))

视频会议基本上就是种结构,他的最大特点就是服务端做了很多事情,包括转码,混音,合屏,所以服务端负载非常大,结构图如下:

该方案优点: 客户端负载最小,与一对一负载一样,所以理论上可以支持很多人同时视频。 因为服务端有做编解码,所以可与现有产品无缝集成。 可以最大程度利用硬件能力,如硬件MCU,芯片。

该方案缺点: 服务端负载很大,建设成本很高。 延迟问题,因为服务端做了很多动作(解码,合屏,混音,编码),所以会带来延迟。

多人实时音视频架构3:Router结构(SFU(Selective Forwarding Unit))

该方案最大特点就是服务端只负责包转发,不负责转码,yy流媒体服务基本上就是这个功能,结构图如下:

该方案优点:

  1. 与Mixer相比服务端压力比较小,而且容易扩展。
  2. 低延迟,特别是与SVC结合能大大提升客户端体验度(貌似h265和vp9才开始集成svc)。

该方案缺点: 考虑到不同客户端需要不同的接收能力,所以真正实现下来服务端的架构也并不简单。

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!


hetaodie

Mobile development

简单,深入的研究移动客户端开发技术"