基于DASH标准的视频自适应传输方案
2018-03-19戚惠丹李泽平
戚惠丹,李泽平
(贵州大学 计算机科学与技术学院,贵州 贵阳 550025)
0 引 言
DASH(dynamic adaptive streaming over HTTP)解决了传统流媒体技术的不足和现有HTTP自适应技术间的兼容性问题,并使HTTP自适应解决方案达到统一。为了提高用户观看视频的体验质量,本文提出一种基于DASH标准的视频自适应传输方案。
作为统一的国际化标准,DASH自制定以来,便引起各界研究学者的共同关注,众多的研究人员投入到DASH的研究行列中来。文献[1]提出一个无缝的高质量的HTTP自适应流算法,算法考虑了在异构无线网络中的无线网络状态和具有网络成本约束的移动设备的能源消耗。文献[2]提出一个使用机器学习技术在智能手机或平板上进行在线估计视频敏锐度的框架,该框架能够在移动设备上快速进行在线计算,从而精确的估计移动视频的体验质量。文献[3]考虑可扩展视频在无线带宽接入网络基于DASH的传输,提出3种方式来提高无线DASH用户的视频体验质量,首先设计从可伸缩视频编码层到DASH层的映射方案;然后设计一种友好的DASH调度和资源分配算法;最后提出一种基于DASH代理的视频码率算法。文献[4]提出一个固定间隔缓冲模型,每当媒体缓冲区大小在预设的间隔内时,视频码率保持不变;另外,通过一种逐步向上切换的方式以防止缓冲区溢出,并基于中间质量级别向下切换的方式来防止缓冲区下溢。
1 DASH
DASH是MPEG组织制定的一个技术标准,该标准旨在支持一个媒体流模型,该模型交付媒体内容的控制权完全在客户端,客户端使用HTTP协议从没有特定DASH功能的web服务器请求数据。DASH的基本原理:服务器端存储将原始视频资源生成同一内容、不同码率的视频分片和相应的MPD索引文件,客户端根据当前网络状况等因素向服务器请求相应码率的视频分片进行播放。图1[5]形象展示了DASH的基本原理。
图1 DASH的基本原理
当播放视频内容时,DASH客户端通过获取并解析MPD文件,向服务器请求合适码率的视频分片。通过适当的缓冲,客户端在适应了网络带宽变化后,并同时监测网络带宽的波动,根据其测量结果,继续获取后面的视频分片,以保持缓冲区有足够的缓冲内容。
MPD文件格式和视频分片Segment是DASH技术标准的重要内容,没有这两个文件,客户端和服务器端将无法交互。
2 DASH码率自适应算法
为了提高用户观看视频的体验质量,DASH码率自适应算法是DASH技术标准的一个研究热点。本节提出基于视频分片的码率自适应算法,并将其与两种典型的码率自适应算法进行验证比较。
2.1 视频分片的持续时间对QoE的影响
很多DASH码率自适应算法在估计下一个视频分片码率的过程中,只考虑缓冲区或带宽,没有考虑到视频分片。文献[6-8]经过验证,视频分片的持续时间影响用户的体验质量,现就文献[8]的验证情况进行说明。
两个不同的客户端向服务器端请求相同内容但不同时长的视频分片。经过反复实验,得到两个客户端请求的视频分片时长,见表1。
MPEG-DASH中的每个Quality Profile与特定的QoE水平相关联,换言之,较高的Quality Profile对应较高的QoE水平,因此,使用Quality Profile通过式(1)和式(2)得出用户的体验质量
表1 两个客户端获取的视频分片时长
(1)
wi=count(QP1,…QPi)/n
(2)
其中,wi为第i个QP的权值,qi为第i个Quality Profile中接收的视频分片的比率,n为QP的数量。
两个客户端的QoE的度量结果见表2。
表2 由视频分片时长得出的QoE结果
实验结果表明,视频分片的不同时长带给用户不同的体验质量,较长的视频分片持续时间带给用户较高的体验质量。鉴于此,在文献[9,10]的基础上,提出基于视频分片的码率自适应算法。
2.2 基于视频分片的码率自适应算法
本节提出的基于视频分片的码率自适应算法(rate ada-ptation algorithm based on segment,RAAS)在文献[9,10]的基础上考虑了视频分片的持续时间,因此,算法共考虑带宽、缓冲区和视频分片的持续时间3个因素。
(1)算法描述
一般情况下,将视频划分为1 s、2 s、4 s、6 s、10 s或15 s的视频分片。根据2.1节的验证结论可知,较长的视频分片时长带给用户较高的视频体验质量,所以该算法获取视频分片中取持续时间最长的视频分片。
算法的缓冲区与3个阈值有关,即I(默认为2)、Bα和Bβ,如图2所示。阈值的定义与视频分片的数量有关。
图2 算法缓冲区
当缓冲区内视频分片的数量小于I时,获取最低码率的视频分片。一旦缓冲区内视频分片的数量大于I,算法根据带宽状态开始码率自适应。当BcurrBβ时,仍然获取最高码率的视频分片,但算法会在视频分片的数量小于Bβ时才发送对下一个视频分片的请求,以避免在用户提前退出观看视频的情况下获取不必要的视频分片。
算法使用媒体分片的持续时间(media segment time,MSD)与视频分片的获取时间(sengmen fetch time,SFT)的比值μ进行带宽估计,如式(3)所示
μ=MSD/SFT
(3)
如果μ>1+ε,则提高下一个视频分片的码率,ε为提高视频码率的一个因子;如果μ<γd,则降低下一个视频分片的码率,γd为降低视频码率的阈值;如果带宽接近先前的带宽,则视频码率保持不变。
(2)算法的步骤
算法的步骤如下所示。
1)输入
Rprev:先前的视频码率
Bcurr:当前缓冲区占用量
I、Bα、Bβ:缓冲区的3个阈值
Segduration:视频分片的持续时间
ε:视频码率向上切换的因子
γd:降低视频码率的阈值
2)算法的执行过程
RAAS的执行过程如图3所示。
3)输出
Rnext:下一个视频分片的码率
图3 算法RAAS的执行过程
2.3 算法验证
码率自适应算法的好坏决定用户观看视频体验质量的好坏。在文献[9,10]的基础上,本文提出了基于视频分片的码率自适应算法,文献[9]是基于缓冲区的码率自适应算法(buffer-based algorithm,BBA),文献[10]是基于带宽的码率自适应算法(throughput-based adaptive bit-rate algorithm,TBA)。为了验证3种算法对用户观看视频的体验质量的管理能力,使用视频码率切换的次数、码率切换的极性和视频达到最高视频码率的收敛时间[11]来表示算法性能。
(1)实验环境
实验主要包括3部分:Web服务器、网络仿真和DASH客户端。DASH客户端使用开源软件AStream,AStream的源码可以从GitHub上下载[12]。DASH客户端通过从服务器上下载并解析MPD文件进行启动。为了验证算法在不同网络条件下的性能,网络仿真使用DammyNet配置服务器和客户端之间的可用带宽,从而模拟不同的网络环境。
(2)带宽状态
基于以下3种带宽[13]验证算法。
1)固定带宽(fixed bandwidth):这种情况下,在客户端和服务器之间的带宽限制为0.5 Mbps、1 Mbps、4 Mbps或6 Mbps。选择的这些带宽值可以覆盖低带宽网络环境。
2)带宽短暂中断(short interruptions):对于1)中列出的不同带宽,在网络数据传输过程中,当带宽低于0.005 Mbps 时有多个短暂中断,每个中断持续10 s。
3)带宽长时间中断(long interruptions):对于长时间中断,当带宽低于0.005 Mbps时有3个1 min的中断。
(3)验证结果
在以上所述的3种带宽状态下,算法的验证结果如下所示。
1)结果一:不同带宽情况下,码率切换事件的次数虽然DASH通过切换视频码率确保视频在播放过程中没有中断,但频繁的视频切换会降低用户的体验质量。
当最大带宽设置为4 Mbps时,在不同带宽情况下观察到的视频码率切换事件的次数如图4所示。在视频播放过程中,码率切换次数越少,用户体验质量越高。在固定带宽和短暂中断两种场景下,BBA和TBA的码率切换次数相似;在长时间中断场景下,TBA的码率切换次数变化很大,BBA变化不大。而RAAS不管在哪种场景下,码率切换次数明显少于BBA和TBA,且几乎没有变化,所以,从码率切换事件的次数来看,RAAS显然能够提高用户的体验质量。
图4 码率切换的次数
2)结果二:带宽长时间中断情况下,码率切换的极性码率切换的极性即码率向上切换或向下切换。
最大带宽设置为1 Mbps和6 Mbps,当带宽长时间中断时,码率切换的极性如图5所示。由于码率自适应算法在码率切换的过程中是逐步提高视频码率和迅速降低视频码率的,所以观察到的结果大多数是视频码率向上切换。从验证结果来看,RAAS向上切换和向下切换的次数变化不大,且少于BBA和TBA,因此RAAS带给用户较高的体验质量。
图5 码率切换的极性
3)结果三:达到最高视频质量的收敛时间
在任何网络带宽下,达到最高码率花费的时间称为收敛时间。
对于依靠缓冲区占用量来确定最合适码率的BBA来说,达到最高视频码率的收敛时间较长。在本次实验中,缓冲区的大小为240 s(文献[5]推荐),BBA直到等待到90%(216 s)的缓冲区已满才能切换到最高码率的视频。然而,对于RAAS来说,由于考虑到视频分片的持续时间,所以能够使RAAS更加精确的估计下一个视频分片的下载速率,这可以促使视频能够较快的达到最高码率。如图6所示,在3种带宽情况下,RAAS的收敛时间明显优于TBA和BBA。
图6 收敛时间
4)验证结论
从以上算法的验证结果来看,RAAS具有较低的码率切换事件、更高的视频质量和更快的收敛时间,其性能明显优于TBA和BBA。
3 DASH自适应传输方案
通过构建DASH播放器已经实现视频的自适应传输,但为了进一步提高用户观看视频的体验质量,将本文提出的基于视频分片的码率自适应算法应用到DASH播放器中。
3.1 构建DASH播放器
DASH-IF提供了开源的MPEG-DASH播放器框架dash.js,dash.js是用JavaScript编写的开源的MPEG-DASH视频播放器框架,可以在任何支持W3C媒体源扩展(MSE)的浏览器中提供MPEG-DASH播放。dash-js提供了比较全面的DASH标准支持,因此,使用dash.js在网页中构建DASH播放器,构建过程如图7所示。
图7 构建DASH播放器过程
3.2 应用基于视频分片的码率自适应算法
Dash.js主要有3个核心模块,即视频分片请求模块、基本缓冲区模块和带宽估计模块,3个模块的相互交互实现了视频码率的自适应。RAAS算法的实现类RaasAction.java需要获取这3个模块的参数,例如:视频分片的持续时间segmentDuTime、缓冲区的占用量bufferOccupancy、带宽的大小bandwidth等参数,然后将这些参数应用到预测下一个视频分片的码率的方法estimateSegment()中。
DASH功能的实现需要客户端和服务器端的交互,DASH客户端构建完成后,还需要生成服务器端DASH媒体内容和MPD文件。
3.3 DASH媒体内容和MPD文件的生成
DASH支持两种视频标准:MPEG-4和MPEG-2 TS,所以需要将原始视频进行编码,实验将原始视频编码为MP4格式,主要原因如下所示。
(1)MP4是一种轻量级容器格式,开销少;
(2)MP4更容易被解析;
(3)MP4基于广泛使用的标准,可以使第三方更直接的采用和支持;
(4)MP4的设计考虑了H.264视频编码器的支持。
视频编码完成以后,使用MP4Box的dash相关命令将MP4视频文件生成DASH视频分片和MPD文件。通过名为medical_news.mp4的视频文件为例说明最终生成的视频分片segments和MPD文件。
medical_news.mp4生成两个representation、一个MPD文件medical_news.mpd和一个视频初始化文件medical_news_init.mp4。
medical_news.mpd文件对生成的视频分片的部分描述信息如下所示。
…… media="medical_news_1_1369377/medical_news_segmemt_15.m4s"/>
……
客户端通过解析MPD文件,根据当前网络状况等因素向服务器请求相应码率的视频分片进行播放。
4 方案测试
使用测试数据big buck bunny(动画片)、Of Forest and Men(纪录片)、The Swiss Account(体育片)和Valkaama(电影)[14]验证搭建的DASH平台,测试结果表明,不管是哪种类型的数据,视频都能进行DASH播放。在DASH播放的过程中,以测试数据big buck bunny为例,来说明视频在播放的某个时间段DASH平台根据当时的带宽状态选择视频分片码率的自适应情况,如图8所示。
图8 某时间段视频码率的自适应状态
图8中共有3条线,上面波动的线为estimated bandwidth,下面波动的线为根据estimated bandwidth而选择的representation bandwidth,垂直的线表示视频的播放时间,随着视频的播放或暂停而前进或停止。在播放当前视频分片的同时,DASH客户端已经估计好了下一个视频分片所处的带宽状态和要获取的合适的视频码率。
从验证结果来看,该方案实现了视频的DASH自适应传输,由于算法RAAS考虑了视频分片的持续时间,所以该方案能够更加精确预测下一个视频分片的码率,从而进一步提高了用户观看视频的体验质量。
5 结束语
本文基于DASH标准提出了一种视频自适应传输方案。该方案中提出的基于视频分片的码率自适应算法考虑了视频分片的持续时间,从而进一步提高了用户观看视频的体验质量。经过验证,该方案不仅解决了传统流媒体技术无法根据实时变化的带宽自适应调整视频码率的问题,而且能够更加精确预测下一个视频分片的码率,具有重要的理论和应用价值。下一步的工作主要是优化服务器端的数据存储空间,实现服务器的负载均衡。
[1]Go Y,Kwon OC,Song H.An energy-efficient HTTP adaptive video streaming with networking cost constraint over hete-rogeneous wireless networks[J].IEEE Transactions on Multimedia,2015,17(9):1646-1657.
[2]Baik E,Pande A,Stover C,et al.Video acuity assessment in mobile devices[C]//IEEE Conference on Computer Communica-tions,2015:1-9.
[3]Zhao M,Gong X,Liang J,et al.QoE-driven cross-layer optimization for wireless dynamic adaptive streaming of scalable vi-deos over HTTP[J].IEEE Transactions on Circuits and Systems for Video Technology,2015,25(3):451-465.
[4]Cao Y,You X,Wang J,et al.A QoE friendly rate adaptation method for DASH[C]//IEEE International Symposium on Broadband Multimedia Systems and Broadcasting,2014:1-6.
[5]Kim S,Yun D,Chung K.Video quality adaptation scheme for improving QoE in HTTP adaptive streaming[C]//International Conference on Information Networking,2016:201-205.
[6]Villa B J,Heegaard P E.Group based traffic shaping for adaptive HTTP video streaming by segment duration control[C]//IEEE 27th International Conference on Advanced Information Networking and Applications,2013:830-837.
[7]Nguyen D M,Tran L B,Le H T,et al.An evaluation of segment duration effects in HTTP adaptive streaming over mobile networks[C]//2nd National Foundation for Science and Technology Development Conference on Information and Computer Science,2015:248-253.
[8]Sideris A,Markakis E,Zotos N,et al.MPEG-DASH users’ QoE:The segment duration effect[C]//Seventh International Workshop on Quality of Multimedia Experience,2015:1-6.
[9]Te Yuan Huang,Ramesh Johari,Nick McKeown,et al.A buffer-based approach to rate adaptation:Evidence from a large video streaming service[C]//SIGCOMM Comput Commun Rev,2014:187-198.
[10]Dongeun Suh,Insun Jang,Sangheon Pack.QoE-enhanced adaptation algorithm over DASH for multimedia streaming[C]//The International Conference on Information Networking,2014:497-501.
[11]Juluri P,Tamarapalli V,Medhi D.SARA:Segment aware rate adaptation algorithm for dynamic adaptive streaming over HTTP[C]//IEEE International Conference on Communication Workshop,2015:1765-1770.
[12]AStream:A rate adaptation model for DASH[EB/OL].[2015-05-27].http://github.com/pari685/AStream.
[13]Julur P,Tamarapalli V,Medhi D.QoE management in DASH systems using the segment aware rate adaptation algorithm[C]//IEEE/IFIP Network Operations and Management Symposium,2016:129-136.
[14]DASHDataset[EB/OL].[2014-10-16].http://www-itec.uni-klu.ac.at/dash/?page_id=6.