淺談多人音視頻的傳輸架構
在實際的多人音視頻通訊場景中,1 對 1 通訊只是諸多場景的一種。而在教育或者會議的場景中,更多是 1 對多或者是多對多通訊。綜合目前多方通信方案來看,基本都是以下三種架構方案:Mesh 架構、MCU 架構、SFU 架構。
一、Mesh 架構
如上圖所示:5 個瀏覽器,兩兩建立 p2p 連接,每個瀏覽器與其它 4 個建立連接,總共需要 10 個連接,整個傳輸形成一個網格拓撲結構。如果每條連接佔用 1m 帶寬,則每個端上行需要 4m,下行帶寬也要 4m,總共帶寬消耗 20m。他們通過 STUN 服務進行穿越,因此不需要媒體服務,每個瀏覽器上要處理音視頻 “編碼 / 解碼”,一般這種架構只能支持 4-6 人左右,不過優點也很明顯,沒有中心節點,實現很簡單。
-
優勢:Mesh 實現起來技術難度是最小的,實現起來最簡單;Mesh 架構對服務器資源佔用是最小的,只需要一個 ICE 服務器用來實現 P2P 穿越就行了,Mesh 架構是真正的去中心化,對服務器資源佔用是最小的,還有可以充分的利用了端上的算力,邊緣計算的時代已經來了,理論上節省不少成本。
-
劣勢:首先 Mesh 架構對流量或帶寬要求比較大,其對瀏覽器 / 端上的上行寬帶佔用比較大,而上行寬帶相對於下行寬帶來說一般是比較小的。雖然節省了服務資源,但端上的資源是一個考驗。另一方面,如果有部分人由於網絡複雜情況而無法穿越,單獨處理這部分端上用戶,是比較複雜的,也需要額外的兜底保障策略。
二、MCU (MultiPoint Control Unit)
如上圖所示:每個瀏覽器僅與中心的 MCU 服務連接,有這個中心服務負責處理所有的視頻編碼、轉碼、解碼、混合等複雜邏輯。而這個處理過程如下圖所示:
-
接收發送端發送的音視頻流。
-
將音視頻流的數據進行解碼。
-
對於視頻流,要進行重新佈局,混合處理。對於音頻流,要進行混音、重採樣處理。
-
將混合後的音視頻進行重新編碼。
-
發送給接收端的瀏覽器。中心化的統一處理流程,各端表現更加一致和好處理。而從寬帶使用上看,因爲每個瀏覽器只要 1 個連接,所以整個網絡僅消耗 5 個連接,帶寬佔用 (包括上行、下行)共 10m。從實踐上說,這個架構可以支持更多的人同時音視頻通訊,比較適合多人會議的場景。
-
優勢:MCU 架構佔用帶寬最小,每個瀏覽器 / 端上只發送和接收一個視頻流,同時從服務器端獲取一份混合過的媒體流還是按照 1M 算,那每個瀏覽器 / 端上上下行總共就是 2M;綜合來看 MCU 架構一個端同時能承受更多的人開啓視頻。另一方面,由於中心化的處理流程,通過中心服務便捷碼可以屏蔽不同設備的處理差異,滿足更多設備集成,端上的處理和表現更加一致。如今,MCU 技術非常成熟,在實際應用的使用非常廣泛。
-
劣勢:顯而易見,MCU 服務的在進行解碼、編碼等處理時,運算量消耗很大,因此服務成本比較高,而在實踐中容量也是比較有限的。其次編解碼和混流等操作會引入不小的延遲,在對於實時性要求比較高的場景,可能不太合適。由於只有一路下行,觀看體驗比較一致,但也帶來另一個問題,端上無法再靈活特殊處理(比如特殊佈局、單獨美顏)。
三、SFU (Selective Forwarding Unit)
如上圖所示:每個瀏覽器與中心 SFU 服務連接,但與 MCU 服務不同的是,SFU 服務只負責轉發,所以服務器的壓力會低很多。每個瀏覽器用一個上行連接傳輸自己的音視頻,另外還要有 n-1 個連接用於下載其它音視頻數據。所以總連接數爲 5*5,消耗的帶寬也是最大的,如果每個連接 1M 帶寬,總共需要 25M 帶寬。相比 MCU,SFU 在結構上相對簡單很多,只是接收流然後轉發給其他人。這也帶來了其他好處:比如根據帶寬和網絡延時,單獨調整音視頻的碼率等。另外也能靈活調整畫面佈局。
-
優勢:SFU 服務器接到 RTP 包後直接轉發;不做編碼、轉碼、解碼、混合這些算力要求較高的工作;所以 SFU 架構服務端壓力相對較小。
-
劣勢:由於是數據包直接轉發,每個端上看到的多路視頻,可能會出現不同步,需要端上對每路音視頻做同步處理。在每路視頻佈局和渲染展示上,端上也要額外處理。整體上在通用性、一致性方面比較差。最後則是對於端上的帶寬要求比較高。
該用哪種架構:
一般建議:如果規模不大 (5 人以下) Mesh 框架就夠用了,畢竟實現簡單;如果 50 人以下,且帶寬有限,選擇 MCU 比較適合;如果規模更大,且帶寬良好,SFU 相對更適合。
但在互聯網 5G 時代,要求更個性化的體驗(美顏,更個性化的控制等等),更大的規模的用戶同時在線人數。總的來說 SFU 架構更適合互聯網時代。隨着 5G 技術的推廣,可以預見帶寬越來越不是問題,所以 SFU 在未來,可能會更有優勢。
參考文章:
WebRTC Multiparty Video Alternatives, and Why SFU is the Winning Model
WebGlossarySFU
WebRTC Media Servers – SFUs vs MCUs
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源:https://mp.weixin.qq.com/s/BmhdpYaiAdFZq7LKFiK7hg