一种切换视频码率的方法、装置、电子设备及介质与流程

文档序号:21479264发布日期:2020-07-14 17:05阅读:167来源:国知局
一种切换视频码率的方法、装置、电子设备及介质与流程
本申请涉及计算机
技术领域
,特别是涉及一种切换视频码率的方法、装置、电子设备及介质。
背景技术
:目前,用户在使用电子设备观看视频时,会使用视频客户端中自动切换视频码率的功能,以实现视频码率可以自动适应当前网络环境的目的。其中,电子设备可以包括具有播放视频功能的移动终端或个人计算机(personalcomputer,pc)终端。现有技术中,电子设备在根据网络环境切换视频码率时,会获取电子设备下载视频文件的实时下载速度,并根据此实时下载速度判断是否切换视频码率,若此实时下载速度大于或者小于某一预设阈值,则电子设备会直接切换视频码率。这样,用户在观看视频时,电子设备会因为网络波动而频繁切换视频码率。技术实现要素:本申请实施例的目的在于提供一种切换视频码率的方法、装置、电子设备及介质,以避免视频码率被频繁切换。具体技术方案如下:第一方面,本申请实施例提供了一种切换视频码率的方法,所述方法包括:在目标视频播放到达指定时长后,确定所述目标视频的下载速度值和所述目标视频的缓存数据对应的播放时长;其中,所述下载速度值为所述目标视频的实时下载速度或预测下载速度,所述预测下载速度为根据待预测视频切片的数据量大小和下载时长预测的下载速度,所述待预测视频切片为最新下载的预设数量个视频切片,所述缓存数据为已下载但未播放的视频数据;基于所述播放时长和所述下载速度值调整所述目标视频的码率。在一种可能的实现方式中,所述基于所述播放时长和所述下载速度值,调整所述目标视频的码率,包括:基于所述播放时长与目标预设时长阈值之间的大小关系、所述下载速度值与第一预设速度阈值和第二预设速度阈值之间的大小关系,调整所述目标视频的码率;其中,所述目标预设时长阈值为视频码率序列中的各码率和预设时长阈值的对应关系中,所述目标视频的当前码率对应的预设时长阈值,所述视频码率序列中包括所述目标视频的可用码率,所述第二预设速度阈值大于所述第一预设速度阈值。在一种可能的实现方式中,所述基于所述播放时长与目标预设时长阈值之间的大小关系、所述下载速度值与第一预设速度阈值和第二预设速度阈值之间的大小关系,调整所述目标视频的码率,包括:若所述播放时长小于所述目标预设时长阈值的第一比例,则降低所述目标视频的码率;若所述播放时长处于所述目标预设时长阈值的第一比例与第二比例之间,且所述下载速度值小于所述第一预设速度阈值,则降低所述目标视频的码率,所述第二比例大于所述第一比例;若所述播放时长处于所述目标预设时长阈值的第二比例与第三比例之间,则维持所述目标视频的当前码率,所述第三比例大于所述第二比例;若所述播放时长大于所述目标预设时长阈值的第三比例,且所述下载速度值大于所述第二预设速度阈值,则升高所述目标视频的码率。在一种可能的实现方式中,所述方法还包括:在目标视频开始播放至目标视频播放到达指定时长的过程中,基于所述预测下载速度调整所述目标视频的码率。在一种可能的实现方式中,所述基于所述预测下载速度调整所述目标视频的码率,包括:若所述预测下载速度小于第三预设速度阈值,则降低所述目标视频的码率;若所述预测下载速度大于所述第三预设速度阈值,且小于第四预设速度阈值,则维持所述目标视频的当前码率,所述第四预设速度阈值大于所述第三预设速度阈值;若所述预测下载速度大于所述第四预设速度阈值,则升高所述目标视频的码率。在一种可能的实现方式中,所述降低所述目标视频的码率,包括:根据所述视频码率序列,将所述目标视频由当前码率切换至第一目标码率,所述第一目标码率为视频码率序列中与所述当前码率相邻,且小于所述当前码率的码率,所述视频码率序列中包括按照码率大小顺序排列的所述目标视频的可用码率;所述升高所述目标视频的码率,包括:根据所述视频码率序列,将所述目标视频由当前码率切换至第二目标码率,所述第二目标码率为所述视频码率序列中与所述当前码率相邻,且大于所述当前码率的码率。在一种可能的实现方式中,所述确定所述目标视频的下载速度值,包括:根据所述待预测视频切片的数据量大小和下载时长,确定所述待预测视频切片的下载速度的平均值,将所述下载速度的平均值作为所述预测下载速度;或者,针对所述待预测视频切片包括的每个视频切片,根据所述视频切片的数据量大小和下载时长,确定所述视频切片的下载速度,并基于所述视频切片的数据量大小,确定所述视频切片的权重;根据所述待预测视频切片包括的每个视频切片的权重,确定所述待预测视频切片包括的视频切片的下载速度的加权平均值,将所述加权平均值作为所述预测下载速度;或者,针对所述待预测视频切片包括的每个视频切片,根据所述视频切片的数据量大小和下载时长,确定所述视频切片的下载速度,并基于所述视频切片的数据量大小,确定所述视频切片的权重;将所述待预测视频切片包括的视频切片按照下载速度大小进行排序,得到待预测视频切片序列;从所述待预测视频切片序列中第一个视频切片开始,对各视频切片的权重进行逐个累加,每累加一个视频切片的权重,判断权重的累加值是否大于预设权重阈值,若大于,则确定此次累加的权重对应的视频切片的下载速度为所述预测下载速度。第二方面,本申请实施例提供一种切换视频码率的装置,所述装置包括:确定模块,用于在目标视频播放到达指定时长后,确定所述目标视频的下载速度值和所述目标视频的缓存数据对应的播放时长;其中,所述下载速度值为所述目标视频的实时下载速度或预测下载速度,所述预测下载速度为根据待预测视频切片的数据量大小和下载时长预测的下载速度,所述待预测视频切片为最新下载的预设数量个视频切片,所述缓存数据为已下载但未播放的视频数据;调整模块,用于基于所述播放时长和所述下载速度值调整所述目标视频的码率。在一种可能的实现方式中,所述调整模块,具体用于:基于所述播放时长与目标预设时长阈值之间的大小关系、所述下载速度值与第一预设速度阈值和第二预设速度阈值之间的大小关系,调整所述目标视频的码率;其中,所述目标预设时长阈值为视频码率序列中的各码率和预设时长阈值的对应关系中,所述目标视频的当前码率对应的预设时长阈值,所述视频码率序列中包括所述目标视频的可用码率,所述第二预设速度阈值大于所述第一预设速度阈值。在一种可能的实现方式中,所述调整模块,具体用于:若所述播放时长小于所述目标预设时长阈值的第一比例,则降低所述目标视频的码率;若所述播放时长处于所述目标预设时长阈值的第一比例与第二比例之间,且所述下载速度值小于所述第一预设速度阈值,则降低所述目标视频的码率,所述第二比例大于所述第一比例;若所述播放时长处于所述目标预设时长阈值的第二比例与第三比例之间,则维持所述目标视频的当前码率,所述第三比例大于所述第二比例;若所述播放时长大于所述目标预设时长阈值的第三比例,且所述下载速度值大于所述第二预设速度阈值,则升高所述目标视频的码率。在一种可能的实现方式中,所述调整模块,还用于在目标视频开始播放至目标视频播放到达指定时长的过程中,基于所述预测下载速度调整所述目标视频的码率。在一种可能的实现方式中,所述调整模块,具体用于:若所述预测下载速度小于第三预设速度阈值,则降低所述目标视频的码率;若所述预测下载速度大于所述第三预设速度阈值,且小于第四预设速度阈值,则维持所述目标视频的当前码率,所述第四预设速度阈值大于所述第三预设速度阈值;若所述预测下载速度大于所述第四预设速度阈值,则升高所述目标视频的码率。在一种可能的实现方式中,所述调整模块,具体用于根据所述视频码率序列,将所述目标视频由当前码率切换至第一目标码率,所述第一目标码率为视频码率序列中与所述当前码率相邻,且小于所述当前码率的码率,所述视频码率序列中包括按照码率大小顺序排列的所述目标视频的可用码率;所述调整模块,具体用于根据所述视频码率序列,将所述目标视频由当前码率切换至第二目标码率,所述第二目标码率为所述视频码率序列中与所述当前码率相邻,且大于所述当前码率的码率。在一种可能的实现方式中,所述确定模块,具体用于:根据所述待预测视频切片的数据量大小和下载时长,确定所述待预测视频切片的下载速度的平均值,将所述下载速度的平均值作为所述预测下载速度;或者,针对所述待预测视频切片包括的每个视频切片,根据所述视频切片的数据量大小和下载时长,确定所述视频切片的下载速度,并基于所述视频切片的数据量大小,确定所述视频切片的权重;根据所述待预测视频切片包括的每个视频切片的权重,确定所述待预测视频切片包括的视频切片的下载速度的加权平均值,将所述加权平均值作为所述预测下载速度;或者,针对所述待预测视频切片包括的每个视频切片,根据所述视频切片的数据量大小和下载时长,确定所述视频切片的下载速度,并基于所述视频切片的数据量大小,确定所述视频切片的权重;将所述待预测视频切片包括的视频切片按照下载速度大小进行排序,得到待预测视频切片序列;从所述待预测视频切片序列中第一个视频切片开始,对各视频切片的权重进行逐个累加,每累加一个视频切片的权重,判断权重的累加值是否大于预设权重阈值,若大于,则确定此次累加的权重对应的视频切片的下载速度为所述预测下载速度。第三方面,本申请实施例提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序时,实现上述第一方面所述的方法步骤。第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面所述的方法步骤。第五方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面所述的方法。采用上述技术方案,在目标视频播放指定时长后,电子设备中存在该目标视频的缓存数据,可确定该缓存数据对应的播放时长,并确定该目标视频的下载速度值(实时下载速度或者预测下载速度),进而根据播放时长和下载速度值调整目标视频的码率。由于播放时长为已下载的缓存数据还能够播放的时长,相比于现有技术,本申请实施例在调整码率时,不单单依据视频的实时下载速度切换视频码率,还综合了缓存数据的播放时长,即使网络波动,因视频码率的切换还受缓存数据的播放时长的限制,避免了因网络波动导致视频码率被频繁切换。且预测下载速度是基于最新下载的预设数量个视频切片的数据量大小和下载时长预测的速度,代表了一段时间的平均网速,采用预测下载速度和缓存数据的播放时长调整目标视频的码率可以进一步地避免因网速瞬时变化导致视频码率被频繁切换。当然,实施本申请的任一产品或方法并不一定需要同时达到以上所述的所有优点。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本申请实施例提供的一种视频系统的结构示意图;图2为本申请实施例提供的一种切换视频码率的方法流程图;图3为本申请实施例提供的另一种切换视频码率的方法流程图;图4为本申请实施例提供的另一种切换视频码率的方法流程图;图5为本申请实施例提供的一种确定预测下载速度的方法的示例性示意图;图6为本申请实施例提供的一种确定预测下载速度的方法的示例性示意图;图7为本申请实施例提供的一种预测下载速度与实时下载速度的对比示意图;图8为本申请实施例提供的另一种切换视频码率的方法流程图;图9为本申请实施例提供的一种切换视频码率的装置的结构示意图;图10为本申请实施例提供的一种电子设备的结构示意图。具体实施方式下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。本申请实施例应用于如图1所示的视频系统中,该视频系统包括内容分发网络(contentdeliverynetwork,cdn)服务器、全球广域网(worldwideweb,web)服务器和电子设备。电子设备中包括代理服务模块和系统播放器。其中,cdn服务器连接于网络服务器,电子设备可通过网络连接cdn服务器和web服务器,代理服务模块连接于系统播放器。由于系统播放器可以认为是黑盒子,其内部实现细节不可见,所以本申请实施例在电子设备中增加了代理服务模块,代理系统播放器获取视频信息,从而间接获得系统播放器播放的播放参数,从而可以基于获取到的播放参数调整码率,减少视频播放过程中的卡顿现象。具体的,系统播放器需要播放视频时,需发送请求消息,请求获取待播放视频的各传输流(transportstream,ts)切片的下载地址,本申请实施例中代理服务模块可以获取该请求消息,并代理系统播放器向web服务器发送请求消息。web服务器的m3u8文件中存储了ts切片与下载地址之间的映射关系,以及各ts切片的描述信息,比如包括ts切片的duration字段,该duration字段用于表示该ts切片对应的视频片段可以播放的时长。web服务器接收到请求消息后,向代理服务模块返回待播放视频的各ts切片与下载地址之间的映射关系,以及ts切片的描述信息。代理服务模块依据接收到的信息生成虚拟m3u8文件,并向系统播放器返回响应消息,使得后续系统播放器播放视频时,向代理服务模块请求下载ts切片。代理服务模块接收到系统播放器发送的对ts切片的下载请求时,可根据ts切片的下载地址,代理系统服务器向cdn服务器请求将ts切片下载到本地,从而使得系统播放器可以播放已下载的ts切片对应的视频片段。上述的流程可以总结为,当系统播放器需要播放视频时,代理服务模块代替系统播放器从web服务器获取m3u8文件,并依据获取到的m3u8文件生成虚拟m3u8文件,然后代理服务模块根据虚拟m3u8文件中的各ts切片的下载地址,代替系统播放器向cdn服务器请求下载ts切片,系统播放器按顺序播放下载的各ts切片,从而完成对视频的播放。可以理解的是,一个视频的视频文件由多个按顺序排列的ts切片组成,为方便描述,下文中将ts切片称为视频切片。本申请实施例提供了一种切换视频码率的方法,该方法应用于如图1所示的电子设备中。其中,电子设备可以包括具有在线播放视频功能的移动终端或者pc终端。下面将结合具体实施方式,对本申请实施例提供的一种切换视频码率的方法进行详细的说明,如图2所示,具体步骤如下:s201、在目标视频播放到达指定时长后,确定目标视频的下载速度值和目标视频的缓存数据对应的播放时长。其中,下载速度值为目标视频的实时下载速度或预测下载速度,预测下载速度为根据待预测视频切片的数据量大小和下载时长预测的下载速度,待预测视频切片为最新下载的预设数量个视频切片,缓存数据为已下载但未播放的视频数据。s202、基于播放时长和下载速度值调整目标视频的码率。采用本申请实施例,在目标视频播放指定时长后,电子设备中存在该目标视频的缓存数据,可确定该缓存数据对应的播放时长,并确定该目标视频的下载速度值(实时下载速度或者预测下载速度),进而根据播放时长和下载速度值调整目标视频的码率。由于播放时长为已下载的缓存数据还能够播放的时长,相比于现有技术,本申请实施例在调整码率时,不单单依据视频的实时下载速度切换视频码率,还综合了缓存数据的播放时长,即使网络波动,因视频码率的切换还受缓存数据的播放时长的限制,避免了因网络波动导致视频码率被频繁切换。且预测下载速度是基于最新下载的预设数量个视频切片的数据量大小和下载时长预测的速度,代表了一段时间的平均网速,采用预测下载速度和缓存数据的播放时长调整目标视频的码率可以进一步地避免因网速瞬时变化导致视频码率被频繁切换。在上述s201中,目标视频为视频软件中播放的任一视频。指定时长可以为30秒。代理服务模块中的虚拟m3u8文件中具有已缓存的视频切片的数据量大小、下载时长以及持续时长。该持续时长在视频切片的duration字段中,比如某一视频切片的duration字段的值为10秒,则代表该视频切片可以播放10秒。通过累加代理服务模块中的虚拟m3u8文件中各已缓存视频切片的duration字段,可确定目标视频的缓存进度,该缓存进度可用缓存数据的持续时间tduration表示。另外,还可以从系统播放器的接口获得目标视频的当前播放时刻tplay。进而,通过计算缓存进度tduration与当前目标视频的播放时刻tplay之间的差值,可以确定缓存数据的播放时长。缓存数据的播放时长bw可通过如下公式表示:其中,由于目标视频从第0秒开始播放,所以目标视频的播放时刻tplay也可理解为目标视频已播放的时长。若tduration≧tplay,说明缓存进度大于等于目标视频已播放的时长,缓存数据未被全部播放,所以将缓存数据的持续时间减去目标视频已播放的时长,可以得到缓存数据的播放时长。比如,若目标视频的缓存进度为20分钟,目标视频的播放时刻为第15分钟,则播放时长为20-15=5分钟,即目标视频已缓存到第20分钟,当前已播放到第15分钟,则缓存数据还可播放5分钟。若tduration<tplay,说明了目标视频在播放过程中,被触发了快进的选项,比如用户通过点击快进按钮或者通过拖动播放进度条,使得当前的播放时刻tplay变大,而系统播放器可能还未缓存快进后的播放时刻对应的视频切片,从而使得缓存进度小于当前的播放进度,在这种情况下,因当前需要播放的视频片段还未被缓存,所以缓存数据的播放时长为0。本申请实施例中,实时下载速度为当前正在下载的视频切片的下载速度。预测下载速度为基于最新下载的预设数量个视频切片的数据量大小和下载时长,对下载速度的预测,也相当于对后续的网络情况的预测。确定预测下载速度的具体方法将在后续的实施例中进行描述。在上述s202中,基于播放时长和下载速度调整目标视频的码率,具体可以实现为:基于播放时长与目标预设时长阈值之间的大小关系、下载速度值与第一预设速度阈值和第二预设速度阈值之间的大小关系,调整目标视频的码率。其中,目标预设时长阈值为视频码率序列中的各码率和预设时长阈值的对应关系中,目标视频的当前码率对应的预设时长阈值,视频码率序列中包括目标视频的可用码率。第二预设速度阈值大于第一预设速度阈值。表1中示出了视频的分辨率、码率与目标时长阈值之间的对应关系。表1中的各码率可组成视频码率序列,例如,若目标视频支持表1中示出的各分辨率,则目标视频的视频码率序列包括表1中按照大小顺序排列的各个码率。。各码率对应的预设时长阈值可根据实际情况设置,比如3mbps及以下的码率对应的预设时长阈值为240秒,4mbps及以上的码率对应的预设时长阈值为120秒。假设目标视频的当前码率为1.5mbps,则目标预设时长阈值为240秒。其中,码率的单位为比特/秒(bitpersecond,bps),代表每秒输送的比特数。mbps为兆比特/秒,kbps为千比特/秒。表1分辨率码率(bps)预设时长阈值(秒)480p350k240576p800k240720p1.5m2401080p3m2402k4m1204k8m120在本申请实施例的一种实施方式中,如图3所示,基于播放时长与目标预设时长阈值之间的大小关系、下载速度值与第一预设速度阈值和第二预设速度阈值之间的大小关系,调整目标视频的码率,具体可以实现为以下步骤:s2021、若播放时长小于目标预设时长阈值的第一比例,则降低目标视频的码率。可选地,第一比例为1/4,若播放时长小于目标预设时长阈值的1/4,说明当前缓存数据可支持播放的时间较短,具有在该播放时长内无法下载完成新的视频切片的风险。在这种情况下,无论下载速度如何,都需降低目标视频的码率,以避免在目标视频继续播放上述播放时刻之后出现卡顿的现象。举例而言,目标视频的当前码率为1.5mbps,则目标预设时长阈值为240秒,目标预设时长阈值为60秒。其中,降低目标视频的码率的方法为:根据视频码率序列,将目标视频由当前码率切换至第一目标码率。第一目标码率为视频码率序列中与当前码率相邻,且小于当前码率的码率。需要说明的是,若当前码率为视频码率序列中的最低码率,则维持当前码率不变。参考表1,若目标视频的当前码率为1.5mbps,表1中与1.5mbps的码率相邻,且小于1.5mbps的码率为800kbps,则可确定第一目标码率为800kbps,即将目标视频的码率切换为800kbps。在一种实施方式中,代理服务模块可基于视频播放器发送的播放请求确定目标视频的当前码率,视频播放器请求播放视频时,会在播放请求中携带请求播放的目标视频的码率信息,代理服务模块可从播放请求中获取该码率信息,并代理视频播放器向网络侧请求获取该码率信息对应的视频切片。采用本步骤的切换视频码率的方式,若缓存数据的播放时长较短,则可直接降低码率,降低了目标视频出现播放卡顿的可能性。s2022、若播放时长处于目标预设时长阈值的第一比例与第二比例之间,且下载速度值小于第一预设速度阈值,则降低目标视频的码率。其中,第二比例大于第一比例。若播放时长处于目标预设时长阈值的第一比例与第二比例之间,说明该播放时长的大小适中,所以进一步根据目标视频的下载速度值确定按照当前码率,目标视频是否会存在播放卡顿的风险。可选地,第二比例为1/2,以目标预设时长阈值为240秒,第一比例为1/4为例,播放时长处于60秒至120秒之间。若进一步确定下载速度值小于第一预设速度阈值,则说明对后续视频切片的下载速度较慢,存在播放卡顿的风险,可以降低目标视频的码率,以提高下载速度。反之,若确定下载速度值大于等于第一预设速度阈值,则可维持当前码率。在一种实施方式中,第一预设速度阈值可以等于当前码率。由于视频的码率为单位时间内传输的数据位数,若下载速度值小于当前码率,说明按照该下载速度值下载当前码率的视频切片,将无法满足当前码率的视频数据的传输速度要求,若继续使用当前码率,将出现播放卡顿的风险。为避免播放卡顿,所以降低目标视频的码率。当然本申请实施例中第一预设速度阈值的取值不限于此,也可以根据经验值设置。本步骤中降低目标视频的码率的方法与s2021中描述的降低目标视频的码率的方法相同,可参考上述s2021中的相关描述,此处不再赘述。由于下载速度值可以为实时下载速度或预测下载速度,所以在播放时长满足上述条件的情况下,在第一种实现方式中,若实时下载速度小于第一预设速度阈值,则降低目标视频的码率;在第二种实现方式中,若预测下载速度小于第一预设速度阈值,则降低目标视频的码率。采用本步骤的切换视频码率的方式,若缓存数据的播放时长处于目标时长阈值的第一比例与第二比例之间,且下载速度值小于第一预设速度阈值,则说明在缓存数据被播放完之前,按照该下载速度值可能无法下载足够的可供目标视频流畅播放的视频数据,降低目标视频的码率可以降低目标视频出现播放卡顿的可能性;反之,若下载速度值大于等于第一预设速度阈值,则说明在缓存数据被播放完之前,按照该下载速度阈值可以下载足够的可供目标视频流畅播放的视频数据,所以维持目标视频的当前码率,避免了视频码率被频繁切换。s2023、若播放时长处于目标预设时长阈值的第二比例与第三比例之间,则维持目标视频的当前码率。其中,第三比例大于第二比例。若播放时长处于目标预设时长阈值的第二比例与第三比例之间,说明缓存数据的播放时长较长,出现播放卡顿的可能性较小,所以可以暂时维持当前码率,避免码率被频繁切换。可选地,第三比例可以为3/4,以目标时长阈值为240秒,第二比例为1/2为例,播放时长处于120秒至180秒之间。s2024、若播放时长大于目标预设时长阈值的第三比例,且下载速度值大于第二预设速度阈值,则升高目标视频的码率。若播放时长大于目标预设时长的第三比例,说明缓存数据还可以播放较长的时间,继续使用当前码率基本不可能出现播放卡顿的现象,所以可进一步判断是否可以升高码率,以提高播放的画质。若进一步确定下载速度值大于第二预设速度阈值,说明对后续视频切片的下载速度较快,可以满足更高码率的视频切片的下载速度,所以可以升高码率。在一种实施方式中,第一预设速度阈值可以为当前码率的1.5倍。若下载速度为当前码率的1.5倍,说明按照该下载速度值下载当前码率的视频切片,已经超出了当前码率的视频数据的传输速度要求,所以目前的下载速度值可支持更高的码率,所以升高目标视频的码率。当然本申请实施例中第二预设速度的取值不限于此,也可以根据经验设置。其中,升高目标视频的码率的方法为:根据视频码率序列,将目标视频由当前码率切换至第二目标码率,第二目标码率为视频码率序列中与当前码率相邻,且大于当前码率的码率。需要说明的是,若当前码率为视频码率序列中的最高码率,则维持当前码率不变。参考表1,若目标视频的当前码率为1.5mbps,表1中与1.5mbps的码率相邻,且大于1.5mbps的码率为3mbps,则可确定第二目标码率为3mbps,即将目标视频的码率切换为3mbps。由于下载速度值可以为实时下载速度或预测下载速度,所以在播放时长满足上述条件的情况下,在第一种实现方式中,若实时下载速度大于第二预设速度阈值,则升高目标视频的码率;在第二种实现方式中,若预测下载速度大于第二预设速度阈值,则升高目标视频的码率。采用上述切换视频码率的方法,在切换视频的码率时,综合考虑了缓存数据的播放时长以及下载速度值,在不会导致码率被频繁切换的基础上,降低了视频出现播放卡顿的可能性,且可以在视频不出现播放卡顿的前提下,提高视频播放的画面质量。在本申请实施例中,在目标视频开始播放至目标视频播放达到指定时长的过程中,比如在目标视频开始播放的前30秒,可基于预测下载速度调整目标视频的码率,如图4所示,该方法具体包括以下步骤:s401、确定预测下载速度。s402、若预测下载速度小于第三预设速度阈值,则降低目标视频的码率。由于目标视频在开始播放的前30秒不存在缓存数据或者缓存数据较少,所以根据预测下载速度判断是否切换码率。第三预设速度阈值可以为目标视频的当前码率的1/2。当然第三预设速度阈值的取值不限于此,也可以根据经验值设置。若预测下载速度小于当前码率的1/2,预测的后续的下载速度较慢,若继续使用当前码率,可能出现播放卡顿的情况,所以降低目标视频的码率,避免播放卡顿。s403、若预测下载速度大于第三预设速度阈值,且小于第四预设速度阈值,则维持目标视频的当前码率。其中,第四预设速度阈值大于第三预设速度阈值。第四预设速度阈值可以为目标视频的当前码率的2倍,当然第四预设速度的取值不限于此,也可以根据经验值设置。s404、若预测下载速度大于第四预设速度阈值,则升高目标视频的码率。若预测下载速度大于当前码率的2倍,说明预测的后续的下载速度较快,已经远超出了当前码率对下载速度的需求,所以可以升高目标视频的码率,提供更高质量的画质。采用该方法,可以基于预测下载速度值切换码率,由于预测下载速度值为根据最新下载的预设数量个视频切片的数据量大小和下载时长预测的下载速度,相比于现有技术中使用实时下载速度切换码率,受网络波动影响导致视频码率被频繁切换,本申请实施例中预测的下载速度受网络波动的影响较小,可以避免因网络波动导致的视频码率被频繁切换。可选地,上述s201和上述s401中的确定预测下载速度的方法具体包括以下三种实现方式:方式一、根据待预测视频切片的数据量大小和下载时长,确定待预测视频切片的下载速度的平均值,将下载速度的平均值作为预测下载速度。待预测视频切片为最新下载的预设数量个视频切片,但若已下载的视频切片的数量不足预设数量,则待预测视频切片为已下载的视频切片的数量。在一种实施方式中,可以采用滑动窗口的方式确定待预测视频切片。比如将滑动窗口的大小固定为预设数量个视频切片的大小,假设为4,即该滑动窗口可以容纳4个视频切片。电子设备下载一个视频切片后,该视频切片加入滑动窗口,当滑动窗口内已经有4个视频切片时,若电子设备再下载新的视频切片,则将新的视频切片加入该滑动窗口,并将滑动窗口中最老的视频切片从滑动窗口中移出。可以理解的是,下载速度的平均值为待预测视频切片的数据量大小的总和除以待预测视频切片的下载时长的总和。例如,若待预测视频切片包括视频切片a、视频切片b、视频切片c和视频切片d,则下载速度的平均值为视频切片a、b、c、d的数据量大小之和除以视频切片a、b、c、d的下载时长之和。方式二、针对待预测视频切片包括的每个视频切片,根据该视频切片的数据量大小和下载时长,确定该视频切片的下载速度,并基于该视频切片的数据量大小,确定该视频切片的权重;然后根据待预测视频切片包括的每个视频切片的权重,确定待预测视频切片包括的视频切片的下载速度的加权平均值,将加权平均值作为预测下载速度。其中,若待预测视频切片包括视频切片a、视频切片b、视频切片c和视频切片d,则将视频切片a的数据量大小除以视频切片a的下载时长,得到视频切片a的下载速度,并按照同样的方法确定视频切片b、c、d的下载速度。另外,视频切片的数据量越大,视频切片的权重越大。可分别基于视频切片a、b、c、d的数据量大小,确定视频切片a、b、c、d的权重,进而基于计算出的权重,对视频切片a、b、c、d的下载速度进行加权平均,得到预测下载速度。方式三、针对待预测视频切片包括的每个视频切片,根据该视频切片的数据量大小和下载时长,确定该视频切片的下载速度,并基于该视频切片的数据量大小,确定该视频切片的权重;然后将待预测视频切片包括的视频切片按照下载速度大小进行排序,得到待预测视频切片序列;从待预测视频切片序列中第一个视频切片开始,对各视频切片的权重进行逐个累加,每累加一个视频切片的权重,判断权重的累加值是否大于预设权重阈值,若大于,则确定此次累加的权重对应的视频切片的下载速度为预测下载速度。例如,如图5所示和图6所示,图5和图6的横坐标用于表示数据量大小,纵坐标用于表示下载速度。图5中的左图为待预测视频切片包括的按照下载顺序排列的4个视频切片,也可以理解为当前滑动窗口中的4个视频切片,视频切片从左侧进入滑动窗口,所以越靠左侧的视频切片下载时间越晚。图5中的左图中,从右到左分别为视频切片0、视频切片1、视频切片2和视频切片3。图5中右图为将上述4个视频切片按照下载速度排列后得到的结果,即待预测视频切片序列中依次包括视频切片2、视频切片0、视频切片3、视频切片1。可选地,预设权重阈值可以为上述4个视频切片的权重之和的二分之一。参考图5,可先判断视频切片2的权重是否大于预设权重阈值,若不大于,则继续判断视频切片2的权重与视频切片0的权重之和是否大于预设权重阈值,若大于,则将视频切片0的下载速度确定为预测下载速度。图6中的左图为待预测视频切片包括的视频切片发生了更新,即电子设备下载了视频切片4,则此时待预测视频切片包括按照下载顺序从晚到早排列的4个视频切片分别为:视频切片1、视频切片2、视频切片3和视频切片4。图6中的右图为将上述4个视频切片按照下载速度排列后得到的结果,即待预测视频切片序列中依次包括视频切片2、视频切片3、视频切片1、视频切片4。同理,先判断视频切片2的权重是否大于预设权重阈值,若不大于,则继续判断视频切片2的权重与视频切片3的权重之和是否大于预设权重阈值,若仍不大于,则判断视频切片2的权重、视频切片3的权重与视频切片1的权重之和是否大于预设权重阈值,若大于,则将视频切片1的下载速度确定为预测下载速度。如图7所示,图7为经过测试得到的预测下载速度与实时播放速度的对比示意图,图7中的实线表示实时下载速度的变化情况,虚线表示预测下载速度的变化情况,可以看出实时下载速度会因网络波动而产生较大的波动,而预测下载速度的波动幅度较小。本申请实施例计算出的预测下载速度,相比于实时下载速度,可以滤除网络抖动,从而使得基于预测下载速度或者基于预测下载速度和缓存数据的播放时长进行码率切换,可以避免因网络抖动造成的视频码率被频繁切换。以下结合具体示例对本申请实施例提供的切换视频码率的方法的具体流程进行描述,假设目标时长的当前码率为1.5mbps,如图8所示,该方法包括:s801、判断目标视频的播放时长是否达到30秒。若是,则执行s806;若否,则执行s802。s802、确定预测下载速度。s803、判断预测下载速度是否小于当前码率的1/2。若是,则执行s809;若否,则执行s804。s804、判断预测下载速度是否大于当前码率的2倍。若是,则执行s810;若否,则执行s811。本申请实施例可以每隔预设时间断判断1次是否切换码率,比如该预设时间段可以为10秒,即在执行s804的10秒后,返回s801。需要说明的是,按照先执行s803再执行s804的顺序执行判断为本申请实施例中的一种可能的实现方式,当然本申请实施例也可以采用其他的判断顺序。s805、每隔10秒确定一次预测下载速度和缓存数据的播放时长。可以理解的是,每次确定预测下载速度和缓存数据的播放时长后,则执行一次后续步骤。s806、判断是否播放时长处于60秒至120秒之间,且预测下载速度小于当前码率。若是,则执行s809;若否,则执行s807。s807、判断是否播放时长大于180秒,且下载速度值大于当前码率的1.5倍。若是,则执行s810;若否,则执行s808。s808、判断播放时长是否小于60秒。若是,则执行s809;若否,则执行s811。需要说明的是,按照s806、s807、s807的顺序执行判断过程为本申请实施例中一种可能的实现方式,当然本申请实施例也可以采用其他判断顺序。s809、将目标视频的码率降为800kbps。s810、将目标视频的码率升为3mbps。s811、保持当前码率。需要说明的是,为方便展示,图8中两次示出了s809至s811。采用该方法,可以根据缓存数据的播放时长和预测下载速度两个因素来判断是否切换码率,相比于现有技术中根据实时下载速度单一因素判断是否切换码率,本申请实施例可以避免对码率的频繁切换,且因采用预测下载速度可以滤除网络抖动导致的实时播放速度的较大波动,进一步避免了因网络抖动导致的码率被频繁切换的现象。对应于上述方法实施例,本申请实施例还提供一种切换视频码率的装置,如图9所示,该装置包括:确定模块901,用于在目标视频播放到达指定时长后,确定所述目标视频的下载速度值和所述目标视频的缓存数据对应的播放时长;其中,所述下载速度值为所述目标视频的实时下载速度或预测下载速度,所述预测下载速度为根据待预测视频切片的数据量大小和下载时长预测的下载速度,所述待预测视频切片为最新下载的预设数量个视频切片,所述缓存数据为已下载但未播放的视频数据;调整模块902,用于基于所述播放时长和所述下载速度值调整所述目标视频的码率。可选地,调整模块902,具体用于:基于所述播放时长与目标预设时长阈值之间的大小关系、所述下载速度值与第一预设速度阈值和第二预设速度阈值之间的大小关系,调整所述目标视频的码率;其中,所述目标预设时长阈值为视频码率序列中的各码率和预设时长阈值的对应关系中,所述目标视频的当前码率对应的预设时长阈值,所述视频码率序列中包括所述目标视频的可用码率,所述第二预设速度阈值大于所述第一预设速度阈值。可选地,调整模块902,具体用于:若所述播放时长小于所述目标预设时长阈值的第一比例,则降低所述目标视频的码率;若所述播放时长处于所述目标预设时长阈值的第一比例与第二比例之间,且所述下载速度值小于所述第一预设速度阈值,则降低所述目标视频的码率,所述第二比例大于所述第一比例;若所述播放时长处于所述目标预设时长阈值的第二比例与第三比例之间,则维持所述目标视频的当前码率,所述第三比例大于所述第二比例;若所述播放时长大于所述目标预设时长阈值的第三比例,且所述下载速度值大于所述第二预设速度阈值,则升高所述目标视频的码率。可选地,调整模块902,还用于在目标视频开始播放至目标视频播放到达指定时长的过程中,基于所述预测下载速度调整所述目标视频的码率。可选地,调整模块902,具体用于:若所述预测下载速度小于第三预设速度阈值,则降低所述目标视频的码率;若所述预测下载速度大于所述第三预设速度阈值,且小于第四预设速度阈值,则维持所述目标视频的当前码率,所述第四预设速度阈值大于所述第三预设速度阈值;若所述预测下载速度大于所述第四预设速度阈值,则升高所述目标视频的码率。可选地,调整模块902,具体用于根据所述视频码率序列,将所述目标视频由当前码率切换至第一目标码率,所述第一目标码率为视频码率序列中与所述当前码率相邻,且小于所述当前码率的码率,所述视频码率序列中包括按照码率大小顺序排列的所述目标视频的可用码率;调整模块902,具体用于根据所述视频码率序列,将所述目标视频由当前码率切换至第二目标码率,所述第二目标码率为所述视频码率序列中与所述当前码率相邻,且大于所述当前码率的码率。可选地,确定模块901,具体用于:根据所述待预测视频切片的数据量大小和下载时长,确定所述待预测视频切片的下载速度的平均值,将所述下载速度的平均值作为所述预测下载速度;或者,针对所述待预测视频切片包括的每个视频切片,根据所述视频切片的数据量大小和下载时长,确定所述视频切片的下载速度,并基于所述视频切片的数据量大小,确定所述视频切片的权重;根据所述待预测视频切片包括的每个视频切片的权重,确定所述待预测视频切片包括的视频切片的下载速度的加权平均值,将所述加权平均值作为所述预测下载速度;或者,针对所述待预测视频切片包括的每个视频切片,根据所述视频切片的数据量大小和下载时长,确定所述视频切片的下载速度,并基于所述视频切片的数据量大小,确定所述视频切片的权重;将所述待预测视频切片包括的视频切片按照下载速度大小进行排序,得到待预测视频切片序列;从所述待预测视频切片序列中第一个视频切片开始,对各视频切片的权重进行逐个累加,每累加一个视频切片的权重,判断权重的累加值是否大于预设权重阈值,若大于,则确定此次累加的权重对应的视频切片的下载速度为所述预测下载速度。采用本申请实施例提供的切换视频码率的装置,在目标视频播放指定时长后,电子设备中存在该目标视频的缓存数据,可确定该缓存数据对应的播放时长,并确定该目标视频的下载速度值(实时下载速度或者预测下载速度),进而根据播放时长和下载速度值调整目标视频的码率。由于播放时长为已下载的缓存数据还能够播放的时长,相比于现有技术,本申请实施例在调整码率时,不单单依据视频的实时下载速度切换视频码率,还综合了缓存数据的播放时长,即使网络波动,因视频码率的切换还受缓存数据的播放时长的限制,避免了因网络波动导致视频码率被频繁切换。且预测下载速度是基于最新下载的预设数量个视频切片的数据量大小和下载时长预测的速度,代表了一段时间的平均网速,采用预测下载速度和缓存数据的播放时长调整目标视频的码率可以进一步地避免因网速瞬时变化导致视频码率被频繁切换。本申请实施例还提供了一种电子设备,如图10所示,包括处理器1001、通信接口1002、存储器1003和通信总线1004,其中,处理器1001,通信接口1002,存储器1003通过通信总线1004完成相互间的通信,存储器1003,用于存放计算机程序;处理器1001,用于执行存储器1003上所存放的程序时,实现上述方法实施例中的方法步骤。上述网络设备提到的通信总线可以是外设部件互连标准(英文:peripheralcomponentinterconnect,简称:pci)总线或扩展工业标准结构(英文:extendedindustrystandardarchitecture,简称:eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。通信接口用于上述网络设备与其他设备之间的通信。存储器可以包括随机存取存储器(英文:randomaccessmemory,简称:ram),也可以包括非易失性存储器(英文:non-volatilememory,简称:nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。上述的处理器可以是通用处理器,包括中央处理器(英文:centralprocessingunit,简称:cpu)、网络处理器(英文:networkprocessor,简称:np)等;还可以是数字信号处理器(英文:digitalsignalprocessing,简称:dsp)、专用集成电路(英文:applicationspecificintegratedcircuit,简称:asic)、现场可编程门阵列(英文:field-programmablegatearray,简称:fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。基于相同的技术构思,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述切换视频码率的方法步骤。基于相同的技术构思,本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述切换视频码率的方法步骤。在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1