一种基于客户端缓存的自适应流化方法

文档序号:9508826阅读:332来源:国知局
一种基于客户端缓存的自适应流化方法
【技术领域】
[0001]本发明涉及网络传输领域,特别涉及一种基于客户端缓存的自适应流化方法。
【背景技术】
[0002]随着互联网的快速发展,以及人们对于视频需求量的增长,基于视频应用产生的网络流量已经占到互联网总流量的60%以上。传统的视频流化技术已经不能满足人们的需求。自2009年3GP首次提出了其自适应流化标准DASH以来,自适应流化技术一直在飞速的发展。自适应流化技术的最终目的是给用户带来更好的视频观看体验(QoE),提高用户QoE,可以从以下几点出发:1)尽可能的避免播放停滞,即客户端缓存下溢;2)启动时间尽可能小;3)视频的平均质量尽可能高,尽可能最大化的利用有效带宽;4)出现网络拥塞的情况下,不要频繁的进行码率切换,一段质量较差但稳定的视频比一段码率频繁切换的视频带来更好的用户体验。其中,第一点优先级最高,第二点其次,第三和第四点可根据具体要求进行考虑。
[0003]传统方法一般根据带宽预测来进行自适应码率的调整,如专利申请号为201110288958.1,名称为“基于超文本阐述协议流化的多码率媒体流自适应控制方法”的参考文献1中,主要提出了一种基于带宽预测的自适应流化方法,该方法通过统计每个分片文件的接收时间预测当前的可用带宽,比较预测带宽与上一分片文件码率的大小关系,决定下一分片文件的码率。但随着互联网应用的日益丰富,多个应用共享带宽的情况越来越多,这就导致了网络的波动也随之增大。网络波动较大时,带宽的变化是随机且不可预测的,基于带宽预测的自适应流化方法的准确性也有待商榷。
[0004]对观看视频的用户而言,在观看视频过程中,用户关心的是缓冲区内是否有足够视频分片文件,而不是缓冲区内的视频分片文件的码率与当前带宽是否匹配,所以以缓冲区为研究模型更加直接有效。目前国外也有以缓冲区为参考模型的学术论文,如名称为:“An adaptive video streaming control system:Modeling, validat1n, andperformance evaluat1n”的参考文献2。在该论文中,通过设置缓冲区可播放时长的参考值,在每次请求分片文件之前估计当前带宽,计算下一分片文件码率,使得缓冲区可播放时长逼近于上述参考值。但以上算法对网络带宽过于敏感,在网络带宽波动较大的情况下,视频的码率抖动也很大。

【发明内容】

[0005]本发明的目的在于克服现有技术中的自适应流化方法实用性不强、准确性不高的缺陷,从而提出一种从用户的QoE出发,以客户端缓冲区为研究对象,即使在带宽预测不准确时也能给用户带来相对较好的体验的自适应流化方法。
[0006]为了实现上述目的,本发明提供了一种基于客户端缓存的自适应流化方法,包括:
[0007]为客户端的缓冲区定义两种状态:缓冲区快速填充状态、自适应码率调整状态;
[0008]客户端周期性地请求媒体分片文件并播放;其中,为当前请求的媒体分片文件根据缓冲区的当前状态设定码率并以所设定的码率播放,包括:当缓冲区处于缓冲区快速填充状态时,当前请求的媒体分片文件的码率为所能提供的最低码率,当缓冲区处于自适应码率调整状态时,当前请求的媒体分片文件的码率根据包括缓冲区当前的可播放时长、当前可用带宽、媒体分片文件的固定播放时长在内的信息计算得到。
[0009]上述技术方案中,该方法进一步包括以下步骤:
[0010]步骤S1、客户端启动;
[0011]步骤S2、客户端初始化;所述初始化包括:确定所请求的第一个媒体分片文件的序列号,确认所请求媒体分片文件的播放时长M,媒体分片文件的可选码率,客户端将缓冲区状态设置为缓冲区快速填充状态,客户端设置缓冲区的第一阈值Q_和第二阈值Q_ ;
[0012]步骤S3、判断播放过程是否结束,如果结束,转步骤S13,否则,转步骤S4 ;
[0013]步骤S4、统计当前缓冲区内可播放时长的大小;
[0014]步骤S5、根据Qi的值,更新缓冲区状态;
[0015]步骤S6、判断当前缓冲区状态,若为缓冲区快速填充状态,则转步骤S7,若为自适应码率调整状态,则转步骤S8 ;
[0016]步骤S7、将所请求的媒体分片文件的码率设为媒体分片文件可选码率中的最低码率,然后转步骤S9 ;
[0017]步骤S8、以自适应的方式计算所请求的媒体分片文件的码率;
[0018]步骤S9、客户端根据步骤S8所获取的媒体分片文件的码率获取具有相应码率的下一个媒体分片文件的路径信息,根据这一路径信息生成点播请求并向服务端发送;
[0019]步骤S10、客户端开始接收服务端所发送的媒体分片文件;
[0020]步骤S11、客户端接收完媒体分片文件后,统计媒体分片文件的大小Si和接收时间T1;
[0021]步骤S12、客户端根据?\计算下一请求开始的时间Λ',等待Λ 时间后转步骤S3 ;其中,Λ 计算方法包括:
[0022]若缓冲区可播放时长小于Q_,则Δ Tx设为0 ;
[0023]若缓冲区可播放时长大于Q_,且?\ > M,则Λ ?\为0 ;
[0024]若缓冲区可播放时长大于Q_,且?\彡M,则Λ 为Μ-' !;
[0025]步骤S13、播放结束。
[0026]上述技术方案中,在步骤S2中,客户端向服务端请求播放列表,所述播放列表分为两级,第一级播放列表中描述了媒体文件、媒体文件的Ν种可选码率、媒体文件在一种可选码率下所对应的第二级播放列表的路径;第二级播放列表中描述了对应于一种码率的媒体文件所包含的多个媒体分片文件的序列号、播放时长、路径。
[0027]上述技术方案中,在步骤S4中,统计当前缓冲区内可播放时长的大小Qi包括:当客户端正在播放时,缓冲区可播放时长每秒减少一秒;当客户端收到一个完整的媒体分片文件时,缓冲区可播放时长增加M。
[0028]上述技术方案中,所述步骤S5进一步包括:
[0029]步骤S501、开始更新缓冲区状态;
[0030]步骤S502、判断当前缓冲区状态,若为缓冲区快速填充状态,则转步骤S503,若为自适应码率调整状态,则转步骤S504 ;
[0031]步骤S503、判断当前缓冲区可播放时长Qi是否大于Q_,若是,转步骤S506,否则转步骤S505 ;
[0032]步骤S504,判断当前缓冲区可播放时长%是否小于媒体分片文件的固定播放时长M,若是,转步骤S507,否则转步骤S505 ;
[0033]步骤S505、保持当前缓冲区状态不变,然后转步骤S508 ;
[0034]步骤S506、将当前缓冲区状态切换为自适应码率调整状态,然后转步骤S508 ;
[0035]步骤S507、将当前缓冲区状态切换为缓冲区快速填充状态,然后转步骤S508 ;
[0036]步骤S508,缓冲区状态更新结束。
[0037]上述技术方案中,所述步骤S8进一步包括:
[0038]步骤S801、开始计算下一分片码率;
[0039]步骤S802、统计当前缓冲区的可播放时长Qi,估计当前可用带宽民;
[0040]步骤S803、判断当前缓冲区可播放时长与第一阈值Q_、第二阈值Q_的关系,若大于第一阈值Q_,转步骤S804,若小于第二阈值Q_,转步骤S805,若在第一阈值Q_和第二阈值Q_之间,转步骤S806 ;
[0041]步骤S804、根据公式& = RjCM+Q1-QmJ/M计算码率,从媒体分片文件的可选码率中选择与最接近的码率进行请求,然后转步骤S810 ;
[0042]步骤S805、根据公式=民* (M+Q-Q^J /Μ计算码率,从媒体分片文件的可选码率中选择与最接近的码率进行请求,然后转步骤S810 ;
[0043]步骤S806,判断缓冲区当前可播放时长与上次统计的可播放时长的关系,若大于,转步骤S807,若小于,转步骤S809,若等于,转步骤S808 ;
[0044]步骤S807、码率增加一级,然后转步骤S810 ;
[0045]步骤S808、码率维持不变,然后转步骤S810 ;
[0046]步骤S809、码率降低一级,然后转步骤S810 ;
[0047]步骤S810、码率计算结束。
[0048]本发明的优点在于:
[0049]1、本发明的方法在启动播放时,通过降低Q_时间段内的视频码率,将客户端视频播放的启动时间从Qmin减少至Μ秒,减少了等待时间;
[0050]2、本发明的方法通过设置可播放时长的窗口 [Q_,Q_]消除了对带宽预测准确性的依赖,降低了码率切换的频
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1