关于ABR、CBR、VBR Twitch的工程师如是说

简介: 作者:Yueshi Shen翻译:AntTwitch发起了一项优化码率算法的项目,LiveVideoStack对原文进行的摘译,点击【阅读原文】访问英文连接。

作者:Yueshi Shen

翻译:Ant


Twitch发起了一项优化码率算法的项目,LiveVideoStack对原文进行的摘译,点击【阅读原文】访问英文连接。


640?wx_fmt=png&wxfrom=5&wx_lazy=1


自适应码率(ABR)正在成为保证互联网直播、点播可靠性的重要技术之一。ABR视频流将内容切片成2-10秒的片段,每个片段都按照多个分辨率、码率进行编码(即有个视频轨)。


在客户端,播放器会监测用户当前的带宽,并选择一条最佳的视频轨进行回访,选择的策略要实现两个目标:


  • 通过下载最高码率的视频轨,实现最佳视频回放;

  • 保证回放的视频轨的码率低于当前的带宽,使得视频回放流畅(见图1)。


为了保证同时实现这两个目标,播放器需要知道每个视频轨片段的码率,才能决定下载哪个视频轨片段。因此,视频轨片段通常保持同样的大小(尽管HLS允许大10%),并告知播放器(播放器首先下载主manifest文件,它包含每个视频轨的码率信息)。


0?wx_fmt=png

图1:根据用户的带宽变化,播放可以从一个视频轨转换到另一个。


固定码率(CBR)编码采用时间等长的视频轨片段,这是一种简单且流行的保持视频轨片段大小相等的方式。不过,CBR限制了编码的效率,不能输出最佳的视频。另一方面,可变码率(VBR)编码能够输出更高质量的视频,降低码率。不过,VBR模式的视频轨切片大小是随机的,这会引发播放器缓存问题——由于不能预测切片的大小,将导致播放器不知道选择哪个视频轨下载。


有上限的VBR可以实现可用码率(ABR)视频流,在这种模式下码率是可变的(VBR),不过被限制在一个最大值(高于目标码率10%),虽然视频的质量没有纯粹的VBR高,但播放器可以预测下一个片段的大小。


为了让ABR保留VBR的优势,必须运行在纯粹的VBR模式下,保证每个视频流的切片大小一致,并且与目标码率相同(见图2)。


0?wx_fmt=png

图2:ABR-VBR是理想的模式,编码器在VBR模式下工作,并且切片大小一致。


目前在OTT行业,H.264/AVC是最流行的编码标准。大部分编码器是针对广播行业开发的,他们支持CBR或Statmux模式。虽然这些编码器也支持ABR,但OTT行业应用场景下并不能发挥VBR的优点。


Twitch团队一致致力于优化编码效率,并发起了一项公开的研究项目。任何开发者可以对码率算法进行优化,提升ABR-VBR的效率。


相关文章
|
供应链 前端开发 JavaScript
《Solidity 简易速速上手小册》第10章:区块链项目实战(2024 最新版)(上)
《Solidity 简易速速上手小册》第10章:区块链项目实战(2024 最新版)
458 0
|
6月前
|
传感器 存储 安全
RFID牧场管理应用
RFID技术在牧场管理中应用广泛,通过为每头牲畜佩戴RFID标签,实现从出生到出栏的全生命周期管理。它可自动记录牲畜的健康、饮食、繁殖等信息,优化圈舍分配,精准监测行为和生理状态,及时预警疾病风险。结合传感器与管理系统,RFID助力科学配种、免疫规划及资源调配,提升养殖效率与产品质量。同时,建立全程追溯体系,满足消费者对食品安全的需求,增强市场竞争力,推动畜牧业现代化与可持续发展。
|
6月前
|
存储 算法 安全
MD5加密
MD5(Message-Digest Algorithm 5)是一种单向加密算法,将任意长度的数据转换为128位固定长度的散列值,主要用于数据完整性校验和密码存储。其特点包括不可逆运算、高度离散性和相同输入生成一致结果。然而,MD5存在碰撞风险,直接加密密码不安全,需配合“加盐”处理增强安全性。文中提供了未加盐的MD5工具类`MD5Utils`,核心方法`msgToMD5`实现基本加密功能。尽管MD5理论上不可逆,但通过彩虹表等手段可能存在伪破解风险,建议结合多种加密算法提升安全性。
415 2
|
开发工具 git
GIT:如何合并已commit的信息并进行push操作
通过上述步骤,您可以有效地合并已提交的信息,并保持项目的提交历史整洁。记得在执行这些操作之前备份当前工作状态,以防万一。这样的做法不仅有助于项目维护,也能提升团队协作的效率。
747 5
|
9月前
|
关系型数据库 MySQL 数据库
从MySQL优化到脑力健康:技术人与效率的双重提升
聊到效率这个事,大家应该都挺有感触的吧。 不管是技术优化还是个人状态调整,怎么能更快、更省力地完成事情,都是我们每天要琢磨的事。
225 23
|
Web App开发 存储 算法
|
运维 Ubuntu 安全
在Linux中,如何配置NFS共享?
在Linux中,如何配置NFS共享?
|
编解码 网络协议 网络性能优化
RTP/RTCP 协议讲解
RTP/RTCP 协议讲解
2375 0
|
人工智能 搜索推荐 数据挖掘
人事管理软件全解析:高效团队管理的必备利器
这篇文章介绍了六款知名的人力资源管理系统:Zoho People、SAP SuccessFactors、Workday、Zenefits、BambooHR和TalentSoft。Zoho People以其全面功能和定制化能力脱颖而出,包括一站式人事流程管理、深度集成和定制工作流。SAP SuccessFactors侧重人才管理,提供学习和绩效管理解决方案,但成本较高。Workday强调一体化HR平台和数据分析,适合大型企业。Zenefits专为中小企业设计,自动化HR流程和合规提醒是其亮点。BambooHR以其用户友好界面和精细化招聘管理受到青睐。
287 0
|
JSON 前端开发 数据可视化
【前端搞地图】教你如何绘制一张填色专题地图
【前端搞地图】教你如何绘制一张填色专题地图
1972 0
【前端搞地图】教你如何绘制一张填色专题地图