文 / Pratima Ashok Dhuldhule & Darshan Datt K. S.
翻譯 / john
審校 / 蔣默邱澤
原文
https://www.ittiam.com/blog-vbr-cae-high-qoe/ 你是否擔心與CBR(恒定碼率)視訊流相比,CAE(内容自适應編碼)處理的視訊所産生的VBR(動态碼率)視訊流可能會對使用者觀看視訊的主觀體驗品質産生負面影響?實際上這種擔心是多餘的。通過使用恰當的表現形式或清單檔案可以基于内容自适應編碼為使用者提供最佳的體驗品質進而使得觀衆不斷的擷取更多内容。1. ABR, CAE和VBR
自适應編碼(ABR)流已經在流媒體行業中無處不在,這與ABR技術所具備的低緩沖、靈活快速啟動以及低延遲的網際網路連接配接優質QoE服務體驗密不可分。
盡管ABR技術着實為行業帶來了一些挑戰,但使用者和開發人員可以借助内容自适應編碼(CAE)技術的力量克服這些挑戰。内容自适應編碼的原理是根據内容複雜性為視訊配置設定所需的碼率進而讓“編碼品質”與“碼率/帶寬/存儲空間”達到最佳平衡。
與生成恒定碼率(CBR)視訊流的傳統DVB相容廣播編碼器不同,内容自适應編碼解決方案産生的是動态碼率(VBR)視訊流。目前,我們所面對的關鍵問題之一是動态碼率(VBR)視訊流與恒定碼率(CBR)視訊流在對使用者體驗品質(QoE)的影響上存在哪些異同?
2. 視訊播放的使用者體驗品質之辯
ABR 播放時若想實作出色的使用者體驗品質不僅取決于最佳編碼品質,還取決于播放期間ABR流之間的切換次數較少。
業界有一種觀點認為:CAE産生的VBR流造成的視訊碼率變化,會導緻使用者更多重新開關加載内容,視訊播放QOE品質會是以而顯著降低使用者耐心。
借這篇文章,我們将向您展示VBR流是如何借助恰當的表現形式或對比清單,實作與傳統CBR流相似甚至更好的呈現平滑切換,進而打消您在這方面的顧慮。
3. Ittiam針對主流播放器的實驗
我們通過比較主流播放器(例如VideoJS和DashJS)播放流時所做的呈現切換的數量來比較以下設計選擇:
- VBR編碼 對比 CBR編碼
- 參考目标碼率的VBR流 對比 參照峰值波動碼率的VBR流
3.1常見設定細節
- 塊長度:10秒。
- ABR示例:如表1所示。

表1:用于驗證的ABR 碼率示例
- 用于碼率限制的工具:Chrome的“inspect element”或Safari的Charles Debugging Proxy
- 用于編碼視訊流的編碼器:x264
- 編碼模式:CBR和VBR(除編碼器外還有,THINKode - Ittiam基于ML的用于生成VBR流的CAE解決方案)
- 封裝格式:HLS和DASH
圖1表示精确到分片級别的CBR和VBR流碼率變化情況。
圖1:VBR和CBR流的碼率
3.2 實驗過程
實驗1:基于峰值碼率的VBR流
情形一:
DashJS播放器的測試結果
注意: DashJS播放器的ABR政策被設定為預設動态政策。(為了利用Bola與吞吐量政策的優勢,預設動态政策會在兩者之間進行切換,關于這些政策的更多資訊請通路:
https://github.com/Dash-Industry-Forum/dash.js/wiki/ABR-Logic。)
- 針對VBR流觀察到的呈現切換次數:1
- CBR流的呈現切換次數:1
圖2表示DashJS播放器的實際呈現。
圖2:DashJS Player上的VBR與CBR流
DashJS使用1000kbps作為初始帶寬,同時下載下傳ABR4作為VBR和CBR流的第一個切片。在整個播放期間,兩個流的切換次數保持不變。
情形二:
VideoJS播放器的測試結果
- VBR的呈現切換數量:2
- CBR的呈現切換數量:2
圖3表示VideoJS播放器的實際呈現。
圖3:對比VideoJS Player上的VBR與CBR流。
向VideoJS播放器指定的第一個碼率與分辨率始終與假定的初始4Mbps帶寬相關。是以,播放器以ABR2開始并在VBR和CBR流中切換到ABR4。雖然顯現(representation)切換的次數依舊,但你要注意的是在CBR的情況下,播放器卻在ABR3設定完畢之前繼續播放ABR4流并持續了更長的時間。
但在VBR的情況下,播放器很快就切換到了ABR3。
情形三:
使用Safari浏覽器進行測試
- VBR的測試呈現切換數量:0
- CBR的測試呈現切換數量:1
圖4:Safari播放器上的VBR與CBR流
Safari播放器始終會從清單檔案中的ABR清單裡選擇第一個呈現流進行初始段下載下傳。我們将ABR2流保留為HLS清單檔案中的第一呈現流播放。
當兩個流都以ABR2開始播放時,對于CBR流播放器初會快速切換到ABR3,因為播放器發現這是基于可用帶寬和緩沖水準下隻能穩妥丢棄顯示;對于VBR流,播放器則會繼續使用ABR2,因為前幾個段的比特率較低導緻最佳緩沖級——這正是播放器為緩解嚴重的緩沖而不斷重試下載下傳切片塊。
實驗2:參照峰值碼率的VBR流與參照平均碼率的VBR流
- 基于峰值碼率的VBR流的呈現切換次數:1
- 基于平均碼率的VBR流的呈現切換次數:1
圖5表示DashJS播放器的實際流呈現。
圖5:使用DashJS時Manifest中的峰值碼率與平均碼率
DashJS播放器考慮根據吞吐量和緩沖級别來選擇合适碼率顯示。
若以上兩種情況下的平滑呈現切換次數保持不變。播放器如果選擇現成的碼率表現VBR流的平均碼率自然選擇更高品質的顯示流。
使用VideoJS播放器進行測試
- 基于峰值碼率的呈現切換次數:2
- 基于平均碼率的呈現切換次數:2
圖6表示VideoJS播放器的實際呈現。
圖6:使用VideoJS時Manifest中的峰值碼率與平均比特率
對于使用平均碼率呈現的流,存在更頻繁切換。
對于使用峰值碼率呈現的視訊流,視訊分片的碼率永遠不會超過峰值碼率。是以,播放器可以使用較少的平滑切換順暢地播放ABR視訊流。
使用Safari播放器進行測試
- 基于峰值碼率的呈現切換次數:0
- 基于平均碼率的呈現切換次數:4
圖7表示Safari播放器的實際呈現。
圖7:使用Safari時Manifest中的峰值碼率與平均比特率
Safari播放器的行為類似于VideoJS播放器。對于使用平均碼率呈現的流,其平滑切換數量(次數)遠高于使用峰值比特率呈現的流。
如前面所述,對于使用峰值比特率呈現的流,視訊分片的碼率永遠不會超過峰值比特率。是以,播放器可以使用較少的平滑切換順暢地播放ABR視訊流。
4. 結論
我們的實驗清楚地表明,對于目前流行的ABR播放器,使用峰值碼率的VBR流與傳統CBR流相比可提供相同甚至更加出色的使用者體驗品質。
————————————————
版權聲明:本文為CSDN部落客「LiveVideoStack_」的原創文章,遵循CC 4.0 BY-SA版權協定,轉載請附上原文出處連結及本聲明。
原文連結:
https://blog.csdn.net/vn9PLgZvnPs1522s82g/article/details/88968490「視訊雲技術」你最值得關注的音視訊技術公衆号,每周推送來自阿裡雲一線的實踐技術文章,在這裡與音視訊領域一流工程師交流切磋。