webrtc 架构组件简介(浅谈WebRTC常用架构)
webrtc 架构组件简介(浅谈WebRTC常用架构)参与会议的各方的媒体流的编解码都是在端上面来处理的,如果4个参与会议方,那每个端的处理量就是4;所以,在这个架构下,一个端能承受的同时开视频的人员更少。2、Mesh架构对端的能力要求也是比较高即多个终端之间两两进行连接,形成一个网状结构,与其他所有的终端都能互联通信。1、Mesh架构流量或带宽要求比较大Mesh架构是利用Webrtc对等连接,在参与会议的各方之间开辟UDP通道,两两进行P2P连接,把媒体流发给参与会议的各方,同时从参与会议的其它方获取媒体流,如果四个参与方,如果每个通道占用1M带宽,每个端需要把自己的流发给其它三个端,则是上行为3M带宽,同时从其它3个端获取流,则下行3M带宽,这样每个端上下行总共6M带宽。
导 语
TAL RTC实时音视频是基于好未来在教育场景下的技术积累,平台经历多年优化打磨和严苛质量验证,通过自身媒体服务向开发者开放,致力于帮助开发者快速搭建低成本、低延时、高品质的音视频互动平台。
Webrtc虽然是一项主要使用p2p的实时通讯技术,本应该是无中心化节点的,但是在一些大型多人通讯场景,如果都使用端对端直连,端上会遇到很带宽和性能的问题,所以基于Webrtc的音视频会议方案,最常用和最基础的架构模式是Mesh、MCU、SFU。
Mesh 架构
即多个终端之间两两进行连接,形成一个网状结构,与其他所有的终端都能互联通信。
1、Mesh架构流量或带宽要求比较大
Mesh架构是利用Webrtc对等连接,在参与会议的各方之间开辟UDP通道,两两进行P2P连接,把媒体流发给参与会议的各方,同时从参与会议的其它方获取媒体流,如果四个参与方,如果每个通道占用1M带宽,每个端需要把自己的流发给其它三个端,则是上行为3M带宽,同时从其它3个端获取流,则下行3M带宽,这样每个端上下行总共6M带宽。
2、Mesh架构对端的能力要求也是比较高
参与会议的各方的媒体流的编解码都是在端上面来处理的,如果4个参与会议方,那每个端的处理量就是4;所以,在这个架构下,一个端能承受的同时开视频的人员更少。
3、Mesh实现起来技术难度最小
Mesh架构对服务器资源占用是最小的,只需要一个ICE服务器用来实现P2P穿越就行了,Mesh架构是真正的去中心化,对服务器资源占用是最小的,还有可以充分利用端上的算力节省成本。
MCU 架构
是由1个服务器和多个客户端组成的。各个终端将自己的音视频发送给服务器,服务器将同一个房间中的所有的终端进行混合编码,并将混合后的音视频流发送给各个终端。
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服务器只对流进行转发,而不进行混合编码。
SFU与MCU有相似之处,跟MCU核心区别,是中心节点只负责转发,不做太重的处理,SFU不会对原视频流做编解码,它会把流直接转发给用户,那么用户端可以对多路视频流进行任意拖拽,这样便大大增加了客户端的灵活性,对于很多娱乐、教育等场景都非常友好。
总 结
1、由于各种限制,Mesh在真实应用场景中很少被应用。
2、MCU是非常成熟的技术机构,尤其在硬件视频会议中应用非常广泛。很多做音视频会议的公司都会采购一套MCU设备,前期一套MCU设备价格不菲,但随着互联网的发展以及音视频技术的成熟,硬件MCU已经逐步被淘汰,当然现在也还有公司在使用软MCU,例如比较有名的开源项目FreeSWITCH。
3、SFU是近几年流行的新架构,目前WebRTC多方通信媒体服务器都是SFU架构。SFU架构灵活和性能高的优势,再配上视频Simulcast或SVC模式,则使它如虎添翼,因此SFU架构已渐渐成为主流。
作者:好未来直播中台
来源:好未来技术
出处:https://mp.weixin.qq.com/s/dcfetL61lvsBL63jYKknDg