本文來自快手科技算法科學家,快手傳輸算法團隊負責人周超博士在LiveVideoStackCon 2020線上峰會的分享,介紹了快手基于流式直播多碼率的實踐與優化,以及LAS (Live Adaptive Streaming)標準的架構、原理、自適應算法與未來規劃。
近日,快手正式對外發布基于流式的直播多碼率自適應標準LAS(Live Adaptive Streaming),用于提供低延遲、平滑、流暢的直播多碼率體驗。據悉,快手同時開源了LAS的端到端解決方案,包括服務端、客戶端、業界領先的多碼率自適應算法等,幫助業界實現零門檻接入和使用LAS。
直播清晰度對用戶的體驗至關重要,通過提升視頻的碼率、分辨率,能夠確保視頻清晰度顯著提升。快手用戶規模大、分布廣泛,用戶間網絡差異性大,單一的視頻質量(碼率、分辨率)或固定的檔位下發策略難以適應不同的網絡需求。
2019年底數據顯示,快手的直播DAU超過了1億,快手的游戲直播日活用戶數達到5100萬,游戲直播是眾多直播場景中比較特殊的一個例子。相對于傳統直播(秀場類),因為游戲畫面的復雜性,游戲直播對碼率的需求更高。這也是催生快手做直播多碼率的一大動機:單一的碼率很難滿足不同用戶的網絡條件。
直播技術的痛點和行業解決思路
站在用戶的角度,直播體驗面臨的最大痛點可以分為三類:卡頓、模糊、延遲大。
對于這些問題,單獨優化某一個指標并不難,難點在于彼此之間互相制約。例如通過降低碼率能降低卡頓率,提升觀看直播的流暢度,但降低碼率損失了清晰度的體驗,會引起直播畫面模糊。此外,延遲對于直播體驗也至關重要,例如秀場的互動直播,主播能及時響應粉絲的評論或送禮等行為,都能極大的改善用戶體驗。而延遲越低,客戶端緩存的數據也越少,對網絡抖動的抗性也越差,從而增加了卡頓的風險。
目前的直播架構主要分為兩類,一類是是基于流式架構,例如HTTP-FLV、WebRTC等。這類基于流式的直播架構,可以實現幀級傳輸,從而獲得低延遲的直播體驗。此外,對于這些架構和協議,CDN支持好,易部署,并且被長時間大規模的商用驗證過,穩定性高。其缺點是不支持多碼率,無法根據用戶的網絡動態自適應選擇最佳的碼率檔位。
多碼率自適應是在抖動網絡下保證觀看流暢度最有效的手段之一。目前多碼率自適應方案,主要包括MPEG-DASH和HLS,并且這二者都是基于分片傳輸的。在最初設計時,也主要用于點播場景,延遲問題考慮得相對較少,直接用于直播場景時容易引起延遲過大,影響直播體驗。目前國內暫無大規模的使用DASH或HLS進行直播,實際大規模使用時,其穩定性也有待考量。雖然目前MPEG-DASH和HLS都在討論低延遲方案,例如LHLS,但這些方案還沒完全標準化,離落地尚需時日。
魚和熊掌兼得的自研思路
已有的解決方案或多或少的存在一些瑕疵,難以滿足快手的業務需求。因此,我們選擇自研之路,設計了一套基于流式的直播多碼率自適應方案,其目標是在支持直播碼率自適應的同時,實現流式直播的低延遲。
總體而言,快手的直播多碼率解決方案包含兩大特性:一是基于流式傳輸,從而保證低延時;二是支持多碼率,從而依據每個用戶的網絡狀態,自適應選擇最佳的視頻清晰度。該方案需要解決的三個核心問題為:When——什么時候切換碼率;Which——切換到哪一檔;How——在流式傳輸下,如何實現無縫切換。
快手直播的系統架構如上圖所示,主播推流到快手自建源站,源站負責收流、轉碼后,由CDN回源拉取不同碼率檔位的視頻流,進而依據用戶的請求,將合適的視頻流分發給用戶。在基于流式的直播多碼率架構下,對轉碼、CDN和播放器需要有一些規范的要求。
對于轉碼,不同于MPEG-DASH或HLS,我們的方案不需要進行切片操作,只需要在轉碼時保證不同的轉碼流的I幀的pts嚴格對齊。因為在做碼率切換時,需要依據I幀的pts進行對齊,否則,在解碼渲染時可能會出現跳幀的現象。
對于CDN,也是多碼率服務端的核心邏輯,主要包括以下功能的支持:
緩存:傳統CDN的緩存使用字節數(Bytes),在多碼率場景下,對于不同的視頻碼率,相同字節數所對應的時長不一樣,而多碼率的操作都是基于時間的,因此,我們要求存儲單位統一為時間。這個時間長度的計算,可以依據視頻,也可以依據音頻 ,詳細的實現可以參考我們的標準文檔。
拉流:CDN需要支持三種拉流模式,即默認位置拉流(傳統拉流)、絕對位置拉流(明確吐流位置)、相對位置拉流(設置吐流時長)。
在具體實現時,考慮遲到視頻幀的解碼參考關系,CDN在吐流時,需要從關鍵幀開始,具體分為三種情況:
默認位置拉流,一般發生在啟播時,依據默認長度計算當前期望的絕對位置,找到最近的I幀開始吐流。
絕對位置拉流,一般發生在碼率切換時,需要找到pts不大于絕對位置的I幀開始吐流,避免渲染跳變。
相對位置拉流,一般發生在啟播時,根據相對位置計算絕對位置,再找到最近的I幀開始吐流。
上圖是基于流式的直播多碼率自適應的流程示意圖。在啟播時,采用相對位置拉流的模式,默認拉取高清檔位的視頻流。此時,可以結合業務的需求,通過合理的設置相對位置來控制直播延遲。在直播過程中,當因為網絡等原因導致需要從高清流切換到標清流,從而保證播放的流暢性時,可以采用絕對位置的拉流方式。具體過程為:首先斷開高清流,然后播放器依據當前的狀態,得到期望吐流的絕對位置 ,比發送絕對位置的拉流請求。通過I幀的pts嚴格對齊,保證了無縫切換。
基于流式傳輸的架構保證了低延遲的效果,直播的流暢度和清晰度,則需要通過多碼率自適應算法來實現。為了平衡這一對矛盾的目標,我們采用基于buffer的模式,背后的出發點在于當buffer數據較多時,意味著帶寬沒有被充分利用起來,需要切換到更高檔位以獲得更高的清晰度,反之亦然。此外,頻繁的碼率切換,對用戶的主觀體驗也不友好,因此,我們還需要考慮碼率切換的平滑性。
這里值得強調一點的是,整個建模過程都依賴與網絡帶寬的估計。在基于分片的多碼率框架下,每個分片獨立下載,其平均下載速度可以近似作為當前帶寬的均值。然而,在基于流式傳輸的過程中,源數據實時產生,觀測到的下載速度近似等于請求的視頻流的碼率,難以反應真實的帶寬。在我們的方案中,帶寬通過實時收集固定時間間隔的微粒度下載速度采樣點并濾波來獲得。
在實際求解時,除了考慮當前時刻的決策外,還需要考慮當前的決策對未來的影響,從而達到全局最優。經過一些矩陣的巧妙設計,極大簡化了求解過程,也方便了工程實現。算法的具體實現已開源。
LAS標準發布期待行業伙伴參與共建
快手直播多碼率的解決方案方案從開始調研,實現再到全量,經歷了方案和架構選擇、工程實現、算法優化等諸多問題,目前已經在快手直播業務實現全量,并且取得了很不錯的收益。我們將整套方案重新梳理并形成標準文檔LAS(Live Adaptive Streaming),將這些經驗分享出來,希望能為大家帶來一些幫助。LAS標準主要內容包括以下幾個方面:
媒體呈現描述:描述了基于流式的直播多碼率自適應標準的基本語義元素
LAS請求描述:描述了基于流式的直播多碼率自適應標準,不同場景下請求的生成方式
LAS服務描述:描述了基于流式的直播多碼率自適應標準,服務端/云端支持的處理邏輯
LAS客戶端描述:LAS客戶端的具體實現,不作為LAS標準的范疇。LAS僅給出推薦的實現架構與自適應算法策略
詳細的文檔、架構、部署方式、測試數據等,可以參考LAS的官方網站(https://las-tech.org.cn),這里不再贅述。
最后,我們還與HLS做了詳細的測試對比,包括不同的網絡環境、不同的GOP大小、不同的延遲模式等。其中,LAS不同的延時模式,通過啟播拉流時,采用相對位置拉流并設定不同的相對位置來實現。詳細的測試數據可以參考LAS的官網。
LAS基于流式架構,實現幀級傳輸,與HLS等基于分片的多碼率架構相比,能顯著降低延遲。在自適應算法上,與分片傳輸的策略相比,基于流式的傳輸邏輯會一定程度增加自適應算法的難度(例如在流式傳輸中,因為源數據實時產生,觀測到的平均帶寬值近似等于當前請求的視頻碼率,無法反應真實的帶寬),但流式架構更加靈活,并且能顯著降低分片架構中存在的傳輸ON-OFF現象,從而降低了碼率切換過于頻繁的問題。上圖展示的LAS與HLS對比各項指標的平均結果,可以看出,與HLS相比,LAS能在獲得更低的卡頓率、更高的碼率和更低的延遲,從而為用戶提供更低延遲,更流暢、更清晰的直播體驗。
LAS已經開源,涵蓋服務端、客戶端和自適應算法。目前,阿里云、騰訊云、百度云、金山云、網宿云等云廠商均支持LAS,企業可直接接入使用。此外,業內知名開源流媒體服務器SRS也已支持LAS,基于SRS 4.0及更高版本,企業客戶也可搭建自己的LAS服務端以滿足個性化的需求。在客戶端,我們已經開源了LAS Web的實現,包括協議、架構和自適應算法。
未來,LAS還將進一步優化升級,主要包括以下幾個方面:
跨平臺:未來我們希望可以實現跨平臺的支持,例如移動端的支持和開源。
多協議:在協議層面,目前開源的版本是基于HTTP-FLV的實現,未來希望可以支持更多協議,例如WebRTC、QUIC等。
全鏈路:LAS目前主要是針對拉流端的多碼率自適應方案,未來希望涵蓋推流、轉碼,打造一套全鏈路的解決方案。
自適應算法:自適應算法是LAS高效性的保障。我們有完善的測試環境,AB系統。
最后,歡迎業界同行加入LAS,共同完善LAS標準和LAS開源社區。
-
直播
+關注
關注
1文章
258瀏覽量
22122 -
網絡
+關注
關注
14文章
7815瀏覽量
90990
原文標題:快手自研直播多碼率標準對行業發布
文章出處:【微信號:livevideostack,微信公眾號:LiveVideoStack】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
生產線回溯追溯系統選型:中設智控方案如何破解行業痛點?

5G-A技術在直播行業的應用

紫光同芯安全芯片如何破解防偽溯源行業痛點
MOS管在藍牙耳機的應用技術痛點解析
智慧醫院建設的七大行業痛點
安科瑞DJSF1352-D系列一體化直流電能表!針對新能源充電樁行業痛點的解決方案

充電樁能耗準確計量!安科瑞一體化直流電能表破解充電行業三大痛點

礦山安全監測智能化升級:峟思傳感器技術如何破解行業痛點

汽車行業敏捷開發實踐:基于Atlassian工具鏈的全流程解決方案(Jira、Confluence、Jira Service Management等)

鷗柏震撼發布OLED透明屏新品:技術革新解決未來科技視界痛點

【直播預告】ADI &amp; WT·世健MCU痛點問題探索季:MCU應用難題全力擊破!

評論