理解ABR及其工作原理

Posted LiveVideoStack_

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了理解ABR及其工作原理相关的知识,希望对你有一定的参考价值。

点击上方“LiveVideoStack”关注我们

翻译 | Alex

技术审校 | 赵军

本文来自OTTVerse,作者为Krishna Rao Vijayanagar。

ABR

Easy Tech

#007#

ABR表示Adaptive Bitrate(自适应码率),它广泛地描述了这样一个过程:视频和音频的质量和码率会根据当前网络状况的波动而发生自适应变化,以确保网络传输流畅。

ABR明显不同于CBR(Constant Bitrate)和VBR(Variable Bitrate),理解ABR将有助于我们理解视频流化中的各种概念。

  我们为什么需要ABR?

为了理解对于ABR的需求,我们先要认识到互联网上的流媒体都是“尽力而为(best-effort)”的服务。对于这些流媒体而言,无论是速度/带宽、效率,还是错误恢复能力,都无法做到绝对保证。

这与通过有线网络(传统cable网络一般被认为是可控网络)提供给机顶盒的电视不同:电视有线网络可以确保正常运行时间,并极少出现视频中断以及视频质量出现急剧变化的情况。如果你订阅了Fox的高清1080p新闻,你肯定会看到高清1080p的视频(绝对能保证)。

但是,当视频通过互联网传输时,情况就大不相同了。为什么会这样?

  带宽波动的简单解释

假设你家里的互联网带宽是10mbps。

你的电视使用一个Cat 5网线直接连接到路由器上。你有三个手机、两个平板都连接在同一网络上,你的孩子做家庭作业也要用这个网!

考虑一下所有设备都在同一时间连到同一互联网上,那它们需要消耗多少带宽?

现在,你坐下来观看自己最喜欢的节目。你的电视这时可能消耗了3mbps的带宽来播放节目。10分钟后,你的太太打开了她iPad的上的YouTube,也开始看她最喜欢的节目。

这时,电视的可用带宽突然下降(也许下降到2mbps),因为你太太也在使用同一WiFi。需要明确的是,带宽发生了突然变化(从3 mbps到2 mbps)——33%的下降!

现在最重要的问题来了——你的电视正在下载什么,以什么码率,质量呈现如何?如果你有一个单一的视频版本(Rendition, 指内容相同,但编码、分辨率、码率等不同的视频),会做什么样的选择?

让我们来反问内容提供商,为了满足不同家庭的不同带宽需求,他们应该以何种码率编码?

这基本是个不可能的任务:提供单一版本的视频或者视频编码来满足所有用户的不同带宽需求和限制。

 ABR来帮忙

根据ABR的工作原理,输入视频有多种版本(在不同码率、分辨率和帧率下),可以使用不同编解码器来满足大量带宽条件、屏幕尺寸和各种设备。

  

码率阶梯、配置文件和不同的视频版本     

                                            

拿到一个源视频,第一件事就是在不同版本或者配置文件下将其编码,从而形成码率阶梯。

比如,你可能要将视频在以下配置文件中进行编码:

1.    1080p 5.0 mbps

2.    720p 4.0 mbps

3.    640p 3.2 mbps

4.    480p 2.0 mbps

5.    270p 1 mbps

你可以选择任意你想要的编解码器、码率、分辨率、编解码器分辨率或帧率,但是做决策时需要格外谨慎。

比如,如果你向世界上某些地区提供视频服务,假设这些地区中99%的人都无法使用超过2mbps带宽的网络,那么编码码率超过2mbps就是在浪费时间、金钱和存储空间,对吧?

在这些配置文件中选择码率阶梯和编码后,你将这些视频打包,然后通过使用视频流协议(如DASH、HLS、HDS和MSS等)的清单或者播放列表将视频提供给播放器,即终端用户。

打包

视频打包是指将一个视频分割成多个小的片段(视频块),以便每个片段都能单独被交付或者传输给播放器,而不是一次下载整部电影。

播放器使用这个清单来理解视频是如何下载并呈现给用户的。

带宽自适应视频播放

假设视频按照上文中的码率阶梯编码,当播放器开始播放视频时,它感知到的可用带宽为20mbps(我们假设),这远大于最高码率5mbps。所以播放器可以安全地下载第一个最高码率为5mbps的视频片段(也许时长6秒钟)。然后播放器再次感知带宽,如果依然很高,那么它将再请求最高码率的视频片段。

如果带宽突然下降到5mbps,播放器将向服务器请求码率为4mbps的视频片段,因为请求5mbps的片段会有风险。然后播放器会接收并播放4mbps的视频片段。

这个过程会一直持续,直到将所有视频播放完。

我刚才所介绍的是一种简单的带宽估计和质量/码率切换方法。显然现在有多种复杂的算法用来控制和决定播放器的切换(BOLA就是其中一种)。

维基百科上有一张很有意思的图片,这张图描绘了带宽的变化以及播放器请求的视频片段码率是如何适应带宽变化的。

图片来源:By Daseddon –Own work, CC BY-SA 3.0

   总   结

在结束这篇ABR视频流文章之前,让我们复习下本文所学到的一些知识:

  • ABR表示Adaptive Bit Rate,即自适应码率

  • 它指的是媒体交付的自适应特性,其中播放器根据可用带宽请求不同码率的媒体

  • ABR技术的成功需要编码器、打包器、CDN和播放器的通力协作

对于本篇文章,你如果有想要补充的内容,欢迎在下方评论区评论。 


致谢

本文已获得作者Krishna Rao Vijayanagar授权翻译和发布,特此感谢。

原文链接:

https://ottverse.com/what-is-abr-video-streaming/

延伸阅读:

视频编码完全指南

Easy Tech:什么是I帧、P帧和B帧?

为什么视频压缩如此重要


讲师招募

LiveVideoStackCon 2022 音视频技术大会 上海站,正在面向社会公开招募讲师,无论你所处的公司大小,title高低,老鸟还是菜鸟,只要你的内容对技术人有帮助,其他都是次要的。欢迎通过 speaker@livevideostack.com 提交个人资料及议题描述,我们将会在24小时内给予反馈。

喜欢我们的内容就点个“在看”吧!

以上是关于理解ABR及其工作原理的主要内容,如果未能解决你的问题,请参考以下文章

GRANT命令的作用及其工作原理

8. 理解ZooKeeper的内部工作原理

比特币闪电网络(Lightning Network)及其工作原理

SSL/TLS工作原理的朴素理解和演绎

SSL/TLS工作原理的朴素理解和演绎

2018.10.7 理解Hibernate的工作原理及其中的ORM详解