移動網際網路把我們帶向數字經濟社會,而直播就是其中非常重要的工具。無論是經久不衰的娛樂直播,還是風靡一時的答題直播,直播都是這幾年的流量擔當。曾幾何時的新鮮花樣已經變成了網際網路應用的標配,我們進入了“萬物皆可直播”的時代。
那開發者要怎樣實現一個直播應用呢?又要如何通過技術手段保障使用者的使用體驗?本文將結合融雲在細分行業的深入研究和實踐經驗進行一一解答。
直播鏈路選擇
簡單來看,一個完整的直播應用實現原理是:主播端採集音視訊,推到伺服器,再由伺服器分發給觀眾觀看。
主播端負責推流,需要配置選用 RTC 鏈路分發直播畫面或者用 CDN 鏈路分發。如果涉及連麥還需要考慮如何做 MCU 合流,觀眾訂閱合流的好處是能保證多個主播對話是基本對齊的,不會出現因為網路差訂閱多個訂閱主播時某一主播畫面卡頓或延遲造成“慢半拍”等現象。
(直播鏈路流程圖)
影響使用者體驗的幾個問題
直播平臺的競爭核心,無論支點放在主播還是內容,都離不開應用本身“好不好用”的體驗問題。從技術邏輯上看,直播要無限接近線下實時溝通,也就是要實現低延時、高流暢的互動。
而面對直播場景實現上如此複雜的鏈路選擇和場景切換,直播應用常會遇到延遲、鏈路切換失敗、首屏耗時長等導致使用者給“差評”的問題,也是開發者需要重點思考的地方。
延遲問題
早期的直播應用一般都是單主播,只能通過文字與觀眾互動。當時業界對直播實時性要求也不高,軟體開發者一般會選用 RTMP 推拉流,讓直播畫面在 CDN 鏈路上進行分發。這樣主播和觀眾之間的延遲一般是 2~5s,也就是說:觀眾看到或聽到的直播畫面,聲音是主播 2~5 秒之前發出的。
當主播與觀眾互動時,比如詢問大家想聽什麼歌,得到反饋結果就要等較長時間。這種情況在電商直播中尤其影響整體效果,當主播發布商品讓觀眾搶購時,會先出現購買入口,然後才聽見主播的口播“商品已上架,快搶購”。這種錯位的體驗,實在談不上優質。
想要解決這個問題,開發者必須選一個靠譜的 CDN 直播加速服務,或者乾脆選擇 RTC 服務做直播分發。在這方面,融雲的 CDN 鏈路與國內頭部廠商深度合作,共建互動直播場景的多場景、多鏈路切換;RTC 直播上,融雲實現了主播到觀眾延遲在 500ms 以內的低延遲直播。
(直播鏈路對比)
連麥時切換鏈路失敗
如果使用 CDN 鏈路做直播分發,在連麥場景中觀眾切換為連麥主播時涉及從 CDN 鏈路切到 RTC 鏈路,終端則需要切換音視訊播放器。開發者需要維護兩個播放器的狀態,經常出現黑屏、卡頓等問題。
融雲在做這兩個場景切換時充分考慮了各種異常情況,避免切換失敗、黑屏等影響使用者體驗的問題;在使用融雲 SDK 做直播時,單房間連麥、多房間連麥可以隨時切換,主播還可以方便快捷地控制本房間的觀眾看到的畫面樣式。
(多房間主播連麥)
首屏耗時長
隨著網路技術和通訊技術的發展,我們對於延遲的容忍度越來越低。而傳統 CDN 鏈路涉及直播地址分發、請求資料等一些列耗時操作,無法滿足使用者對於“開啟一個直播,希望立即載入出視訊畫面”的需求。
融雲在做低延遲直播時充分考慮各種場景,整合各類資料介面,可以實現視訊秒開,使用者進直播間到視訊載入只需 1 秒。
直播穩定性
在保證直播穩定性方面,融雲自主研發的演算法可以在主播側保證主播推流的上行資料在弱網情況的可靠性。即使視訊丟包 40%,音訊丟包 80%,都不會中斷直播業務。並且,主播的聲音經 3A 處理和美聲服務可以更優質地傳輸給觀眾。
觀眾側無論訂閱低延遲還是 CDN 鏈路都可以抗弱網,支援觀眾在網路差時切換為僅訂閱音訊,或者訂閱更小尺寸的視訊。
回過頭來,我們再說說融雲 CDN 的好處。首先,CDN 分發成本低,費用消耗往往比 RTC 鏈路低很多,非常利好價格敏感型專案;其次,藉助融雲遍佈全球的服務節點,出海業務的跨國直播也能快速響應;最後,融雲與各大 CDN 廠商都有合作,可以配合不同的專案需求進行調整鏈路,支援視訊轉碼、加密等個性需求。
看完以上分享,你在開發直播應用時,更偏向哪種鏈路做內容分發呢?歡迎點選連結 參與互動,10 秒獲得融雲諮詢服務。