CN115914756A - 基于网络分级的视频码率控制方法和设备 - Google Patents
基于网络分级的视频码率控制方法和设备 Download PDFInfo
- Publication number
- CN115914756A CN115914756A CN202110927016.7A CN202110927016A CN115914756A CN 115914756 A CN115914756 A CN 115914756A CN 202110927016 A CN202110927016 A CN 202110927016A CN 115914756 A CN115914756 A CN 115914756A
- Authority
- CN
- China
- Prior art keywords
- target
- network
- bandwidth
- rate
- level
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 117
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 claims description 227
- 239000000872 buffer Substances 0.000 claims description 107
- 238000011217 control strategy Methods 0.000 claims description 78
- 230000001965 increasing effect Effects 0.000 claims description 40
- 230000008569 process Effects 0.000 claims description 29
- 230000003247 decreasing effect Effects 0.000 claims description 28
- 238000004891 communication Methods 0.000 claims description 13
- 230000001276 controlling effect Effects 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 9
- 230000008859 change Effects 0.000 claims description 5
- 238000012216 screening Methods 0.000 claims description 3
- 230000001105 regulatory effect Effects 0.000 claims description 2
- 230000000875 corresponding effect Effects 0.000 description 218
- 238000004422 calculation algorithm Methods 0.000 description 58
- 238000007726 management method Methods 0.000 description 18
- 230000001976 improved effect Effects 0.000 description 13
- 230000003044 adaptive effect Effects 0.000 description 12
- 238000005516 engineering process Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 11
- 238000004458 analytical method Methods 0.000 description 9
- 239000012634 fragment Substances 0.000 description 9
- 230000007246 mechanism Effects 0.000 description 9
- 230000000694 effects Effects 0.000 description 7
- 230000002596 correlated effect Effects 0.000 description 6
- 230000002159 abnormal effect Effects 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 238000007619 statistical method Methods 0.000 description 5
- 230000008093 supporting effect Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 230000001419 dependent effect Effects 0.000 description 4
- 238000013467 fragmentation Methods 0.000 description 4
- 238000006062 fragmentation reaction Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 229920001621 AMOLED Polymers 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000001939 inductive effect Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 239000002096 quantum dot Substances 0.000 description 1
- 230000005855 radiation Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
Images
Landscapes
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供了一种基于网络分级的视频码率控制方法、设备、存储介质和芯片系统,涉及视频播放技术领域,使不同网络用户获得最佳的播放体验。如弱网用户播放卡顿率降到最低,同时对大部分的强网络用户可充分利用其带宽,观看最佳的画质。该方法包括:确定多种网络级别分别对应的第一带宽衰减系数;其中,多种网络级别对应多个带宽区间,多种网络级别中不同的网络级别对应不同的第一带宽衰减系数;确定客户端对应的目标网络级别;获取客户端对应的下载速率预测值;至少根据目标网络级别对应的第一带宽衰减系数和下载速率预测值,确定待下载的目标视频内容对应的第一目标码率。
Description
技术领域
本申请涉及视频播放技术领域,尤其涉及一种基于网络分级的视频码率控制方法、设备、存储介质和芯片系统。
背景技术
目前,在各种视频播放场景中,为提升用户体验,一般会采取自适应码率控制(Adaptive Rate Control,ARC)策略,进行视频码率的动态调节,即依据客户端实际下载速率的波动情况,在视频起播或播放过程中,动态调整待下载的视频内容的码率或分辨率,以使客户端的视频播放尽可能地流畅,减少卡顿次数。一种相关方案中,对于不同网络带宽的客户端采用相同的控制策略,为保障网络带宽较低的客户端的播放流畅度,统一采用了下切码率优先的控制机制,导致很多网络带宽资源充足的客户端能够播放高分辨率或高清晰度视频的情形下,只能播放低分辨率或低清晰度视频,降低了用户观看的画质水平。
发明内容
本申请提供一种基于网络分级的视频码率控制方法、设备、存储介质和芯片系统,能够提升用户观看的画质水平,改善用户的观看体验。
第一方面,本申请技术方案提供了一种基于网络分级的视频码率控制方法,应用于客户端,该方法包括:
确定多种网络级别分别对应的第一带宽衰减系数;其中,多种网络级别对应多个带宽区间,多种网络级别中不同的网络级别对应不同的第一带宽衰减系数;确定客户端对应的目标网络级别;确定客户端对应的下载速率预测值;至少根据目标网络级别对应的第一带宽衰减系数和下载速率预测值,确定待下载的目标视频内容对应的第一目标码率。该方法能够使弱网用户播放卡顿率降低,同时对于强网络用户能够能顾充分利用其带宽来提升观看的画质水平,改善用户的观看体验,使得不同网络用户都能获得较佳的播放体验。
在一种可能的实现方式中,确定客户端对应的目标网络级别,包括:查询客户端当前时刻的实时下载速率;将实时下载速率所属的带宽区间对应的网络级别,确定为客户端对应的目标网络级别。
在一种可能的实现方式中,多种网络级别,包括第一网络级别至第M网络级别,M≥2;其中,在第一网络级别至第M网络级别分别对应的带宽区间的带宽大小按序减小的情况下,第一网络级别至第M网络级别分别对应的第一带宽衰减系数按序减小。在第一目标码率与第一带宽衰减系数正相关的情况下,第一网络级别至第M网络级别分别对应的第一带宽衰减系数按序减小,可以使得码率按照带宽区间的大小而依次减小,高带宽对应于高码率,低带宽对应于低码率,不同带宽采用不同播放策略,适应不同的播放需求,获得分级的播放效果。
在一种可能的实现方式中,确定客户端对应的下载速率预测值,包括:查询带宽窗口列表中客户端对应的多个历史下载速率,基于多个历史下载速率,计算调和平均数或者算术平均值;将调和平均数或算术平均值,确定为客户端对应的下载速率预测值。多个历史下载速率能够客观反映客户端的实际带宽水平。
在一种可能的实现方式中,确定多种水位区间,以及多种水位区间分别对应的多个水位系数;其中,多种水位区间基于视频播放过程中的缓冲区长度确定;同一水位区间对应的多个水位系数与多种网络级别分别对应;同一网络级别对应的多个水位系数与多种水位区间分别对应;确定客户端对应的目标网络级别之后,至少根据目标网络级别对应的第一带宽衰减系数和下载速率预测值,确定待下载的目标视频内容对应的第一目标码率之前,方法还包括:视频播放过程中,基于指定时刻的缓冲区长度,确定指定时刻对应的目标水位区间;其中,指定时刻,为下载目标视频内容之前的任一时刻;从目标水位区间对应的多个水位系数中,筛选出与目标网络级别对应的目标水位系数;至少根据目标网络级别对应的第一带宽衰减系数和下载速率,确定待下载的目标视频内容对应的第一目标码率,包括:根据目标网络级别对应的第一带宽衰减系数、下载速率预测值和目标水位系数,确定待下载的目标视频内容对应的第一目标码率。水位系数的设计,可以在根据带宽划分网络级别的基础上,基于缓冲区的状态进一步分级,实现更加精确的播放策略控制。
在一种可能的实现方式中,根据目标网络级别对应的第一带宽衰减系数、下载速率预测值和目标水位系数,确定待下载的目标视频内容对应的第一目标码率,包括:针对目标网络级别对应的第一带宽衰减系数和目标水位系数,执行预定的第一运算,获得的第一运算结果作为第二带宽衰减系数;至少根据下载速率和第二带宽衰减系数,确定待下载的目标视频内容对应的第一目标码率。此种方式既考虑到带宽对于码率需求的影响,也考虑到不同的缓冲区长度对于码率需求的影响,按照此种方式能够更准确选择适合客户端当前需求的码率。
在一种可能的实现方式中,多种水位区间包括第一水位区间至第N水位区间,N≥2;其中,在第一水位区间至第N水位区间分别对应的缓冲区长度按序增大的情况下,对应于同一网络级别的多个水位系数按序增大。
在一种可能的实现方式中,至少根据下载速率和第二带宽衰减系数,确定待下载的目标视频内容对应的第一目标码率,包括:针对第二带宽衰减系数和下载速率执行预定的第二运算,获得的第二运算结果作为第一参考值;至少基于第一参考值,确定待下载的目标视频内容对应的第一目标码率。
在一种可能的实现方式中,至少基于第一参考值,确定待下载的目标视频内容对应的第一目标码率,包括:在待下载的目标视频内容对应的多路码率中,选择不超过且最接近第一参考值的码率,确定为第一目标码率。
在一种可能的实现方式中,至少基于第一参考值,确定待下载的目标视频内容对应的第一目标码率,包括:在待下载的目标视频内容对应的多路码率中,选择不超过第一参考值的至少一路码率作为至少一个候选项;根据客户端对应的目标网络级别、目标水位区间、缓冲状态中的至少一项,从至少一个候选项中确定出第一目标码率;其中缓冲状态,用于表征缓冲区长度的变化状态,包括增长状态或下降状态。
在一种可能的实现方式中,在多种网络级别中,不同的网络级别对应不同的级别属性;在第一网络级别至第M网络级别分别对应的带宽区间的带宽大小按序减小的情况下,第一网络级别对应的级别属性为播放画面质量优先,第M网络级别对应的级别属性为播放流畅度优先;其中,播放画面质量基于图像分辨率和/或视频码率确定;根据客户端对应的目标网络级别、目标水位区间、缓冲状态中的至少一项,从至少一个候选项中确定出第一目标码率,包括:根据客户端对应的目标网络级别对应的级别属性、目标水位区间、缓冲状态中的至少一项,从至少一个候选项中确定出第一目标码率。
在一种可能的实现方式中,该方法还包括:确定调节因子,调节因子基于缓冲区状态确定,用于调节第一带宽衰减系数;其中,缓冲区状态包括增长状态或下降状态。
在一种可能的实现方式中,第一带宽衰减系数,基于指定时刻的缓冲区长度和第一调节因子确定。
在一种可能的实现方式中,该方法还包括:确定水位划分系数;水位划分系数,用于确定不同水位区间之间的分界点。
在一种可能的实现方式中,第一目标码率为视频播放过程中待下载的目标视频内容对应的码率;至少根据目标网络级别对应的第一带宽衰减系数和下载速率预测值,确定待下载的目标视频内容对应的第一目标码率之前,方法还包括:确定多个网络级别对应的多个起播调节系数;多个网络级别中,不同的网络级别对应不同的起播调节系数;基于下载速率预测值和起播调节系数,确定视频起播阶段待下载的目标视频内容对应的第二目标码率。
在一种可能的实现方式中,基于下载速率预测值和起播调节系数,确定视频起播阶段待下载的目标视频内容对应的第二目标码率,包括:针对起播调节系数和下载速率预测值执行预定的第三运算,获得的第三运算结果作为第二参考值;在视频起播阶段待下载的目标视频内容对应的多路码率中,选择不超过且最接近第二参考值的码率,确定为第二目标码率。
在一种可能的实现方式中,确定视频起播阶段待下载的目标视频内容对应的第二目标码率之后,方法还包括:根据下载速率预测值和第二目标码率,确定起播前的缓存数据量。
在一种可能的实现方式中,该方法还包括:获取播放质量数据,播放质量数据包括起播时延、卡顿率、码率、分辨率、播放成功率、下载速率、目标网络级别中的至少一项;将播放质量数据上传至服务器。
在一种可能的实现方式中,确定多种网络级别分别对应的第一带宽衰减系数,包括:响应于服务器下发的更新通知或者在客户端启动后,向服务器发送获取控制策略信息的请求;更新通知用于表征控制策略信息待更新;控制策略信息中包括多种网络级别分别对应的第一带宽衰减系数;基于控制策略信息,确定多种网络级别分别对应的第一带宽衰减系数。
第二方面,本申请技术方案还提供一种基于网络分级的视频码率控制方法,应用于服务器,该方法包括:确定多个带宽区间以及所述多个带宽区间对应的多个网络级别;生成多种网络级别分别对应的第一带宽衰减系数,下发至客户端;其中,多种网络级别中不同的网络级别对应不同的第一带宽衰减系数;所述第一带宽衰减系数,用于调控待下载至客户端的目标视频内容对应的第一目标码率。
在一种可能的实现方式中,接收客户端上传的播放质量数据;播放质量数据包括起播时延、卡顿率、码率、分辨率、播放成功率、下载速率、目标网络级别中的至少一项。
在一种可能的实现方式中,生成多种网络级别分别对应的第一带宽衰减系数之后,方法还包括:响应于客户端发送的用于获取控制策略信息的请求,向客户端下发控制策略信息;或者,在检测到控制策略信息有更新后,下发更新通知至客户端;控制策略信息中至少包含多种网络级别分别对应的第一带宽衰减系数。
第三方面,本申请技术方案还提供一种电子设备,包括:一个或多个处理器;存储器;至少一个应用程序;以及一个或多个计算机程序,其中所述一个或多个计算机程序被存储在所述存储器中,所述一个或多个计算机程序包括指令,当所述指令被所述电子设备执行时,使得所述电子设备执行如上述第一方面或者第二方面中任一项所述的方法。
第四方面,本申请技术方案还提供一种存储介质,包括计算机指令,当所述计算机指令在电子设备上运行时,使得所述电子设备执行如上述第一方面或者第二方面中任一项所述的方法。
第五方面,本申请技术方案还提供一种芯片系统,包括:通信接口,用于输入和/或输出数据;处理器,用于执行计算机可执行程序,使得安装有所述芯片系统的设备执行如上述第一方面或者第二方面中任一项所述的方法。
第六方面,本申请实施例还提供一种软件程序产品,所述软件程序产品包括程序指令,当所述程序指令在电子设备上运行时,使得所述电子设备执行如上述第一方面或者第二方面中任一项所述的方法。
本申请实施例提供的基于网络分级的视频码率控制方法、设备、存储介质和芯片系统,基于网络带宽对客户端进行级别划分,不同的网络级别对应于不同的带宽区间,且分别设置相应的控制参数(例如第一带宽衰减系数),结合客户端的下载速率和控制参数,综合调节待下载的目标视频内容的码率,基于该方法,至少可以通过调节各个网络级别分别对应的控制参数,实现视频码率的分级化控制,使得带宽相对较低的弱网客户端和带宽资源相对充足的客户端,可以采用不同的控制策略来分别进行视频码率控制,使得带宽资源相对充足的客户端,能够播放更高分辨率或者清晰度的视频,提升用户的观看体验。
附图说明
图1是本申请实施例提供的基于网络分级的视频码率控制方法的系统架构图;
图2是本申请实施例提供的基于网络分级的视频码率控制方法的一个应用场景示例图;
图3是本申请实施例提供的基于网络分级的视频码率控制方法中一个水位划分示例的示意图;
图4是本申请实施例中基于客户端一侧执行的基于网络分级的视频码率控制方法的流程示意图;
图5是本申请实施例中客户端与服务端多方交互的信令流程图;
图6是本申请实施例提供的终端设备的一个实施例的硬件结构示意图。
具体实施方式
下面将结合附图,对本申请中的技术方案进行描述。
本申请实施例提供了一种视频码率控制方案,该方案基于网络分级进行自适应动态码率控制,可以适用于各种视频播放场景中,例如基于OTT(Over The Top)业务实现的视频播放场景,视频点播(Video On Demand,VOD)场景,直播场景等。该方案可以应用于支持视频播放功能的客户端,客户端可以是支持视频播放的任一种APP或播放器。客户端可以基于各种终端设备运行,终端设备可以是电视机、手机、智慧屏、机顶盒、平板电脑、个人计算机、智能手表、可穿戴电子设备、增强现实技术(augmented reality,AR)设备、虚拟现实(virtual reality,VR)设备、学习机等各种支持视频播放的终端产品。
目前,为提升用户体验,视频播放可以采用自适应码率控制(Adaptive RateControl,ARC)技术进行码率的动态调整。IP网络的带宽会有波动,可以依据用户侧(即客户端一侧)网络带宽的变化,选择合适的码率或分辨率起播,并且在播放的过程中依据用户侧的带宽变化,调整待播放内容的码率,即更换与当前播放的视频数据流的码率不同的视频数据流。
例如,相关技术中,OTT视频业务运营商在现网已上架了数万小时的视频内容,向用户提供视频点播服务。所提供的视频点播服务采用了基于Qos的码率自适应算法进行播放。该种方案虽然在视频播放过程中进行了动态的码率调节,但对于处于不同带宽环境下的客户端,采用统一的控制策略,算法和控制参数等都是统一设置,为兼顾弱网用户(即带宽较低的用户),采用了优先保障播放流畅度的整体控制策略。此种策略虽在一定程度上倾向于弱网用户,但实际应用场景中,弱网用户的播放流畅度还是较差,使得弱网用户对整体关键绩效指标(Key Performance Indicator,KPI)影响较大,例如,基于一种OTT点播业务进行的体验KPI统计数据为:1)下载速率为2Mbps以下的播放占比为4.69%,贡献了53.09%的整体卡顿次数;2)下载速率为2Mbpss~5Mbps的播放占比为8.83%,贡献了20.8%的整体卡顿次数。
此外,对于带宽较高的用户而言,该种相关技术也存在一定的弊端。由于采用统一控制策略,偏向于保障播放流畅度、降低起播时延,倾向于弱网算法,忽略了带宽资源充足的用户对于画质的需求,因而采用了上切分辨率保守、下切分辨率激进的控制机制,导致在很多场景下,用户带宽可以观看高分辨率的画质,但播放了低分辨率,牺牲了用户观看的画质水平,使得绝大部分网络好的用户不能充分观看高分辨率或高清晰度画质。此外,由于该相关技术中,在起播阶段以及播放过程中,由低分辨率切换到高分辨率的算法比较保守,发生抖动后下切优先,存在较长时间才能切换到高分辨率/高清晰度码流的情况,这样,起播后即使用户网络较好,但若用户网络发生抖动,会存在较长时间(例如30s以上)才能切换到蓝光等高清晰度画质进行观看,播放中未能充分利用用户网络带宽,浪费了带宽资源,并且导致用户能够观看高清或蓝光以上分辨率画质的播放时长比例降低。可见,该相关技术实际上未能对弱网用户进行有效的保护,使得弱网用户的体验差;此外,对于网络带宽资源相对充足的用户,也未能充分利用其带宽资源,用户体验有待提升。
鉴于此,本申请实施例提供一种视频码率控制方案,依据客户端的不同带宽,划分多个网络级别,动态选择与客户端的网络级别相匹配的码率的目标视频内容进行下载并播放。一种可行的控制策略示例为,在起播阶段,依据客户端历史下载速率的情况,确定该客户端对应的网络级别,为该客户端选择与其网络级别相适应的起播码率,并且确定下载多少时长的待播放视频的缓存数据再开始起播;在播放过程中,在每下载下一个分片前,依据用户的实时带宽情况、及带宽衰减系数(例如第一带宽衰减系数),来选择下载哪一种码率或者分辨率的目标视频内容(例如下一个视频分片),进而实现动态的自适应码率选择播放,播放流畅不卡顿的同时,提升了播放画面质量,提升用户观看体验。
其中,基于客户端的带宽情况,对网络进行分段,即对每个网络带宽分段设置一个相应的网络级别,实现控制策略的分级设置,例如多个网络级别可以包括网络级别1、网络级别2、网络级别3、网络级别4,其中,网络级别1采用播放清晰度最优先、上切码率激进的控制逻辑,网络级别2采用播放清新度较好、上切码率较为激进的控制逻辑,网络级别3采用播放清晰度一般,流畅度要求高于清晰度、上切码率较保守的控制逻辑,网络级别4采用流畅度最优先、播放清晰度最低、下切码率最为激进的控制策略。弱网用户以低清晰度或低码率且不上切码率的原则,进行流畅播放;强网络用户播放高清晰度(如蓝光)的播放时长比例有效提升。基于该分级控制策略,在视频播放的起播及播放过程中,依据用户的网络带宽,确定其所在的网络级别,进而选择与其所在的网络级别向适配的最优码率的视频分片下载播放。基于网络带宽进行分级的级别数目、各网络带宽分段的区间长度、端点值以及相应的控制策略中的各项控制参数、算法等可以灵活调整。
具体地,本申请实施例提供的方案,解决了如下问题:
(1)相关技术统一采用播放流畅度优先的控制策略,但由于与带宽较高的客户端采用了同样的算法和因子系数等控制参数,对弱网没有特殊的保护,使得弱网客户端的播放流畅度较差,影响了整体KPI;本申请实施例提供的视频码率控制策略,通过基于网络分级的控制策略,针对性地为弱网用户提供了独立的算法、调节系数(例如第一带宽衰减系数或第二带宽衰减系数)等,使弱网客户端以观看流畅度为目标,有效提升了弱网用户的播放体验,解决了相关技术中弱网客户端播放卡顿率高的技术问题。经实测统计,采用本申请实施例提供的方案后,对于弱网可大大减少弱网播放卡顿次数,提升整体播放体验。
(2)本申请实施例提供的方案,通过依据用户侧网络分级的自适应算法,对强网客户端最大化利用用户带宽,保持卡顿比、起播时延不下降同时,强网客户端播放高清晰度(例如蓝光)的播放时长比例有效提升,有效改善用户的观看体验。解决了相关技术中播放码率自适应算法以播放流畅度优先、码率上切保守,导致网络带宽资源相对充足的用户不能充分利用带宽,用户观看高分辨率或者高清晰的画质的比率不高问题。例如,经实测,实施本申请实施例提供的视频码率控制方案后,在10Mb网络带宽下,强网用户播放高清晰度(如蓝光)的播放时长比例由80%提升至92%。其中,带宽低于预设的阈值可以定义为弱网,带宽超过预设的阈值可以定义为强网。
参阅图1所示,示例性地,本申请实施例提供的视频码率控制方案,可以基于如图1所示的系统架构实现。具体地,该系统架构可以包括视频运营管理系统和支持视频播放的客户端。视频运营管理系统包括第一服务器、第二服务器,其中第一服务器用于从策略库中获取控制策略并下发至各个客户端,第二服务器用于进行播放质量统计分析。客户端包括播放策略控制模块、上报模块和播放器等。其中,播放策略控制模块用于获取基于网络分级的控制策略,根据控制策略执行自适应的动态码率调节,并通过播放器进行相应码率的视频播放;上报模块则用于将播放质量数据上传至第二服务器,例如将客户端实际采用的控制策略信息、起播时延、卡顿率、分辨率等信息上传至第二服务器,以供第二服务器基于各个网络级别的统计数据进行统计分析,进一步调整控制策略。可选的,在该系统架构中,客户端下载的视频数据可以来自于基于内容分发网络(Content Delivery Network,CDN)部署的边缘服务器。CDN,主要用于视频内容的分发,基于部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取视频内容,降低网络拥塞,提高用户访问响应速度和命中率。
具体地,在该系统架构中,在一种可能的实现方式中,第一服务器,主要用于生成控制策略信息,控制策略信息中,包含对客户端的视频码率进行自适应控制的控制参数、控制逻辑和采用的各种算法。第一服务器负责下发控制策略信息至客户端,第一服务器和客户端之间的交互机制,可以是相应的APP(即客户端)启动时主动向第一服务器获取,或者,在发生策略改变时,第一服务器向相应的APP下发更新通知,APP在接收到更新通知后,主动发送获取控制策略信息的请求以获得最新的控制策略)。在一种可能的实现方式中,客户端在视频播放过程中或者视频播放结束后,上传播放质量数据,第二服务器用于进行播放质量统计分析,负责接收APP上报的播放质量数据,并基于网络分级,统计分析各网络分级段的播放质量,并同步到第一服务器。以使得第一服务器根据统计分析结果,优化各个网络级别的控制策略,以获得能够达到最优播放效果的控制策略。此外,在该系统架构中,视频运营管理系统,执行对视频内容的运营管理、用户管理、活动管理等操作,APP可以向视频运营管理系统获取视频内容的栏目/内容列表等信息,在用户发起播放时,APP向视频运营管理系统发起播放鉴权等请求,确定此用户是否可播放及获取播放URL,为视频点播或直播提供视频管理控制服务等。
需要说明的是,该系统架构仅为一种示例,基于该示例,对其组成构件进行合并或拆分等变形,可获得其他多种系统架构。例如,第一服务器和第二服务器执行的操作可以基于服务器集群中至少一台服务器实现,即第一服务器和第二服务器可以是同一服务器,也可以是多台服务器;上报模块和播放策略控制模块也可以整合为同一个模块,例如整合为一个播放策略控制模块,该播放策略控制模块支持将播放质量数据上报。此外,播放策略控制模块和播放器也可以整合为同一模块,例如整合为具有播放策略控制功能的播放器。
下面详细阐述本申请实施例提供的基于网络分级的视频码率控制方法。从客户端一侧角度描述,该方法可以包括:确定多种网络级别分别对应的第一带宽衰减系数,多个网络级别基于客户端的带宽大小划分而得,对应多个带宽区间。并且,多种网络级别中不同的网络级别对应不同的第一带宽衰减系数。然后,基于客户端对应的下载速率,确定该客户端对应的目标网络级别,至少根据目标网络级别对应的第一带宽衰减系数和客户端对应的下载速率,确定待下载的目标视频内容对应的第一目标码率。
本申请实施例中,对视频码率进行控制的控制策略可以包括控制逻辑、算法和控制参数,其中,第一带宽衰减系数为控制参数中的一种。控制参数还可以包括第二带宽衰减系数、水位系数、水位划分系数、调节因子、起播调节系数中的至少一种。
具体地,在一种可实施方式中,控制策略可以由服务器侧生成,并下发至客户端。例如,参阅图2所示,基于终端设备10运行的客户端(支持视频播放的APP)可以在启动时主动向服务器发送获取控制策略的请求,云侧服务器20(例如应用程序服务器)响应于该请求而反馈控制策略至客户端。或者,云侧服务器20在控制策略信息发生更改时,下发更新通知,APP响应于该更新通知,向云侧服务器20再次发送获取请求(图2中暂未示出),云侧服务器响应于该获取请求,将更新后的控制策略信息下发至客户端。需要说明的是,终端设备10可以是图2中虚线框内示出的任一种设备。
在另一种可实施方式中,控制策略可以部署于客户端一侧,控制策略中的控制参数可以存储于视频播放器占用的存储空间中,基于网络分级的控制逻辑和算法则可以通过软件编程方式设计相应的功能模块(例如图1中所示的播放策略控制模块)固化到客户端应用程序中,即相应的控制策略被固化为视频播放器的附加功能,当需要更新控制策略时,则通过软件升级等方式,更新控制策略中的控制逻辑和算法。或者,当需要更改控制参数时,可以通过与服务器交互来更改相应的控制参数。
为便于理解本申请实施例提供的方案,需要说明的是,视频点播或直播中,每个待播放的视频内容对应一个索引文件,索引文件可以采用预定编码格式进行编码后获得的索引纯文本文件,例如,预定编码格式可以是可变长度字符编码的8位元(UniversalCharacter Set/Unicode Transformation Format,UTF-8)编码格式,在动态码率自适应技术(HTTP Live Streaming,HLS)中,该索引纯文本文件可以是采用UTF-8编码格式的m3u8文件;在基于HTTP的动态自适应的比特率流(Dynamic Adaptive Streaming over HTTP,DASH)技术中,该索引文件可以是MPD(Media Presentation Description)文件。一个索引文件中包括了多路码率或多路分辨率,每个视频码率或分辨率对应一个视频播放下载的统一资源定位(Uniform Resource Locator,URL)地址,APP或者播放器在起播前需下载此索引文件,然后通过索引文件中描述的多个码流信息,来下载其中一路码流数据进行播放。本申请提供的基于网络分级的视频码率控制方法的一部分实施例,即是从索引文件记录的多路码率中,选择出与客户端最为匹配的目标码率,将当前视频数据流的码率切换到目标码率,进而实现更佳的视频播放效果。
还需要说明的是,本申请实施例中,待下载的视频内容可以是基于分片技术进行封装的各种格式的视频文件,例如采用MP4(Motion Picture Experts Group-4)分片方式进行封装,并且采用分片下载技术。视频分片,即视频编码时将一个内容分割为2s-10s的多小分片,视频播放时,采用下载小分片的方式,将分片内容下载到本地进行播放,采用分片方式视频播放成本低,适合大规模OTT点播或直播场景。由此,在本申请实施例中,待下载的目标视频内容可以是一个视频分片(也可称为切片),例如可以是下一个2s-10s时长的小分片。
一个索引文件可以用于描述一个完整的视频文件,也可以用于描述视频文件中的一个分片,索引文件中至少用于描述一个分片对应的多路码率及URL,例如,在MPD文件中,每个媒体文件用于描述一个或多个一定时长的切片,每个切片都对应各自的URL,或对应同一URL的不同字节范围。
基于视频分片技术,在本申请实施例中,动态切换码率的触发时机可以是在下载下一视频分片之前的任一时刻,例如一种可行方式为,在下载下一个视频分片之前的预定时长内进行码率切换,例如下载下一个视频分片之前的3s之内。或者,在另一种可实施方式中,动态切换码率的触发时机可以是下载两个相邻的视频分片之间的时隙内,例如在上一视频分片下载结束,下一视频分片下载之前,基于本申请实施例提供的控制方案选择下一视频分片的码率。在其他的实施方式中,也可以是提前至少一个视频分片进行码率选择,其中,目标视频内容可以包括多个视频分片,即每2-4个视频分片为一组,一组视频分片对应相同的码率,一组视频分片只需执行一次码率选择或切换,如此,相比于每一个视频分片均进行一次码率选择,能够降低视频码率自适应控制的算法的整体复杂度和对运算、内存等资源的消耗。
本申请实施例中,基于客户端的带宽大小划分出多个网络级别,进而针对不同的网络级别设置不同的控制策略。例如对于网络较差,带宽值较低的网络级别,以最保守的策略(不会上切,保持最低分辨率)进行播放,优先保障了弱网用户的播放流畅度。对于带宽值较高的网络级别,采用以播放清晰度优先的控制策略,以播放画面质量清晰度优先,最大化的利用用户带宽,保障用户的播放画质体验。
多种网络级别,可以包括第一网络级别至第M网络级别,M≥2。示例性地,一种可行的划分方式为,设置四个网络级别,带宽≥10Mb,则划分为第一网络级别,相应的带宽)区间为[10Mb,+∞);带宽大于或等于7Mb并且小于10Mb,则划分为第二网络级别,相应的带宽区间为[7Mb,10Mb);带宽大于或等于2Mb并且小于7Mb,则划分为第三网络级别,相应的带宽区间为[2Mb,7Mb);带宽小于2Mb,则划分为第四网络级别,相应的带宽区间为[0Mb,2Mb)。上述基于带宽的网络分级方式仅为一个示例,还可以按照其他多种划分方式进行划分,其中,网络级别的数目以及每一网路级别对应的带宽区间都可以适应性调整,例如划分为5个网络级别,分别对应的带宽区间为:[20Mb,+∞),[15Mb,20Mb),[10Mb,15Mb),[5Mb,10Mb),[0Mb,5Mb),或者划分为3个网络级别等。
确定出多个网络级别以及各网络级别分别对应的带宽区间后,需要确定客户端对应的下载速率,根据客户端的下载速率落入的带宽区间,进而确定该客户端对应的网络级别。其中,客户端对应的下载速率,可以是当前时刻的实时下载速率,也可以是基于带宽预测算法计算出的下载速率预测值。一种可能的实现方式为,根据当前时刻客户端的实时下载速率落入的带宽区间来确定其对应的网络级别。例如,查询到当前时刻客户端的下载速率为1Mbps,则落入带宽区间[0Mb,2Mb),按照上述带宽区间划分示例,则对应的网络级别为第四网络级别。
在基于实时速率确定目标网络级别的实现方式中,确定目标网络级别的步骤先于获得下载速率预测值的步骤执行,也就是先确定网络级别,不同的网络级别可以采用不同的带宽预测算法,根据确定的网络级别选择相应的带宽预测算法来计算下载速率预测值。
另外一种可能的实现方式为,先根据带宽预测算法得到客户端下载速率的预测值,然后将该预测值落入的带宽区间对应的网络级别作为客户端对应的目标网络级别,也就是该中实现方式中,确定下载速率预测值的步骤在时序上,先于确定目标网络级别的步骤。此种方式适用于多个网络级别采用同一种带宽预测算法的情形。无论是哪个级别,都按照统一的带宽预测算法先计算带宽预测值(下载速率预测值),然后再去确定级别。
多个网络级别中,当前的目标客户端所对应的网络级别即为目标网络级别。该种描述方式仅为描述清楚和防止混淆,以下将客户端对应的网络级别统一描述为目标网络级别。
在本申请实施例中,控制策略中可以包括带宽预测算法。作为一种可实现方式,客户端对应的下载速率可以基于多个历史下载速率进行预测,具体可以按照如下带宽预测算法确定:
查询带宽窗口列表中客户端对应的多个历史下载速率,基于多个历史下载速率,计算调和平均数或者算术平均值,将计算出的调和平均数或算术平均值,确定为客户端对应的下载速率。其中,基于多个历史下载速率,计算调和平均数或者算术平均值,包括直接计算多个历史下载速率的调和平均数或算术平均值,或者在多个历史下载速率中剔除一个极大值和/或一个极小值,剩余的多个历史下载速率计算算术平均值或调和平均数。例如,带宽窗口列表(bandwidthlist)保存了最近的30个带宽值,采用调和平均数进行计算,那么预测带宽计为:30/(1/bandwidth1+1/bandwidth2+…+1/bandwidth30)。
需要说明的是,一般地,带宽表示数据传输能力,即单位时间内能够传输的数据量的期望值,而下载速率表示实际的数据传输能力,即单位时间内实际传输的数据量。本申请实施例中,客户端对应的下载速率预测值,即客户端下载待播放的视频数据实际占用的带宽。相应地,带宽区间中的带宽数值的端点值可以表示实际的下载速率,也可以是表示单位时间内能够传输的数据量的期望值,带宽区间与下载速率预测值之间存在确定的映射关系即可。例如,带宽区间为[10Mb,+∞),而实际的下载速率可能只能达到5Mbps。因而在确定客户端对应的带宽区间时,不以下载速率的数值是否落入带宽区间表示的数值区间内作为判别条件,而是基于预定的从下载速率到带宽区间之间的映射关系作为判别条件。
具体地,对于不同的网络级别,采用不同的带宽预测算法:
对于第一网络级别,倾向选择最高码率的视频数据流,以获得最大的预估带宽,采用前K次下载速率的算术平均值,剔除异常最小值,K≥1,例如带宽窗口列表保存了最近的30个带宽值,剔除一个异常最小值,那么预测下载速率预测值的计算式为:
(bandwidth1+bandwidth2+…+bandwidth29)/29。
对于第二网络级别,倾向选择较高码率的视频数据流,得到较大的用户预估带宽,采用前K次下载速率的算术平均值,剔除一个最大值、以及剔除一个最小值,例如,带宽窗口列表保存了最近的30个带宽值,剔除异常最大值、及最小值,那么该网络级别下,预测下载速率预测值的计算式为:
(bandwidth1+bandwidth2+…+bandwidth28)/28。
对于第三网络级别,倾向选择较低码率的视频数据流,得到较为保守的用户预估带宽,采用调和平均算法,剔除异常最小值,计算前K次下载速率的调和平均数,例如,带宽窗口列表保存了最近的30个带宽值,剔除一个最小值,那么该网络级别下,预测下载速率预测值的计算式为:
29/(1/bandwidth1+1/bandwidth2+…+1/bandwidth29)。
对于第四网络级别,倾向选择最低分辨率/清晰度的视频数据流,得到最小的用户预估带宽,可以计算前K次下载速率的调和平均数,例如带宽窗口列表保存了最近的30个带宽值,那么该网络级别下,预测下载速率预测值的计算式为:
30/(1/bandwidth1+1/bandwidth2+…+1/bandwidth30)。
需要说明的是,K可以等于1,K=1时,下载速率预测值即为带宽窗口列表中记录的最近一次的带宽值(即最近一次的历史下载速率)。此外,客户端对应的下载速率预测值还可以是当前时刻的实时下载速率。
实际应用中,作为一种可实施方式,可以先根据客户端最近一次下载的下载速率,确定对应的带宽区间,进而确定对应的网络级别,然后再根据上述各个网络级别的带宽预测算法,再次计算多个历史下载速率的算术平均数或调和平均数,将计算后的带宽作为客户端对应的下载速率预测值,然后基于该下载速率预测值确定对应的网络级别。基于多次历史下载速率执行的带宽预测算法,可以避免带宽抖动导致的单次采集数值异常导致的偏差。在另外的可实施方式中,不同的网络级别也可采用相同的带宽预测算法,因而,在确定客户端对应的目标网络级别时,可以将带宽窗口列表中记录的最近的K个历史下载速率,按照相同的带宽预测算法,计算算术平均值或调和平均数,计算结果直接作为预测的下载速率预测值。
确定客户端对应的目标网络级别之后,则到控制策略信息中查询目标网络级别对应的控制参数,控制参数至少包括第一带宽衰减系数,不同的网络级别对应于不同的第一带宽衰减系数。在一种可能的实现方式中,在第一网络级别至第M网络级别分别对应的带宽区间的带宽大小按序减小的情况下,第一网络级别至第M网络级别分别对应的第一带宽衰减系数按序减小。
查询到客户端对应的第一带宽衰减系数之后,在一种可能的实现方式中,则可以根据该第一带宽衰减系数和该客户端的下载速率预测值,确定出待下载的下一目标视频内容的码率(即第一目标码率)。例如,计算第一带宽衰减系数和下载速率预测值的乘积,然后从候选的多路码率中,选择不超过且最接近该乘积值的码率,作为第一目标码率。由此,通过设置不同的第一带宽衰减系数,可以达到控制视频码率的目的,第一网络级别的第一带宽衰减系数大于第四网络级别的第一带宽衰减系数,例如,第一网络级别到第四网络级别分别对应的第一带宽衰减系数为1.5,1.2,1,0.7,则确定出的第一网络级别至第四网络级别对应的视频码率(第一目标码率)依次减小,进而实现了视频码率的分级控制。
在本申请实施例中,基于网络带宽分级的基础上,还提供一种基于水位分级的码率控制机制。在一种可能的实现方式中,控制策略中的控制参数还可以包括多种水位区间分别对应的多个水位系数。多种水位区间基于视频播放过程中的缓冲区长度分别确定,即,本申请实施例中,除根据网络带宽划分多个网络级别以外,还根据视频播放过程中的缓冲区长度,划分出多个水位,同一水位区间对应的多个水位系数与多种网络级别分别对应。其中,可以是不同的网络级别对应不同的水位系数,也可以是多个网络级别中,至少有两个网络级别对应于不同的水位系数。水位系数用于进一步调节不同水位区间对应的视频码率。
多种水位区间包括第一水位区间至第N水位区间,N≥2。在第一水位区间至第N水位区间分别对应的缓冲区长度按序增大的情况下,对应于同一网络级别的多个水位系数按序增大。例如,N=3,即划分出3个水位区间,按照第一网络级别至第四网络级别的顺序,第一低水位区间对应的多个水位系数分别为:0.8,0.7,0.5,0.2;第二水位区间对应的多个水位系数分别为:1,1,0.9,0.8;第三水位区间对应的多个水位系数分别为:1.5,1.2,1.1,1.0,其中对应于第一网络级别的水位系数(按照第一水位区间至第三水位区间的顺序)分别为0.8,1,1.5;对应于第二网络级别的水位系数分别为0.7,1,1.2;对应于第三网络级别的水位系数分别为0.5,0.9,1.1;对应于第四网络级别的水位系数分别为0.2,0.8,1.0。
例如,参阅图3所示,一种可行的水位区间划分方式为,划分为起始水位区间、低水位区间、中水位区间和高水位区间。其中起始水位区间的长度为一个分片的时长,例如一个分片为2-10s,则起始水位区间的长度即为2-10s。低水位区间与中水位区间,以及中水位区间与高水位区间之间的分界点,基于水位划分系数确定。
具体地,在水位区间划分时,可以设置缓冲区长度的参考值和水位划分系数,缓冲区长度的参考值为水位区间的最大值,水位划分系数用于确定不同水位区间之间的分界点,参考值与各水位划分系数分别相乘,即获得多个水位区间。例如,图3中设置缓冲区的参考长度为100s,水位划分系数分别为0.05、0.58、0.85,划分出的多个水位区间为:起始水位区间、低水位区间、中水位区间和高水位区间,起始水位区间为[0s,5s),低水位区间为[5s,58s),中水位区间为[58s,85s),高水位区间为[85s,100s]。再例如,设定缓冲区长度的参考值为200秒(s),在第一水位区间至第N水位区间分别对应的缓冲区长度按序增大的情况下,设置第一水位和第二水位之间的水位划分系数为0.1,第二水位区间与第三水位区间之间的水位划分系数为0.6,第三水位区间与第四水位区间之间的水位划分系数为0.8,则获得的第一至第四水位区间分别为:[0s,20s),[20s,60s),[60s,80s),[80s,100s]。再例如,缓冲区长度的参考值设置为150s,水位划分系数分别设置为0.05、0.3、0.7,则获得的多个水位区间分别为:[0s,7.5s),[7.5s,45s),[45s,105s),[105s,150s]。
在确定多个水位区间和客户端对应的目标网络级别之后,可以在视频播放过程中,基于指定时刻的缓冲区长度,确定指定时刻对应的水位区间作为目标水位区间。确定出目标水位区间后,从目标水位区间对应的多个水位系数中,筛选出与目标网络级别对应的目标水位系数。指定时刻,可以是下载目标视频内容之前的任一时刻。
示例性地,从图3可以看出,当前时刻的缓冲区(带有斜线标示)长度位于低水位区间,因而,当前时刻对应的目标水位区间为低水位区间。确定出目标水位区间为低水位区间后,到控制策略信息中查询低水位区间对应的多个水位系数,将低水位区间对应的多个水位系数中,与客户端对应的目标网络级别对应的水位系数作为目标水位系数,例如,低水位区间对应的多个水位系数(按照第一网络级别至第四网络级别的顺序)分别为:0.8,0.7,0.5,0.2,客户端对应的目标网络级别为第一网络级别,则确定出的目标水位系数即为0.8;若客户端对应的目标网络级别为第三网络级别,则确定出的目标水位系数即为0.5。
下面具体阐述,在视频播放过程中,如何确定待下载的目标视频内容的第一目标码率。
需要说明的是,为描述清楚、防止混淆,本申请实施例中,将视频播放过程中待下载的目标视频内容对应的码率定义为第一目标码率,将视频起播阶段待下载的目标视频内容对应的码率定义为第二目标码率。
基于上述步骤,可以获得客户端对应的第一带宽衰减系数、第二带宽衰减系数、目标水位系数等控制参数,并确定了客户端的下载速率预测值。接下来,可以采用如下几种方式,来进一步基于上述控制参数和相应的算法,来获得待下载的第一目标码率:
方式一:基于第一带宽衰减系数和下载速率预测值,确定目标码率。
针对目标网络级别对应的第一带宽衰减系数与下载速率预测值,执行第四运算,获得第四运算结果,在待下载的目标视频内容对应的多路码率中,选择不超过且最接近第四运算结果的码率,确定为第一目标码率。
例如,第四运算可以是乘积运算,即计算目标网络级别对应的第一带宽衰减系数与下载速率预测值的乘积,选择不超过且最接近乘积值的码率,确定为第一目标码率。
在该种方式中,第四运算不限于乘积运算,还可以是除法运算、指数运算,或者还可以是以第一带宽衰减系数和下载速率预测值为自变量,以第四运算结果为因变量的函数运算。
需要说明的是,在一种可实施方式中,在第四运算结果与第一带宽衰减系数正相关,且第一网络级别至第M网络级别分别对应的带宽区间的带宽大小按序减小的情况下,第一网络级别至第M网络级别分别对应的第一带宽衰减系数按序减小。第四运算结果与第一带宽衰减系数正相关,即第一带宽衰减系数增大,则第四运算结果也随之增大,带宽衰减系数减小,则第四运算结果也随之减小。
若第四运算结果与第一带宽衰减系数负相关,且第一网络级别至第M网络级别分别对应的带宽区间的带宽大小按序减小的情况下,第一网络级别至第M网络级别分别对应的第一带宽衰减系数按序(按照从第一网络级别至第四网络级别的顺序)依次增大。
需要说明的是,在本申请实施例提供了两个层面的分级控制,一层分级为基于网络带宽的分级,第二层分级为基于缓冲区长度的水位分级。前述已经提及,在一种可能的实现方式中,可以仅根据网络带宽进行分级,此种情形下,无需设置水位系数也无需获得目标水位系数,仅通过第一带宽衰减系数的调节来实现对于视频码率的控制。
该种方式即为采用一层分级,仅根据网络带宽划分多个网络级别,无需考虑水位划分问题,通过设置各个网络级别的第一带宽衰减系数,达到分级控制视频码率的目的,该种方式简单易施,复杂度低。
方式二:基于第一带宽衰减系数、目标水位系数、下载速率预测值,确定第一目标码率。
获得目标水位系数后,针对目标网络级别对应的第一带宽衰减系数和目标水位系数,执行预定的第一运算,获得的第一运算结果作为第二带宽衰减系数。例如,第一运算可以是乘积运算,以factor1表示第一带宽衰减系数,以factor2表示第二带宽衰减系数,以blc(buffer level coefficient)表示目标水位系数,则factor1*blc=factor2,假设目标网络级别为第一网络级别,对应设置的factor1=1,目标水位系数为0.8时,则factor2=0.8。第一运算不限于乘积运算,还可以是除法运算、指数运算,或者,还可以是以第一带宽衰减系数和目标水位系数为自变量,以第一运算结果为因变量的函数运算。
接下来,在获得第二带宽衰减系数后,至少根据下载速率和第二带宽衰减系数,确定待下载的目标视频内容对应的第一目标码率。具体地,可以针对第二带宽衰减系数和下载速率执行预定的第二运算,获得的第二运算结果作为第一参考值,至少基于第一参考值,确定待下载的目标视频内容对应的第一目标码率。第二运算也可以是乘积运算,例如,下载速率为1.2Mbps,则第一参考值为1.2Mbps*factor2,当factor2=0.8时,则第一参考值为0.96Mbps。显然,第二运算也不仅限于乘积运算,还可以是除法运算、指数运算,或者,还可以是以第二带宽衰减系数和下载速率预测值为自变量,以第二运算结果为因变量的函数运算。
在第一水位区间至第N水位区间分别对应的缓冲区长度按序增大,且水位系数与第二运算结果正相关的情况下,则对应于同一网络级别的多个水位系数按照从第一水位区间至第N水位区间的顺序依次增大。若水位系数与第二运算结果负相关,则在第一水位区间至第N水位区间分别对应的缓冲区长度按序增大的情况下,同一网络级别的多个水位系数按照从第一水位区间至第N水位区间的顺序依次减小。
在该方式二中,采用两层分级,在网络带宽分级的基础上,进一步进行水位区间的划分,从带宽和缓冲区长度两个维度进行分级控制。在该种实施方式中,第一带宽衰减系数相当于是第二衰减系数的初始值,该初始值可以预先设定,例如不同的网络级别设置不同的第一带宽衰减系数,且按照网络级别分别对应的带宽的大小,按序减小或者按序增大。然后通过水位系数,进一步拉大不同网络级别之间在视频码率选择上的差异性。对应于同一网络级别的不同水位区间的多个水位系数之间的差异越大,则不同水位区间分别对应的视频码率的差异就越大;对应于同一水位区间的不同网络级别的多个水位系数之间的差异越大,则不同网络级别分别对应的视频码率之间的差异就越大。3种水位区间、4种网络级别的划分方式,需要设置3*4个水位系数、4个第一带宽衰减系数。
在该方式二中,基于第二带宽衰减系数和下载速率预测值获得第一参考值之后,可以采用如下几种方式,获得第一目标码率:
方式(1):
在待下载的目标视频内容对应的多路码率中,选择不超过且最接近第一参考值的码率,确定为第一目标码率。
例如,第一参考值为0.96Mbps,而待下载的视频分片对应的多路码率分别为1.2Mbps、0.8Mbps、0.5Mbps,则显然0.8Mbps为不超过且最接近第一参考值的码率,因而待下载的下一个视频分片的码率即确定为0.8Mbps。若当前码率低于0.8Mbps,则执行码率上切操作,若当前码率高于0.8Mbps,则执行码率下切操作。
方式(2):
在待下载的目标视频内容对应的多路码率中,选择不超过第一参考值的至少一路码率作为至少一个候选项,根据客户端对应的目标网络级别、目标水位区间、缓冲状态中的至少一项,从至少一个候选项中确定出所述第一目标码率。
其中,缓冲状态,即缓冲区长度在预定的一小段时隙内的变化状态,例如100ms内的变化状态,或者500ms内的变化状态,包括增长状态或下降状态。视频播放的速度大于缓冲区的增长速度,则视为下降状态,视频播放的速度小于缓冲区增长速度,则视为增长状态。
该方式中,目标网络级别反映了客户端的数据传输能力,也就是带宽大小,目标水位区间反映了当前时刻缓冲区的长度,缓冲状态反映了缓冲区的增长速度与视频播放速度之间的相对快慢,将目标网络级别、目标水位区间和缓冲状态作为码率控制的参考条件,即综合了带宽大小、缓冲区长度和缓冲状态等多方面因素,以进一步从多个码率候选项中选择出与该多方面因素均匹配的码率。
示例性地,具体的控制逻辑可以是:目标网络级别的级别越高(对应的带宽区间中的带宽值越大)、目标水位区间对应的缓冲区的长度越长,和/或,缓冲状态为增长状态,则在至少一个候选项中,优先选择执行上切码率的操作,即优先选择大于当前码率的候选码率作为第一目标码率;目标网络级别的级别越低(对应的带宽区间中的带宽值越小)、目标水位区间对应的缓冲区的长度越短,和/或,缓冲状态为下降状态,则优先选择执行下切码率的操作,即优先选择小于当前码率的候选码率作为第一目标码率。
方式(3):
在该方式中,还针对不同的网络级别设置级别属性。相关技术中采用了倾向于下切码率优先的控制机制,而本申请实施例中,不同的网络级别采用不同的控制机制。具体地,在多种网络级别中,不同的网络级别对应不同的级别属性;在第一网络级别至第M网络级别分别对应的带宽区间的带宽大小按序减小的情况下,第一网络级别对应的级别属性为播放画面质量优先,第M网络级别对应的级别属性为播放流畅度优先。
该方式中,根据客户端对应的目标网络级别对应的级别属性、目标水位区间、缓冲状态中的至少一项,从至少一个候选项中确定出第一目标码率。
该方式(3),相当于在方式(2)基础上附加了级别属性这一项参考因素,当级别属性为流畅度优先时,则优先下切码率,当级别属性为分辨率预先时,则优先上切码率。当级别属性为兼顾流畅度与分辨率时,则倾向于维持当前码率。
下面列举几个具体示例,以进一步说明如何控制码率:
在播放过程中,在下载每个分片前,依据客户端的网络级别,当前缓冲区所在的不同水位区间,如高水位、中水位、低水位,以及缓冲状态,选择下一个分片的码率。
在缓冲区长度处于低水位区间时,各个网络级别对应的水位系数分别为0.8,0.7,0.5,0.4。buffer处于低水位区间且处于下降状态时,选择不上切码率或上切极保守的策略。
对于第一网络级别(带宽最大),第一网络级别对应的级别属性为播放画面质量优先,则倾向选择最高码率的目标视频内容,也可以理解为选择最高的分辨率或者清晰度的目标视屏内容,则第二带宽衰减系数factor2=factor1*0.8,当下载速率为5Mbps,factor1=1时,则第一参考值为5Mbps*1*0.8=4Mbps,从不超过4Mbps的至少一路候选码率中选择第一目标码率。若候选码率为多个,且缓冲区buffer处于增长状态,则最多上切2档码率(从多路候选码率中选择比当前码率大两个档位的码率,一个档位对应于一路码率),若缓冲区buffer处于下降状态,则选择码率保持不变。
对于第二网络级别(带宽较大),第二网络级别对应的级别属性为播放画面质量优先,兼顾流畅度,则倾向选择较高码率,则第二带宽衰减系数factor2=factor1*0.7,当下载速率为2Mbps,factor1=0.8时,则第一参考值为2Mbps*0.8*0.7=1.12Mbps,从不超过1.12Mbps的至少一路候选码率中选择第一目标码率。若候选码率为多个,且缓冲区buffer处于增长状态,则最多上切1档码率(从多路候选码率中选择比当前码率大1个档位的码率,一个档位对应于一路码率),若缓冲区buffer处于下降状态,则选择码率下切一个档位。
对于第三网络级别(带宽较低),级别属性为播放流畅度优先,兼顾分辨率,则倾向选择较低码率;则第二带宽衰减系数factor2=factor1*0.5,当下载速率为1.5Mbps,factor1=0.7时,则第一参考值为1.5Mbps*0.7*0.5=0.52Mbps,从不超过0.52Mbps的至少一路候选码率中选择第一目标码率。若候选码率只有1个,则将该1个候选码率直接作为第一目标码率,若候选码率为多个,且缓冲区buffer处于增长状态,则最多上切1档码率,若缓冲区buffer处于下降状态,则选择码率下切2个档位。若基于当前码率下切两档之后不存在相应的候选码率,则下切一个档位,也就是选择最低码率作为第一目标码率。
对于第四网络级别(带宽最低),级别属性为播放流畅度优先,因而倾向选择最低码率;则第二带宽衰减系数factor2=factor1*0.2,当下载速率为1.2Mbps,factor1=0.6时,则第一参考值为1.2Mbps*0.6*0.4=0.288Mbps,从不超过0.288Mbps的至少一路候选码率中选择第一目标码率。若候选码率只有1个,则将该1个候选码率直接作为第一目标码率,若候选码率为多个,且缓冲区buffer处于增长状态,则最多上切1档码率,若缓冲区buffer处于下降状态,则选择最低码率。若不存在低于0.288Mbps的码率,则直接选择多路码率中的最低码率。
在缓冲区长度处于中水位区间时,各个网络级别对应的水位系数分别为1,1,0.9,0.8。
对于第一网络级别,级别属性为播放画面质量优先,倾向选择最高码率,第二带宽衰减系数factor2=factor1*1,当下载速率为5Mbps,factor1=1时,则第一参考值为5Mbps*1*1=5Mbps,从不超过5Mbps的至少一路候选码率中选择第一目标码率。若候选码率为多个,且缓冲区buffer处于增长状态,则最多上切2档码率,若缓冲区buffer处于下降状态,则选择码率保持不变。其中,图像分辨率和/或视频码率是决定播放画面质量的部分因素,因而播放画面质量优先可以理解为图像分辨率和/或视频码率优先。
对于第二网络级别,级别属性为播放画面质量优先,兼顾流畅度,倾向选择较高码率,第二带宽衰减系数factor2=factor1*1,当下载速率为2Mbps,factor1=0.8时,则第一参考值为2Mbps*0.8*1=1.6Mbps,从不超过1.6Mbps的至少一路候选码率中选择第一目标码率。若候选码率为多个,且缓冲区buffer处于增长状态,则最多上切1档码率,若缓冲区buffer处于下降状态,则选择码率保持不变。
对于第三网络级别,级别属性为播放流畅度优先,兼顾分辨率,倾向选择较低码率,第二带宽衰减系数factor2=factor1*0.9,当下载速率为1.5Mbps,factor1=0.7时,则第一参考值为1.5Mbps*0.7*0.9=0.945Mbps,从不超过0.945Mbps的至少一路候选码率中选择第一目标码率。若候选码率为多个,且缓冲区buffer处于增长状态,则最多上切1档码率,若缓冲区buffer处于下降状态,则下降1档码率。
对于第四网络级别,级别属性为播放流畅度优先,倾向选择最低码率,第二带宽衰减系数factor2=factor1*0.8,当下载速率为1.2Mbps,factor1=0.6时,则第一参考值为1.2Mbps*0.6*0.8=0.576Mbps,从不超过0.576Mbps的至少一路候选码率中选择第一目标码率。若候选码率为多个,且缓冲区buffer处于增长状态,则最多上切1档码率,若缓冲区buffer处于下降状态,则下降1档码率。若候选码率只有1个,则将该1个候选码率直接作为第一目标码率。若不存在低于0.576Mbps的码率,则直接选择多路码率中的最低码率。
在缓冲区长度处于高水位区间时,各个网络级别对应的水位系数分别为1.5,1.2,1.1,1.0。
对于第一网络级别,级别属性为播放画面质量优先,倾向选择最高码率,第二带宽衰减系数factor2=factor1*1.5,当下载速率为5Mbps,factor1=1时,则第一参考值为5Mbps*1.5*1=7.5Mbps,从不超过7.5Mbps的至少一路候选码率中选择第一目标码率。若候选码率为多个,且缓冲区buffer处于增长状态,则最多上切3档码率,若缓冲区buffer处于下降状态,则上切一档码率。高水位对应的控制策略为码率不下降,只会上升或保持码率。
对于第二网络级别,级别属性为播放画面质量优先,兼顾流畅度,倾向选择较高码率,第二带宽衰减系数factor2=factor1*1.2,当下载速率为2Mbps,factor1=0.8时,则第一参考值为2Mbps*0.8*1.2=1.92Mbps,从不超过1.92Mbps的至少一路候选码率中选择第一目标码率。若候选码率为多个,且缓冲区buffer处于增长状态,则最多上切2档码率,若缓冲区buffer处于下降状态,则选择码率保持不变。高水位以及第二网络级别下,对应的控制策略为码率不下降。
对于第三网络级别,级别属性为播放流畅度优先,兼顾分辨率,倾向选择较低码率,第二带宽衰减系数factor2=factor1*1.1,当下载速率为1.5Mbps,factor1=0.7时,则第一参考值为1.5Mbps*0.7*1.1=1.155Mbps,从不超过1.155Mbps的至少一路候选码率中选择第一目标码率。若候选码率为多个,且缓冲区buffer处于增长状态,则最多上切1档码率,若缓冲区buffer处于下降状态,则下降1档码率。
对于第四网络级别,级别属性为播放流畅度优先,倾向选择最低码率,第二带宽衰减系数factor2=factor1*1.0,当下载速率为1.2Mbps,factor1=0.6时,则第一参考值为1.2Mbps*0.6*1.0=0.72Mbps,从不超过0.72Mbps的至少一路候选码率中选择第一目标码率。若候选码率为多个,且缓冲区buffer处于增长状态,则最多上切1档码率,若缓冲区buffer处于下降状态,则下降1档码率。若候选码率只有1个,则将该1个候选码率直接作为第一目标码率。若不存在低于0.576Mbps的码率,则直接选择多路码率中的最低码率。
另外,作为一种可能的实现方式,可以基于buffer(缓冲区实际长度)与缓冲区长度参考值之间的关系,来作为控制码率的辅助参考因素。例如,若buffer超过170s的0.9倍数,保持码率不下降,如果上升一档之后的码率值<下载速率预测值(downloadbandwidth)*factor1*1.5,码率上升一档。
此外,需要补充的是,在一种可能的实现方式中,当buffer(缓冲区实际长度)处于中水位区间或高水位区间中的一段时长内时,保持码率不变,以减少码率来回切换的情况,避免切换过于频繁。例如,buffer在100s(缓冲区长度参考值)的0.9(90s)和1.1倍数(110s)之间时,会出现来回切换码率的情况,因而,在buffer处于90s-110s的区间内,保持码率不变。
需要说明的是,在一种可实施方式中,第一带宽衰减系数,可以为针对不同网络级别而分别预设的常数,可以是固定值。在另外的实施方式中,第一带宽衰减系数可以是因变量,基于调节因子确定。调节因子为用于调节第一带宽衰减系数的常数。可选的,不同的水位区间可以对应于不同的调节因子。具体地,第一带宽衰减系数,可以基于指定时刻的缓冲区长度和第一调节因子确定。下面以低水位区间为例,说明如何根据调节因子确定第一带宽衰减系数。
以低水位区间为例,针对低水位区间分配的调节因子ratio的四个级别的初始值分别为(0.1,0.3,0.5,0.7)。若buffer处于增长状态,缓冲区长度相比于起始水位超过的时长大于一个分片时长(例如10s)的0.75倍时,则设置调节因子ratio的值增加0.2,低水位区间对应的调节因子则由0.3增长为0.5,若buffer降低,则调节因子ratio减小0.2,则若当前的调节因子ratio为0.3,则下降至0.1。确定ratio后,对于任一网络级别,则可以根据预定的函数关系factor1=max(ratio,buffer/58),来获得factor1的值。其中buffer即为当前时刻缓冲区的实际长度(时长),58为低水位区间的最大端点值,该最大端点值也为低水位区间与高水位区间之间的分界值。例如,参阅图3所示,假设当前时刻缓冲区的实际长度为45s,那么factor1=max(ratio,45/58),由于ratio的最大值为0.7,45/58=0.78,因此,factor1=0.78。弱网客户端的缓冲区长度,可能经常处于低水位区间的状态,因而,针对低水位区间设置调节因子,对该水位区间下的factor1进行更精细化的调节,相当于针对弱网客户端施加了特殊的保护手段。该种技术手段可以作为一种独立的控制机制,该机制基于水位区间划分的基础上实施。需要说明的是,基于函数关系factor1=max(ratio,buffer/58),不同网络级别获得的factor1可能是相同的数值,因而,为与多个网络级别的划分机制相适应,在一种可能的实现方式中,该函数关系可以是factor1=[max(ratio,buffer/58)]*factor1,以使得不同的网络级别对应于不同的第一带宽衰减系数,实现基于带宽的网络分级。
综上,控制参数可以包括水位系数、调节因子带宽衰减系数等参数。其中,水位系数包括起始水位系数、低水位系数、中水位系数和高水位系数。各种水位系数值可分别设置为多个级别,例如级别1、级别2、级别3、级别4等,按照从播放清晰度最优先、到播放清晰度最低(流畅度最优先)顺序设置各个级别的水位系数的值。
对于调节因子ratio,也可设置为多个级别,分别对应于级别1、级别2、级别3、级别4等,按照播放清晰度最优先、到播放清晰度最低(流畅度最优先)的顺序依次设置。
带宽衰减系数factor1和factor2,也可以设置为多个级别,按照播放清晰度最优先、到播放清晰度最低(流畅度最优先)的顺序依次设置。
在本申请实施例中,还可以设置各个级别的最低码率。例如,对于四个级别,设置为级别1最低下切到720P分辨率对应的码率,以清晰度优先,级别2最低下切到480P分辨率对应的码率、级别3最低下切到270P分辨率对应的码率,保持流畅度,不降帧;级别4最低下切到270P分辨率对应的码率,同时进行降帧处理,例如降帧到15帧播放。
上述实施方式阐述了视频播放过程中,自适应控制视频码率的策略,本申请实施例中,还提供起播阶段的视频码率控制策略。本申请实施例提供的算法还可以包括起播预推算法,用于依据用户实时的下载速率或者下载速率预测值,确定下载多少缓存的数据才能起播,避免起播后卡顿;还可以包括起播码率选择算法,用于选择基于哪个码率起播,如为减少起播时延,减少起播等待时间,设置起播码率最高不超过480P,同时不低于最近的历史下载速率*0.2等。
对应地,控制参数还可以包括起播调节系数,多个网络级别对应多个起播调节系数;并且,可选的,不同的网络级别对应不同的起播调节系数。
依据起播码率选择算法,在确定了客户端对应的下载速率预测值之后,可以下载速率预测值和起播调节系数,确定视频起播阶段待下载的目标视频内容对应的第二目标码率。具体可以是针对起播调节系数和下载速率预测值执行预定的第三运算,获得的第三运算结果作为第二参考值;在视频起播阶段待下载的目标视频内容对应的多路码率中,选择不超过且最接近第二参考值的码率,确定为第二目标码率。第三运算可以是乘积运算、除法运算、指数运算以及函数运算等等。
例如,第一至第四网络级别对应的起播调节系数分别设为0.5,0.4,0.3,0.2,选择最近一次的历史下载速率作为下载速率预测值,则:
对于第一网络级别,倾向选择最高码率,起播选择低于最近的历史下载速率*0.5的码率,对于第二网络级别,倾向选择较高码率,起播选择低于最近的历史下载速率*0.4的码率;对于第三网络级别,倾向选择较低码率,起播选择低于最近的历史下载速率*0.3的码率,对于第四网络级别,倾向选择最低码率,如起播选择低于最近的历史下载速率*0.2的码率的视频数据流。如此,设定客户端对应的最近一次的下载速率为1.5Mbps,执行乘积运算,则四个网络级别分别对应的第二目标码率为:1.5Mbps*0.5,1.5Mbps*0.4,1.5Mbps*0.3,1.5Mbps*0.2,分别为0.75Mbps,0.6Mbps,0.45Mbps,0.3Mbps。
起播阶段若无法查询到历史下载速率,即无历史带宽,则从多路码率中选择最低码率开始起播。
依据起播预推算法,确定第二目标码率之后,可以根据客户端对应的网络级别、下载速率预测值和第二目标码率之间的数量关系,确定起播前的缓存数据量。相应的控制逻辑可以是:网络级别对应的带宽区间的带宽值越大,和/或,下载速率预测值相比于第二目标码率的比值越大,则在起播前需下载的缓存数据对应的播放时长越短。反之,则在起播前需下载的缓存数据对应的播放时长越长。
例如,对于第一网络级别,倾向选择最快起播,若下载速率预测值是码率的3倍,则下载800ms缓存数据后再起播,下载速率预测值是分辨率/码率的2倍,下载1200ms缓存数据起播,历史下载带宽是分辨率/码率的1倍,下载4000ms缓存数据起播;其中,下载速率预测值可以是最近一次的历史下载速率,也可以是多次历史下载速率的调和平均数或算术平均值。
对于第二网络级别,倾向选择较快起播,若下载速率预测值是码率的5倍,则下载800ms缓存数据后起播,下载速率预测值是码率的3倍,下载1200ms缓存数据后起播,下载速率预测值是码率的2倍,下载4000ms缓存数据起播;下载速率预测值是码率的1倍,下载6000ms缓存数据起播;
对于第三网络级别,倾向选择较慢起播,优先保障起播后不卡顿。若下载速率预测值是码率的8倍,下载800ms缓存数据即起播,下载速率预测值是码率的5倍,下载1200ms缓存数据即起播,下载速率预测值是码率的3倍,下载4000ms缓存数据后起播,下载速率预测值是码率的1倍,下载8000ms缓存数据后起播。
对于第四网络级别,倾向选择最慢起播,保证起播后流畅度,若下载速率预测值是码率的10倍,则下载800ms缓存数据后即起播,下载速率预测值是码率的6倍,下载1200ms缓存数据后起播,下载速率预测值是码率的4倍,下载4000ms缓存数据后起播,下载速率预测值是码率的1倍,下载10000ms缓存数据后起播。
在本申请实施例中,客户端还向云侧(服务器)上传播放质量数据。客户端记录播放质量数据,并将播放质量数据上传至服务器。播放质量数据可以包括起播时延、卡顿率、码率、分辨率、播放成功率、下载速率、目标网络级别中的至少一项,其中下载速率可以是下载速率预测值,也可以是预设时长或者多个指定时刻的实际的下载速率的平均值。客户端上传的时机可以是在起播阶段、视频播放结束后上传,或者,在视频播放过程中实时上传。可选的,上传的播放质量数据中,还可以包括客户端所对应的网络分级以及实际采用的控制策略,例如实际采用的当前网络分级的算法、控制参数(第一带宽衰减系数、第二带宽衰减系数、水位系数、调节因子、起播调节系数等)。云侧的第二服务器可根据多个客户端上传的播放质量数据,按照网络级别分类统计,统计出各个网络分级段的关键播放质量数据(起播时延、播放卡顿率、播放成功率等),获得播放体验关键指标。然后,基于播放体验关键指标的统计结果,更新控制策略,并将更新后的控制策略同步到第一服务器。或者,第二服务器将统计出的各网络分级段的播放质量或播放体验关键指标,同步到第一服务器,由第一服务器基于各网络分级段的播放质量或播放体验关键指标,调整设置最优的控制策略,并将更新后的控制策略下发到客户端,下发的控制策略实时生效。上述播放质量数据上报机制,可以通过基于网络分级的播放质量数据信息上报协议实现。
综上,本申请实施例提供的视频码率控制方案中,客户端一侧执行的操作可以包括:
S401,获取控制策略信息;
S402,确定下载速率预测值;
S403,确定目标网络级别;
S404,根据目标网络级别,确定控制策略;
S405,起播阶段,选择起播码率、缓存数据时长;
S406,播放过程中,选择下一个分片码率;
S407,起播/播放过程中/播放结束,上报播放质量数据。之后,在下一次启动或者接收到更新通知后,再次向服务器获取控制策略(至少是第一带宽衰减系数等控制参数)。并且,服务器根据上报的播放质量数据,调整控制策略信息。
从服务器一侧(第一服务器和/或第二服务器)角度描述,本申请实施例提供的基于网络分级的视频码率控制方法,可以包括:生成控制策略信息,控制策略信息中至少包含多种网络级别分别对应的控制参数,控制参数至少包括第一带宽衰减系数。其中,多种网络级别对应多个带宽区间;以及,多种网络级别中不同的网络级别对应不同的第一带宽衰减系数。目标网络级别对应的第一带宽衰减系数和该客户端对应的下载速率预测值,用于确定待下载的目标视频内容对应的第一目标码率;目标网络级别基于所述下载速率预测值对应的带宽区间确定。在另外的实施方式中,服务器还可以生成基于网络分级的控制逻辑和算法。
接下来,至少将控制参数并下发至客户端。具体地,响应于客户端发送的用于获取控制策略信息的请求,向客户端下发控制策略信息;或者,在检测到控制策略信息有更新后,下发更新通知至客户端;控制策略信息中至少包含多种网络级别分别对应的第一带宽衰减系数;以使客户端基于控制策略信息,确定多种网络级别分别对应的第一带宽衰减系数。
需要说明的是,一种可能的实现方式中,控制策略中的控制参数、控制逻辑和算法,可以由服务器生成并下发至客户端,客户端采用的控制策略都是从服务器远程获取。在另外的实现方式中,服务器仅负责下发控制参数,控制逻辑和算法可以作为客户端播放器的软件功能模块,即服务器仅需生成控制参数,并根据客户端上报的播放质量数据更新或者调整相应的控制参数,并下发至客户端。该种方式,可以降低客户端与服务器之间的通信成本。例如实现算法和控制逻辑等信息的传输,会消耗一定的通信资源,增加数据维护的难度。
参阅图5所示,本申请实施例提供的基于网络分级的视频码率控制方法,用户、客户端(APP)以及云侧的播放策略服务器(第一服务器)、视频运营管理系统(第二服务器)、播放质量分析服务器、CDN系统之间的信令交互流程可以包括:
S501,播放策略服务器生成基于网络分级的控制策略;
S502,APP获取控制策略;
APP启动后,向播放策略服务器发起获取基于网络分级的自适应算法播放策略的请求,或播放策略服务器下发更新通知,APP收到通知后实时向播放策略服务器获取基于网络分级的自适应算法播放策略;
S503,播放策略服务器返回结果;
S504,用户点击一个视频内容,发出播放指令;
S505,APP向视频运营管理系统发起播放鉴权请求;
S506,视频运营管理系统返回视频播放鉴权结果信息到APP;
播放鉴权通过,APP将基于网络分级的控制策略信息设置到播放策略控制模块,需要注意的是,若播放器常驻内存,则在APP获取到控制策略信息后即可向播放器设置。
S507,APP确定目标网络级别;
APP的播放策略控制模块,基于网络分级的播放策略,依据用户播放的历史带宽信息,确定其网络分级的码率以及相关控制参数,选择起播码率的码流并下载;
S508,APP基于目标网络级别对应的控制策略,确定下一个分片码率;
S509,APP向CDN系统请求获取相应码率的视频分片;
在起播或者播放过程中,用户的带宽下载速率可以获取到,在下载视频播放的下一个分片前,依据当前的用户带宽下载速率,确定其网络分级的控制策略,选择起播或播放过程中的码率,向CDN发起下载请求。
若用户首次播放,无历史带宽下载速率,则选择最低档的码率,向CDN发起下载请求;
S510,CDN系统返回选择码率的视频分片到APP;
S511,APP的播放器播放视频;
S512,APP向播放质量分析服务器上报播放质量数据;
APP向播放质量分析服务器上报本次播放的质量数据,包括起播时延、卡顿率、分辨率、码率、对应的网络级别的控制策略信息,云侧播放质量分析服务器对上报数据统计分析,基于统计结果,云侧更新控制策略,并下发(实时生效);
S513,播放质量分析服务器返回响应结果;
S514,播放质量分析服务器进行播放质量数据分析,获得播放体验关键指标;
播放质量分析服务器对大规模的用户上报信息,进行大数据分析,得到各个网络分级段的起播时延、无卡顿比、播放成功率、各分辨率(如1080P蓝光、720P高清、480P标清等)的播放时长、分辨率/码率的切换信息等,作为播放体验关键指标;
S515,播放质量分析服务器同步播放质量数据和/或播放体验关键指标至播放策略服务器;
播放质量分析服务器将不同网络分级段的播放质量数据按周期同步到播放策略服务器,例如每隔预定时长同步一次,预定时长可以是8小时、12小时、24小时等等。
S516,播放策略服务器更新控制策略;
播放策略服务器依据不同网络分级段的播放质量数据,调整不同网络分级段的控制策略,调整后的控制策略保存到策略库中。
S517,播放策略服务器向APP发送更新通知。
APP收到更新通知后,实时向播放策略服务器获取控制策略。或者,APP启动后,向播放策略服务器发起获取控制策略的请求。
综上,本申请实施例提供的基于网络分级的视频码率控制方法中,至少提出了如下几点:
基于网络分级的自适应控制策略,控制策略中包括各种算法。各种算法包括下载带宽预估算法(预测下载速率预测值)、起播码率算法、起播缓存数据时长预测算法、播放过程中不同缓冲区水位码率切换算法等,控制策略还包括控制参数,控制参数可以是带宽衰减系数factor、水位系数、调节因子ratio、最低下切码率等。
基于带宽的多个网络级别划分,例如级别1(播放清晰度最优先、激进)、级别2(播放清新度较好、较激进)、级别3(播放清晰度一般,流畅度要求高于清晰度、较保守)、级别4(流畅度最优先,播放清晰度最低,保守)等级别。服务器一侧可以具体设置各个网络级别分别对应的控制参数以及算法等。对于弱网用户以低清晰度/低码率且不上切清晰度为控制原则,强网络用户以提升播放高清晰度(如蓝光)的播放时长比例为原则进行控制。网络带宽分级个数、各网络带宽分级段可以灵活设置调整。
视频APP在起播及播放过程中,依据用户的网络带宽,确定其所在网络分级的码率、算法及参数,选择最优码率的码流分片下载播放。在起播阶段,依据之前记录的用户的历史带宽下载速率,确定其网络分级,若用户无历史带宽下载速率,则采用网络分级最低档的码率。在播放中,用户的带宽下载速率可以获取到,在下载视频播放的下一个分片前,依据当前的用户带宽下载速率,确定其对应的网络级别,进而确定该级别对应的算法及因子参数等,通过控制策略选择码率。
APP在启动时,向播放策略服务器获取控制策略。或当服务器侧更改策略后,实时同步到APP的播放策略控制模块,实时生效。
APP驻有播放质量上报模块,用于上报不同网络带宽分级的播放关键质量数据(起播时延、卡顿率、分辨率/码率,以及对应的网络级别的策略信息,云侧对上报数据进行统计分析,获得基于网络分级的体验指标统计结果,更新策略并下发。
本申请实施例提供的视频码率控制方案,至少达到了如下技术效果:
解决了现有自适应算法中,弱网用户播放卡顿率高的技术问题。现有自适应算法虽倾向于弱网,但算法较为保守,以播放流畅度优先,对弱网没有特殊的保护,与网络好用户采用相同的算法、因子系数,使得弱网用户的播放流畅度较差,降低了整体系统的KPI。而本申请实施例中,为弱网用户提供独立的控制策略,使弱网完全以观看流畅度为目标,有效提升了弱网用户的播放体验。经实测统计,基于本申请实施例提供的方案,可以改善弱网用户体验,减少弱网客户端的播放卡顿次数,提升整体KPI。
解决了现有播放码率自适应算法以播放流畅度优先,清晰度上切保守而导致带宽资源充足的用户不能充分利用带宽,观看高画质的比率不高的问题。本申请实施例通过依据用户网络分级的自适应算法,对强网络用户最大化利用用户带宽,保持卡顿比、起播时延不下降同时,有效提升用户观看高清晰度分辨率的播放占比,提升用户体验。例如,在10Mb网络带宽下,播放蓝光画质的比例由80%提升至92%。
需要补充说明的是,本申请实施例提供的视频码率控制方案,可以采用如下方式获取侵权证据:
方式一,通过APP日志来分析侵权证据。
1)APP使用基于网络分级自适应播放的信息日志:APP的日志需要保存用户网络带宽、所处的网络级别、及此网络级别对应的算法、控制参数。
2)基于网络分级的控制策略获取的信息日志:APP向播放策略服务器获取基于网络分级的控制策略,记录的相关日志信息。
方式二,通过测试桩来分析侵权证据。
测试桩1:以APP的角度,对APP端侧测试,是否在APP启动等其他过程中,获取了基于网络分级的控制策略,通过抓包的数据进行分析,云侧下发了基于网络分级的控制策略。
测试桩2:以服务器的角度,测试播放质量分析服务器,是否同步基于用户网络分级的用户播放质量数据信息(包括用户网络带宽、所在的网络级别、采用的算法、因子参数级别、播放质量KPI如起播时延、卡顿率等)。
本申请实施例还提供一种电子设备,可以包括:处理器;存储器;至少一个应用程序;以及一个或多个计算机程序,其中所述一个或多个计算机程序被存储在存储器中,一个或多个计算机程序包括指令。其中,当所述指令被执行时,电子设备可以是终端设备或者服务器,可以执行基于客户端执行的实施例中任一项所述的方法,或者执行基于服务器执行的实施例中的任一项所述的方法。
当电子设备为终端设备时,该终端设备的一种可行的产品硬件架构参阅图6所示,该终端设备的硬件架构可以包括:
显示屏61,用于显示正在播放的视频图像。具体地,显示屏61可以包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organiclight-emitting diode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrix organic light emitting diode的,AMOLED),柔性发光二极管(flexlight-emitting diode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot light emitting diodes,QLED)等。在一些实施例中,终端设备可以包括至少一个显示屏61。
处理器62,包括一个或多个处理单元。例如:处理器62可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,数字信号处理器(digital signal processor,DSP)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
存储器63,用于存储控制策略中的控制参数、网络分级信息以及算法等,还用于存储待播放的视频的缓存数据等。存储器63可以是独立于所述处理器62的外置存储器,也可以是设置于处理器62中。例如,在一些实施例中,内置于处理器62中的存储器可以是高速缓冲存储器,用于保存处理器62刚用过或循环使用的指令或数据。如果处理器62需要再次使用该指令或数据,可从高速缓冲存储器中直接调用。避免了重复存取,减少了处理器62的等待时间。
存储器可以是只读存储器(read-only memory,ROM)、可存储静态信息和指令的其它类型的静态存储设备、随机存取存储器(random access memory,RAM)或可存储信息和指令的其它类型的动态存储设备,也可以是电可擦可编程只读存储器(electricallyerasable programmable read-only memory,EEPROM)、只读光盘(compact disc read-only memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其它磁存储设备,或者还可以是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质等。
电源管理模块64,接收电池和/或充电管理模块的输入,为处理器62,存储器63,显示屏61供电。电源管理模块64还可以用于监测电池容量,电池循环次数,电池健康状态(漏电,阻抗)等参数。在其他一些实施例中,电源管理模块64也可以设置于处理器62中。在另一些实施例中,电源管理模块64和充电管理模块也可以设置于同一个器件中。
扬声器65,以及音频电路68,所述扬声器65通过音频电路68与处理器62连接,用于播放声音。
输入单元66,输入单元66用于输入用户的针对视频内容的选中指令以及开始播放指令等。具体地,作为一种可实现方式,输入单元66可以与显示屏61集成为触摸显示屏;输入单元66也可以包括压力传感器(图6中未示出),通过压力传感器来感受用户产生的压力信号,可以将压力信号转换成电信号,完成用户指令输入。在一些实施例中,压力传感器可以设置于显示屏61。压力传感器的种类很多,如电阻式压力传感器,电感式压力传感器,电容式压力传感器等。当有触摸操作作用于显示屏61,终端设备60根据压力传感器检测所述触摸操作强度。终端设备60也可以根据压力传感器的检测信号计算触摸的位置。在一些实施例中,作用于相同触摸位置,但不同触摸操作强度的触摸操作,可以对应不同的操作指令。例如:当有触摸操作强度超过第一压力阈值的触摸操作作用于相应的按钮时,视为用户发出了相应的指令,例如用户点击开锁按钮的操作力度大于第一压力阈值时,视为用户发出开始播放的指令。
无线通信单元67,用于与服务器进行无线通信,例如具体用于与服务器进行交互以获取控制策略信息,以及接收视频内容数据。无线通信单元67可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块经由天线接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器62。无线通信单元67还可以从处理器62接收待发送的信号,对其进行调频,放大,经天线转为电磁波辐射出去。
在一种可实现方式中,处理器62可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integratedcircuit sound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,通用输入输出(general-purpose input/output,GPIO)接口,和/或通用串行总线(universal serialbus,USB)接口等。
其中,处理器62可以包含多组I2C总线,处理器62可以通过不同的I2C总线接口耦合多个模块。例如:处理器62可以通过I2C接口耦合显示屏61,使处理器62与显示屏61通过I2C总线接口通信。
在一种可实现方式中,处理器62可以包含多组I2S总线,I2S接口可以用于音频通信。处理器62可以通过I2S总线与音频电路68耦合,实现处理器62与音频电路68之间的通信,进而使得扬声器65受控发声。
可以理解的是,本申请实施例各附图示意的结构并不构成对终端设备的限定。在本申请另一些实施例中,终端设备还可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
本申请实施例还提供一种计算机存储介质,包括计算机指令,当所述计算机指令在电子设备上运行时,使得所述电子设备执行如上述任一项方法。
本申请实施例还提供一种芯片系统,包括:通信接口,用于输入和/或输出信息;处理器,用于执行计算机可执行程序,使得安装有所述芯片系统的设备执行上述任一项方法。
本申请实施例还提供一种软件程序产品,软件程序产品包括程序指令,当程序指令在电子设备上运行时,使得电子设备执行上述任一项方法。
应理解,在本申请的各实施例中,“第一”、“第二”‘第三’等仅是为了指代不同的对象,并不表示对指代的对象有其它限定。
应理解,本申请实施例中的术语“单元”可以通过软件和/或硬件形式实现,对此不作具体限定。例如,“单元”可以是实现上述功能的软件程序、硬件电路或二者结合。所述硬件电路可能包括应用特有集成电路(application specific integrated circuit,ASIC)、电子电路、用于执行一个或多个软件或固件程序的处理器(例如共享处理器、专有处理器或组处理器等)和存储器、合并逻辑电路和/或其它支持所描述的功能的合适组件。
因此,在本申请的实施例中描述的各示例的单元,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示单独存在A、同时存在A和B、单独存在B的情况。其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项”及其类似表达,是指的这些项中的任意组合,包括单项或复数项的任意组合。例如,a,b和c中的至少一项可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
本领域普通技术人员可以意识到,本文中公开的实施例中描述的各单元及算法步骤,能够以电子硬件、计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,任一功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。本申请的保护范围应以所述权利要求的保护范围为准。
Claims (26)
1.一种基于网络分级的视频码率控制方法,其特征在于,应用于客户端,所述方法包括:
确定多种网络级别分别对应的第一带宽衰减系数;其中,所述多种网络级别对应多个带宽区间,所述多种网络级别中不同的网络级别对应不同的第一带宽衰减系数;
确定所述客户端对应的目标网络级别;
获取所述客户端对应的下载速率预测值;
至少根据所述目标网络级别对应的第一带宽衰减系数和所述下载速率预测值,确定待下载的目标视频内容对应的第一目标码率。
2.如权利要求1所述的方法,其特征在于,所述确定所述客户端对应的目标网络级别,包括:
查询所述客户端当前时刻的实时下载速率;
将所述实时下载速率所属的带宽区间对应的网络级别,确定为所述客户端对应的目标网络级别。
3.如权利要求1所述的方法,其特征在于,所述获取所述客户端对应的下载速率预测值,包括:
查询带宽窗口列表中所述客户端对应的多个历史下载速率,基于所述多个历史下载速率,计算调和平均数或者算术平均值;
将所述调和平均数或所述算术平均值,确定为所述客户端对应的下载速率预测值。
4.如权利要求1所述的方法,其特征在于,
所述多种网络级别,包括第一网络级别至第M网络级别,M≥2;其中,在第一网络级别至第M网络级别分别对应的带宽区间的带宽大小按序减小的情况下,所述第一网络级别至第M网络级别分别对应的第一带宽衰减系数按序减小。
5.如权利要求1所述的方法,其特征在于,所述方法还包括:
确定多种水位区间,以及所述多种水位区间分别对应的多个水位系数;其中,所述多种水位区间基于视频播放过程中的缓冲区长度确定;同一水位区间对应的多个水位系数与所述多种网络级别分别对应;同一网络级别对应的多个水位系数与所述多种水位区间分别对应;
所述确定所述客户端对应的目标网络级别之后,所述至少根据所述目标网络级别对应的第一带宽衰减系数和所述下载速率预测值,确定待下载的目标视频内容对应的第一目标码率之前,所述方法还包括:
视频播放过程中,基于指定时刻的缓冲区长度,确定所述指定时刻对应的目标水位区间;其中,所述指定时刻,为下载所述目标视频内容之前的任一时刻;
从所述目标水位区间对应的多个水位系数中,筛选出与所述目标网络级别对应的目标水位系数;
所述至少根据所述目标网络级别对应的第一带宽衰减系数和所述下载速率,确定待下载的目标视频内容对应的第一目标码率,包括:
根据所述目标网络级别对应的第一带宽衰减系数、所述下载速率预测值和所述目标水位系数,确定待下载的目标视频内容对应的第一目标码率。
6.如权利要求5所述的方法,其特征在于,所述根据所述目标网络级别对应的第一带宽衰减系数、所述下载速率预测值和所述目标水位系数,确定待下载的目标视频内容对应的第一目标码率,包括:
针对所述目标网络级别对应的所述第一带宽衰减系数和所述目标水位系数,执行预定的第一运算,获得的第一运算结果作为第二带宽衰减系数;
至少根据所述下载速率和所述第二带宽衰减系数,确定待下载的目标视频内容对应的第一目标码率。
7.如权利要求6所述的方法,其特征在于,
所述多种水位区间包括第一水位区间至第N水位区间,N≥2;其中,在所述第一水位区间至所述第N水位区间分别对应的缓冲区长度按序增大的情况下,对应于同一网络级别的多个水位系数按序增大。
8.如权利要求6所述的方法,其特征在于,所述至少根据所述下载速率和所述第二带宽衰减系数,确定待下载的目标视频内容对应的第一目标码率,包括:
针对所述第二带宽衰减系数和所述下载速率执行预定的第二运算,获得的第二运算结果作为第一参考值;至少基于所述第一参考值,确定待下载的目标视频内容对应的第一目标码率。
9.如权利要求8所述的方法,其特征在于,所述至少基于所述第一参考值,确定待下载的目标视频内容对应的第一目标码率,包括:
在所述待下载的目标视频内容对应的多路码率中,选择不超过且最接近所述第一参考值的码率,确定为所述第一目标码率。
10.如权利要求8所述的方法,其特征在于,所述至少基于第一参考值,确定待下载的目标视频内容对应的第一目标码率,包括:
在所述待下载的目标视频内容对应的多路码率中,选择不超过所述第一参考值的至少一路码率作为至少一个候选项;
根据所述客户端对应的目标网络级别、目标水位区间、缓冲状态中的至少一项,从所述至少一个候选项中确定出所述第一目标码率;其中所述缓冲状态,用于表征缓冲区长度的变化状态,包括增长状态或下降状态。
11.如权利要求10所述的方法,其特征在于,
在所述多种网络级别中,不同的网络级别对应不同的级别属性;在第一网络级别至第M网络级别分别对应的带宽区间的带宽大小按序减小的情况下,所述第一网络级别对应的级别属性为播放画面质量优先,所述第M网络级别对应的级别属性为播放流畅度优先;其中,所述播放画面质量基于图像分辨率和/或视频码率确定;
所述根据所述客户端对应的目标网络级别、目标水位区间、缓冲状态中的至少一项,从所述至少一个候选项中确定出所述第一目标码率,包括:
所述根据所述客户端对应的目标网络级别对应的级别属性、目标水位区间、缓冲状态中的至少一项,从所述至少一个候选项中确定出所述第一目标码率。
12.如权利要求5所述的方法,其特征在于,所述方法还包括:
确定调节因子,所述调节因子基于缓冲区状态确定,用于调节所述第一带宽衰减系数;其中,所述缓冲区状态包括增长状态或下降状态。
13.如权利要求12所述的方法,其特征在于,
所述第一带宽衰减系数,基于所述指定时刻的缓冲区长度和所述调节因子确定。
14.如权利要求5-13中任一项所述的方法,其特征在于,所述方法还包括:
确定水位划分系数;所述水位划分系数,用于确定不同水位区间之间的分界点。
15.如权利要求1所述的方法,其特征在于,
所述第一目标码率为视频播放过程中待下载的目标视频内容对应的码率;
所述至少根据所述目标网络级别对应的第一带宽衰减系数和所述下载速率预测值,确定待下载的目标视频内容对应的第一目标码率之前,所述方法还包括:
确定所述多个网络级别对应的多个起播调节系数;所述多个网络级别中,不同的网络级别对应不同的起播调节系数;
基于所述下载速率预测值和所述起播调节系数,确定视频起播阶段待下载的目标视频内容对应的第二目标码率。
16.如权利要求15所述的方法,其特征在于,所述基于所述下载速率预测值和所述起播调节系数,确定视频起播阶段待下载的目标视频内容对应的第二目标码率,包括:
针对所述起播调节系数和所述下载速率预测值执行预定的第三运算,获得的第三运算结果作为第二参考值;
在所述视频起播阶段待下载的目标视频内容对应的多路码率中,选择不超过且最接近所述第二参考值的码率,确定为所述第二目标码率。
17.如权利要求16所述的方法,其特征在于,所述确定视频起播阶段待下载的目标视频内容对应的第二目标码率之后,所述方法还包括:
根据所述下载速率预测值和所述第二目标码率,确定起播前的缓存数据量。
18.如权利要求1-13、15-17中任一项所述的方法,其特征在于,所述方法还包括:
获取播放质量数据,所述播放质量数据包括起播时延、卡顿率、码率、分辨率、播放成功率、下载速率、目标网络级别中的至少一项;
将所述播放质量数据上传至服务器。
19.如权利要求1-13、15-17中任一项所述的方法,其特征在于,所述确定多种网络级别分别对应的第一带宽衰减系数,包括:
响应于服务器下发的更新通知或者在所述客户端启动后,向服务器发送获取控制策略信息的请求;所述更新通知用于表征所述控制策略信息待更新;所述控制策略信息中包括所述多种网络级别分别对应的第一带宽衰减系数;
基于所述控制策略信息,确定所述多种网络级别分别对应的第一带宽衰减系数。
20.一种基于网络分级的视频码率控制方法,其特征在于,应用于服务器,所述方法包括:
确定多个带宽区间以及所述多个带宽区间对应的多个网络级别;
生成所述多种网络级别分别对应的第一带宽衰减系数,下发至客户端;其中,所述多种网络级别中不同的网络级别对应不同的第一带宽衰减系数;所述第一带宽衰减系数,用于调控待下载至客户端的目标视频内容对应的第一目标码率。
21.如权利要求20所述的方法,其特征在于,所述方法还包括:
接收所述客户端上传的播放质量数据;所述播放质量数据包括起播时延、卡顿率、码率、分辨率、播放成功率、下载速率、目标网络级别中的至少一项。
22.如权利要求20所述的方法,其特征在于,所述生成所述多种网络级别分别对应的第一带宽衰减系数之后,所述方法还包括:
响应于所述客户端发送的用于获取控制策略信息的请求,向客户端下发控制策略信息;或者,在检测到控制策略信息有更新后,下发更新通知至所述客户端;所述控制策略信息中至少包含所述多种网络级别分别对应的第一带宽衰减系数。
23.一种电子设备,其特征在于,所述电子设备包括:
一个或多个处理器;存储器;至少一个应用程序;以及一个或多个计算机程序,其中所述一个或多个计算机程序被存储在所述存储器中,所述一个或多个计算机程序包括指令,当所述指令被所述电子设备执行时,使得所述电子设备执行如权利要求1-18或19-21中任一项所述的方法。
24.一种存储介质,其特征在于,包括计算机指令,当所述计算机指令在电子设备上运行时,使得所述电子设备执行如权利要求1-19或20-22中任一项所述的方法。
25.一种芯片系统,其特征在于,包括:
通信接口,用于输入和/或输出数据;
处理器,用于执行计算机可执行程序,使得安装有所述芯片系统的设备执行如权利要求1-19或20-22中任一项所述的方法。
26.一种软件程序产品,其特征在于,所述软件程序产品包括程序指令,当所述程序指令在电子设备上运行时,使得所述电子设备执行如权利要求1-19或20-22中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110927016.7A CN115914756A (zh) | 2021-08-12 | 2021-08-12 | 基于网络分级的视频码率控制方法和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110927016.7A CN115914756A (zh) | 2021-08-12 | 2021-08-12 | 基于网络分级的视频码率控制方法和设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115914756A true CN115914756A (zh) | 2023-04-04 |
Family
ID=86496056
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110927016.7A Pending CN115914756A (zh) | 2021-08-12 | 2021-08-12 | 基于网络分级的视频码率控制方法和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115914756A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117596234A (zh) * | 2023-09-28 | 2024-02-23 | 书行科技(北京)有限公司 | 一种多人会话方法及装置 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102439578A (zh) * | 2009-03-18 | 2012-05-02 | 丛林网络公司 | 动态可变速率媒体传送系统 |
CN105451075A (zh) * | 2014-08-27 | 2016-03-30 | 北京大学 | 视频质量控制方法和装置 |
US20170078348A1 (en) * | 2015-09-10 | 2017-03-16 | Openwave Mobility Inc. | Intermediate network entity for controlling bandwidth for an adaptive bit rate stream |
CN109040801A (zh) * | 2018-07-19 | 2018-12-18 | 北京达佳互联信息技术有限公司 | 媒体码率自适应方法、装置、计算机设备及存储介质 |
CN109218781A (zh) * | 2017-07-07 | 2019-01-15 | 华为软件技术有限公司 | 视频码率控制方法和装置 |
CN109996087A (zh) * | 2019-03-21 | 2019-07-09 | 武汉大学 | 一种基于有限状态机的面向视频直播的码率自适应方法及装置 |
CN110248247A (zh) * | 2019-06-12 | 2019-09-17 | 深圳市大数据研究院 | 基于网络吞吐量的嵌入式动态视频播放控制方法及装置 |
CN110430453A (zh) * | 2019-08-28 | 2019-11-08 | 咪咕视讯科技有限公司 | 视频多码率切换处理方法、装置、电子设备及存储介质 |
CN110662093A (zh) * | 2019-10-17 | 2020-01-07 | 北京达佳互联信息技术有限公司 | 一种初始码率确定方法、装置、电子设备及存储介质 |
CN112866752A (zh) * | 2021-01-06 | 2021-05-28 | 深圳市信义科技有限公司 | 一种视频码流自适应网络带宽方法、装置、设备及介质 |
CN113014969A (zh) * | 2019-12-19 | 2021-06-22 | 华为技术有限公司 | 视频播放的控制方法、终端设备、服务器和存储介质 |
-
2021
- 2021-08-12 CN CN202110927016.7A patent/CN115914756A/zh active Pending
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102439578A (zh) * | 2009-03-18 | 2012-05-02 | 丛林网络公司 | 动态可变速率媒体传送系统 |
CN105451075A (zh) * | 2014-08-27 | 2016-03-30 | 北京大学 | 视频质量控制方法和装置 |
US20170078348A1 (en) * | 2015-09-10 | 2017-03-16 | Openwave Mobility Inc. | Intermediate network entity for controlling bandwidth for an adaptive bit rate stream |
CN109218781A (zh) * | 2017-07-07 | 2019-01-15 | 华为软件技术有限公司 | 视频码率控制方法和装置 |
CN109040801A (zh) * | 2018-07-19 | 2018-12-18 | 北京达佳互联信息技术有限公司 | 媒体码率自适应方法、装置、计算机设备及存储介质 |
CN109996087A (zh) * | 2019-03-21 | 2019-07-09 | 武汉大学 | 一种基于有限状态机的面向视频直播的码率自适应方法及装置 |
CN110248247A (zh) * | 2019-06-12 | 2019-09-17 | 深圳市大数据研究院 | 基于网络吞吐量的嵌入式动态视频播放控制方法及装置 |
CN110430453A (zh) * | 2019-08-28 | 2019-11-08 | 咪咕视讯科技有限公司 | 视频多码率切换处理方法、装置、电子设备及存储介质 |
CN110662093A (zh) * | 2019-10-17 | 2020-01-07 | 北京达佳互联信息技术有限公司 | 一种初始码率确定方法、装置、电子设备及存储介质 |
CN113014969A (zh) * | 2019-12-19 | 2021-06-22 | 华为技术有限公司 | 视频播放的控制方法、终端设备、服务器和存储介质 |
CN112866752A (zh) * | 2021-01-06 | 2021-05-28 | 深圳市信义科技有限公司 | 一种视频码流自适应网络带宽方法、装置、设备及介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117596234A (zh) * | 2023-09-28 | 2024-02-23 | 书行科技(北京)有限公司 | 一种多人会话方法及装置 |
CN117596234B (zh) * | 2023-09-28 | 2024-05-28 | 书行科技(北京)有限公司 | 一种多人会话方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230283653A1 (en) | Methods and apparatus to reduce latency for 360-degree viewport adaptive streaming | |
US11595458B2 (en) | Adaptive bit rate media streaming based on network conditions received via a network monitor | |
US10110650B2 (en) | Client side stream switching | |
US11496538B2 (en) | Spatially unequal streaming | |
US9402114B2 (en) | System and method for providing randomization in adaptive bitrate streaming environments | |
US20130304934A1 (en) | Methods and systems for controlling quality of a media session | |
US20070133405A1 (en) | Congestion controller for network transmissions | |
CA2888218C (en) | Playback stall avoidance in adaptive media streaming | |
EP2300928B1 (en) | Client side stream switching | |
US20080133766A1 (en) | Method and apparatus for streaming media to a plurality of adaptive client devices | |
US9521178B1 (en) | Dynamic bandwidth thresholds | |
US20140181266A1 (en) | System, streaming media optimizer and methods for use therewith | |
US20140143823A1 (en) | Situation-dependent dynamic bit rate encoding and distribution of content | |
US10498655B1 (en) | Dynamically adjusting load on an over-the-top (OTT) delivery network | |
WO2012033766A1 (en) | Method and apparatus for adaptive bit rate switching | |
WO2014011848A2 (en) | Signaling and processing content with variable bitrates for adaptive streaming | |
EP2824884A1 (en) | A video client for smooth display of a panoramic video | |
WO2010009188A2 (en) | Demand-driven optimization and balancing of transcoding resources | |
CA2847081A1 (en) | Systems and methods for controlling the encoding of a segmented media stream using segment transmit times | |
CN109792546B (zh) | 从服务器向客户端设备传送视频内容的方法 | |
CN108881931B (zh) | 一种数据缓冲方法及网络设备 | |
WO2013001426A1 (en) | Distributing audio video content | |
JP2022545623A (ja) | ビデオプレイバックにおける予測ベースドロップフレームハンドリング論理 | |
US9742749B1 (en) | Live stream encryption | |
EP3371978B1 (en) | Contiguous streaming of media stream |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |