WebRTC常用架构(webrtc架构图解)

WebRTC虽然是一项主要使用p2p的实时通讯技术,本应该是无中心化节点的,但是在一些大型多人通讯场景,如果都使用端对端直连,端上会遇到很带宽和性能的问题,所以基于Webrtc的音视频会议方案,最常用和最基础的架构模式是Mesh、MCU、SFU。

Mesh 架构

即多个终端之间两两进行连接,形成一个网状结构,与其他所有的终端都能互联通信。

WebRTC常用架构(webrtc架构图解)

1、Mesh架构流量或带宽要求比较大

Mesh架构是利用Webrtc对等连接,在参与会议的各方之间开辟UDP通道,两两进行P2P连接,把媒体流发给参与会议的各方,同时从参与会议的其它方获取媒体流,如果四个参与方,如果每个通道占用1M带宽,每个端需要把自己的流发给其它三个端,则是上行为3M带宽,同时从其它3个端获取流,则下行3M带宽,这样每个端上下行总共6M带宽。

2、Mesh架构对端的能力要求也是比较高

参与会议的各方的媒体流的编解码都是在端上面来处理的,如果4个参与会议方,那每个端的处理量就是4;所以,在这个架构下,一个端能承受的同时开视频的人员更少。

3、Mesh实现起来技术难度最小

Mesh架构对服务器资源占用是最小的,只需要一个ICE服务器用来实现P2P穿越就行了,Mesh架构是真正的去中心化,对服务器资源占用是最小的,还有可以充分利用端上的算力节省成本。

MCU 架构

是由1个服务器和多个客户端组成的。各个终端将自己的音视频发送给服务器,服务器将同一个房间中的所有的终端进行混合编码,并将混合后的音视频流发送给各个终端。

WebRTC常用架构(webrtc架构图解)

1、MCU架构对服务器端压力比较大

MCU架构需要一个中心化的MCU服务器,编码、转码、解码、混合都在服务器端做;

MCU架构下的参会的4个端把自己的媒体流上缴到MCU服务器,然后MCU服务器对4个媒体流解码后进行合并,4个流合并成一个媒体流,再发给4个参会人员,因此服务器的压力比较大。

2、MCU端上各种控制更加复杂

下发的媒体流是合并的,也就是一个视频流,对于画面放大、加滤镜等这类需求实现起来比较复杂,需要通过信令服务器下发一个重新合屏的信令。

3、MCU架构占用带宽小

吐过4个参会人员每个人上交一份媒体流如果还是按照1M来算,那上行每个端1M,同时从服务器端获取一份混合过的媒体流还是按照1M算,那每个端上下行总共就是2M;所以MCU架构一个端同时能承受更多的人开启视频。

SUF 架构

和MCU一样,是由1个服务器和多个终端构成。不同的是,SFU服务器只对流进行转发,而不进行混合编码。

WebRTC常用架构(webrtc架构图解)

SFU与MCU有相似之处,跟MCU核心区别,是中心节点只负责转发,不做太重的处理,SFU不会对原视频流做编解码,它会把流直接转发给用户,那么用户端可以对多路视频流进行任意拖拽,这样便大大增加了客户端的灵活性,对于很多娱乐、教育等场景都非常友好。

总 结

1、由于各种限制,Mesh在真实应用场景中很少被应用。

2、MCU是非常成熟的技术机构,尤其在硬件视频会议中应用非常广泛。很多做音视频会议的公司都会采购一套MCU设备,前期一套MCU设备价格不菲,但随着互联网的发展以及音视频技术的成熟,硬件MCU已经逐步被淘汰,当然现在也还有公司在使用软MCU,例如比较有名的开源项目FreeSWITCH。

3、SFU是近几年流行的新架构,目前WebRTC多方通信媒体服务器都是SFU架构。SFU架构灵活和性能高的优势,再配上视频Simulcast或SVC模式,则使它如虎添翼,因此SFU架构已渐渐成为主流。

版权声明:本文内容转自互联网,本文观点仅代表作者本人。本站仅提供信息存储空间服务,所有权归原作者所有。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至1393616908@qq.com 举报,一经查实,本站将立刻删除。

(0)

相关推荐

发表回复

登录后才能评论