開發與維運

打造“零距離”互動直播間,低延時流媒體技術實踐

作者| 阿里文娛技術專家 乾戒

一、行業的用戶體驗分析

互動直播場景中有主麥主播、輔麥主播、粉絲三個要素,這三者之間關係構成了直播間的 各種互動場景。
1)主麥主播、輔麥主播可以無障礙的進行音視頻通話,通常延時在 300ms 以內;
2)(主麥、輔麥)主播與粉絲互動場景;主播說話,而粉絲以文字、圖片、送禮物等方式 進行互動;這種差別造成一次互動的延時在 3000ms 以上,想象一下如下互動場景:
a)進場特效播放完依然沒有收到問候; b)當主播與粉絲一起玩“王者榮耀”時需要偷塔時,無法滿足; c)當主播與主播 PK 時,其中一個主播最後幾秒想拉票時,無法滿足。
如何提升直播過程中三個要素之間的互動,讓主播與主播之間、主播與粉絲之間達到一致 的用戶體驗?優酷直播流媒體團隊做了低延時流媒體技術的探索實踐,實現了在用戶體驗不下 降的基礎上,讓主播與主播延時<300ms,主播與粉絲延時<600ms,解決了直播間各類互動問題。

二、作繭自縛-傳統解決方案

傳統直播解決方案中主播之間以實時通信的方式傳輸延時小於 300ms,但是主播與觀眾之 間通過鏈路傳輸、CDN 分發整個延時往往在 3000ms 左右;如下圖:

image.png

從圖上我們可以看到產生延時的主要原因就是 RTMP 傳輸鏈路、CDN 環節、觀眾播放器緩 存三個環節產生;如果想要提升用戶的體驗,就必然從這三個環節上做改動,尤其是 CDN 把 持了傳輸鏈路環節,然而 CDN 不是你想改就能改的。
基於這樣的分析我們可以得出這樣的結論:
1)視頻 CDN 大大減少了開發人員的工作量;
2)你能做多好,取決於你控制的鏈路有多長;
3)CDN 側不可控,所以等待 CDN 的改變也遙遙無期;
4)CDN 側不可控,所以做一個和服務器交互的低延時播放器也沒戲;
5)傳統的解決方案是一張溫柔而又可怕的溫床。

三、蛻變之痛-低延時直播系統

針對上面的問題,我們解決方案簡單粗暴:做一個全鏈路都可以控制的流媒體傳輸系統, 如下圖:

image.png

1. 山重水複疑無路-項目挑戰

想好就做,但是蠻幹往往沒有好結果。這個設計使用 CDN 的思想改造了整個實時通信系 統,既兼顧 CDN 的大併發分發,又兼顧實時通信的低延時。無論是談實時通信系統還是談 CDN 都不是個小題目,何況兩個融合的系統,這裡面“水很深”“坑很多”。

image.png

然而挑戰還不止這些,實際的工程中,如何降低延時、如何保證流暢率往往有是相互矛盾 的話題,降低延時就要降低播放側 buffer 和服務側的 buffer,隨之卡頓率就會上升;而想流暢率 上升就要增大 buffer,隨之延時就變得更長;無論怎麼調整 buffer,問題都這裡,如何解決呢?

image.png

2.柳暗花明又一村-解決方案

低延時直播系統根據具體業務需求,融合 CDN、私有實時通信協議、WebRTC、雲原生等 技術完美解決了項目的各類苛刻要求,把問題模型轉換為技術角度看:

image.png

1)延時的產生及可控性分析:

image.png

從上圖我們可以看出來,可控的唯二也就是傳輸層、播放器 buffer 兩部分了。在低延時項 目中 RDN 系統控制了整個傳輸過程,優化了每一個細節,把延時降至 118ms 以內,低延時播 放器自適應動態控制 buffer 大小、嚴格控制音視頻加減速,保證流暢率的基礎上又使延時在 415ms 以內。通過控制播放側目標延時實現流暢優先、延時優先兩種策略,滿足主播連麥互動、 粉絲互動兩種業務場景。
2)CDN 進階為 RDN 系統
傳統的 CDN、視頻會議系統可以自行查看網上的方案,RDN 系統是一個融合 CDN 架構, 並以視頻會議媒體服務器為節點的系統。RDN 在進行媒體傳輸採用懶加載的方式進行,當主播 把流傳輸至接收的邊緣節點,此時如果有觀眾播放流,會通過 GSLB 返回最近的邊緣節點並進 行資源的索引把流快速的下發至播放側的傳輸 SDK。媒體流的分發示意圖如下:

image.png

3.唯快不破-傳輸延時如何降至最低

傳輸延時、播放側延時是唯二可控的部分,且看我們如何把傳輸降到最低:

image.png

1)播放器進階為低延時播放器 低延時播放器是系統中延時控制的重要環節,是系統中唯一延時可控且可調的部分。相比
於傳統播放器功能既要滿足流暢率、秒開率、音畫同步等用戶指標,又要保證延時足夠低。低
延時播放器架構圖:

image.png

4.用戶體驗第一-低延時場景下如何保證用戶體驗

低延時播放器通過定製優化後的 neteq,抵抗網絡的抖動、丟包等問題,顯著提升弱網情況 下的用戶體驗,通過濾波後的音畫同步方案,保證在音視頻快速加減速同時又能保證用戶的體驗。

image.png

1)扁鵲全鏈路監控系統 扁鵲系統收集端側、服務器側日誌,不但整個鏈路的服務質量,也用於排查各類線上問題。

image.png

四、羽化之美-數據報告

在流暢率、秒開率不低於傳統直播方案的場景下,互動延時指標大幅降低 86%。系統自 2017 年穩定運行至今,為直播用戶提供了低延時互動、點擊即見、清晰、流暢的高質量互動直播間。 並支撐了來瘋秀場 PK,低延時直播各類場景,保證了來瘋兩年多的各類比賽順利進行。

五、回顧歷史-我的思考

低延時直播系統是由傳統直播技術、實時通信技術、WebRTC 技術融合,專為互動直播而 生的系統。達到了文字和音視頻同步的效果,像“歡迎大哥”“拉拉票”、“打他”這些歡迎、拉票 等直播互動再也不需要等待。回顧整個系統的誕生,我的技術思想也在逐漸的變化,回想初次 接觸這三個技術:
1)傳統直播技術 = RTMP、CDN、ijkplayer 2)實時通信技術 = MCU、SIP、RTP/RTCP
3)WebRTC 技術 = JSEP、P2P 、SFU、ICE、SDP、neteq 後來深入瞭解這些技術細節、互動直播業務的需求、開發過程中的痛點,開始思考可以用
這些技術再往前走一步,自研一套低延時直播系統一勞永逸的解決這些問題。經過前期詳細論
證確定正確方向後,雖然過程困難重重,秉著“只要路對了就不怕遠”“只要精神不滑坡,方法總 比困難多的”精神,最終還是安全的抵達了對岸。


本章內容出自《智慧文娛》電子書,118篇精選文章,900頁豐富呈現,覆蓋8大技術棧,縱覽文娛技術全景。阿里文娛團隊匠心出品,點擊免費下載完整版!

Leave a Reply

Your email address will not be published. Required fields are marked *