算法系列:视频播放器性能
您已经完成了一段相当棘手的内容的编码, 对于一些复杂的场景,这需要更多的质量控制, 你已经准备好释放它供外部消费了. 但首先你得给管理层看看, 所以你把流上传到你的预发布服务器,并把URL发给你的老板. 几分钟后,你会收到一条短信回复,问你为什么视频质量这么差.
老板说视频是什么意思 看起来很糟糕,你是如何排除问题的? 是某个特定场景的问题吗, 媒体服务器出现故障, 老板用来观看视频的移动设备上的过时播放器, 甚至是公司VPN的带宽?
欢迎来到我们称之为流媒体的错综复杂的世界.
在 算法系列的上一篇文章,我们研究了cdn背后的数学原理. 好处是cdn准确地传达了他们所给予的内容,并且通常做得很好. 但有时,收购方面(例如.g., 编码(用于点播内容)引入了一个通过CDN传递给最终用户的异常, 导致播放不合格.
在我刚刚提到的情况下, 编码算法是怎样的, 转移, 和播放在终端用户的播放器应用程序中相交? 这就是我们在这篇关于玩家表现的文章中所关注的内容.
编码与传送
“一次编码,无处不在”是我们在整个历史中听到的一句慢话 流媒体,这是我们在不同程度上成功实现的目标. 在早期, 这意味着使用合适的编解码器和播放器组合, 当编码器, 媒体服务器, 终端用户都是同一个生态系统的一部分, 例如Adobe提供的付费解决方案, 微软, 或真实.
问题是,“无处不在”只意味着那些专有解决方案之一的围墙花园. 如果一家公司使用微软,但它的客户使用Real, 内容必须为每个流媒体平台编码一次.
随着H的出现,编码方面的情况有所好转.264(又名高级视频) 编码,或AVC),通常存储在 MPEG-2或MPEG-4容器格式. 但后来, 基于http的不同风格的交付出现了,比如平滑流, Adobe HDS, 或Apple HTTP 在线直播 (HLS)——这需要, 至少, 以选定的比特率(称为自适应比特率)进行多种编码, 或ABR)或多个分段步骤,以在每个专有的HTTP段大小和清单文件中交付.
这些问题大多已得到解决, 值得庆幸的是, 一些专有格式构成了行业标准的基础 MPEG-DASH方法. 与此同时,我们 苹果的HLS转向了DASH使用的碎片化MP4 (fMP4)方法.
因此,在编码ABR内容时没有什么可担心的, 因为在任何给定的时间,它都是基于适当的带宽传输的, 正确的? 是也不是. 当将ABR内容交付给支持ABR的播放器时,需要考虑以下三件事.
有多少带宽可用?
这是影响ABR玩家表现的主要问题之一. 这不仅仅是一个特定时刻的问题, 而且是在给定时刻之前, 记住(正如大多数股票经纪人在向潜在客户推销时提到的),过去的表现并不能保证未来的结果. 这是关键的原因是,当涉及到从清单或MPD文件中请求下一个比特率合适的ABR段时,许多研究都假设了玩家的最佳决策.
PV '18, 第23届分组影像工作坊, B正确的cove的Yuriy Reznik和几位同事发表了一篇题为“ABR流编码配置文件的优化设计.虽然它描述了网络带宽的建模方法和给定ABR流被选择的概率(稍后会详细介绍), 有必要考虑两种不同的算法方法来解决调度问题.
第一部分涉及引入平滑滤波器来估计带宽,如“自适应HTTP流的调度和速率自适应算法设计,一篇文章 斯蒂芬海塞, 当他在弗劳恩霍夫/HHI工作时写的,部分由欧盟框架包7 (FP7)开放内容感知网络(OCEAN)项目资助(见 图1). Reznik和他的合著者在他们的论文中引用了它作为“ABR流媒体客户端”的实际方式的一个例子 估计可用带宽……然后决定下一步拉哪一个编码流“以尽可能多地利用可用带宽.
图1
“我们发现适合我们目的的一种众所周知的平滑滤波器是 指数移动平均滤波器黑塞写道. 使用此滤波器,对当前平滑带宽进行估计 Ck 是当前带宽测量值的加权平均值 Tk 和之前的平滑估计 Ck−1,得到以下公式:
Ck =(1−α)Tk +αCk−1
在这个公式(文中的公式3)中, α ∈ (0,1)也就是说 α 一个特定的数字是否在0和1之间,但不包括0和1. 所以它是大于0的小数.00但低于1.这就形成了黑塞所说的滤波参数或“平滑因子”."
黑塞接着指出,这个递归的展开得到以下公式:
在哪里
是有效权重吗? Wi 应用于 之前的测量 Tk-i.
这, 实际上, 允许权重分配给特定的测量, 然后绘制几个可能的参数值 α“以最可靠地估计带宽.
平滑因子的值 α 影响带宽估计对过去测量的依赖程度,”Hesse写道. "If α 接近0时,滤波器变成全通,它只是忽略所有过去的测量."
然而,如果 α 增加了,就会减少 依赖于最近的测量 更依赖于以前的测量结果. 为什么会这样呢? Hesse指出,客户端缓冲区可能能够吸收带宽中的一些间歇性,而不需要切换到不同的ABR段带宽速率.
“另一方面,他写道, “如果传输速率测量表明信道带宽发生永久性变化,我们还希望滤波器能够足够快地做出反应. 这对于允许量化单元切换速率是很重要的,比如避免buffer-underrun…的情况."
如果我们(某种程度上)忽略带宽呢?
第二种处理再缓冲的方法,也是Hesse在他的论文中提到的.在博客上是一个潜在的更好的方法, 是否使用Lyapunov优化技术通过基于缓冲区占用的算法(被称为BOLA)“最小化再缓冲并最大化视频质量”. 这种方法不测量带宽, 而是根据在任何给定点填充最终用户视频播放器缓冲区的分段百分比来推断带宽可用性.
在a中引入了BOLA 2016年的论文 作者:Kevin Spiteri(马萨诸塞大学阿姆赫斯特分校),Rahul Urgaonkar(亚马逊)和Ramesh K. Sitaraman (Akamai). 他们认为,具有ad-hoc算法的现代视频播放器很难理解,因此在决定下一个http交付段的带宽速率时,不能正确地利用它们. “我们制定了比特率适应,他们写道, 作为一个效用最大化问题,它包含了QoE的两个关键组成部分:用户体验到的视频的平均比特率和重新缓冲事件的持续时间."
相关文章
本评论将重点介绍JW Player在线视频平台,并探索其点播流媒体, 字幕, Web播放器功能, 还有其他特点. 它将引导观众使用该平台, 包括上传视频等核心功能, 进口流, 以及在媒体库中创建播放列表并配置媒体播放器, 以及更高级的功能. 本文还将讨论使用该平台进行的测试.
2024年5月17日
2022年将是UDP最终展示其流媒体勇气的一年吗? 快速UDP互联网连接(QUIC)协议可能会有所不同. 第一个, 虽然, OTT平台需要对HTTP/3做出技术决策,这可能会进一步分化市场.
8月31日
直播内容有四种主要的交付方式, 了解它们背后的数学原理可以帮助决策者确定哪种方法最适合他们的应用.
2020年11月1日
大规模交付内容需要许多精确的, 离散, 然而相互关联的步骤, 首先要对服务器负载有敏锐的认识.
1月23日2020
瓶颈带宽和往返时间(BBR)算法现在被部署到80%的CDN客户, 从而使性能提高了近19%.
12月19日2019