视频平台会侦测用户端的带宽来调整码率及分辨率,但通常只考虑到编码器的比特率率--质量关联,忽略了用户的可用带宽影响。YouTube团队通过让视频流匹配用户带宽,不仅节省了带宽,还有效提升了用户主观体验。LiveVideoStack原文进行了编译。
文 / Balu Adsumilli, Steve Benting, Chao Chen, Anil Kokaram, and Yao-Chung Lin
译 / 金歌
YouTube致力于在消耗最低带宽的前提下,提供最佳的视频体验。实现这一目标的一种做法是在优化视频时同时考虑可用带宽的约束。最近我们的确提升了视频流的传输性能——通过优化视频本身使其与可用带宽更加的匹配,从而提供了更高的视频的(观看)质量。
当您观看视频时,YouTube的播放器会在客户端测量当前的带宽,同时结合用户的终端设备、解码能力、处理能力等,动态选择最佳的视频块,从而能以足够快的速度进行下载。YouTube制作具有不同分辨率的多个视频,分辨率高的视频对应编码比特率也更高。
图1:基于HTTP的自适应视频流
针对特定的分辨率,Youtube会选择使用多少比特来进行编码呢(在编码器允许的范围内)?对于一个给定的分辨率,更高的比特率通常意味着更高的视频质量,但这种视频质量的提升有一个上限。超过这一上限后,进一步提高比特率只会使得视频块更大,并不能提升视频的视觉效果。当我们选择某一分辨率下的编码比特率时,我们会在相应的比特率--质量曲线上选择最优点(参见图2),超过这个最优点后,继续增加比特率并不能使图片视觉效果更好。
图2:在给定视频编解码器的情况下,某一视频块在不同编码分辨率下的比率--质量曲线。
我们找到了图中这些最优点,但在观察过人们观看视频的方式后,我们意识到(其实)我们可以更高效地传输视觉效果更出色的视频。
这些最优点是在假设用户的带宽不受限的前提下获得的,然而,如果我们仅仅依据这些最优点来设定编码比特率,我们会发现实际的视频质量常常受限于用户的带宽限制。相反,在给定用户带宽分布(传输带宽)的前提下,如果选择最佳的操作点(而不是曲线中的最优点),我们通常能获得更好的视频观看体验(传输视频质量)。
可以借助图3来理解这一点,我们将用户可用的带宽想象为图3中所示的管道。鉴于管道的容量适合360p的视频块而不是480p的视频块,我们可以通过估计流式传输的带宽来调整480p视频块的大小,从而使其更适应管道的容量,由此提高用户所观看到的分辨率。我们解决了由此所产生的约束优化问题,以确保视频质量没有受到明显的可感知的影响。简言之,通过分析汇总的播放统计数据并相应地调整不同分辨率下的比特率,我们实现了将更高质量的视频传输给更多的用户。(注1)
图3:高效流媒体方案对比图(使用/不使用本方法)
可以借助图4中给出的例子来理解流式传输的带宽与单个观看者带宽的区别。给定测量出的观看者可用带宽的分布情况,可以使用相邻分辨率的编码比特率之间的区域来估计实际播放分辨率的分布情况。
我们能够通过播放的统计数据对播放器在不同分辨率之间切换时的行为进行建模。这使我们能够有效预测何时比特率的提高易使得播放器切换到较低的分辨率,从而消除某一分辨率下提高比特率所带来的(负面)影响。基于这一模型,我们能够在实际系统中更好的选择视频(码率)的操作点。
图4:例如,给定分辨率720p,我们可以根据带宽的概率密度函数来估计不同分辨率下播放的分布情况。使用不同视频版本的编码比特率来划分横轴带宽,每个视频版本被观看的概率可以用带宽曲线下的对应区域来表示。
另一个容易混淆的地方是每个操作点都对应一个估计的传输质量,而这与视频编码质量是不一样的。当用户的可用带宽降低时,用户更倾向于切换到更低的视频分辨率,此时会得到一个新的操作点。这种切换对每个分辨率的编码质量不会有影响,但是却会影响视频的传输质量。
图5:编码器优化系统
在图5中,码率-质量分析模块以待编码的视频作为输出,同时为每个分辨率产生一条码率-质量曲线。性能估计模块结合码率-质量分析模块产生的码率-质量曲线,以及观看视频率和流式传输带宽的分布,估计出可能的操作点,最后通过非线性优化器选择出可能的最佳操作点。
系统的输出结果是各个分辨率下最佳操作点的集合。优化算法可以被设定为用于在视频传输质量受限的情况下,最大限度地减少平均流媒体带宽,或者用于在流式传输带宽预算受限的情况下,最大限度地提升视频的传输质量。
当我们使用此系统处理高清视频时,我们成功将YouTube播放中的流式传输带宽减少了14%。这一带宽的减少将有助于降低观众在观看YouTube视频时的数据消耗,这对于数据总量受限的用户尤为有帮助。我们还观察到高清分辨率视频的观看时间增长了6%,这是因为更多人能够在固定和移动网络上传输更高分辨率的视频。
这种方法的另一大好处是提升了观看体验。 除了对传输质量的影响极小之外,这些视频的加载速度提高了5%,卡顿的次数却减少了12%。
我们在提高视频流传输效率方面取得了进展。 但我们想做的还有更多。
目前我们的优化方法基于全球范围内观看者的带宽和播放器的分辨率的分布情况。 但有时视频的观看是有区域性的。例如,某一受欢迎的印度音乐视频可能不会在巴西流行起来,而某一西班牙体育赛事的视频也不太可能在越南多次播放。带宽与播放器分辨率的分布情况因国而异。倘若我们能够准确预测某一视频将在哪些地理区域流行起来,那么我们便可以通过整合当地的带宽统计数据,更好地处理这些视频。我们正在对这一方案进行研究,以便为您带来更好的视频观看体验!
注1:Chao Chen, Yao-Chung Lin, Anil Kokaram and Steve Benting, "Encoding Bitrate Optimization Using Playback Statistics for HTTP-based Adaptive Video Streaming," Arxiv, 2017
本文分享自 LiveVideoStack 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!