为了避免出现视频卡顿或者重新缓冲的现象,目前有以下四种解决方案:
1、使用播放缓冲区。此方法可以克服短期的网络吞吐量变化。
2、编码变换。比如改变视频分辨率、压缩比或帧速率,但此方法计算量巨大,需要复杂的硬件支持。
3、可扩展编码。此方法需要专门的服务器。
4、流交换。此方法容易实现,且不需要专门的服务器。
综合各方面考虑,业界已经开始使用播放缓冲区和流交换。
DASH视频客户端可以主动请求不同的视频比特率,以便于当前网络相匹配。视频流行业现在已经将DASH作为通过因特网进行视频传输的主要方式。其与早期多媒体流协议的主要区别在于:
1、DASH建立在TCP之上
2、客户端根据其ABR的网络条件请求不同的视频比特率,从而调节服务器的传输速率。
3、DASH以视频块的形式请求和接收视频数据。
在DASH系统中,视频被不同的比特率编码成多个版本,然后将每个视频编码分为许多含有几秒钟视频的小视频段或块。随后将来自不同比特率的视频块在时间线上对其,以便客户端切换比特率。
DASH并不直接控制视频传输速率,而是依赖于底层的TCP算法。当流会话启动时,客户端先请求MPD文件,再请求视频块,以尽可能快的速度用视频块填充满播放缓冲区。一旦缓冲区被填满,就会进入一个稳定的状态。
稳定状态下,播放器在下载新块时处于打开状态,反之则是关闭状态。两个开状态之间的时间称为周期时间。如下图所示为其状态变换图。
视频播放器利用每个块的反馈信号来选择下一个要下载的块合适的视频速率。如果吞吐量高,ABR会选择更高的视频速率,为用户提供更好的体验质量;如果吞吐量较低,ABR会动态切换到较低的视频速率,以避免播放缓冲区不足。
DASH客户端不能完全匹配网络吞吐量,它只能达到MPD文件所描述的速率。当网络带宽超过最大视频比特率时,将视频比特率限制为最大视频比特率。因此,在一些ABR方法中,服务器通过在MPD中加入特定的速率信息,来人为地限制视频比特率,进而保护网络。
在客户端启动期间会快速增加视频比特率的请求,用来预先填充满播放缓冲区。当客户端检测到带宽容量减少时,它会请求更低的视频比特率。当网络恢复后便会恢复视频质量。因此,客户端可以无缝地传输视频,而无需过度配置网络或保留超大的播放缓冲区。
DASH也可以应用于互联网上的实时媒体流。但是,在DASH架构中,视频内容的检索是由客户机驱动的。服务器端响应客户机发出的请求会增加额外的延迟。
DASH使用HTTP协议的好处:
1、提供更普遍的访问范围
2、DASH服务器就是常规的WEB服务器,这降低了操作成本,并允许部署缓存来提高性能和减少网络负载
3、服务器不需要追踪会话状态
这些优势使服务提供商能够利用现有且便宜的HTTP基础架构。
研究发现由于具有视频功能的设备的多样性,以及它们连接到网络的方式多样性,想要实现高QoE是一个重大挑战。视频的帧速率降低被认为比分辨率的降低更令用户感到糟糕,且重新缓冲对用户的体验质量影响最大,特别是在实时播放的内容中。
DASH使用ABR算法在网络条件变化时动态的选择合适的视频比特率,这涉及两个控制循环。1、内部TCP拥塞控制循环对网络拥塞做出响应,并尝试将发送速率与网络可承受的速率相匹配。2、外部ABR选择循环对TCP指定的速率做出反应,并尝试将视频比特率与观察到的平均的TCP速率/吞吐量匹配
ABR算法的基本目标是:
1、避免因缓冲区不足而导致播放中断。
2、最大限度的提高视频质量,并与目标1进行权衡。
3、尽量减少视频质量的变化,以改善用户体验,并与目标2进行权衡。
4、将用户请求新视频到该视频实际开始播放之间的间隔最小化。
ABR设计的核心挑战是平衡这些目标,并最终为用户提供高的QoE。
基于反馈信号的客户端ABR算法可以大致分为三类:基于吞吐量的、基于缓冲区的和基于混合/控制理论的。
在基于吞吐量中,由于将比特率自适应算法叠加在网络堆栈的几个逻辑层之上,播放器会出现不公平、低效和不稳定的情况。因此,用户从网络接收的反馈信号不是网络状态的真实反映。在高层次上,三个步骤分别是:计划何时下载下一个块、选择合适的块比特率、并估计网络带宽。
我们放弃了基于改变表示编码的服务器端优化,将工作重点放在服务器端应用层和传输层的优化上。
CFA预测由三个阶段组成:关键特征学习(每十分钟一次)并输出一个关键特征函数键值表; 基于所学习到的关键特征函数键值进行质量估计(每十秒一次)并输出质量函数键值表; 通过查找预先计算的值函数,在每个客户端到达时(在毫秒时间内)进行实时查询和响应。
为解决HOL问题和TCP流媒体的不灵活性以及减少网络延迟,谷歌开发了SPDY,HTTP/2和QUIC。
Mueller等人通过实验表明,HTTP/1.1和SPDY在所有的RTTs上变现一致。同时,SPDY暗中解决了HoL问题,并在禁用SSL时获得不错的结果。但是,SPDY要求加密,会在服务器和客户机上引入额外的计算开销。
BBR是一种新兴的基于拥塞的传输协议,旨在通过按顺序探测带宽和RTT,以最小的队列使网络吞吐量最大化。迄今为止,还没有关于BBR对自适应视频流影响的测试结果。
Huang等人测试了Hulu、Netflix、Vudu客户端是如何选择视频比特率的,其结果显示不准确的带宽估计(尤其是批量下载文件时)可能引发反馈循环,进而导致低质量视频,这便是“螺旋式下降”效应,其根本原因是TCP和HTTP之间缺乏信息交换。其解决方案是完全消除吞吐量估计的使用,利用TCP来控制速率,并使用缓冲区占用率来驱动视频比特率的选择,从而产生基于缓冲区的速率自适应算法。
由于DASH的可扩展性和可行性,其已经成为互联网上按需和实时多媒体流的一个标准。DASH的核心是ABR算法,它可以选择合适的视频比特率来适应动态变化的网络条件。
在本文中,我们了解到基于吞吐量的算法是利用过去的块下载速率预测未来的网络状况。基于纯缓冲区的算法是利用过去和现在的缓冲区占用率来确定网络状态,并选择与其匹配的视频比特率。基于控制理论的算法将选择比特率和各种QoE指标表示为一个随机优化问题。大多数实现的算法都是混合的,将吞吐量和缓冲区结合起来作为反馈信号,以获得更准确的预估效果。同时,随着SDN和AQMs的快速发展,未来会出现网络级的解决方案。
将吞吐量和缓冲区的信号结合起来,并将其应用于控制理论的框架,这是最全面的算法,能够消除基于吞吐量预测时的误差,且最大限度地提高了QoE。但是基于控制理论的ABR的一个缺点时计算量过大。同时表明服务器和网络级的解决方案过于复杂,且不太可能立即部署。
目前仍存在以下几个有待解决的问题:
1、各种ABR算法与不同底层TCP算法之间的交互。例如,谷歌QUIC或BBR等替代传输协议对基于dash的内容交付的影响。
2、在客户端耦合应用层和传输层,以便DASH客户端使用传输层的RTT估计底层路径的延迟。
3、设计客户端ABR算法,与现代AQMs的进行最佳交互。
4、CDN服务器和代理的战略布局。
5、通过服务器端带宽管理、资源分配和调度TCP数据包进而消除流量突发性。
6、当多个客户端共享出现瓶颈时,DASH流和其他流如何公平的共享资源。