一种基于HTTP/2的HAS视频切片推送方法与流程

文档序号:18298578发布日期:2019-07-31 09:45阅读:352来源:国知局
一种基于HTTP/2的HAS视频切片推送方法与流程

本发明属于多媒体点播技术领域,涉及到视频点播、视频服务提供商、视频切片推送数、视频切片请求码率,特别涉及一种基于http/2的has(httpadaptivestreaming,http自适应流媒体)视频切片推送方法。



背景技术:

随着互联网以及各种移动智能终端的迅猛发展,用户可以在各种设备上随时随地访问多媒体视频资源,为了应对异构终端,http自适应流媒体技术应运而生。http自适应流媒体技术(has,httpadaptivestreaming)已成为当前主流的流媒体技术,受到越来越多的关注。has技术将视频分成多个切片,并在服务端存储多个不同码率的版本,然后客户端随着网络的变化由码率自适应算法动态地请求合适的码率视频,使用户获得好的用户体验(qoe,qualityofexperience)。与此同时,http/2协议出现,它允许服务器主动向客户端推送数据并缓存在客户端,减少网络时延的影响。

申请人经过查新,检索到以下几篇与本发明专利相关且属于多媒体点播技术领域的专利,它们分别是:

1.中国专利201210148751.9,一种基于缓存下溢概率估计的自适应码流切换方法及系统;

2.中国专利201510170586.0,改善公平性的平滑码率自适应方法及装置;

3.中国专利201610846542.x,一种qoe驱动的多频道has码率自适应调度方法;

在上述专利1中,发明人提供了一种基于缓存下溢概率估计的自适应码流切换方法及系统,用于不同码率版本的视频进行自适切换,该方法包括:估计在当前网络状况下各码流的视频分片下载时间的均值和方差;将用户端缓存内的视频数据的到达和离开建模成ek/d/1/n排队模型,根据所述均值和方差设置排队模型的参数,而后针对各码流分别利用确定参数的排队模型计算缓存队列空的概率,从而得到各码流的下溢概率;设定当前码流的下溢风险损益和各码流的质量增益,并依据当前码流的下溢风险损益、各码流质量增益和各码流的下溢概率计算各码流之间切换时的综合收益值;选出综合收益最高的码流进行切换;其中,所述视频分片为将各码流副本进行等时长划分得到的分片。其优点是,分片到达建模采取爱尔朗分布很好地模拟了双边波动的特性并简化了排队模型的计算复杂性,同时可以根据不同偏好设置不同的质量增益和风险损益的组合,决策以获得最优的观看体验。

在上述专利2中,发明人提供了一种改善公平性的平滑码率自适应方法及装置。该方法包括:客户端依据已获得的历史片段序列对应的预测带宽和下载带宽获得目标片段序列对应的预测带宽;客户端依据目标片段序列对应的预测带宽和当前客户端缓存大小获得目标片段序列的目标码率;客户端从服务器获取码率版本为目标码率的目标片段序列;客户端从服务器获取构成目标文件的多个片段序列。其优点是,通过探测目标片段序列对应的预测带宽,保证了多个客户端公平分享网络带宽资源;通过目标片段序列对应的预测带宽和当前客户端缓存大小获得目标片段序列的目标码率,能够同时保证较高的带宽利用率和视频码率的平滑性;最终提高了动态http流媒体传输系统的服务质量。

在上述专利3中,发明人公开了提供了一种qoe驱动的多频道has码率自适应调度方法,通过视频内容类型、码率、卡顿三个因素,建立多频道has的qoe模型;服务端计算各个频道的消息参数值,包括该频道内的平均码率、平均码率级别、资源竞争的激烈程度,并将频道的消息参数值传递给各用户;根据接收到的频道的消息参数值和多频道has的qoe模型,制定qoe驱动的多频道has码率自适应算法,计算用户下一个视频切片请求的码率级别。其优点是,实现了在多频道的情况下的码率自适应算法,改善了频道之间和频道之内的用户公平性,并使用户获得了良好的视频体验。

上述相关发明专利都是基于传统的http协议进行码率自适应,客户端每次请求获得的视频切片数量是不变的,变化的仅是视频码率。同时,客户端每获得一定量的视频切片,必须要向服务器发送请求,在此过程中若缓存耗尽,就会发生卡顿。这些限制条件使得用户的视频观看体验提升有限,且优化方式也较为单一,不够灵活。

随着http/2协议的出现,因而产生一种http/2的has视频切片推送方法,充分利用了http/2中允许服务器主动向客户端推送数据并缓存在客户端的新特性,在保证用户观看过程中卡顿很少的前提下提高预估带宽和视频切片码率,使用户获得良好的视频观看体验。



技术实现要素:

为了克服上述现有技术的缺点,本发明的目的在于提供一种基于http/2的has视频切片推送方法,以获得更好的用户观看体验。

为了实现上述目的,本发明采用的技术方案是:

一种基于http/2的has视频切片推送方法,包括如下步骤:

通过分析推送视频切片数与视频请求码率、发生卡顿的概率之间的关系,建立了一个多目标优化问题并进行求解;

提出基于http/2的has推送切片数动态选择算法,计算每次请求时的推送视频切片数;

通过问题分析确定如何计算请求带宽、如何进行带宽预估以及如何根据预估带宽选择视频请求码率;

提出基于http/2的has码率自适应算法,计算每次请求时的视频切片请求码率。

所述多目标优化问题建立与求解步骤如下:

step21:分析推送视频切片数与视频请求码率、发生卡顿的概率之间的关系,构建多目标优化问题

其中:k为视频观看中的请求总次数,rtti为第i次请求时的网络时延,ni为第i次请求时额外推送切片数,d为视频切片时长,为第i次请求时当前缓冲区的量,bmax为缓冲区的能够缓存的最大数据量;

step22:由于多目标函数的两个子目标函数的结果并不在同一数量级上,利用极大值化方法对两个子目标函数进行无量纲化的处理,子目标函数一进行无量纲化的处理后的结果为其中:rttmax为整个视频请求过程中网络时延的最大值;子目标函数二进行无量纲化的处理后的结果为:其中:(ni)max为取得最大值时的ni的取值,取得最大值时的的取值;

step23:利用线性加权法将双目标优化问题转变为单目标优化问题,单目标函数表示如下:

其中:αi表示第i次请求时子目标函数二的权重;

step4:利用贪心算法对单目标函数求解,优化目标变为求得每次请求时使得优化目标值最低的推送切片数。

所述子目标函数二的权重αi的计算步骤如下:

step31:计算第(i-1)次请求中卡顿时长其中:为第(i-1)次请求结束时缓冲区的量;为第(i-1)次请求开始时缓冲区的量;ni-1第(i-1)次请求时服务器端额外推送的视频切片数;ti-1为第(i-1)次请求的请求响应时间;

step32:如果sti-1大于0,

step33:如果sti-1小于0,但是

step34:如果sti-1小于0,但是

所述提出基于http/2的has推送切片数动态选择算法,计算每次请求时的推送视频切片数的步骤如下:

step41:进行第1次视频切片请求时,为降低启动时延,设置推送切片数为1;

step42:稳定阶段,进行第i次视频切片请求,根据缓冲区的最大量以及当前缓冲区量获得能够额外推送的最大切片数;

step43:计算第i次请求中的卡顿时长确定权重αi的取值;

step44:根据可缓存的最大数据量确定优化目标函数为

step45:遍历1至最大切片数,求得使得优化目标函数值最低的切片数;

step46:重复第二至五步,直至整个视频请求播放完成;

step47:算法结束。

所述请求带宽计算、利用请求带宽进行带宽预估以及根据预估带宽选择视频请求码率的步骤如下:

step51:第i次请求带宽bi的计算不仅考虑到整个请求的均值带宽同时考虑请求结束时的瞬时带宽,即:其中:ani为第i次请求中总共获取的视频切片数;rij为第i次请求时第j个切片下载速率;为第i次请求时最后一个视频切片的下载速率;αi为第i次请求时网络瞬时带宽所占的权重;

step52:当进行第i次请求时,根据k个历史视频切片进行带宽预估;由于每个请求至少包含两个视频切片,因此需要确定进行带宽预估的请求个数并且根据历史请求带宽的调和平均数确定预估带宽为:

step53:根据预估带宽确定第i次请求的视频请求码率确定为不大于乘以安全阈值(可取0.9)的最大可请求码率,即:and其中:bitratej为服务器端可以提供的第j级别的视频码率。

所述第i次请求时网络瞬时带宽所占的权重αi的计算步骤如下:

step71:计算第i次请求中卡顿时长其中:为第i次请求结束时缓冲区的量;为第i次请求开始时缓冲区的量;ti为第i次请求的请求响应时间;d为视频切片时长;

step72:如果sti大于0,αi为

step73:如果sti小于0,但是αi为

step74:如果sti小于0,但是αi为

所述提出基于http/2的has码率自适应算法,计算每次请求时的视频切片请求码率的步骤如下:

step81:进行第1次视频切片请求时,为避免卡顿,视频请求码率设置为服务器端能够提供的最低可请求码率;

step82:第1次请求结束时,计算卡顿时长确定权重α1的取值并计算请求带宽b1;

step83:稳定阶段,进行第i次视频切片请求时,计算预估带宽即:

step84:根据预估带宽确定视频请求码率

step85:第i次请求结束时,计算卡顿时长确定权重αi的取值并计算请求带宽bi;

step86:重复第三至五步,直至整个视频请求播放完成;

step87:算法结束。

与现有的技术相比,本发明实现了一种http/2的has视频切片推送方法,利用了http/2中允许服务器主动向客户端推送数据并缓存在客户端的新特性,在视频观看过程中动态地获取每次请求最优的推送切片数,灵活地进行带宽预估和码率选择,充分利用网络带宽并保证良好的用户观看体验。

附图说明

图1为本发明一种基于http/2的has视频切片推送方法流程图。

图2为多目标优化问题建立与求解流程图。

图3为子目标函数二的权重αi的计算流程图。

图4为计算每次请求时的推送视频切片数的步骤流程图。

图5为请求带宽计算、进行带宽预估、选择视频请求码率的步骤流程图。

图6为第i次请求时网络瞬时带宽所占的权重αi的计算流程图。

图7为计算每次请求时的视频切片请求码率的步骤流程图。

具体实施方式

下面结合附图和实施例详细说明本发明的实施方式。

如附图1所示,本发明为一种基于http/2的has视频切片推送方法,通过分析推送视频切片数与视频请求码率、发生卡顿的概率之间的关系,建立了一个多目标优化问题并进行求解;其次,提出了基于http/2的has推送切片数动态选择算法,用于计算每次请求时的推送视频切片数;此外,通过问题分析确定如何计算请求带宽、如何进行带宽预估以及如何根据预估带宽选择视频请求码率;最后,提出基于http/2的has码率自适应算法,计算每次请求时的视频切片请求码率,从而达到在保证视频播放卡顿概率较小的基础上提高视频码率,充分利用可用带宽,提供更好的用户视频观看体验。

下面对本发明的技术方案进行详细说明。

参考图2,建立多目标优化问题并求解,具体实施步骤如下:

step1:分析推送视频切片数与视频请求码率、发生卡顿的概率之间的关系;

step2:记录用户观看视频时在有无卡顿的多种情况下的可用缓存与最大缓存量,计算此时的可推送切片数,分析如何使用上述数据来表征在尽量降低卡顿发生概率的同时提高视频的平均请求码率的目标;

step3:构建包含两个优化目标的多目标优化模型;

step4:由于多目标函数的两个子目标函数的结果并不在同一数量级上,利用极大值化方法对两个子目标函数进行无量纲化的处理;

step5:分析在不同网络带宽波动的情况下,两个子目标之间的关系,利用线性加权法将双目标优化问题转变为单目标优化问题;

step6:分析计算整个视频播放过程中求解的复杂度,利用贪心算法对单目标函数求解,根据最大缓冲量bmax的限制以及请求开始时缓冲区量的限制,求得每次请求时使得优化目标值最低的推送切片数。

参考图3,子目标函数二的权重αi的计算,具体计算步骤如下:

step1:分析权重αi取值是如何影响切片数计算的,以及权重与上一次视频播放状态的关系,并用logistic变换进行归一化处理获得权重αi;

step2:分析卡顿与视频请求前后缓冲区的变化、请求接收到的视频量以及请求响应时间之间的关系,在出现卡顿的情况下计算第(i-1)次请求中卡顿时长sti-1;

step3:在第(i-1)次请求过程中发生了卡顿的情况下,曲线倾斜程的值设置为21,偏移量为1,计算客户端下载数据花费的总时长与服务器端发送给客户端数据的总时长的比值为自变量,计算方式为

step4:在第(i-1)次请求过程中没有发生卡顿但缓存量下降的情况下,曲线倾斜程的值设置为21,偏移量为1,计算客户端下载数据花费的总时长与服务器端发送给客户端数据的总时长的比值为自变量,计算方式为

step5:在第(i-1)次请求过程中没有发生卡顿且缓存量上升的情况下,分析可能表征的网络状况,计算缓冲区的增加量与服务器端发送给客户端数据的总时长的比值为自变量,ri-1计算方式为当ri-1的值大于等于0.25时,曲线倾斜程的值设置为-21,偏移量为0,反之两值分别为21和0.5。

参考图4,基于http/2的has计算每次请求时的推送视频切片数,具体实施步骤如下:

step1:如果进行的是第1次视频切片请求,为降低启动时延,设置推送切片数为1;

step2:如果进入稳定阶段,进行第i次视频切片请求,根据缓冲区的最大量以及当前缓冲区量获得能够额外推送的最大切片数;

step3:根据第(i-1)次请求开始时缓冲区的数据量、请求结束时缓冲区的数据量、请求响应时间以及下载总数据量,获取第(i-1)次请求过程中是否出现卡顿;

step4:根据卡顿情况以及缓存量的前后变化计算权重值,确定优化目标函数;

step5:遍历1至最大切片数,求得使得优化目标函数值最低的切片数;

step6:重复第二至五步,直至整个视频请求播放完成;

step7:算法结束。

参考图5,请求带宽计算、利用请求带宽进行带宽预估以及根据预估带宽选择视频请求,具体实施步骤如下:

step1:分析请求带宽与网络带宽和推送切片数的关系,分析得到第i次请求带宽bi的计算不仅考虑到整个请求的均值带宽同时考虑请求结束时的瞬时带宽,用αi代表在计算第i次请求的带宽时网络瞬时带宽所占的权重;

step2:当进行第i次请求时,为避免利用单个历史请求中获得的视频切片数较少误差较大,根据k个历史视频切片进行带宽预估,在基于http/2的has中,每个请求包含有多个视频切片,因此进行带宽预估的历史请求肯定小于k个,需要对进行带宽预估的历史请求个数进行确定;

step3:为了避免历史请求带宽中偏离正常值的较大值与较小值的影响,利用调和平均值来进行带宽预估来降低较大值与较少值的影响,以确定预估带宽为:

step4:根据预估带宽确定第i次请求的视频请求码率为避免预估带宽带来的误差,确定为不大于乘以安全阈值(0.9)的最大可请求码率。

参考图6,进行第i次请求时网络瞬时带宽所占的权重αi的计算,具体计算步骤如下:

step1:分析权重αi取值是如何影响请求带宽计算的,以及权重与网络带宽波动变化的关系,并用logistic变换进行归一化处理获得权重αi;

step2:分析卡顿与视频请求前后缓冲区的变化、请求的切片数以及请求响应时间之间的关系,在出现卡顿的情况下计算当前请求中卡顿时长sti;

step3:在第i次请求过程中发生了卡顿的情况下,曲线倾斜程的值设置为21,偏移量为1,计算客户端下载数据花费的总时长与服务器端发送给客户端数据的总时长的比值为自变量,计算方式为

step4:在第i次请求过程中没有发生卡顿但缓存量下降的情况下,曲线倾斜程的值设置为21,偏移量为1,计算客户端下载数据花费的总时长与服务器端发送给客户端数据的总时长的比值为自变量,计算方式为

step5:在第i次请求过程中没有发生卡顿且缓存量上升的情况下,分析可能表征的网络状况,计算缓冲区的增加量与服务器端发送给客户端数据的总时长的比值为自变量,ri计算方式为当ri-1的值大于等于0.25时,曲线倾斜程的值设置为-21,偏移量为0,反之两值分别为21和0.5。

参考图7,基于http/2的has码率自适应算法,计算每次请求时的视频切片请求码率的步骤如下:

step1:初始阶段,即进行第1次请求时,为避免卡顿,视频请求码率设置为服务器端能够提供的最低可请求码率;

step2:第1次请求结束时,根据第1次请求开始时缓冲区的数据量、请求结束时缓冲区的数据量、请求响应时间以及下载总数据量,获取第1次请求过程中是否出现卡顿;

step3:根据卡顿情况以及缓存量的前后变化计算权重值,并分别计算第1次请求的平均带宽与瞬时带宽,以计算最终的b1;

step4:稳定阶段,进行第i次请求时,利用k个历史视频切片进行带宽预估,根据k获得进行带宽预估的历史请求个数n,并利用n个历史请求的调和平均数获得第i次请求的预估带宽

step5:根据第i次请求的预估带宽获得此请求的视频请求码率

step6:第i次请求结束时,计算卡顿时长确定权重αi的取值并计算请求带宽bi;

step7:重复第四至六步,直至整个视频请求播放完成;

step8:算法结束。

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