01.06 RTMP、WebRTC、UDP 三種互動直播方案的優劣對比分析

直播作為一種新興社交方式,已然成為一項互聯網基礎應用,也成為技術大牛們探索更高效輕量的技術方案的新陣地。


由於用戶對社交互動的強烈需求,“互動直播”已成為直播發展趨勢。通過視頻連麥,用戶之間可以進行視頻互動,達到更深層次的超越語言文字的交流。

那麼互動直播是怎樣實現的呢?主要有以下幾種可以實現的技術方案:

  1. 基於RTMP 和 CDN 技術的連麥
  2. 基於 WebRTC(P2P)與旁路直播的連麥
  3. 基於低延時網絡的連麥

那這三種技術方案該如何權衡選擇呢?它們又有何優劣呢?

基於 RTMP 技術的連麥

RTMP、WebRTC、UDP 三種互動直播方案的優劣對比分析

當有連麥者時,則主播端和連麥端,都分別推一路 RTMP 流到 CDN,CDN 再將這兩路 RTMP 流發送給觀眾端,觀眾端將兩路 RTMP 流合成為一個畫面。

RTMP 是基於 TCP 的標準協議,與 CDN 架構兼容,對客戶來說在現有單向直播架構上,接入成本比較低,但是缺點也很明顯:

  • 主播與連麥者交互時,聲音會產生干擾,形成迴音;
  • 播與連麥者進行交互,在 CDN 中傳輸延時較大;
  • 觀眾端要接收兩條視頻流,帶寬、流量消耗過大,並且兩路視頻流解碼播放,耗費CPU等資源也非常多。

基於 WebRTC 方式的連麥

RTMP、WebRTC、UDP 三種互動直播方案的優劣對比分析

WebRTC 是 Google 公司的開源技術,降低了音視頻通信的接入門檻。也有公司採用該項技術實現連麥。主播與連麥 用戶採用 P2P 方式進行交互,然後在主播端進行混流,然後在 CDN 上進行混流,發送到觀眾端。

WebRTC 的好處在於用戶體驗好,不需要安裝東西,分享一個鏈接就可以看。

但這套方案需要主播端上傳兩路視頻:一路 P2P 與連麥者進行交互,一路使用 RTMP 推到 CDN。還要下載一路視頻:連麥者P2P發送過來的交互數據。對主播端帶寬需求較高。

另外,主播端需要進行多路視頻的編碼、解碼,又對主播端設備配置要求較高。而由於主播端和連麥者經過 CDN 合併成一路,無法實現主播端和連麥者視頻大小窗口切換。

基於低延時網絡的連麥

基於 UDP 的私有協議與 RTMP 相比具有先天的優勢,它是面向無連接的,避免了 TCP 做網絡質量控制所需要的開銷,能夠做到比較低的延遲。

但是私有協議的兼容性不好,如果採用該方案也需要解決一系列的技術問題:

  • UDP 的可靠性傳輸如丟包重傳、網絡抖動的處理
  • 網路擁塞的控制算法
  • 在全球節點的部署與智能調度
  • 各種端的全面支持

而以上問題都是在短期內很難實現的。

基於 RTMP 和 CDN 技術的連麥方案,對於產品來說非常可靠穩定,但可靠的同時延時也在增大,且使用兩路 RTMP 推流拉流既耗帶寬又耗 CPU。基於 WebRTC P2P 方式的連麥,接入門檻低,用戶體驗好,卻對主播端帶寬及設備配置要求較高。基於低延時網絡的連麥看起來很美,但私有協議的兼容性令人頭大。


專注於技術熱點大數據,人工智能,JAVA、Python、 C 、GO、Javascript等語言最新前言技術,及業務痛點問題分析,請關注【編程我最懂】共同交流學習。


分享到:


相關文章: