西华师范大学电子信息工程学院 冯正勇 苏美玲
流媒体传输根据播放时间上的区别可以分为顺序式传输和实时式传输。顺序式传输是要求用户只能观看已下载完成的文件而不能提前看视频后面的内容,这种方式保证了视频的高质量;实时式传输时用户可以提前或者后退观看视频内容,但是这需要当时相匹配的带宽进行配合完成,由于对带宽有要求,而无线信道带宽的多变性,所以这种方式对视频质量不能很好的保证。
传统的流媒体推式传输协议比如RTSP(Real Time Streaming Protocol),其服务器根据客户端反馈回来的RTCP(Real time Transport Control Protocol)来判定信道状态从而决定发送适合当前信道状态的数据包。与此相反,另一种流媒体拉式机制是在传输速率满足要求的状态下,根据客户端要求内容来发送数据包,这无疑减少了流媒体传输技术中服务器的复杂程度,同时也可支持在传输过中不同的自适应算法。与传统的通用服务器传输算法机制相比,采取这种流媒体传输机制,不仅可以挺高流媒体传输服务质量,还能满足不同信道状态和不同客户端要求。在此基础上流媒体自适应传输机制,通过对同一流媒体内容进行多种传输速率的编码,再根据当前带宽由客户端选择与之相对应的传输速率片段进行传输,流媒体自适应传输的现有方法主要包括了苹果公司开发的码率自适应控制技术HLS(HTTP Live Stream ing)、微软公司开发的LSS(Live Smooth Stream ing)。最新国际标准的发展动态显示,运动图像专家组MPEG(Moving Picture Expert Group)根据不同的解决方案制订了关于动态自适应流媒体技术的标准MPEG-DASH,其提供了一个在服务器和客户端的共同规则。
流媒体高速传输技术发展过程主要经历了传统流媒体传输、流媒体循序渐进下载、自适应流媒体传输,下面总结分别在这三个阶段具有代表性的传输方案。
RTSP协议是一个极具代表性的传统流媒体传输协议,RTSP属于一种控制协议,它存在于服务器和客户端从开始连接到结束断开连接,并可以同一时间通过控制命令来控制多个流媒体的传输。RTSP使用底层传输协议TCP来建立会话。由于RTSP属于控制协议,所以数据包的传输还要依靠实时传输协议RTP和实时传输控制协议RTCP完成。由于采取了RTP协议,所以对实时流媒体传输有所延迟。RTSP的控制方式有SETUP用于会话的建立;PLAY数据传输的开始命令;PAUSE暂停数据包的传输;TEARDOWN关闭会话,释放资源。
此方式是利用在播放之前先下载一小部分存储在缓存区,然后用户在播放时后台也在不断的下载,用户在暂停或者回放时都不影响视频流的下载直至下载完成,以此保证了用户体验质量。但是如果文件下载完成用户并没有看完视频文件就会造成带宽的浪费。与RTSP相比,此方法在文件没有下载完成用户不能快进看完未下载的内容,这是他们的区别。HTTP是建立在TCP上的,在稳定的网络环境和较高吞吐量的基础上,TCP能够让传输速率达到最大,但是由于TCP传输速度不是一层不变的,是由慢到快的,在数据重传时TCP不能确保重传的数据包能够在用户播放之前到达,所以一旦出现重传数据包未能按时到达,用户的播放进度则会暂停,这会影响用户的体验质量QoE。
此方法是基于HTTP协议实现的,完善了HTTP的一些缺点,主要原理是因为流媒体文件通常比较大,所以先把流媒体文件分割成很小的一些片段segment然后再进行传输。被分割的片段根据其大小设置不同的码率,以适应不同的带宽条件,最终达到整体传输质量最优,片段的组成和切换都在客户端的后台进行因此不会影响用户的体验质量。此方式流媒体播放完就会自动删除痕迹不保存文件,所以不需要占用很多的缓存空间;码率的不同可以更好的适应带宽的变化,能够更好的保证用户的质量体验。
从以上的论述可知,HTTP自适应传输方案是三者中最能使流媒体传输质量达到最佳的一种方案,综合了其他两种方案的优点,对于他们的缺点也有所改进。
首先HTTP自适应传输相比于RTSP的差别在于:HTTP自适应传输把文件分割并生成清单文件进行传输使得传输更加理想。HTTP自适应传输只用Web服务器进行传输,而RTSP则要求必须使用专有的服务器,这样提高了建设成本。
其次HTTP自适应传输相比于渐进式下载传输的差别在于:HTTP不需要很大的文件存储空间,随着文件的传输,过早的文件会随着后面文件的到来而自动清空,而渐进式下载传输的文件下载完成后则一直存储在空间里,这样既占用了存储空间,又因文件未删除而导致不能很好的进行版权保护。HTTP自适应传输可以根据当时的带宽等传输条件切换相适应的传输速率而渐进式传输的传输速率在一开始传输的时候就是固定不变的,这样很容易造成文件的丢失与出错。HTTP自适应传输可以进行实时直播,而渐进式对于直播不能保证用户体验质量。
在此之前很多国内外的学着研究出很多关于提高服务质量的传输控制方法与算法。有从传输速率自适应出发提出的最佳文件片段分割方法;有以丢帧为手段进行传输速率的控制的方案;还有从传输角度出发提出的最优差错控制。
总之,流媒体传输的发展潜力是不可估量的,人们对流媒体播放的要求越来越高,不仅希望在视频播放时能连续平缓和高清等,而且对于流媒体传输内容的规格要求也越来越高,这意味着对于传输信道的要求也越来越高。尽管如此,当前网络传输还不能保证点到点的传输质量,无线信道的流媒体传输技术还不成熟,相比于传统的有线多媒体传输,无线信道流媒体传输面临着很多困难。流媒体传输的服务质量要求连续性和实时性都要同时具备。无线流媒体传输系统的好坏依赖于流媒体内容的控制、无线信道传输的控制、缓存状态的好坏、压缩文件在服务器和客户端的编解码方式的控制。流媒体内容的控制是对媒体文件的接收;缓存状态的好坏是因为压缩文件通常比普通文件要大,所以对缓存存储空间有要求;媒体内容的编解码直接影响了传输速率的高低;无线信道流媒体传输技术的好坏标准是传输服务体验质量QoE,而影响QoE的因素有很多,其中包括了视频分段质量,播放等待时间、传输延迟导致的播放暂停等。无线信道流媒体传输需要克服以下几方面挑战。
无线信道中带宽有限而且及其不稳定会造成流媒体传输过程中的延迟与抖动,过长的延迟或者较大的抖动会影响流媒体实时传输的连续性,从而影响体验质量。
无线信道中带宽的波动性会影响传输时间,如果带宽低于传输速率那么就会造成信道堵塞,这样可能造成严重中断,影响用户的观看体验质量;如果带宽高于传输速率过多又会造成带宽浪费。
流媒体文件不同部分重要性不同,所以无线信道中在有限带宽下要尽量满足重要流媒体文件的传输,以更好的实现连续实时的播放,保证服务质量。
与以往的流媒体传输协议相比,现有的基于HTTP的动态自适应流媒体传输协议DASH更适合当今社会的发展。首先是以往传统的流媒体传输使用的是不可靠的UDP传输协议,最新的DASH流媒体传输采用的是可靠的TCP传输协议;其次传统的传输只能是单一的固定传输速率,不管片段的大小和当前带宽状态的情况,而动态自适应流媒体传输DASH可以根据网络带宽情况由客户端选择适合当前网络的片段质量进行传输以达到接收的最佳质量,而又取得较小的延时。DASH采用的是变速率的传输,此方式适应性更强,这是二者之间的最大差别;另外传统的流媒体传输需要建设流媒体独有的服务器,但是现在的传输只需要WEB服务器就可以完成,在成本和方便性上更胜一筹。下面具体介绍两种最新的具有代表性的自适应流媒体传输技术。
数据表明,苹果公司用户在线使用其产品看视频的时间是其他用户的3倍,HLS是苹果公司为满足苹果公司用户观看实时视频所开发研究的一项动态自适应传输速率技术。HLS流媒体传输是把同一个流媒体文件编码成不同传输速率的数据流,通过当前的带宽状态客户端可以选择其中一种速率的数据流进行传输以达到传输质量最佳。其过程可分为数据流准备过程,客户端获取。HLS流程图如图1所示。
a.数据准备过程
数据准备过程包括了原始音频/视频的输入,文件压缩并编码和分割器三部,分。原始音频/视频流采集输入后,音频/视频流被压缩然后进行多种传输速率版本的编码,音频使用AAC编码格式/视频使用H.264编码格式,被编码的各个数据流再封装成MPEG-2 TS(MPEG-2 Transport Stream)格式的数据流以保证他们之间的独立解码和播放。接着TS格式数据流进入分割器,分割器把各个TS格式的数据流分割成相等大小的片段存入服务器。在这个过程中,分割器还要产生一个索引文件,此文件也存储在服务器中,其包含了每个片段的排列顺序、文件信息和传输速率信息。流媒体实时播放时索引文件是动态变化的,每个新生产的片段信息都会逐一加入文件清单中,而每个索引文件的大小是固定的,如果溢出则最早的片段信息就会被丢弃;对于视频点播,索引是固定不变的,它包含了整个视频从开始到结束的片段信息。
b.客户端获取
在流媒体传输系统中,无线网络的覆盖并不是均匀稳定的,这样就造成了带宽状态的不稳定,HLS的客户端能够根据带宽的动态变化来选择不同传输速率的相应片段进行传输下载,以达到传输的最佳质量。片段下载一段时间以后,客户端可以根据索引文件对他们进行排序组成一个连续的数据流TS,对数据流TS进行解码然后播放。客户端在准备播放时,HLS要求缓冲区必须要有1个以上的完整片段被缓存,同时要保证不同片段之间在播放时的无缝衔接在播放前缓冲区必须要有两个以上的完整片段。另外,HLS还要求在数据准备过程中要有至少一个片段准备完成客户端才能进行下载。由于以上条件这就会造成至少延迟30s的时间。
HLS方案成功实现了自适应流媒体传输,在不可靠的网络中实现了流媒体传输的可靠性。对于视频直播任务,HLS在完成数据准备分割后的分发过程可以不依靠其他额外的专有软件,一般的服务器就可以满足其分发任务的要求,这样的方式可以使用任何配置的CDN(Content Delivery Networks)服务器,而对于基于HTTP协议的缓存服务器可以利用现状的技术而言使其得到优化。这样可以有效的减少服务器的缓存压力。对于视频点播,如果视频内容需要快进或者后退,服务器只需根据时间列表找到客户端所要求的片段进行传输,这减小了服务器的复杂程度。最重要的一点是客户端可以根据当前带宽的情况和变化,选择适合当前传输速率的片段进行传输,在网络空闲时,采用高速率传输,网络繁忙时采用低速率传输,这样不仅可以保证传输的可靠性,同时也对实时播放的流畅性和完整性做出了保障。
虽然HLS能够满足最大要求的自适应传输,但是由于其还不太完善,所以有以下几个方面的不足。
HLS流媒体传输过程中是将元数据、多路流媒体文件和解码方式文件共同传输。现在的视频节目大多都能切换至不同语音、不同字幕和不同声道,这要求服务器将不同的语音、字幕和声道组合在一起,在这个组合的过程不仅要考虑到他们的组合和存储方式,还要涉及到他们各自的传输协议、传输时的速率等属性,这无疑增加了服务器的复杂程度。组合里的时间同步HLS未提出明确的方案,所以HLS的客户端在下载和解码过程中需要更多的带宽,要求其要有更强的客户端处理数据能力。
HLS为了满足更多的使用场景,通常会把同一个媒体流存储为多个版本的内容文件。但是如果客户端要求的版本流媒体文件没有达到内容分发网络CDN的缓存条件就不能直接从就近的CDN节点缓存中取得,这就会导致客户端需要用更多的资源来得到相应的流媒体文件。
HLS因为流媒体文件分割会产生很多切片文件,对于这些切片文件的存储和处理会给服务器造成很大的负担,如果流媒体文件过大,索引文件目录内容就会有很多信息,当客户端请求时因为信息过多就会影响访问速度。
HLS虽然最大程度上满足了客户端的要求,但是作为需要把自己特殊的文件进行传输的用户则很难控制和调整传输策略;HLS播放时在一个流媒体中只有一个音轨,即使可以对其进行切换音轨数量也只有2个,MPEG-DASH以及微软公司的Smooth Stream ing在这方面就没有这样的限制。HLS现阶段只适用于苹果公司所开发的产品,所以在市面上的推广程度不高。
此技术是由微软公司开发的,其主要是将已编码的媒体流文件变化为时长长度相等或者画面组长度相等的分片,分片由视频分片信息和媒体数据构成如图2所示,视频分片信息包含了该媒体分片的基本信息,其中包括了片段时长、顺序计数器和片段数量,媒体数据包括了流媒体数据。与HLS片段不同,此分片用I帧来当头帧这样有利于切换传输速率时平滑播放,而且每个分片是个完整的数据包可以进行独立的解码。然后把分片根据编码后传输速率的不同分别封装于MPEG-4 Part 14(MP4)文件中,每个MP4文件是一个连续的视频文件。MP4文件由文件类型盒(描述此文件的版本信息)、元数据盒(整体描述文件信息)、分片和随机接入数据盒(用于记录分片位置和时间顺序)。MP4文件结构如图3所示。与此同时服务器会产生一个包含了关于不同MP4文件的传输速率等信息的的清单文件,同时还会生成一个每个MP4文件中也会有关于封装在此文件中的片段信息的清单列表,其中包括时间戳等基本信息。在服务器和客户端连通时,服务器把清单文件首先传输给客户端,此文件中包含了传输速率、流媒体分辨率、编码及解码信息及其他基本信息。客户端通过HTTP的方式来向服务器请求所需分片,HTTP包含了传输速率信息和所需片段的时间戳。服务器接收到客户端的请求,通过传输速率信息先选出与其相对应的MP4文件,根据MP4文件的清单文件再选出与其时间戳要求相对应的片段。经过这两个过程后客户端就能接收到服务器所发片段,实现平滑播放。如果是视频直播,两个清单文件就会动态更新以满足客户端请求。
图2 Live Sm ooth Stream ing分片结构图
图3 MP4分片结构图
在一般情况下,此技术不常用于视频实时直播,因为会导致很大的延迟。MP4分片的组成部分里有视频分片片头文件,而头文件需要在编码完成后产生,这样就会浪费大量的时间导致延迟。此技术只能在微软独有的ISS服务器上应用,这极大限制了他的发展。
此技术是一种以考虑带宽和视频情况为主的自适应传输算法,这种方式能够极大的节省带宽。通过客户端带宽以及视频设备的好坏来决定流媒体内容的呈现好坏。具有较好带宽和好的客户端设备的用户可以观看高清流媒体视频,与之相反,一般带宽和设备的用户则观看与之相对应水平质量的视频流。它可以保证实时视频传输可以根据具体情况随时变换视频文件的播放质量。不会因为客户端的设备及带宽状态不好而断开传输,保证连续实时的视频文件。以IIS(Internet Information Services)可控制的HTTP传输文件方式的传输速率来达到节省成本和增加带宽利用率的目的。微软使用此技术提出了帧对齐的方式来进行传输速率的切换,这种方式极大的实现了精准视频帧的对齐。此技术采用MP4的文件格式进行流媒体文件的存储,此方式提供了一个简洁方便的管理方式。但是LSS仍然有些缺点。虽然微软的技术能进行平滑的实时传输及播放,但是此技术仍然没有高效的利用时变的网络带宽,尤其在无线网络的情况下,其情况会变得更糟。
苹果公司的HLS和微软公司的LSS,这两个动态自适应传输优化方案局限性和专有性太强。为了适应更多的终端设备,动态图像专家组MPEG经过几年的协商,结合了各种协议的优点,综合讨论提出了HTTP流媒体动态自适应传输方案,即MPEG-DASH框架。
其框架指出了视频流媒体内容存储在服务器上,服务器由媒体内容描述和内容片段组成,媒体内容描述文件是对片段的基本信息如整体的清单文件、片段地址和片段变量等;内容片段代表了具体流媒体内容。客户端通过HTTP协议从服务器上首先获得媒体内容描述文件。通过这个文件了解流媒体的时间戳、分辨率和编码后的不同传输速率的片段情况等。根据这个文件所提供的内容,客户端选择合适的传输速率片段进行获取,缓存。由于此协议并没有定义片段的封装和客户端选择哪一个质量片段的最优策略方式,所以给以后的研究提供了无限的可能性。本项目的研究内容就是基于MPEG-DASH框架,在客户端设计视频流传输优化算法,且特别着眼于无线网络的情况。
随着信息通信技术的不断发展,无线及有线通信网络如今已进入5G时代,其高速的传输带宽和灵活高效的网络管理能力为自适应流媒体传输技术的实现提供了无限可能,但是由于无线信道的易错性,承载网络的时变不稳定性以及现有视频文件的多样性等,流媒体传输技术还需要进行大量的研究和探索。其中包括视频编解码、传输资源调度,传输控制优化技术等一系列的技术问题。
[1]熊永华,吴敏,贾维嘉.实时流媒体传输技术研究综述[J].计算机应用研究,2009,26(10):3616-3620.
[2]李志昂.HLS流媒体服务器的设计与实现[D].北京邮电大学硕士论文,2011.
[3]李凌波.微软新一代流媒体技术研究及原型实现[D].大连理工大学硕士论文,2011.
[4]祝谷,乔宋皓.MPEG-DASH与HLS流传输技术的比较分析[J].电信科学,2015(4):29-33.
[5]K.M iller,E.Quacchio,G.Gennari and A.W o lisz,Adaptation algorithm for adaptive stream ing over HTTP,IEEE 19th International Packet Video W orkshop,2012.05:173-178.
[6]https://developer.apple.com/videos/play/wwdc2016/504/.
[7]https://docs.m icrosoft.com/en-us/w indows/uwp/audio-videocamera/adaptive-stream ing-w ith-playready.
[8]Christopher Mueller,MPEG-DASH vs.Apple HLS vs.M icrosoft Smooth Stream ing vs.Adobe HDS,2015-03-29.https://bitmovin.com/m peg-dash-vs-app le-hls-vs-m icrosoft-sm ooth-stream ing-vsadobe-hds/.