作者:鄧小龍(白展)
本文為《優酷播放黑科技》系列文章第一篇《自由視角技術體驗優化實踐》,之後我們會陸續上線《基於WebRTC實現的直播"雲多視角"技術解析》《自由視角技術的全鏈路策略與落地實踐》,歡迎點選左上角【阿里巴巴移動技術】關注我們,點關注不迷路 ~
《這!就是街舞》第四季大家看了嗎?不知道有沒有小夥伴跟筆者一樣,“DNA”都要跟著舞動了起來。除了炸裂的舞臺,堪比跨次元的真實觀影體驗,讓使用者在自由視角視訊體驗效果下身臨其境。
自由視角視訊作為優酷內一種新穎的觀看模式,給使用者帶來了全新的觀影體驗,在對外的眾多合作中作為優酷的亮點內容也引起了較高的關注度。然而隨著產品聲量的不斷擴大,當前自由視角在整體的播放體驗及投放鏈路上還有很多諸如,播放不流暢、內容不清晰、裝置覆蓋較低等問題需要優化解決。
基於此,優酷技術團隊在上半年對自由視角進行了一次全面的優化升級。接下來的內容,我們將從全面優化升級的整體目標,圍繞播放體驗及使用者規模展開,詳解優酷播放器團隊的整體優化策略及方案。
自由視角是什麼
圖1
上圖1是自由視角視訊每幀畫面的樣式,以下統一叫深度圖。
自由視角原理:自由視角視訊是在原有播放鏈路的基礎上,新增自由視角演算法SDK對每幀深度圖進行處理,生成指定角度的畫面最終展示給使用者。
客戶端架構設計
這部分主要會介紹自由視角實現的核心邏輯。中間由兩個虛線框隔開的兩個模組左邊是自由視角在播放器SDK中實現的邏輯,右邊是針對自由視角播放體驗優化的策略,優化策略在後面會做詳細的介紹。
播放業務層:
- 使用者核心互動包括角度旋轉齒輪(主要生成角度資訊供算方側使用)、自由視角視訊使用者提示、轉場動畫;
- 通過開關控制做到線上功能可隨時開啟或關閉。
播放器中間層: 主要包括兩部分,一是中間層鏈路改造支援自由視角,二是下載自由視角視訊所需要的演算法檔案,下載完畢以後將檔案路徑傳給演算法層使用。
播放器核心層:處理核心與演算法層之間的資料互動,然後將演算法SDK處理好的紋理資料合成以後直接上屏展示。
下載器:負責優酷點播和直播視訊檔案的下載,不用針對自由視角做特別的改造,主要是使用到了下載器的多分片下載功能提升下載效率。
演算法: 這層主要的職責是基於演算法將深度圖重建生成指定角度的畫面。
自由視角效能優化方案
- 優化方向: 首先我們得搞清楚為什麼卡頓才能知道如何去優化。經調研,卡頓原因是由於播放器當前資料不足所導致的,播放器需要等待足夠的資料以後才能繼續播放,所以我們得出結論,提前下載資料、多通道下載、降低視訊的位元速率從這三個方面入手就可以降低卡頓率;
- 方案嘗試: 前期我們嘗試了預快取、視訊流智慧檔、核心動態Buffer、多通道下載、自由視角動態降角度、播放器雙例項切換降位元速率、連播預載入、過狂飆模式、視訊AV1編碼降位元速率共9種方案。在通過實際可行性調研後,最終確定預快取、視訊流智慧檔、核心動態Buffer、多通道下載這4種方案。
優化實踐
卡頓率優化
視訊流智慧檔
上圖是智慧效果示意圖,智慧檔是根據智慧檔演算法動態去決定下一個TS分片的位元速率,從而達到動態降低位元速率的效果。
智慧檔演算法架構圖
需要著重介紹的有這麼幾個點:
- 智慧檔控制器與資料來源及其他模組的互動和控制: 收集視訊後設資料和播放狀態資訊(比如緩衝區時長buffer)、網路資訊,分片級別的位元速率/清晰度選擇,清晰度切換控制,還有其它資料來源鏈路上的事件響應和超時控制等;
- 策略引擎框架: 支援多種策略實現執行的一個介面/環境/容器,每種演算法策略實現根據從播放器核心和網路環境資訊等輸入,給定一個清晰度選擇的輸出;
- 資料鏈路閉環: 客戶端決策資訊埋點上報,雲端資料分析處理,優化後的配置更新或模型下發。其中,策略框架及各種清晰度選擇的演算法策略實現是整個智慧檔的核心靈魂,策略框架提供了一個平臺,目前,優酷的智慧檔使用 ABTest 的方式支援了從基於各項離散規則到基於強化學習神經網路模型的多種演算法策略的實現,這些演算法可以根據配置或模型下發動態調整演算法引數,互相對比優化,互相補充。
核心動態Buffer
通過策略配置平臺統一下發指定策略動態設定核心buffer大小,以達到最大限度利用下載資源的目的。
多通道下載
如上圖所示,多通道下載技術通過將每個獨立的檔案拆分成N個小塊進行下載,每個小塊對應右圖一個下載通道,這樣就可以通過多個通道並行下載,提高下載效率以達到降低卡頓的目標。
預快取
- 實現可快取播控資訊和視訊流檔案;(如下圖2所示)
- 支援策略動態下發視訊預快取大小;(如下圖2所示)
- 自由視角能力大一統:將自由視角能力的配置統一收到播控後臺,去掉客戶端自由視角能力配置項,這樣避免以後播控後臺和客戶端配置不一致導致產生不可預測的問題。(如下圖3所示)
圖2
圖3
場景覆蓋度
由於自由視角演算法SDK支援兩種渲染模式,基於DIBR的普通模式,以及關閉DIBR的切相機降級模式。在這個條件的基礎上,對於效能不足可以良好支援DIBR的裝置,通過降級模式進入自由視角,這在技術和產品角度都是可行的。
改造前
改造後
資料對比&效果
業務&技術優化效果:
街舞4自由視角視訊(一個月)相較於去年同期街舞3點播總播放量提升近2倍。流暢度提升近70%。
場景覆蓋收益:
- 並不是所有的低端機型都可以支援自由視角的降級模式,因為場景特殊,演算法要求的視訊輸入源的清晰度需要不低於4K,因此處於【4k解碼, 支援DIBR】區間的裝置才屬於本次優化預期提升的範圍;
- 通過這次新增的降級渲染技術改造,新增覆蓋近3成低端機型,最終總覆蓋度從原來5成(僅支援中高階機型)提升至近8成;
總結
為使用者提供更優質、更豐富的觀影體驗一直是我們優酷秉持的目標,也是我們持續不斷探索和嘗試的動力。如何讓使用者感受到技術的溫度,而不是僅僅看到的是冰冷的字面和數字上的提升,讓更優質的體驗是使用者切身能感受到的,這是我們未來的努力的一個方向。同時我們也在打造直播自由視角,竭盡所能的去探索更多更新的觀影方式。
下週,我們會發布本系列《基於WebRTC實現的直播"雲多視角"技術解析》,感謝關注【阿里巴巴移動技術】,我們下篇繼續聊。
關注【阿里巴巴移動技術】官方微信公眾號,每週 3 篇移動技術實踐&乾貨給你思考!