APP下载

一种基于HTTP长连接的自适应流媒体传输系统

2012-06-25锐,刘

电视技术 2012年7期
关键词:码率级别切片

林 锐,刘 峰

(南京邮电大学图像处理与图像通信江苏省重点实验室,南京 210003)

视频业务的快速发展占用了互联网中大量带宽,如何在有限的带宽下提供更高质量的服务成为研究的热点。一方面,新的视频压缩技术快速发展,相同质量的视频所需要的码率越来越小;另一方面,许多专家提出并改善众多自适应的流媒体传输方案,在自适应流媒体系统中,系统可以根据带宽和客户端的设备条件提供不同质量级别的视频,充分利用带宽。

早期,人们认为TCP协议作为一个面向连接的协议,其重传机制和拥塞控制机制都不适用于实时多媒体传输的。因此,早期大量的视频流传输都是基于UDP(或者RTP over UDP)协议的[1]。然而,近年的研究表明,当该系统能够自适应于网络变化时[1],TCP的拥塞控制和可靠性传输并不会影响流媒体系统的表现。因此,不再使用传统的流媒体协议,如RTP/RTCP,而使用基于HTTP的方式进行内容分发是目前流媒体发展的趋势。基于HTTP方式的下载在服务器的构架上比专门的流媒体服务器下载更便宜;HTTP服务常用的80端口所有防火墙和路由器都放行,而传统的流媒体协议通常对防火墙和路由器有特别的要求,UDP包传送的时候会要求特别的网络端口;在HTTP服务器上,媒体文件和其他的别的文件一样直接缓冲在服务器上,不要求特别的代理和缓冲。

本文首先介绍了基于HTTP的流媒体系统的现况,然后介绍了本文的基于HTTP长连接[2]的自适应流媒体传输系统的总体设计,各功能模块及其之间相互关系和该系统所采用的自适应控制策略,接着给出实验结果,最后给出总结。

1 基于HTTP的流媒体系统

渐进式下载是一种基于HTTP的流媒体系统的分发方式,它是一种简单的从HTTP WEB服务器进行文件下载的普通方式。该种方式将播放内容直接放在浏览器的缓存里,客户端在下载的同时播放媒体内容,不用等到整个文件下载完成;然而HTTP WEB服务器会在媒体文件下载完成之前一直传送数据流,造成客户端数据的大量累积,浪费不必要的网络资源。现在流行的视频网站,比如说Youtube、优酷网、土豆网,几乎都是在使用渐进式下载技术。

近年来出现了基于HTTP的自适应流媒体传输系统,常见的有:Apple公司的HTTP Live Streaming(HLS),微软的 SilverLight Smooth Streaming[3],以及 Adobe 的 HTTP Dynamic Streaming。这些系统都将视频源切割成一个个数秒大小的视频端(切片),并把每一段视频转码成不同的质量级别;客户端首先向服务器请求一个播放列表,播放列表中包含切片的基本信息(如切片持续时间,开始时间戳,以及先后顺序),然后再按播放列表根据网络状况和缓存情况适时的向服务器请求相应质量级别的切片,这样使用户得到在不同带宽条件下的较佳体验[4]。可以发现,这些系统客户端每下载一个切片,客户端就需要和服务器重新建立一次连接;并且客户端需要随时更新播放列表才能从服务器获得正确的切片。此外,由于系统的自适应功能是由客户端驱动的,用户均需要下载特定的播放器,如微软的要安装Silverlight插件,HLS只适用于Apple的一些系统中[3]。

为此,本文提出一种基于HTTP长连接的自适应流媒体传输系统,在该系统中,用户向服务器发出请求后,服务器和客户端就会建立一个HTTP长连接,然后服务器根据网络状况和发送情况适时的向客户端发送相应质量和时间段的切片。该系统不仅利用了HTTP长连接技术,有效的减少频繁建立连接带来的网络资源开销;同时采取了服务器端驱动的自适应控制策略,对客户端的要求较低,具有很强的通用性。

2 系统设计

基于HTTP的自适应流媒体传输系统主要利用HTTP长连接和服务器端驱动的自适应控制策略。传统的基于HTTP的流媒体系统通常采用HTTP短连接,即客户端每接收一个切片,都需要像服务器发出请求,然后建立连接,发送数据,而切片通常很短,因而客户端和服务器之间就在频繁的建立和断开连接,对网络资源造成浪费。为此本文采取HTTP长连接,即客户端与服务器端先建立连接,连接建立后就不再断开,然后再进行报文发送和接收,这种方式下由于通信连接的一直存在,就避免了客户端向服务器请求切片时频繁的建立和断开连接[2]。服务器端驱动的自适应控制算法指的是服务器端监测客户端的播放状况和当前的网络环境,并根据其监测结果发送相应的数据给客户端。

2.1 总体设计

该系统中包括源端、服务器和客户端3个部分组成,其中服务器为主要部分,它包括:源多码率模块、子流切片模块、切片管理模块、客户端缓存区控制模块、带宽监测模块、自适应控制模块和网络发送模块。如图1所示。源端将节目源发送至服务器,服务器对节目源进行相应处理等待并响应客户端的请求,客户端接收切片并播放,整个系统中服务器为主要部分。

图1 系统设计总体框图

服务器的源多码率模块将节目源下采样成多种码率级别,然后子流切片模块将其得到的各个码率级别的子流进行切片,将得到的切片送到切片管理模块中,等待客户端的请求,当客户端向服务器发送请求时,两者之间就建立起一个长连接,客户端缓存区控制模块监测客户端播放状况以及缓存区状况,带宽监测模块监测当前的网络状况,自适应控制模块根据客户端缓存区控制模块和带宽监测模块的结果控制网络发送模块向客户端适时发送相应数据。

源多码率模块是指将高码率高分辨率的节目源通过下采样的方法转化为多种码率级别的节目子流,这里的多种码率级别指的是相同分辨率下的不同码率级别。

子流切片模块是指将每个子流切割成一个个4~6 s的切片,每一个切片由若干个GoP(视频图像组)组成,对于不同码率的同一段切片,要保证开始和结束的时间戳一致。该模块产生的切片由切片管理模块统一管理和调配,方便客户端的请求及服务器的选择。

客户端的缓存区应保持在一个安全的范围,如果发送的太快,缓存区产生上溢,虽不影响用户的体验,却会造成网络资源不必要的浪费;如果发送的太慢,缓存区产生下溢,则会让客户端播放产生停顿,影响用户的观看。因此客户端缓存区控制模块监测客户端的缓存区状况,并将获得的信息提供给自适应控制模块。

自适应控制模块根据客户端缓存区控制模块和带宽监测模块的结果选择相应的发送时间和码率,具体方法见2.2 节。

带宽监测模块对网络状况进行监测,该模块根据2.2节中介绍的带宽预测方法进行带宽预测。而网络发送模块通过HTTP协议向客户端发送相应的切片。

2.2 系统采用的码率自适应控制策略

进行自适应码率控制一方面要考虑所发送视频的码率级别是否与当前的网络状况相符;另一方面还要考虑客户端缓存区的数据量,如果客户端缓存区的数据量太小,而发送的码率级别比较大,则很有可能造成客户端缓存区的下溢,影响客户体验[5-7]。本文的自适应码率控制方法就是从这两方面入手。

TCP的瞬时传播速率是时刻变化的,所以用它来衡量网络的传送能力是不可行的。为此,本文利用相对较长一段时间的平均带宽来衡量当前的网络状况,具体方法如下

假设当前带宽为Bi,则可以根据之前发送每片时的平均带宽进行预测,预测值为,预测值由之前发送的5片的平均带宽 Bi-1,Bi-2,Bi-3,Bi-4,Bi-5得到。首先找到5 个带宽中最小的2个Bk1,Bk2(Bk1<Bk2);再通过二者的加权和得到预测值。λ1,λ2为加权因子,计算公式如下

式中:发送第i-k个切片时的平均带宽为

式中:MSSi-k为第 i- k个切片的大小;Tsi-k为发送第 ik个切片所用时间。

如果当前的带宽与发送切片的码率相符,则说明当前切片的码率级别的选择符合当前的网络状况;如果当前的带宽小于发送切片的码率,则说明选择的码率过大,需要切换到较低的码率;如果当前的带宽大于发送切片的码率,则说明选择的码率过小,需要切换到较低的码率。因此,可以根据当前平均带宽的变化来控制即将发送切片的码率。

设R1节目源经过源多码率模块处理后产生N种码率级别的子流,它们的码率分别是R1,R2,…,RN。而客户端缓存区中媒体流可以播放的时间用tm来表示,设客户端缓存区中允许的最小的媒体流的播放时间为tmin。

自适应控制流程如图2所示。本文首先要保证客户端的缓冲区数据在安全范围内,防止缓冲区下溢,如果一旦发现缓冲区下溢,则立即将码率下调至最低级别,并立刻发送切片;其次根据相应的原则对要发送切片的码率进行调整。

图2 自适应控制算法流程图

式中μup和μdown为码率切换的判断系数。

当系统满足上调码率级别的条件时,则将发送的下一切片的码率级别比上一切片高一个级别;当系统要下调码率级别时,则将发送的下一切片的码率级别Rnext调整至满足如下条件

在进行自适应控制时,要保证客户端的缓冲区在一个安全范围内,不能产生上溢,更不可发生下溢,为此,设定发送两片的时间间隔为ts,

3 实验结果

本文将源端、服务器和客户端放在一个局域网中,在客户端通过Netlimiter软件控制服务器与客户端之间的网络带宽。本文的切片采用3种质量级别550 kbit/s,950 kbit/s和1800 kbit/s,每个切片长约4~6 s;而客户端缓存区中媒体流允许的最小播放的时间为tmin=4000 ms。系统启动后,运行稳定,对发送的1500片进行分析。

如图3和图4所示,本文系统在网络环境发生变化时,能及时做出响应,将要发送的切片的质量级别切换至相应的级别。可以看出当网络状况稳定在很好的状况时,系统稳定的发送最高质量级别的切片,当网络状况稳定在较差的状况时,系统发送的切片的质量级别会出现波动,但从图5和表1中可以发现,此种状况下,系统发送的大部分切片的质量级别是与带宽值相符的,而出现波动的原因有二:一方面,发送切片的质量级别是一个平均值,每一个切片的平均码率是变化的,而当设定的带宽值与切片质量级别相近时,会出现切片的平均码率大于平均带宽的状况;另一方面,网络的平均带宽只是评价网络状况的一个指标,网络环境是时刻变化的,有可能出现拥塞等其他影响数据传输的状况出现。

图3 网络环境变化下的切片质量级别分布—1

图6展示的是客户端缓存区中所剩数据可以播放的时间,从图中可以看到,该时间绝大部分情况下大于tmin,并始终在0以上,说明没有出现下溢的情况;同时,该时间在10 s附近上下浮动,亦没有出现显著的上溢,说明本文系统让客户端缓存区保持在一个安全范围内,在保证客户流畅观看的条件下,节省了带宽资源。

表1 不同带宽稳定状况下切片质量级别分布表

图6 客户端缓存区数据量的变化

4 结论

本文的基于HTTP长连接的自适应传输系统中客户端无需安装特殊的插件,具有很强的适应性和通用性;同时,由于采用了HTTP长连接,避免了客户端向服务器请求切片时频繁的建立和断开连接,节省了网络资源。

本文系统所采用的自适应控制策略能够很好的适应网络环境,当网络带宽发生变化时,系统对推送的切片的质量级别及时做出调整,同时在网络状况稳定时,切片的质量级别亦能基本符合带宽状况。本文系统实现了客户端缓存区的数据量在一定范围波动,没有发生下溢确保了客户端的播放流畅,亦未发生上溢,防止了过度的数据累积。

[1]AKHSHABI S,BEGEN A C,DOVROLIS C.An experimental evaluation of rate-adaptation algorithms in adaptive streaming over HTTP[EB/OL].[2011-07-15].http://www.cc.gatech.edu/~ dovrolis/Papers/final-saamer-mmsys11.pdf.

[2]FIELDING R,GETTY J,MOGUL J,et al.Hypertext transfer protocol--HTTP/1.1[S].1999.

[3]MA K J,MAN L,HUANGA,et al.Video rate adaptation in mobile devices via HTTP progressive download of stitched media files[J].IEEE Trans.Multimedia,2011,15(3):320-322.

[4]JARNIKOV D,OÖZÇELEBI T.Client intelligence for adaptive streaming solutions[C]//IEEE International Conference on Multimedia and Expo(ICME).[S.l.]:IEEE Press,2010:1499-1504.

[5]LIU Chenghao,BOUAZIZI I,GABBOUJ M.Rate adaptation for adaptive HTTP streaming[C]//Proc.MMSys'11 Proceedings of the second annual ACM conference on Multimedia systems.San Jose:ACM Press,2011:169-174.

[6]李争明,张佐,叶德键.自适应流媒体传输方案研究及其应用[J].计算机工程,2006,32(12):226-228.

[7]祝睿杰,别红霞.影响流媒体系统视频质量的关键参数仿真测试研究[J].电视技术,2009,33(S2):228-231.

猜你喜欢

码率级别切片
痘痘分级别,轻重不一样
一种基于HEVC 和AVC 改进的码率控制算法
基于FPGA的多码率卷积编码器设计与实现
基于状态机的视频码率自适应算法
迈向UHD HDR的“水晶” 十万元级别的SIM2 CRYSTAL4 UHD
新年导购手册之两万元以下级别好物推荐
你是什么级别的
基于SDN与NFV的网络切片架构
肾穿刺组织冷冻切片技术的改进方法
基于镜像对称参考切片的多扫描链测试数据压缩方法