開源WebRTC媒體服務器(轉)

什麼是WebRTC服務器?

在WebRTC的早期開始,該技術的主要賣點之一是它允許點對點(瀏覽器到瀏覽器)通信,幾乎沒有服務器的干預,服務器通常僅用於信令(比如用於連接代理)。 在這個應用階段,一個專門的WebRTC媒體服務器的概念顯得有點多餘。

但是隨着WebRTC應用場景變得複雜,比如在線視頻會議,這個時候點對點通訊會遇到問題。下面,我將以視頻會議爲例嘗試說明爲什麼媒體服務器很有用,它們通常提供什麼類型的功能以及用戶可以使用哪些開源替代品。

雖然可以通過對等通信與多個參與者保持視頻通話,但隨着參與者數量的增加,它不再實用,因爲要求對等方發送他/她的視頻/音頻流到每個參與者,同時接收每個參與者的視頻/音頻流。

實際上,即使在調優網絡條件下,網狀視頻呼叫在超過五個參與者後就變得相當困難。爲了解決這樣的性能瓶頸,因此才額外引入了媒體服務器(Media Server)的概念。因爲一個集中轉發的架構方式有助於減少客戶端需要發送的流的數量,通常只需要發送一個,甚至可以減少客戶端需要接收的流的數量,這具體取決於媒體服務器功能。當然付出的代價是相應的服務端成本的提高。

當媒體服務器充當這種媒體中繼時,它通常被稱爲SFU(Selective Forwarding Unit選擇性轉發單位),這意味着其主要目的是在客戶端之間轉發媒體流。還有一個MCU(Multipoint Conferencing Unit多點會議單元)的概念,MCU服務器不僅可以轉發,而且可以對媒體流進行混合和編碼壓縮(比如把各個客戶端的數據打包轉發,和SFU相比,這樣將大幅度降低轉發數據的帶寬需求,但對CPU有更高的要求)。

image.png

媒體服務器的好處

  • 擴展了系統性能和功能,來支持更爲複雜的應用場景
  • 所有媒體流經由媒體服務器的一個好處是可以進行記錄,這對於一些需要保留會議紀要的場景是非常有用的
  • 可以方便的和第三方系統進行集成,比如在Web系統和SIP電話系統(比如Asterisk、freeswitch)之間建立應用

integration-1024x1015.png

  • 可以對媒體流進行額外的加工處理,比如通過人工智能人臉識別來給播客添加虛擬的帽子。

開源媒體服務器

Jitsi Platform
Jitsi不僅是WebRTC媒體服務器,而且還有一個完整的平臺。 Jitsi系列產品包括Jitsi Videobridge(媒體中繼,SFU),Jitsi Meet(會議網絡客戶端),Jicofo(Jitsi Conference Focus),Jigasi(Jitsi Gateway to SIP)和Jitsi SIP Phone。藉助Jitsi我們能在幾個小時之內迅速搭建一個完整可用的通信平臺。 它還使用Jingle(XMPP)和功能齊全的Web界面實現自己的信令控制。 然而,令人遺憾的是,它對於媒體錄製沒有提供穩定易用的解決方案。

Kurento Media Server
這是最通用的解決方案之一。 它不僅是一個媒體服務器,而且是一個開發工具包。Kurento的主要優勢在於其多功能性,引入了媒體工作流的概念,允許在代碼中定義媒體流的方式和位置。 這允許WebRTC開發者組合和集成非常有趣的特徵,例如增強現實,AR計算機視覺(例如識別QR碼,面部檢測),實時媒體修改和與RTP(VoIP)服務互操作。Kurento可以配置爲SFU或MCU,或兩者兼備。

Janus WebRTC Gateway
雖然它的描述在任何地方都沒有提到“媒體服務器”,但Janus可以很容易地設置爲SFU。 其最顯着的特徵之一是其插件架構,可以增強服務的核心功能。有一些有趣的Janus用例,例如SIP Gateway,屏幕共享等。

mediasoup
這是一個相對較新而且有趣的媒體服務器,它與其他媒體服務器的不同之處在於它被設計成一個用於Node的開發庫,這允許它可以被容易的集成到更大的應用程序中。

轉自 https://www.techbrood.com/zh/news/webrtc/2019年開源webrtc媒體服務器選型比較.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章