一种基于HTTP视频流动态自适应码率选择方法与流程

文档序号:17586918发布日期:2019-05-03 21:24阅读:316来源:国知局
一种基于HTTP视频流动态自适应码率选择方法与流程

本发明涉及视频通信技术领域,具体涉及一种基于http视频流动态自适应码率选择方法。



背景技术:

近年来,互联网视频领域发展势头迅猛,视频内容的流量已经占超过整个互联网流量的一半。

不同于传统模式下整个视频必须要被下载完毕才能开始播放,基于http视频流技术的基本思想在于:原始视频在服务端被编码成多个码率版本,再将每个码率版本的视频切片成等长的视频片段,客户端通过http请求视频片段,使用码率自适应选择方法,以片段为单位切换码率来适应当前用户带宽状况,并且在下载过程中就能播放之前已经下载好的片段。

目前码率自适应选择算法大致分为两类,基于网络带宽的方法和基于缓存的方法。基于网络带宽的方法根据过去下载过程中的网络带宽状况预测未来的网络带宽,然后选择不超过预测网络带宽的最大码率,然而这种方法在面对波动变化的网络状况时,特别是剧烈变化的网络,容易由于缓存不足发生播放卡顿,而且码率切换频率较高。基于缓存的方法利用缓存大小体现了码率和网络带宽的关系,通过选择不同码率的视频片段,把缓存控制在一定区间内,使得视频能够连续播放,但这种方法不能迅速响应带宽变化。



技术实现要素:

本发明的目的是为了解决由于用户带宽状况是动态变化的,固定视频码率在码率远低于带宽时未能充分利用用户带宽造成视频质量不佳,在所选码率高于带宽时造成视频播放卡顿的技术问题,提供一种基于http视频流动态自适应码率选择方法,利用该方法在保证视频播放不发生卡顿的情况下,进行码率切换能够充分利用带宽资源提供高质量视频,同时兼顾码率切换平滑性,改善用户体验。

本发明的目的可以通过采取如下技术方案达到:

一种基于http视频流动态自适应码率选择方法,所述的动态自适应码率选择方法包括以下步骤:

s1、服务端将视频切片成n个片段,每个视频片段均为m秒,均具有k个不同码率等级,其中k个不同码率等级包括:{b1,b2,...,bk},b1<b2<...<bk,b1,b2,...,bk分别代表k个不同码率;

s2、客户端从第1个片段开始依次下载视频片段,计算下载过程中每一秒的网络带宽以及下载完一个视频片段后的缓存时长;

s3、一个视频片段下载完成后,根据所述的下载过程中每一秒的网络带宽预测当前缓存时长范围内的平均网络带宽;

s4、根据所述的当前缓存时长范围内的预测平均网络带宽并结合当前客户端播放缓存时长对下载下一个视频片段的码率进行选择;

s5、根据所述的下一视频片段的码率下载下一个视频片段。

进一步地,所述的客户端从第1个片段开始依次下载视频片段包括:

客户端下载第1个视频片段时,选择b1码率等级的视频片段进行下载。

进一步地,所述的下载过程中每一秒的网络带宽的计算过程为:

采用等时间间隔抽样获得下载的数据量大小,并通过以下公式求每一秒的网络带宽:

其中,di表示第i-1秒到第i秒内下载的数据量,σ表示下载时间,bwi表示第i秒的网络带宽值,非零网络带宽值为有效带宽;

在当前时刻第c秒可以获得带宽序列:

bw={bw1,bw2,...,bwi,...,bwc}。

进一步地,所述的下载完一个视频片段后的缓存时长的计算过程为:

其中,btn表示下载完第n个视频片段后的缓存时长,dtn表示下载第n个视频片段花费的时间。

进一步地,所述的步骤s3包括:

s31、分别计算当前时刻的前btn秒范围内,连续m秒有效带宽的平均值,m=1,2,...,btn,分别得到连续m秒有效带宽平均值的序列;

s32、若连续m秒有效带宽平均值序列非空,则对序列求加权平均值,得到连续m秒有效带宽加权平均值;

s33、若存在连续btn秒有效带宽加权平均值,则取之为当前缓存时长范围内的平均网络带宽预测值;若不存在连续btn秒有效带宽加权平均值,则依次查询连续btn-1,btn-2,...,1秒有效带宽加权平均值,第一个存在的值为当前缓存时长范围内的平均网络带宽预测值。

进一步地,所述的连续m秒有效带宽平均值的序列的计算公式为:

其中bwem表示当前时刻的前btn秒范围内连续m秒有效带宽平均值,bwj,bwj+1,...,bwj+m-1分别表示第j、j+1、...、j+m-1秒的网络带宽值,若在当前时刻的前btn秒范围内共有k个连续m秒有效带宽平均值,按起始时间从小到大排序得到序列分别为第1、2、…、k个连续m秒有效带宽平均值。

进一步地,所述的对序列求加权平均值,得到连续m秒有效带宽加权平均值的计算公式如下:

其中bwwem表示连续m秒有效带宽加权平均值。

进一步地,所述的步骤s4中对下载下一个视频片段的码率进行选择的规则如下:

为了减少由于码率切换带来的观看体验损失,当要提升码率时只能选择比当前码率高一个等级的码率作为下一视频片段的码率;

为了确保缓存区可以抵消由于带宽波动造成预测不准确带来的播放卡顿或者缓存时长溢出,设置最大缓存时长lmax,以及紧急缓存时长lmin,当缓存时长小于lmin时意味着缓存时长不足有可能将会出现播放卡顿;

为了保证下载完第n+1个视频片段时,缓存区时长大于lmin,则第n+1个视频片段的码率必须满足:

其中为连续btn秒有效带宽加权平均值,rn+1为第n+1个视频片段的码率。

进一步地,所述的步骤s4中对下载下一个视频片段的码率进行选择的过程如下:

判断若第n+1个视频片段选择比第n个视频片段码率高一个等级码率,满足则选择比第n个视频片段码率高一个等级码率作为第n+1个视频片段的码率,如果第n个视频片段码率已经是最高等级,则第n+1个视频片段码率与第n个视频片段码率相同,否则进行下一步判断;

判断若第n+1个视频片段选择和第n个视频片段码率同一个等级码率,满足则需要下调码率,选择小于的最大码率作为第n+1个视频片段的码率,如果不存在小于的最大码率则选择最小等级码率b1作为第n+1个视频片段的码率,如果不满足上述不等式关系则选择和第n个视频片段码率同一个等级码率作为第n+1个视频片段的码率。

进一步地,所述的步骤s4中对下载下一个视频片段的码率进行选择的过程中:

若当前客户端播放缓存时长btn大于lmax秒,则暂停下载直到缓存时长小于lmax-m秒继续下载,其中m为每个视频片段的时长。

本发明相对于现有技术具有如下的优点及效果:

本发明通过对下载过程进行等时间间隔抽样获得每秒实际网络带宽,用过去连续m秒有效带宽的加权平均值作为未来连续m秒的平均带宽预测值,优化了带宽估计方法,提高带宽估计的准确度。结合预测带宽和缓存区时长限制条件,最终确定待下载的视频片段的码率,在保证视频播放流畅性的前提下尽可能提高带宽利用率以及码率平滑性,提高视频质量,改善用户观看体验。

附图说明

图1是本发明公开的一种基于http视频流动态自适应码率选择方法流程图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例

如图1所示,本实施例公开了一种基于http视频流动态自适应码率选择方法,包括以下步骤:

s1、服务端将视频切片成n个片段,每个视频片段均为m秒,均具有k个不同码率等级,其中k个不同码率等级包括:{b1,b2,...,bk},b1<b2<...<bk,b1,b2,...,bk分别代表k个不同码率。

s2、客户端从第1个片段开始依次下载视频片段,计算下载过程中每一秒的网络带宽以及下载完一个视频片段后的缓存时长。

下载过程中每一秒的网络带宽的具体计算过程为:

采用等时间间隔抽样获得下载的数据量大小,并通过以下公式求每一秒的网络带宽:

其中,di表示第i-1秒到第i秒内下载的数据量,σ表示下载时间,bwi表示第i秒的网络带宽值,非零网络带宽值为有效带宽;

在当前时刻第c秒可以获得带宽序列:

bw={bw1,bw2,...,bwi,...,bwc}。

下载完一个视频片段后的缓存时长计算过程为:

其中,btn表示下载完第n个视频片段后的缓存时长,dtn表示下载第n个视频片段花费的时间。

s3、根据步骤s2得到的历史每秒实际网络带宽预测当前缓存时长范围内的平均网络带宽。

具体过程如下:

s31、分别计算当前时刻的前btn秒范围内,连续1,2,...,btn秒有效带宽的平均值,分别得到连续1,2,...,btn秒有效带宽平均值的序列。计算连续m秒有效带宽平均值的序列的计算公式为:

其中bwem表示当前时刻的前btn秒范围内连续m秒有效带宽平均值,bwj,bwj+1,...,bwj+m-1分别表示第j、j+1、...、j+m-1秒的网络带宽值,若在当前时刻的前btn秒范围内共有k个连续m秒有效带宽平均值,按起始时间从小到大排序得到序列分别为第1、2、…、k个连续m秒有效带宽平均值。

s32、若连续m秒有效带宽平均值序列非空,则对序列求加权平均值,得到连续m秒有效带宽加权平均值。计算连续m秒有效带宽加权平均值具体计算公式:

其中bwwem表示连续m秒有效带宽加权平均值;

s33、若存在连续btn秒有效带宽加权平均值,则取之为当前缓存时长范围内的平均网络带宽预测值;若不存在连续btn秒有效带宽加权平均值,则依次查询连续btn-1,btn-2,...,1秒有效带宽加权平均值,第一个存在的值为当前缓存时长范围内的平均网络带宽预测值。

s4、根据步骤s3得到的当前缓存时长范围内的预测平均网络带宽并结合当前客户端播放缓存时长对下载下一个视频片段的码率做出选择。

为了减少由于码率切换带来的观看体验损失,当要提升码率时只能选择比当前码率高一个等级的码率作为下一视频片段的码率。

为了确保缓存区可以抵消由于带宽波动造成预测不准确带来的播放卡顿或者缓存时长溢出,设置最大缓存时长lmax,以及紧急缓存时长lmin,当缓存时长小于lmin时意味着缓存时长不足有可能将会出现播放卡顿;

为了保证下载完第n+1个视频片段时,缓存区时长大于lmin,则第n+1个视频片段的码率必须满足:

其中为连续btn秒有效带宽加权平均值,rn+1为第n+1个视频片段的码率;

若当前客户端播放缓存时长btn大于lmax秒,则暂停下载直到缓存时长小于lmax-m秒继续下载。

判断若第n+1个视频片段选择比第n个视频片段码率高一个等级码率,满足则选择比第n个视频片段码率高一个等级码率作为第n+1个视频片段的码率,如果第n个视频片段码率已经是最高等级,则第n+1个视频片段码率与第n个视频片段码率相同,否则进行下一步判断。

判断若第n+1个视频片段选择和第n个视频片段码率同一个等级码率,满足则需要下调码率,选择小于的最大码率作为第n+1个视频片段的码率,如果不存在小于的最大码率则选择最小等级码率b1作为第n+1个视频片段的码率,如果不满足上述不等式关系则选择和第n个视频片段码率同一个等级码率作为第n+1个视频片段的码率。

s5、根据步骤s4得到的下一视频片段的码率下载下一个视频片段包括:

若当前客户端播放缓存时长btn大于lmax秒,则暂停下载直到缓存时长小于lmax-m秒继续下载,其中m为每个视频片段的时长。

上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1