開源webrtc服務器對比

一、Kurento

Github 地址:

https://github.com/Kurento/kurento-media-server

Github Star:

1.4k

基本介紹:

Kurento是一個WebRTC媒體服務器,並且包含一個客戶端API集合,用以簡化WWW和移動平臺上的高級視頻應用程序的開發。Kurento的功能包括組通信,轉碼,記錄,混音,廣播和路由。Kurento同樣提供高級的媒體處理能力,包括計算機視覺,視頻檢索,虛擬現實和語音分析。Kurento模塊化的架構使得其集成第三方媒體處理算法(如語音識別,場景分析,人臉識別等)很簡單,而且它可以被應用程序開發者視爲透明。Kurento的核心組成是Kurento媒體服務器,它用來負責媒體傳輸,處理,加載和記錄。

優點:

文檔全面,功能種類多,模塊化編程,方便拓展,提供android和ios端demo(2016年)。

缺點:

性能一般,不是很穩定,框架比較重,修改源碼比較困難,開發週期長。

二、Licode

Github 地址:

https://github.com/lynckia/licode

Github Star:

2.1k

基本介紹:

Licode是基於webRTC技術之上的開源項目,通過更便捷(easy,fast and scalable)的接口可以快速搭建出基於webRTC技術的網絡視頻會議系統,或者與此類似的系統。

優點:

接口簡潔,服務輕量級,安裝部署方便,對HTML5支持較好,有android和ios端demo(2017年)

缺點:

API文檔比較簡單且其他文檔較少,支持分佈式部署,只支持 Ubuntu 14.04 LTS 這個 Linux 版本。

三、Jitsi

Github 地址:

https://github.com/jitsi/jitsi

Github Star:

2k

基本介紹:

Jitsi不僅僅是一個WebRTC媒體服務器,而是圍繞者webrtc構建了一整個平臺。 Jitsi系列產品包括Jitsi Videobridge(媒體中繼,SFU),Jitsi Meet(會議web客戶端),Jicofo(Jitsi Conference Focus),Jigasi(Jitsi Gateway to SIP)和Jitsi SIP Phone。 Jitsi平臺最吸引人的特性是它包含了在數小時內啓動和運行的通信平臺的所有功能。它還使用Jingle(XMPP)和功能齊全的Web interface實現了自己的信令。遺憾的是,它沒有一個穩固易用的媒體錄製功能實現。Jitsi 是一個開源項目,可幫開發者在 Web 、Windows、Linux、Mac OS X、Android 平臺上實現實時的語音、視頻通話應用。有很多獨立開發者在基於這套代碼開發自己的視頻通話應用。

優點:

功能穩定,提供移動端demo(2016年)

缺點:

只支持SFU,信令協議只支持SIP/XMPP,沒有媒體錄製功能。

四、Janus

Github 地址:

https://github.com/meetecho/janus-gateway

Github Star:

3k

基本介紹:

JanusJanus是一個開源的,通過 C 語言實現了對 WebRTC 支持的 Gateway;Janus 自身實現得很簡單,提供插件機制來支持不同的業務邏輯,配合官方自帶插件就可以用來實現高效的 Media Server 服務janus是Meetecho開發的一個WebRTC網關,janus的主要作用就是它可以和你的內網設備和瀏覽器同時建立連接,並將瀏覽器發來的音視頻數據包如rtp/rtcp包,通過自定義插件轉發給你的內網設備,也可以將你發給janus的音視頻數據包,加密後轉發給瀏覽器。儘管在它的描述中沒有任何地方提到“媒體服務器”,但是Janus可以很容易地就被設置爲一個SFU。其最顯著的特點之一是它的插件架構,可以增強服務的核心功能。

優點:

插件化架構,易於拓展,穩定,cpu和內存利用率高,輕量級

缺點:

房間邏輯設計不靈活。

五、Mediasoup

Github 地址:

https://github.com/versatica/mediasoup

Github Star:

940

基本介紹:

一個相對較新且有趣的媒體服務器,它與其他媒體服務器的不同之處在於它被設計爲一個Library(用於Node),允許它集成到更大的應用程序中。

優點:

輕量級,性能好

缺點:

比較新,不太穩定,目前只支持h264和vp8,只支持SFU

六、總結和建議

開源webrtc服務器對比
表格中所列出的開源系統是目前市面上比較常見的,分別從服務器類型、編解碼能力、文檔的完整性和開發商來進行對比。

  1. 首先介紹的開源系統是Kurento,這個開源系統是在表格所列出中最全能的一個開源系統。這個開源系統支持轉碼,同時還有濾鏡的附加功能。但是在測試過程中,這個開源系統的穩定性不是很好。這個開源系統同時提供了一個雲服務方案,主要是開發商爲了推廣雲服務而開源的系統,所以性能的穩定性還有待提高。
  2. Janus的出發點是網關,它的開發商是Meetecho公司,Slack推出的視頻通話方案就是基於這個開源系統的。但在測試過程中發現,這個開源系統在性能上有些問題, 而Slack也是對其進行了大量的優化。
  3. Jitsi只是實現了SFU模型,不包含MCU,由於功能單一,只是一個轉化路由,所以這個系統是列表中是較爲穩定的一個開源系統。如果只是需要實現簡單的轉發功能,這個開源系統是不錯的選擇。
  4. Licode具有SFU和MCU功能,它的架構是插件式的,也就是說,如果你想在自己的源代碼上附加某些功能,可以直接使用Licode對自己的系統進行補充,既能保留原有系統的特性,又能達到完善功能的目的。
  5. Intel使用Licode實現了一個Intel CS for WebRTC的套件,它是免費的,有提供Client端和Server端的SDK,但是這個系統不開源。我們在一些沙龍活動中會經常看到有關這個系統的介紹,基於這個系統配合使用Intel方案也是不錯的選擇。這個系統也是列表中唯一支持RTMP轉協議的系統。
  6. 最後一個開源系統是MediaSoup,這個系統只支持SFU,底層的開發語言是Node.js。對於熟悉Node.js語言的開發人員來說,這個開源系統比較容易學習。但是由於這個開源系統出現的時間不長,系統穩定性還有待提高。

七、webrtc服務器壓測報告

鏈接:https://download.csdn.net/download/Martin_chen2/12284625

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