基于HLS协议的流媒体直播系统的研究和改进

2014-12-03 01:24罗淑贞耿恒山徐祥男孙豪赛
郑州大学学报(工学版) 2014年5期
关键词:具体内容视频流序列号

罗淑贞,耿恒山,徐祥男,孙豪赛,高 艳 ,李 钦 ,谢 因

(1.河北工业大学计算机科学与软件学院,天津300401;2.天津理工大学自动化学院,天津300384;3.天津滨海新区环球网络电视有限公司,天津300202)

0 引言

HTTP Live Streaming是 Apple公司针对iphone,ipad等移动终端设备开发的一种基于HTTP的自适应流媒体协议[1],而HLS技术是将媒体源编码为不同编码速率的多个流,客户端根据网络带宽状况的变化选择不同编码速率的替换流,实现带宽波动时的流媒体自适应切换[2-4].

由于数据通过HTTP协议传输,所以完全不用考虑防火墙或者代理的问题,而且分段文件的时长很短,客户端可以很快地选择和切换码率,以适应不同带宽条件下的播放[5].当这种技术应用于电视直播时,为了满足客户端进行一定时间的时移观看功能,在服务器与客户端的交互传输过程中会存在视频流索引文件重复下载所造成的冗余问题,浪费流量和资源且影响了性能,为此笔者提出了一种方法——标志法来有效改善这种情况,并通过实验把改善前后的效果进行了对比,充分验证了这种方法的可行性.

1 HLS技术工作原理以及结构

如图1所示,HLS技术由3部分组成:服务组件、视频分布存储和客户端软件部分.首先对视频数据进行录入,编码,然后服务器软件的流分段程序将媒体视频流分解成一系列简短的.ts媒体文件,这些.ts文件被放置在web服务器上.这个流分段程序同时还创建一个索引文件,该索引文件包含元数据以及一个.m3u8媒体文件的列表,且索引文件的URL发布到web服务器上,客户端软件即可读取索引,请求媒体文件,并将其显示出来[6-8].

2 服务器与客户端之间的传输过程以及出现的问题

针对应用HLS技术的电视直播情况,下面以客户端和服务器之间的交互传输为例详细分析其过程以及出现的视频流索引文件重复下载的问题,在这里采用网络数据分析仪来实现分析和检测,且下述图例均是在网络数据分析仪上截取的.

2.1 传输过程以及视频流索引文件重复下载的问题

图2为客户端与服务器之间的传输视频流.

图2 客户端和服务器之间传输视频流Fig.2 Transm it video stream ing between server and cllients

其中一定时间内获得的.ts索引文件的个数k是由服务器上用于直播的缓存来决定的.

假设设定进行时移的时间是1 h,那么直播的缓存就要储存1 h的.ts索引文件.若分段文件的时长是2 s或是5 s,其个数 k就为1 800或720.进而再根据客户端播放器的缓存来决定间隔多长时间取.ts索引文件,如果缓存上的.ts文件数量满足客户端的需求,就暂时不用取,若不满足就要去申请,所以索引文件的个数很大,很容易产生冗余,降低传输效率.下面以设置时移时间为2 h,分段文件的时长10 s,且供选择的带宽分别是380 k、1 M、3.2 M为例来具体阐述其过程.

如图2所示,客户端首先向服务器发送一个请求频道的.m3u8索引文件,服务器立刻发出回应,如图3(a)为具体实现步骤,且回应的.m3u8文件的内容如图3(b)所示.通过内容可以明显看出,传输过来的索引文件有3个带宽,大约为380 k、1 M、3.2 M,从而系统可以根据实时网络的状况来以不同带宽传输视频流.(在这里以频道CCTV12为例).

如图2所示,频道的网络状态确定之后,就要开始传输视频流,此时客户端就会申请包含.ts视频流索引的.m3u8文件,服务器给出回应并把.m3u8索引文件发给客户端,此时若需要传输序列号为27 043的.ts视频流片段,那么客户端就会再次发送申请,服务器回应并给出其播放地址,从而可播放该序列号的视频段内容,上述过程如图4(a)所示.回应的.m3u8索引文件的具体内容如图4(b)所示.

图3 发出频道申请以及回应的具体内容Fig.3 Send channel request and respond the contents

图4 发出视频流申请以及回应的具体内容Fig.4 Send stream ing request and respond the contents

如图4(b)所示,.m3u8索引文件的具体内容是是从序列号为26 327到27 043的.ts视频流索引.

如图2所示,服务器向客户端传送序列号为27 043的视频流片段之后,客户端就会向服务器再次发出申请,申请更新后的.m3u8索引文件,从而才可以下载下一个即序列号为27 044的视频流片段,如图5(a)所示.更新后的.m3u8索引文件的具体内容如图5(b)所示.

如图5(b)所示,更新后的.m3u8文件内容是从序列号为26 328到27 044的.ts视频流索引.

由此可见,更新后的索引文件和前一个索引文件的内容是存在很大冗余的,带宽的浪费率很高,很大程度耗费流量,降低效率.

2.2 冗余问题所带来的弊端

当使用手机或者电视进行时,通常都是以高带宽进行传输,则流量的浪费率计算过程如下.

根据2.1节叙述,传输的一个.m3u8索引文件的内容大小是1 448,如图6所示.

图5 更新.m3u8文件以及具体内容Fig.5 The content of .m3u8 index files after update

图6 .m3u8索引文件的内容大小等信息Fig.6 The content length of.m3u8 index file

那么传输过来的.m3u8文件有4个,而紧接着传输过来的序列号为27 044的视频流总共有280个,且每个文件大小为1 448,如图7所示.故该序列号的视频流总大小为1 448×280,可得出

则可得出来的比率为1.4%,以此类推,在采集了多次数据,试验了多次的基础上得出带宽的浪费率大约为1.4% ~2.0%左右,对于手机电视用户来说,浪费了较大部分流量,占用空间,影响性能.

图7 .ts视频流内容的大小等信息Fig.7 The content length of.ts video stream ing

3 针对冗余问题的对策

3.1 解决冗余问题的方案

.ts视频流索引文件是重复下载的,导致带宽的浪费,传输效率的降低,所以有这样一种思路和方法,可以有效改善这种冗余状况如图8所示.

首先可以在.m3u8文件中添加一个新标签,#EXT-X-MEDIA-SEQUENCE-LAST,即客户端每次都把接收到的最后一个流片段索引文件的序号赋值给#EXT-X-MEDIA-SEQUENCELAST.

如图8所示,当服务器向客户端发送完视频流之后,客户端会发送一个.m3u8索引文件,服务器分析.m3u8索引文件的内容,其中的新标签就会显示为

图8 服务器与客户端的传输过程Fig.8 The transm it process between server and cients

#EXT-X-MEDIA-SEQUENCE-LAST=tm.那么服务器就会向客户端回应tm之后的视频流索引,这样只重复被标记过的视频流片段索引文件,这种方法大幅度减少了冗余的问题,有效充分地利用了带宽,提高了效率.由2.1节叙述为例,即改进后的.m3u8索引文件内容如图9所示.

图9 改进后的.m3u8索引文件Fig.9 The .m3u8 index files after improvement

3.2 实施对策后的效果改善

由2.1小节图4为例,服务器回应的.m3u8索引文件的具体内容是从序列号为26 327到27 043的.ts视频流索引,当服务器向客户端传送序列号为27 043的视频流片段之后,为了下载下一个序列号为27 044的视频流片段,客户端向服务器再次发出申请,申请新的.m3u8索引文件,当实施这个改进方案之后,更新后的.m3u8索引文件的具体内容如图10所示.

图10 改进前后的.m3u8索引文件内容比较Fig.10 The content of .m3u8 index files between and after

由图10(b)可知,经由改进方案后的.m3u8索引文件,其内容为序列号为27 043和序列号为27 044的索引文件.与改进前图10(a)(序列号26 328到27 044的索引文件)相比较,大大降低了冗余度,改善效果很明显.

根据公式(2)并可得出流量的浪费率

可得其流量被浪费的比率为0.37%,与改进前流量浪费率1.4%相比,有效节省了流量.

经过大量的实验,当改变时移时间或是视频流片段时间时,改进前后的带宽的浪费率如表1所示.由表中可得出,改进后的效果较为明显,冗余度大大降低,有效提高了传输的性能.改善方法是非常可行的.

表1 不同情况下带宽浪费率的比较Tab.1 The bandw idth wastage rates in different situation between and after improvement

4 结论

针对基于HLS技术的流媒体直播系统进行了深入的研究,剖析了了当中所存在的问题,并立足于现状,提出了解决方案,能够提高工作效率,提升性能,但是针对冗余问题提出的解决方案有所不足,当进行直播时,若网络状态出现极其不好的时候,可能会出现视频流段没有被完全下载的情况.但是出现这种情况的概率还是很小的,所以这个方案还是非常有可行性的,可以预见,会有很广泛的应用前景.

[1] 朱倩.新一代流媒体HLS关键技术的研究及实现[D].辽宁:大连理工大学信息学院,2011.

[2] 李云飞,谢伟凯,鲁晨平,等.面向直播 HTTP Streaming系统的HTTP缓存服务器行为优化[J].计算机工程与应用,2012,40(3):168-174.

[3] 凌艳群.基于HTTP的流媒体系统关键技术研究与实现[D].辽宁:大连理工大学信息学院,2011.

[4] 李光大.基于HTTP直播的移动流媒体系统的设计与实现[D].华中科技大学计算机学院,2011.

[5] HTTP Live streaming draft-pantos-http-live-streaming-11[EB/OL].[2013-04-16].http://tools.ietf.org/html/draft-pantos-http-live-streaming-11

[6] Apple Inc.HTTP Live Streaming Archictecture:Technical report[R],2010.

[7] Open IPTV Forum-Release 2 Specification,HTTP A-daptive Streaming[R].Draft V0.06 June 7,2010.

[8] 金达,叶庆伟,狄红卫,等.基于HLS的流媒体播放系统的设计与实现[J].信息技术,2013,29(40):103-104.

猜你喜欢
具体内容视频流序列号
边缘实时视频流分析系统配置动态调整算法研究
一种离线电子钱包交易的双向容错控制方法
基于视频流传输中的拥塞控制研究
送妈妈一沓“女王券”
Brain remembers language better if you sing it
一种控制器硬件序列号的更新方法
关于《国家税务总局 工业和信息化部关于加强车辆配置序列号管理有关事项的公告》的解读
艺术品被盗
铁路货场智能大门集装箱全景图像采集方法研究
浅谈我国经济法的调整对象的具体内容