本发明实施例涉及视频处理技术领域,尤其涉及一种视频下载的方法、装置、服务器和存储介质。
背景技术:
随着互联网技术的快速发展,高清实时视频已成为人们沟通和娱乐的重要方式。此时,用户在不断观看高清画质的各个视频时,如果网络传输速率不稳定或者网络带宽不足,则从用户点击播放视频开始需要等待一定的缓冲时间,该视频才能播放,尤其对于短视频的播放,用户对于开播等待时间的容忍度有限,会直接影响到用户的观看体验。
目前,为了加快视频开播,在当前视频的播放过程中,如果当前视频下载完成,通常会基于当前网络状态,提前预先下载位于当前视频之后的几个视频的部分内容(非全部下载完成),便于后续视频的快速开播。然而,由于视频的实际播放时间点与预下载时间点总是会存在一定延时,且网络会实时波动,因此如果当前播放视频在实际播放时的网络带宽相对于预下载时的网络带宽出现陡降,那么当前播放视频中除预下载内容之外的剩余内容在当前网络状态下下载时,剩余下载速度远跟不上当前播放视频的播放速度,从而导致当前播放视频出现播放卡顿的情况。
技术实现要素:
本发明实施例提供了一种视频下载的方法、装置、服务器和存储介质,实现待播视频在预下载码率下无法流畅播放时的码率重选,避免待播视频的播放卡顿。
第一方面,本发明实施例提供了一种视频下载的方法,该方法包括:
响应于待播视频的当前网络状态不支持所述待播视频在预下载码率下的流畅播放,从当前网络状态匹配的码率档位中选取出使所述待播视频同时符合开播指标要求和播放性能要求时对应的目标码率档位;
采用所述目标码率档位下载所述待播放视频。
第二方面,本发明实施例提供了一种视频下载的装置,该装置包括:
码率档位重选模块,用于响应于待播视频的当前网络状态不支持所述待播视频在预下载码率下的流畅播放,从当前网络状态匹配的码率档位中选取出使所述待播视频同时符合开播指标要求和播放性能要求时对应的目标码率档位;
视频下载模块,用于采用所述目标码率档位下载所述待播放视频。
第三方面,本发明实施例提供了一种服务器,该服务器包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明任意实施例所述的视频下载的方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明任意实施例所述的视频下载的方法。
本发明实施例提供的一种视频下载的方法、装置、服务器和存储介质,对于完成预下载的待播视频,首先需要判断待播视频的当前网络状态是否支持待播视频在预下载码率下的流畅播放,如果当前网络状态不支持待播视频在预下载码率下的流畅播放,说明如果仍采用预下载码率来继续下载待播视频中的剩余内容,那么会造成该待播视频的播放卡顿,因此需要从当前网络状态匹配的码率档位中,重新选取对应的目标码率档位来对待播视频进行重新下载,实现待播视频在预下载码率下无法流畅播放时的码率重选,以使待播视频在目标码率档位的下载播放,能够同时符合开播指标要求和播放性能要求,从而在避免待播视频出现播放卡顿的基础上,保证待播视频的快速开播,提高待播视频的播放流畅性。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1a为本发明实施例一提供的一种视频下载的方法的流程图;
图1b为本发明实施例一提供的视频下载过程的原理示意图;
图2a为本发明实施例二提供的一种视频下载的方法的流程图;
图2b为本发明实施例二提供的视频下载过程的原理示意图;
图3为本发明实施例三提供的一种视频下载的装置的结构示意图;
图4为本发明实施例四提供的一种服务器的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。此外,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
实施例一
图1a为本发明实施例一提供的一种视频下载的方法的流程图,本实施例可适用于任一业务场景下顺序播放多个视频的情况中。本实施例提供的视频下载的方法可以由本发明实施例提供的视频下载的装置来执行,该装置可以通过软件和/或硬件的方式来实现,并集成在执行本方法的服务器中,该服务器可以是参与视频数据下载的后台服务器。
具体的,参考图1a,该方法可以包括如下步骤:
s110,响应于待播视频的当前网络状态不支待播视频在预下载码率下的流畅播放,从当前网络状态匹配的码率档位中选取出使待播视频同时符合开播指标要求和播放性能要求时对应的目标码率档位。
可选的,目前为了确保视频的快速开播,通常会在当前视频的播放过程中,提前下载位于当前视频之后待播放的几个视频的部分内容(非全部下载完成),因此各个视频的实际播放时间点与预下载时间点之间总是会存在一定的延时,此时由于网络会实时抖动,如果待播视频在实际播放时的网络带宽相对于预下载时的网络带宽出现陡降,那么在当前网络状态下下载该待播视频中的剩余内容时,剩余下载速度远跟不上该待播视频的播放速度,从而导致待播视频出现播放卡顿的情况。同时,由于对于未完成预下载的视频来说,在当前时刻播放时,会直接选择与当前网络状态匹配的码率档位进行完整下载,无需考虑由于实际播放时间点与预下载时间点之间的延时而造成播放卡顿的问题,因此本实施例中的待播视频主要可以为当前指示播放的已经完成预下载的视频,预下载码率为待播视频在预下载时实际采用的码率档位。
此时,为了避免待播视频在播放过程中的播放卡顿,在接收到已经完成预下载的待播视频的播放指令,确定客户端指示需要在当前时刻播放该待播视频时,由于待播视频的预下载码率与预下载时刻下的网络状态相匹配,而网络状态是实时变化的,因此首先需要确定待播视频的当前网络状态,然后判断该当前网络状态是否支持待播视频在预下载码率下的流畅播放,而待播视频在预下载码率下的流畅播放可以要求对于待播视频在各播放时刻下需要播放的视频内容,在之前某一时刻的网络状态下已经采用该预下载码率将该视频内容下载完成,也就是在待播视频的当前网络状态下,采用预下载码率来下载待播视频中除预下载内容之外的剩余内容时,该剩余内容的剩余下载时长小于或者等于该待播视频的播放时长;同时,如果待播视频的预下载码率为该待播视频对应的码率档位列表里的最低码率档位,那么即使存在播放卡顿,也无法转换到更低的码率档位下进行下载;因此,参考上述两方面的说明,可以理解的是,本实施例中待播视频的当前网络状态不支持待播视频在预下载码率下的流畅播放可以为:在待播视频的当前网络状态下,采用预下载码率下载待播视频中除预下载内容之外的剩余内容时的剩余下载时长大于待播视频的播放时长,且预下载码率大于待播视频对应的最低码率档位。
进一步的,如果待播视频的当前网络状态不支持待播视频在预下载码率下的流畅播放,则需要从该待播视频对应的码率档位列表中重新选取一个与当前网络状态匹配的新的目标码率档位,如图1b所示,来重新对待播视频进行完整下载,同时为了提高待播视频在开播阶段和播放阶段的性能要求,还会要求在采用重新选取出的目标码率档位来下载待播视频时,使待播视频能够同时符合开播指标要求和播放性能要求,该开播指标要求可以为要求待播视频在该目标码率档位下进行下载时能够保证该待播视频在用户可以接受的开播时长内成功开播,播放性能要求可以为要求待播视频在该目标码率档位下进行下载时能够保证该待播视频在实际播放过程中不存在播放卡顿的问题,以及能够达到根据实际播放需求预先设置的播放特性,例如要求待播视频在该目标码率档位下的播放画质最优,或者要求待播视频在该目标码率档位下的下载速率最快等,进而实现待播视频在预下载码率下无法流畅播放时的码率重选,以使待播视频在目标码率档位的下载播放,能够同时符合开播指标要求和播放性能要求,从而在避免待播视频出现播放卡顿的基础上,保证待播视频的快速开播,提高待播视频的播放流畅性。
需要说明的是,为了避免待播视频出现播放卡顿,本实施例中可以要求当前网络状态匹配的码率档位为待播视频的码率档位列表中码率值小于或者等于当前网络状态下的网络带宽的码率档位,使得在当前网络状态下能够保证待播视频的快速下载。
此外,参照本实施例中对于待播视频的当前网络状态是否支持待播视频在预下载码率下的流畅播放的判断条件,在判断待播视频的当前网络状态是否支持待播视频在预下载码率下的流畅播放之前,还可以包括:根据待播视频的播放时长、预下载码率以及除预下载内容之外的剩余内容在待播视频中的剩余占比,计算待播视频在当前网络状态下的剩余下载时长。
具体的,通过查找待播视频对应的视频特征以及待播视频的预下载情况,可以确定出待播视频的播放时长为l、预下载码率为br以及预下载内容在该待播视频中的预下载占比为p,进而计算出该待播视频在当前网络状态下的剩余下载时长可以为
s120,采用目标码率档位下载待播视频。
可选的,在待播视频的当前网络状态不支持待播视频在预下载码率下的流畅播放,并从当前网络状态匹配的码率档位中选取出能够使待播视频同时符合开播指标要求和播放性能要求时对应的目标码率档位之后,可以在当前网络状态下,直接采用该目标码率档位对该待播视频进行重新的完整下载,并同步播放,从而保证待播视频的播放流畅性。
本实施例提供的技术方案,对于完成预下载的待播视频,首先需要判断待播视频的当前网络状态是否支持待播视频在预下载码率下的流畅播放,如果当前网络状态不支持待播视频在预下载码率下的流畅播放,说明如果仍采用预下载码率来继续下载待播视频中的剩余内容,那么会造成该待播视频的播放卡顿,因此需要从当前网络状态匹配的码率档位中,重新选取对应的目标码率档位来对待播视频进行重新下载,实现待播视频在预下载码率下无法流畅播放时的码率重选,以使待播视频在目标码率档位的下载播放,能够同时符合开播指标要求和播放性能要求,从而在避免待播视频出现播放卡顿的基础上,保证待播视频的快速开播,提高待播视频的播放流畅性。
实施例二
图2a为本发明实施例二提供的一种视频下载的方法的流程图,图2b为本发明实施例二提供的视频下载过程的原理示意图。本实施例是在上述实施例的基础上进行优化。具体的,如图2a所示,本实施例对于从当前网络状态匹配的码率档位中选取目标码率档位的具体过程进行详细的解释说明。
可选的,如图2a所示,本实施例中可以包括如下步骤:
s210,根据待播视频前向播放的历史视频在实际下载时对应的历史网络状态的变化,预估待播视频的当前网络状态。
可选的,由于待播视频在当前时刻播放时,在该待播视频之前进行播放的多个历史视频已经完成下载播放,而且网络状态的实时变化存在一定的变化规律,因此本实施例首先会对待播视频进行前向查找,进而查找出待播视频前向播放的多个历史视频,并将各个历史视频在实际下载时的实际下载速率作为该历史视频在实际下载时对应的历史网络状态,然后分析各个历史视频在实际播放时对应的历史网络状态的变化情况,以判断在当前时刻下网络状态的变化趋势,进而预估待播视频的当前网络状态,以便后续判断当前网络状态是否支持待播视频在预下载码率下的流畅播放,避免视频播放过程中出现播放卡顿的问题。
示例性的,如果在视频v0的播放过程中,可以按照预先设定的视频播放顺序,完成对视频v1到视频vn之间的各个视频的预下载,此时在播放待播视频vk(k≤n)时,可以确定待播视频vk前向播放的历史视频为视频v1到视频vk-1之间的各个视频,此时可以根据各个历史视频vi(i={1,2…,k-1})的实际下载情况,确定每一历史视频vi的实际下载速率si,此时待播视频的当前网络状态的计算公式为:bwek=fewma(si)i={1,…,k-1}。其中,bwek为待播视频vk的当前网络状态,si为待播视频vk之前的第i个历史视频vi的实际下载速率,fewma(si)表示采用指数加权滑动平均算法对历史视频的实际下载速率进行均值处理,预估出待播视频vk的当前网络状态bwek。
s220,响应于待播视频的当前网络状态不支持待播视频在预下载码率下的流畅播放,从当前网络状态匹配的码率档位中,选取出对应的初始码率档位,该初始码率档位支持待播视频在开播指标要求的开播时长内成功开播。
可选的,在预估出待播视频的当前网络状态之后,首先判断该当前网络状态是否支持待播视频在预下载码率下的流畅播放,而对于当前网络状态是否支持待播视频在预下载码率下的流畅播放的判断条件已经在上述实施例一中详细描述过,本实施例可以采用与上述实施例一中所描述的相同判断条件来判断待播视频的当前网络状态是否支持待播视频在预下载码率下的流畅播放,在此不再作额外说明。
进一步的,如果待播视频的当前网络状态不支持待播视频在预下载码率下的流畅播放,说明如果采用预下载码率继续下载待播视频内除预下载内容之外的剩余内容并进行播放时会存在播放卡顿的问题,因此本实施例需要从待播视频的码率档位列表中重新选取一个新的码率档位,并丢弃待播视频在预下载码率下的预下载内容,而采用新选取出的码率档位重新对待播视频进行完整下载。此时,为了避免当前网络状态下采用预下载码率对待播视频继续进行下载后播放的卡顿问题,首先需要根据当前网络状态对应的网络带宽,从待播视频的码率档位列表中选取出与当前网络状态匹配的码率档位,如图2b所示,也就是从待播视频的码率档位列表中选取出码率值小于或者等于当前网络状态下的网络带宽的各个码率档位,作为与当前网络状态匹配的码率档位,然后确定出预先设定的开播指标要求所限定的开播时长,该开播时长表示用户能够接受视频成功开播的时长,也就是要求待播视频能够在该开播时长内成功开播,因此需要从当前网络状态匹配的码率档位中,继续选取出对应的初始码率档位,该初始码率档位能够保证待播视频在该开播指标要求的开播时长内成功开播,也就是待播视频采用每一初始码率档位进行下载时,能够保证待播视频在该开播时长内成功开播,从而在避免待播视频出现播放卡顿的基础上,保证待播视频的快速开播。
可以理解的是,为了准确选取对应的初始码率档位,本实施例可以针对当前网络状态匹配的码率档位中的每一码率档位,计算采用该码率档位下载待播视频中预下载内容时的预下载时长;如果预下载时长小于等于开播指标要求的开播时长,则将该码率档位作为初始码率档位。
示例性的,从当前网络状态匹配的码率档位中选取初始码率档位的选取条件可以为:
s230,从初始码率档位中选取对应的目标码率档位,该待播视频采用目标码率档位下载后的播放状况满足播放性能要求。
可选的,在从当前网络状态匹配的码率档位中,选取出对应的初始码率档位之后,由于当前网络状态匹配的码率档位中可能存在多个码率档位均可以使待播视频在开播指标要求的开播时长内成功开播,因此还需要进一步从初始码率档位中选取出对应的目标码率档位,该目标码率档位能够使待播视频符合播放性能要求,该播放性能要求可以为待播视频在该目标码率档位下的播放画质最优,或者要求待播视频在该目标码率档位下的下载速率最快等,此时待播视频采用该目标码率档位进行下载时,能够保证待播视频所符合的播放性能能够达到最优。
示例性的,本实施例中从初始码率档位中选取对应的目标码率档位的选取条件可以为:brtar={argmaxbrg(br)|br∈γ};其中,brtar为选取出的目标码率档位,γ为初始码率档位的选取结果,br为γ中的任一初始码率档位,g(br)为播放性能要求的码率选档算法,因此采用argmax函数可以从g(br)中获取到满足该播放性能要求的参数br,作为本实施例中的目标码率档位br。
s240,采用目标码率档位下载待播视频。
本实施例提供的技术方案,对于完成预下载的待播视频,通过分析待播视频前向播放的历史视频在实际下载时对应的历史网络状态的变化,预估待播视频的当前网络状态,以确保当前网络状态的准确性,进而判断待播视频的当前网络状态是否支持待播视频在预下载码率下的流畅播放,如果当前网络状态不支持待播视频在预下载码率下的流畅播放,则从当前网络状态匹配的码率档位中,重新选取对应的目标码率档位来对待播视频进行重新下载,实现待播视频在预下载码率下无法流畅播放时的码率重选,以使待播视频在目标码率档位的下载播放,能够同时符合开播指标要求和播放性能要求,从而在避免待播视频出现播放卡顿的基础上,保证待播视频的快速开播,提高待播视频的播放流畅性。
实施例三
图3为本发明实施例三提供的一种视频下载的装置的结构示意图,具体的,如图3所示,该装置可以包括:
码率档位重选模块310,用于响应于待播视频的当前网络状态不支持所述待播视频在预下载码率下的流畅播放,从当前网络状态匹配的码率档位中选取出使所述待播视频同时符合开播指标要求和播放性能要求时对应的目标码率档位;
视频下载模块320,用于采用所述目标码率档位下载所述待播放视频。
本实施例提供的技术方案,对于完成预下载的待播视频,首先需要判断待播视频的当前网络状态是否支持待播视频在预下载码率下的流畅播放,如果当前网络状态不支持待播视频在预下载码率下的流畅播放,说明如果仍采用预下载码率来继续下载待播视频中的剩余内容,那么会造成该待播视频的播放卡顿,因此需要从当前网络状态匹配的码率档位中,重新选取对应的目标码率档位来对待播视频进行重新下载,实现待播视频在预下载码率下无法流畅播放时的码率重选,以使待播视频在目标码率档位的下载播放,能够同时符合开播指标要求和播放性能要求,从而在避免待播视频出现播放卡顿的基础上,保证待播视频的快速开播,提高待播视频的播放流畅性。
本实施例提供的视频下载的装置可适用于上述任意实施例提供的视频下载的方法,具备相应的功能和有益效果。
实施例四
图4为本发明实施例四提供的一种服务器的结构示意图,如图4所示,该服务器包括处理器40、存储装置41和通信装置42;服务器中处理器40的数量可以是一个或多个,图4中以一个处理器40为例;服务器中的处理器40、存储装置41和通信装置42可以通过总线或其他方式连接,图4中以通过总线连接为例。
本实施例提供的一种服务器可用于执行上述任意实施例提供的视频下载的方法,具备相应的功能和有益效果。
实施例五
本发明实施例五还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时可实现上述任意实施例中的视频下载的方法。该方法具体可以包括:
响应于待播视频的当前网络状态不支持所述待播视频在预下载码率下的流畅播放,从当前网络状态匹配的码率档位中选取出使所述待播视频同时符合开播指标要求和播放性能要求时对应的目标码率档位;
采用所述目标码率档位下载所述待播视频。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的视频下载的方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、闪存(flash)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
值得注意的是,上述视频下载的装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。