关于ABR、CBR、VBR Twitch的工程师如是说
作者:Yueshi Shen
翻译:Ant
Twitch发起了一项优化码率算法的项目,LiveVideoStack对原文进行的摘译,点击【阅读原文】访问英文连接。
自适应码率(ABR)正在成为保证互联网直播、点播可靠性的重要技术之一。ABR视频流将内容切片成2-10秒的片段,每个片段都按照多个分辨率、码率进行编码(即有个视频轨)。
在客户端,播放器会监测用户当前的带宽,并选择一条最佳的视频轨进行回访,选择的策略要实现两个目标:
通过下载最高码率的视频轨,实现最佳视频回放;
保证回放的视频轨的码率低于当前的带宽,使得视频回放流畅(见图1)。
为了保证同时实现这两个目标,播放器需要知道每个视频轨片段的码率,才能决定下载哪个视频轨片段。因此,视频轨片段通常保持同样的大小(尽管HLS允许大10%),并告知播放器(播放器首先下载主manifest文件,它包含每个视频轨的码率信息)。
图1:根据用户的带宽变化,播放可以从一个视频轨转换到另一个。
固定码率(CBR)编码采用时间等长的视频轨片段,这是一种简单且流行的保持视频轨片段大小相等的方式。不过,CBR限制了编码的效率,不能输出最佳的视频。另一方面,可变码率(VBR)编码能够输出更高质量的视频,降低码率。不过,VBR模式的视频轨切片大小是随机的,这会引发播放器缓存问题——由于不能预测切片的大小,将导致播放器不知道选择哪个视频轨下载。
有上限的VBR可以实现可用码率(ABR)视频流,在这种模式下码率是可变的(VBR),不过被限制在一个最大值(高于目标码率10%),虽然视频的质量没有纯粹的VBR高,但播放器可以预测下一个片段的大小。
为了让ABR保留VBR的优势,必须运行在纯粹的VBR模式下,保证每个视频流的切片大小一致,并且与目标码率相同(见图2)。
图2:ABR-VBR是理想的模式,编码器在VBR模式下工作,并且切片大小一致。
目前在OTT行业,H.264/AVC是最流行的编码标准。大部分编码器是针对广播行业开发的,他们支持CBR或Statmux模式。虽然这些编码器也支持ABR,但OTT行业应用场景下并不能发挥VBR的优点。
Twitch团队一致致力于优化编码效率,并发起了一项公开的研究项目。任何开发者可以对码率算法进行优化,提升ABR-VBR的效率。
关于ABR、CBR、VBR Twitch的工程师如是说相关推荐
- UBR/CBR/VBR
CBR,VBR,ABR,UBR的特性区别: 未定比特速率(UBR:Unspecified Bit Rate):对传输速率没有指定,但可靠性要求很高,即所谓"尽力传输"(Best E ...
- 音视频中的CBR,VBR,ABR
视频码率CBR和VBR 固定码率(CBR)与可变码率(VBR) 一般在我们输出视频文件的时候都会碰到一个选择即CBR与VBR,CBR的英文全称是Constant Bit Rate翻译过来是固定码率 ...
- MPEG简介 + 如何计算 CBR/VBR MP3 的播放时间
[此文目的] 1. 了解 MPEG相关知识 2. 了解 MP3 的常见术语含义 3. 详解 VBR MP3的帧头格式及含义 4. 搞懂如何去计算 CBR和 VBR的 MP3文件的播放时 ...
- 视音频编解码基本术语及解释
整理了一些基本视音频术语,用于入门和查询使用. H264: H264是视频的标准,是MPEG4-10,基于内容的高效编码方式. H.264/MPEG-4第10部分,或称AVC(AdvancedVide ...
- 视音频编解码基本术语及解释MediaInfo
MEDIA INFO 下载: https://mediaarea.net/en/MediaInfo/Download/Windows 摘要: 整理了一些基本视音频术语,用于入门和查询 ...
- 让你的网站打开的更快
不知道从什么时候开始,不管是写独立博客,还是网络应用,甚至写托管博客的人都会朝着"大"网站看齐,去追求网站的响应速度,通俗点说,就是白屏时间,因为据各种报告说,网站打开速度更快一些 ...
- H264---码率控制---CBR、VBR、ABR、CVBR四种编码方式
在视频编码中,有一个模块是码率控制,即通过选择一系列编码参数,使得视频编码后的比特率满足所需要的速率限制,并且使编码失真竟可能小.该模块严格上不属于视频编码标准,属于率失真优化有两范畴.码率控制分为两 ...
- 视频编码中CBR和VBR的区别
在视频编码中,有一个模块是码率控制,即通过选择一系列编码参数,使得视频编码后的比特率满足所需要的速率限制,并且使编码失真竟可能小.该模块严格上不属于视频编码标准,属于率失真优化有两范畴.码率控制分为两 ...
- 转: X264码率控制总结1——ABR,CQP,CRF
2019独角兽企业重金招聘Python工程师标准>>> 1. X264显式支持的一趟码率控制方法有:ABR, CQP, CRF. 缺省方法是CRF.这三种方式的优先级是ABR > ...
最新文章
- 多个微服务控制台的多窗口展示
- Coursera自动驾驶课程第17讲:An Autonomous Vehicle State Estimator
- Atitit 基于dom的游戏引擎
- 聊聊为什么 IDL 只能扩展字段而非修改
- PHP编译参数 --prefix=/usr/local/php 的“深远”影响
- 我发现了 Microsoft Azure 中的两个漏洞
- 计算机开机无讯号,【图片】电脑突然开机没反应,显示器没信号!~【显卡吧】_百度贴吧...
- Java动态代理二——CGLIB动态代理应用
- 当百度与重庆相遇,李彦宏的AI越过山丘?
- 每日一题(4.27 - 5.2)
- 魅族16t无法点击计算机传输,魅族16T如何打开USB调试模式连接电脑 魅族16T一键开启游戏模式方法教程...
- 机器学习----矩估计方法
- 知道IP入侵个人的电脑
- linux文件中的换行符,Linux中的换行符
- 使用python代码举例说明离散随机变量
- 寻宝游戏 - 利用iBeacon特性设计的iOS线下寻宝游戏 - 物联网小游戏
- HTTPS_SSL加密(HTTP终)
- 3行代码,用Python制作一个整蛊朋友的病毒小程序
- c语言吴振国课后题答案,Exam10_C作业与实验10期中自测卷参考答案(最新整理)
- mu4e查看图片和html代码
热门文章
- linux vi 报错 E37: No write since last change (add to override)
- #define的用法
- 报错:Error in file.exists(pythonPath)
- E575: viminfo: Illegal starting char in line:(z)
- CMD/DOS学习笔记
- NLP中的特殊标记(Special Tokens)[PAD]、[CLS]、[SEP]、[UNK]
- 云上部署oracle rac,在青云上部署oracle rac全过程
- Linux下Socket编程之UDP原理
- Rocky Linux一个可用于生成环境的Linux
- Imagemotion for Mac(PS动画插件)