基于SVC与DASH的视频流媒体系统
2018-01-09王安红
王 宣,王安红
(太原科技大学电子信息工程学院,太原 030024)
基于SVC与DASH的视频流媒体系统
王 宣,王安红
(太原科技大学电子信息工程学院,太原 030024)
随着现代网络技术的高速发展,高清甚至超清流媒体视频业务在网络数据流量中占据越来越高的比例。为统一视频流媒体的传输格式,国际MPEG组织发起制定一种标准的动态自适应流媒体(Dynamic Adaptive Streaming over HTTP,DASH)传输框架。然而,现有DASH框架常采用固定码率的视频编码技术,如H.264,一定程度限制其码流的网络适应性。对此,该研究将可伸缩视频编码(Scalable video coding,SVC)与DASH相结合的流媒体传输方案,提出SVC码流到DASH的映射方案,并在Internet上真正实现了这种码率可伸缩的DASH传输系统,测试验证了系统的调控性能。
流媒体; 可伸缩视频编码; 动态自适应流媒体; 视频传输系统
移动视频业务发展越来越快,根据Cisco[1]的预测性统计,截止2015年底视频业务流量已经上升到74%.但是,无线通信的带宽限制,对视频业务的高速率与低延迟需求造成很大挑战。因此,国际组织MPEG发起并制定了新一代的流媒体传输协议标准,称之为MPEG-DASH或者DASH(Dynamic Adaptive Streaming over HTTP )[2],统一了微软的流媒体传输协议Microsoft Silverlight Smooth Streaming[3]、苹果的Apple HTTP Live Streaming以及Adobe的Adobe HTTP Dynamic Streaming[4]协议。
DASH提供了多种机制来保证网络中视频传输的性能。利用HTTP协议,DASH系统可轻松穿越防火墙。同时,DASH通过TCP重传机制保障传输的视频数据能被完整接收。
考虑到DASH框架本身是多码率视频传输系统,可划分为多个DASH层,因此非常适合采用分层视频编码方案,以实现无线接入网络中更加精细的动态自适应分层视频流的传输。因此,本文考虑用分层视频编码(Scalable Video Coding,SVC)[5]代替现有DASH中传统的固定码率视频编码,研究一种SVC与DASH结合的视频传输方案。首先,本文提出了一种SVC到DASH分层的映射方法。其次,搭建了HTTP服务器。最后,本文在Internet上实现了所提出的基于SVC与DASH的流媒体系统并验证了其性能。
1 相关工作
1.1 SVC简介
视频码流的可伸缩性是指一个视频码流可根据需要多次解码为不同质量的视频。因此,可伸缩视频编码的码流具有很高的网络适应性。
作为视频编码标准H.264的扩展部分,SVC在原有的视频编码基础上,编码输出一个可伸缩的视频码流,该码流在时间域、空间域和质量上都具有可伸缩性[6]。
基于以上特点, SVC可以与DASH的分层传输性能结合。文献[7]中将SVC与DASH结合并在移动终端进行了实验。文献[8]也提出了SVC与DASH结合的方案,通过带宽的估算来决定SVC视频发送的码率。然而,上述研究都仅仅局限于软件仿真的传输系统模拟,并没有搭建一个实际的传输系统。对此,本文研究并搭建了一个基于SVC与DASH相结合的流媒体传输平台,真正实现了SVC码流在无线网络的传输。
1.2 DASH技术
DASH协议是基于HTTP的动态自适应流媒体协议。图1体现了DASH的核心思想。
图1 DASH核心思想示意图
Fig.1 The main idea of DASH
在DASH流媒体传输系统中,视频内容被编码为多种码率、固定长度的视频切片,并作为DASH媒体内容的最基本单元存放于Web服务器中。Web服务器采用HTTP协议。除了DASH的最基本单元,Web服务器中还存放描述DASH媒体内容的MPD文件,描述了媒体内容存放的URL地址、码率版本的个数以及媒体切片的个数等。
客户端在播放DASH视频时,需要先向HTTP服务器发送HTTP请求下载MPD文件,也可以通过邮件或者广播等其他方式请求MPD文件,客户端的解码模块会解析下载到本地的MPD媒体描述文件,从而得知媒体内容的格式、码率以及分辨率等视频信息。然后客户端估算当前的网络状况并选择最合适的媒体切片进行下载。
1.3 HTTP协议简介
HTTP协议是一种网络传输协议,也是DASH流媒体系统网络服务器搭建所采用的传输协议。
在TCP/IP的架构体系中,HTTP协议在TCP/IP协议的顶层,属于应用层协议。浏览Web时,浏览器与Web服务器进行信息交换是通过HTTP协议进行的。MIME定义了交换的信息类型的格式。
HTTP协议具有以下特点:
(1) HTTP协议为服务器/客户端的工作状态,客户端与服务器之间通过HTTP协议进行通信。
(2) HTTP协议是无状态的,客户端与服务器之间只有需要进行通讯的时候才会建立连接,并且在通讯结束之后会自动断开连接。
(3)HTTP协议采用TCP协议来作为传输层协议,利用TCP协议的错误重传机制,可以保证数据的完整传输。
(4)HTTP协议是超文本传送协议,能够很容易绕过网络防火墙。
2 基于SVC与DASH的流媒体系统实现
提出了基于SVC与DASH相结合的流媒体系统并将其实现,图2为本文所提出的流媒体系统的系统框图。
图2 DASH系统框图
Fig.2 The system architecture of DASH
原始视频在经过SVC编码器之后得到一个可伸缩码流,然后根据SVC层到DASH层的映射规则,通过码流提取得到多个子码流。对子码流进行MP4封装以后,根据实际的需求对封装媒体内容进行切片并同时生成MPD文件,然后将编码好的DASH媒体内容及MPD文件都存放到Web服务器。客户端在需要播放视频时会向Web服务器发送HTTP请求并下载MPD文件,通过MPD文件,客户端会估算自身的信道条件并选择最接近自己带宽的码率下载视频切片并解码播放。
2.1 SVC层到DASH层的映射
设计了SVC层到DASH层的映射机制,映射的原则是SVC码流层均匀分配,也就是抽取的每个码率版本的视频包含相同数量的SVC层。图3为SVC到DASH分层示意图,其中,T0-T4表示SVC的5个时间层,Q0-Q2表示3个质量层,因此可形成15个SVC层,将SVC中所有的基本层(包括T0和Q0)都映射到第一个DASH层D0,而其余的SVC层将数量均匀地映射到了其他DASH层。以5个DASH层为例,映射结果如表1所示,这样,用户将有5个码率版本的视频可以选择。
图3 SVC分层示意图
Fig.3 Sketch map of layered SVC streaming
表1 SVC-DASH映射表
Tab.1 SVC-DASH mapping table
T0T1T2T3T4Q0D0D0D0D0D0Q1D0D1D2D3D4Q2D0D1D2D3D4
2.2 Web服务器的搭建
考虑到服务器稳定性的因素,本文不采用Windows系统,而是把Web服务器安装到Linux系统中,Linux系统采用的是Ubuntu1604,服务器选用的是比较流行的Apache HTTP服务器,搭建服务器的步骤主要有以下几步。
(1)下载Apache HTTP服务器的安装包。
(2)安装Apache 服务器。
(3)对服务器的配置文件HTTP.conf进行配置。
(4)启动HTTP服务器。
2.3 客户端播放器的选择
在DASH媒体内容以及Web服务器搭建完毕之后,接下来是DASH客户端播放器的选择,目前存在的客户端播放器主要包括:libdash提出的DASH客户端播放器、VLC客户端播放器以及GPAC公司开发的Osmo4客户端播放器,谷歌公司开发的安卓客户端播放器ExoPlayerTest.由于DASH标准还在发展之中,到目前为止,国际ISO/IEC在2014年5月发布了最新标准ISO/IEC 23009-1,本文的DASH媒体内容是根据最新的DASH标准编码生成的,考虑到播放器的兼容性,本文采用的是GPAC公司开发的Osmo4播放器。
3 系统测试
本文对搭建的基于SVC与DASH的流媒体系统性能进行测试,系统测试主要分为两个方面,一是在不限带宽和带宽受限的条件下检测客户端能否流畅的播放单码率(单码率即媒体内容仅包含视频的一个码率版本,用H.264编码产生)DASH媒体内容。二是客户端在不限带宽和带宽受限的条件下能否流畅播放多码率(多码率即媒体内容包含视频的多个码率版本,本文用SVC编码产生)DASH媒体内容。
3.1 硬件配置以及测试环境
本文所采用的服务器和客户端分别是戴尔台式机和索尼笔记本电脑。其中服务器的配置为Dell Precision T3600 Tower,CPU:Intel E5-1603@2.80 GHz,内存:4 GB.客户端配置为SONY SVE14SIS笔记本,CPU:Intel core i7-3615QM@2.3 GHz,内存:8 GB.
在网络测试中,客户端和服务器通过Internet网连接,网络所采用的是广域网。客户端通过固定的IP地址来访问服务器。
3.2 DASH内容制作
首先需要准备DASH媒体内容,本文采用的是SVC的参考模型软件JSVM9.19.7[9]来对视频内容进行编码。本文对CIF视频序列“akyio”,“Foreman”,“News”,“Hall”和720 p视频“vidyo”, “Mobcal”,“Stockholm”,“Bigbuckbunny”[10]进行编码。在配置文件中本文设置了CABAC编码方式和自适应宏块的层间预测,大部分的CIF视频和720p视频都包括了300帧试验中选取了前240帧。视频“BigbuckBunny”是一个长视频序列包括了14315帧,实验中本文选取了前2400帧。视频的帧速率设置为24帧/s,编码GOP的大小设置为16,编码基本层的QP设置为40,增强层的QP设置为28.增强层被编码为5个时间层和9个MGS层,总共包括45个MGS层。
本文采用MGS时间层的方法来抽取SVC层,实验中把45个SVC层映射到5个DASH层,也就使得用户有5个码率版本的视频可以选择,生成不同码率的视频由低到高进行排列,实验视频信息如表2和表3所示。
表2 CIF码流信息表
Tab.2 The stream information of CIF sequence
CIFPARISCITYSOCCERFOREMANDASH分层SVC分层码率kbpsSVC分层码率kbpsSVC分层码率kbpsSVC分层码率kbps10⁃8251.80⁃8191.90⁃8131.90⁃8127.529⁃17318.59⁃17239.69⁃17213.29⁃17193.9318⁃26406.118⁃26284.718⁃26327.118⁃26269.9427⁃35544.427⁃35360.327⁃35497.127⁃35377.1536⁃44753.536⁃44492.936⁃44656.836⁃44533.1
表3 720 p码流信息表
Tab.3 The stream information of 720p sequence
720pVidyoKristenAndSaraJohnnyBigbuckbunnyDASH分层SVC分层码率kbpsSVC分层码率kbpsSVC分层码率kbpsSVC分层码率kbps10⁃8586.80⁃8556.00⁃8487.30⁃8652.829⁃17702.59⁃17644.39⁃17547.29⁃17792.4318⁃26838.718⁃26756.318⁃26628.218⁃26955.2427⁃351079.127⁃35931.027⁃35769.627⁃351198.2536⁃441421.936⁃441213.336⁃441007.836⁃441568.2
3.3 播控测试
实验中我们对720 p视频Bigbuckbunny进行播控测试。测试结果图中显示了当前网络的带宽、客户端的缓存以及播放的码率版本。播放器通过输入媒体内容MPD文件的URL地址来进行访问和播放,在不限制带宽的情况下本文选择播放码率为4 000 kbps的视频,播放器可以进行流畅的播放。
在限制带宽的条件下对系统进行测试,通过带宽限制软件将带宽限制到600 kbps来进行了测试,此时由于带宽较窄,无法流畅的播放码率大于600 kbps的视频,会频繁的卡顿。
对SVC多码率视频进行播控测试,视频码率包括了SVC编码的5个码率版本,可参见表2、3所示。第一种情况不限制带宽,测试效果图如图4,表明了在变化的无线网络场景中,本文的系统可以流畅的播放视频。
图4 BIGBUCK序列(多码率,带宽不受限)
Fig.4 BIGBUCK sequence
(multi bitrate, unlimited bandwidth)
分别将带宽限制到1 500 kbps和800 kbps,测试效果如图5,表明我们的DASH系统由于采用可伸缩的SVC编码,在带宽受限的条件下,仍然可以流畅地播放视频,不需要重新编码视频,体现了较好的网络适应性。
图5 BIGBUCK序列(多码率,带宽限制为1 500 kbps)
Fig.5 BIGBUCK sequence
(multi bitrate, bandwidth 1 500 kbps)
4 结束语
本文研究并实现了一种SVC与DASH相结合的流媒体传输系统。受益于SVC码流的“一次编码多次解码”优势,在客户带宽受限的情况下,本文的系统可使客户端能根据自身的网络状况自由切换码率。与传统的流媒体相比较,本文搭建的流媒体系统不需要手动切换高清视频或者标清视频,而是由客户端自动地选择切换,更好地实现了DASH的流媒体系统的网络自适应优势。实验表明,本文提出的流媒体系统在变化的网络中不会出现卡顿的情况,进一步体现了新一代的DASH流媒体系统的优势,具有较好的应用。
[1] CISCO. Global mobile data traffic forecast[EB/OL]. http://bit.1y/bwGY7L, 2015-09-13.
[2] ISO/IEC JTC I/SC 29/WG 11 (MPEG). Dynamic Adaptive Streaming Over HTTP.,w11578,CD 23001-6[C]//Guangzhou,China,Oct,2010.
[3] MICROSOFT. Smooth Streaming Protocol[EB/OL]. http://go.microsoft.com/linkid=9682896, 2009-07-16.
[4] ADOBE. HTTP Dynamic Streaming[EB/OL].http://www.adobe.com/products/hds-dynamic-streaming.html, 2010-08-16.
[5] SCHWARZ H, MARPE D, WIEGAND T. Overview of the scalable video coding extension of the H.264/AVC standard[J]. IEEE Transactions on Circuits and systems for Video Technology,2007,17(9):1103-1120.
[6] 阎金.视频通信与可伸缩视频编码技术的研究[D]. 北京:北京邮电大学,2007.
[7] MULLER C, RENZI D, LEDERER S, et al. Using scalable video video coding for dynamic adaptice streaming over HTTP in mobile environment[C]// Proc. IEEE European Signal Processing Conference(EUSIPCO),Bucharest,Romania,RO,2012:2208-2212.
[8] YANG J, ZHENG Q, XI H, et al. Receiver-Driven Adaptive Enhancement Layer Switching Algorithm for Scalable Video Transmission Over Link-adaptive Networks[J]. IEEE Signal Processing Letters,2013,20(1):47-50.
[9] REICHEL J, SCHWARZ H, WIEN M. Joint scalable video model 11(JSVM 11)[S]. Joint Video Team,Doc.JVT-X202,2007:13-37.
[10] ITEC. YUV video sequence(CIF)[DB/OL]. http://nsl.cs.sfu.ca/video/library/YUV, 2008-07-12.
VideoStreamingMediaSystemBasedonSVCandDASH
WANG Xuan, WANG An-hong
Institute of Electronic Information Engineering, Taiyuan University of Science and Technology, Taiyuan 030024, China)
With the rapid development of modern network technology, the HD and even the ultra HD media video business increasingly occupy a high proportion in the network data flow. In order to unify the transmission format of video streaming, the international MPEG organization initiates and develops a standard video transmission framework,named as Dynamic Adaptive Streaming over HTTP (DASH). However, the existing DASH usually uses the fixed-rate video coding technology, such as H.264, which limits the network adaptability of bitstream at a certain extent. Therefore, this paper addresses the combination of a scalable video coding (SVC) with DASH, whereby a projection of SVC to DASH is proposed so that the video with scalable multiple rates can be fluently transmitted over Internet.
streaming media, scalable video coding, dynamic adaptive streaming, video transmission system
1673-2057(2018)01-0001-05
2016-10-25
国家自然基金(61272262,61672373), 山西省留学基金(2014-056),山西省科技公关项目 (2015031003-2),山西省青年科学基金(2014021021-2)
王宣(1990-)男,硕士研究生,主要研究方向是视频编码与网络传输。
TN914
A
10.3969/j.issn.1673-2057.2018.01.001