资讯

码率自适应是什么?网速变了,视频清晰度跟着自动调

2026-11-053 分钟阅读百科
TL;DR码率自适应(Adaptive Bitrate Streaming,ABR)是把视频预先编码成多种码率并切成小片段,播放器根据实时带宽和缓冲区状态逐段选择合适码率下载的流媒体技术,主流协议有 HLS 和 MPEG-DASH,决策算法分为基于吞吐量、基于缓冲区(如 BOLA)和混合方法,研究者还用强化学习训练码率策略(如 Pensieve)。

码率自适应(Adaptive Bitrate Streaming,ABR)是在线视频播放中广泛使用的一种技术:根据用户当前的网络状况,自动地调整视频的清晰度,网速快时播放高清画面,网速慢时切换到较低的清晰度,尽量做到既清晰又不卡顿。我们在看视频时,画面偶尔会从模糊变清晰,或者在网络变差时自动变得模糊一些,就是码率自适应在起作用。

它是怎么实现的

视频的服务器端会做两件事:第一,把同一段视频编码成多种不同的码率版本,比如 480p、720p、1080p、4K,码率越高画面越清晰,但需要传输的数据也越多;第二,把每个版本都切成很短的片段,每段通常几秒钟。同时生成一份清单文件,列出所有版本和片段的地址。播放器在播放时,每次只下载接下来的一小段,并且在下载每一段之前,根据当前的网络状况决定下载哪个码率的版本。由于每一段都可以独立地选择码率,清晰度就能够随着网络的变化而平滑地调整。这种方式基于普通的 HTTP 协议传输,可以利用现有的网页服务器和内容分发网络。主流的协议有苹果公司在 2009 年推出的 HLS,以及国际标准 MPEG-DASH。

它要权衡的目标

码率自适应需要在几个相互矛盾的目标之间取得平衡:画质,选择尽量高的码率;流畅,避免播放器缓冲区中的视频被播完而导致卡顿,卡顿是用户最难以忍受的体验;平稳,避免频繁地切换清晰度,忽高忽低的画质也会让人不舒服;以及启动快,开始播放时要尽快出画面。网络的带宽又是不断波动、难以预测的,尤其在移动网络中。

常见的决策算法

基于吞吐量的方法:根据最近几段视频的下载速度来估计当前的带宽,选择一个略低于估计带宽的码率。它反应快,但带宽估计常常不准,网速突然下降时容易卡顿。基于缓冲区的方法:根据播放器缓冲区中还剩多少秒的视频来决定码率:缓冲区很充足时,说明有余地,可以选高码率;缓冲区快要耗尽时,就选低码率,先保证不卡顿。2014 年提出的 BBA 方法和 2016 年提出的 BOLA 算法是代表,BOLA 已被集成到主流的开源播放器 dash.js 中。混合的方法:同时考虑带宽预测和缓冲区状态,比如基于模型预测控制的方法,预测未来几段的带宽,在一个短的时间窗口内规划最优的码率序列。

人工智能的应用

码率自适应是一个典型的序列决策问题:每一步的选择会影响缓冲区的状态,进而影响后续的选择和最终的用户体验。2017 年,麻省理工学院的研究者提出了 Pensieve,用强化学习训练一个神经网络来做码率决策:它在模拟器中根据大量真实的网络带宽记录反复地“试播”,以用户体验的得分作为奖励,自己学会了在各种网络条件下选择码率的策略,实验表明它比当时的人工设计算法取得了更好的用户体验。此后,用机器学习来预测带宽、优化码率决策成为一个活跃的研究方向,一些视频平台也在实际系统中采用了基于学习的方法。此外,对于直播和视频会议这样的低延迟场景,缓冲区很短,对码率决策的要求更高;结合视频内容来优化,比如对画面复杂的片段分配更多的码率,也是重要的研究方向。