内容自适应编码(CAE)产生的是动态码率(VBR)视频流,根据内容复杂性为视频分配所需的码率从而让“编码质量”与“码率/带宽/存储空间”达到最佳平衡,为用户提供最佳的体验质量。
文 / 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流相比可提供相同甚至更加出色的用户体验质量。