淺談WebRTC常用架構

閃念基因 發佈 2022-10-23T11:02:23.146135+00:00

導 語TAL RTC實時音視頻是基於好未來在教育場景下的技術積累,平台經歷多年優化打磨和嚴苛質量驗證,通過自身媒體服務向開發者開放,致力於幫助開發者快速搭建低成本、低延時、高品質的音視頻互動平台。

導 語


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

關鍵字: