掌桥专利:专业的专利平台
掌桥专利
首页

一种视频播放方法、装置、设备及可读存储介质

文献发布时间:2023-06-19 18:30:43


一种视频播放方法、装置、设备及可读存储介质

技术领域

本申请涉及视频处理技术领域,特别涉及一种视频播放方法、装置、设备及可读存储介质。

背景技术

目前,用户播放视频时可以根据自身需求设定播放倍速,如:设定视频以2倍速播放。一般用户设定速度后,设备就会按照用户设定的速度进行视频播放。如果在低性能设备上以用户设定的高倍速播放视频,容易出现视频播放卡顿、黑屏等现象。

因此,如何降低视频播放卡顿等异常现象的发生概率,是本领域技术人员需要解决的问题。

发明内容

本申请的主要目的在于提供一种视频播放方法、装置、设备及可读存储介质,意在降低视频播放卡顿等异常现象的发生概率。

为实现上述目的,本申请提供了一种视频播放方法,包括:

识别当前所播放视频的播放倍速是否为期望播放倍速;所述期望播放倍速为用户设定值;

若所述视频的播放倍速不为所述期望播放倍速,则以第一变化值提高所述视频的播放倍速,并识别所述视频是否发生卡顿;

若所述视频发生卡顿,则降低所述视频的播放倍速。

可选地,所述降低所述视频的播放倍速,包括:

以第二变化值降低所述视频的播放倍速。

可选地,所述降低所述视频的播放倍速,包括:

计算实际解码帧率;

基于所述实际解码帧率和所述视频的预设解码帧率降低所述视频的播放倍速。

可选地,所述计算实际解码帧率之前,还包括:

统计播放倍速提高时刻至当前时刻的解码总帧数;

若所述解码总帧数大于解码帧数阈值、且当前帧视频画面的时间戳与当前音频时间戳的差值大于预设目标值,则执行所述计算实际解码帧率的步骤;所述解码帧数阈值为所述预设解码帧率与预设值的乘积。

可选地,所述基于所述实际解码帧率和所述视频的预设解码帧率降低所述视频的播放倍速,包括:

计算所述实际解码帧率与所述预设解码帧率的比值;

将所述比值与设定值的差值确定为降低后的播放倍速。

可选地,还包括:

对所述视频中的每帧视频画面解码之前,初始化可丢连续画面数;

计算当前帧视频画面的时间戳与当前音频时间戳的差值;

若所述差值大于预设第一阈值、且不大于预设第二阈值,则对比已丢连续画面数和当前的可丢连续画面数的大小,并按照对比结果确定是否丢弃当前帧视频画面;其中,所述预设第一阈值小于所述预设第二阈值。

可选地,所述按照对比结果确定是否丢弃当前帧视频画面,包括:

在已丢连续画面数小于当前的可丢连续画面数时,丢弃当前帧视频画面,并使已丢连续画面数递增一;

在已丢连续画面数不小于当前的可丢连续画面数时,对当前帧视频画面进行解码,并使已丢连续画面数置零。

可选地,还包括:

若所述差值不大于所述预设第一阈值,则对当前帧视频画面进行解码,并使已丢连续画面数置零。

可选地,还包括:

若所述差值大于所述预设第二阈值,则使当前的可丢连续画面数递增,并在所述差值不大于预设第三阈值时,执行所述对比已丢连续画面数和当前的可丢连续画面数的大小,并按照对比结果确定是否丢弃当前帧视频画面的步骤;其中,所述预设第二阈值小于所述预设第三阈值。

可选地,还包括:

若所述差值大于所述预设第三阈值,则使当前的可丢连续画面数再次递增,并执行所述对比已丢连续画面数和当前的可丢连续画面数的大小,并按照对比结果确定是否丢弃当前帧视频画面的步骤。

可选地,还包括:

若所述视频的播放倍速为所述期望播放倍速,则执行所述识别所述视频是否发生卡顿的步骤;

若所述视频未发生卡顿,则执行所述识别所述视频的播放倍速是否为期望播放倍速的步骤。

为实现上述目的,本申请进一步提供了一种视频播放装置,包括:

识别模块,用于识别所述视频的播放倍速是否为期望播放倍速;所述期望播放倍速为用户设定值;

提速模块,用于若所述视频的播放倍速不为所述期望播放倍速,则以第一变化值提高所述视频的播放倍速,并识别所述视频是否发生卡顿;

降速模块,用于若所述视频发生卡顿,则降低所述视频的播放倍速。

为实现上述目的,本申请进一步提供了一种电子设备,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序,以实现前述公开的视频播放方法。

为实现上述目的,本申请进一步提供了一种可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述公开的视频播放方法。

为实现上述目的,本申请进一步提供了一种计算机程序产品,包括计算机指令,当其在计算机上运行时,使得计算机可以执行前述公开的视频播放方法。

通过以上方案可知,本申请提供了一种视频播放方法,包括:识别当前所播放视频的播放倍速是否为期望播放倍速;所述期望播放倍速为用户设定值;若所述视频的播放倍速不为所述期望播放倍速,则以第一变化值提高所述视频的播放倍速,并识别所述视频是否发生卡顿;若所述视频发生卡顿,则降低所述视频的播放倍速。

可见,本申请在识别到当前所播放视频的播放倍速不是用户设定的期望播放倍速时,以第一变化值提高视频的播放倍速,并识别视频是否发生卡顿;若视频发生卡顿,则降低视频的播放倍速。由此本申请可以逐步提升视频播放倍速,在视频发生卡顿时,则降低视频的播放倍速,从而可以在保证视频音画同步播放的前提下,参照用户设定的期望播放倍速逐步自动调整视频播放倍速,降低视频播放卡顿、黑屏等现象的发生概率。其中,逐渐降低播放倍速或逐渐提高播放倍速,可以使播放倍速平滑地过渡,降低用户对播放倍速变化地感知。

相应地,本申请提供的一种视频播放装置、设备、可读存储介质及计算机程序产品,也同样具有上述技术效果。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本申请公开的一种视频播放方法流程图;

图2为本申请公开的一种丢帧判断流程示意图;

图3为本申请公开的一种升速流程示意图;

图4为本申请公开的一种降速流程示意图;

图5为本申请公开的一种视频播放装置示意图;

图6为本申请公开的一种电子设备示意图;

图7为本申请公开的另一种电子设备示意图。

本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

需要说明的是,在本申请中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。

参见图1,图1为本申请公开的第一种视频播放方法流程图。在本实施例中,该方法包括:

S101、识别当前所播放视频的播放倍速是否为期望播放倍速;期望播放倍速为用户设定值。

S102、若视频的播放倍速不为期望播放倍速,则以第一变化值提高视频的播放倍速,并识别视频是否发生卡顿。

在视频播放过程中,用户可以随时设定自己期望的播放倍速,从而使视频播放设备按照用户所设定播放倍速进行视频播放。本实施例为了避免用户在性能较低的设备上设定较大的播放倍速,导致播放卡顿,在确定当前所播放视频的播放倍速不是用户设定的期望播放倍速时,以第一变化值提高视频的播放倍速。若视频的播放倍速为期望播放倍速,则执行识别视频是否发生卡顿的步骤;若视频未发生卡顿,则执行识别视频的播放倍速是否为期望播放倍速的步骤。视频播放设备包括但不限于智能机器人、智能手机、平板电脑、笔记本电脑或台式电脑等。

需要说明的是,第一变化值可以是本次用于提高播放倍速的递增值,也可以是本次提高播放倍速后得到的播放倍速取值。如果第一变化值是本次用于提高播放倍速的递增值,那么在一种示例中,第一变化值取值为0.2,那么将当前所播放视频的播放倍速1增加0.2,得到1.2,然后以1.2倍速播放当前视频。在以1.2倍速播放当前视频时,可以判断视频是否发生卡顿;如果发生卡顿,则降低视频的播放倍速。由此可以在保证视频音画同步播放的前提下,参照用户设定的期望播放倍速逐步自动调整视频播放倍速,降低视频播放卡顿、黑屏等现象的发生概率。

在本实施例中,第一变化值可以取值为固定值,也可以基于算法或规则确定。当第一变化值取值为固定值时,每次提高播放倍速时以第一变化值进行倍速递增,此时第一变化值可以是本次用于提高播放倍速的递增值。当第一变化值基于算法或规则确定时,每次提高播放倍速时利用算法或规则输出一个第一变化值,然后在原有播放倍速的基础上加上算法或规则输出的第一变化值,得到提高后的播放倍速;当然,也可以直接让算法或规则输出提高后的播放倍速;此时第一变化值既可以是本次用于提高播放倍速的递增值,也可以是本次提高播放倍速后得到的播放倍速取值。需要注意的是,每次提高后的播放倍速不应大于用户设定的期望播放倍速。如果某一次计算所得的提高后播放倍速大于用户设定的期望播放倍速,那么本次计算所得的提高后播放倍速弃之不用,而直接取用户设定的期望播放倍速作为本次提高后播放倍速。

在一种示例中,如果采用中值取值规则提高播放倍速,那么可以取当前所播放视频的播放倍速和用户期望播放倍速的中值作为提高后的播放倍速。如果采用中值取值规则降低播放倍速,那么可以取当前所播放视频的播放倍速和用户期望播放倍速的中值作为降低后的播放倍速。如果采用随机取值规则提高播放倍速,那么可以在当前所播放视频的播放倍速和用户期望播放倍速之间随机取一个值作为提高后的播放倍速。如果采用随机取值规则降低播放倍速,那么也可以在当前所播放视频的播放倍速和用户期望播放倍速之间随机取一个值作为降低后的播放倍速。可见,逐渐提高播放倍速和逐渐降低播放倍速的实现方式有多种,在具体实现时可以参照实际需求灵活选择。逐渐降低播放倍速或逐渐提高播放倍速,可以使播放倍速平滑地过渡,降低用户对播放倍速变化地感知。

S103、若视频发生卡顿,则降低视频的播放倍速。

在一种实施方式中,降低视频的播放倍速,包括:以第二变化值降低视频的播放倍速。例如:第二变化值取值为0.2,那么将当前所播放视频的播放倍速1降低0.2,得到0.8,然后以0.8倍速播放当前视频。在以0.8倍速播放当前视频时,可以判断视频是否发生卡顿;如果发生卡顿,则再次降低视频的播放倍速,由此可以保证视频音画同步播放,降低视频播放卡顿、黑屏等现象的发生概率。需要说明的是,第二变化值可以取值为固定值,也可以基于算法或规则确定,具体可参照上述关于第一变化值的相关介绍,在此不再赘述。

通常情况下,视频有自己的预设解码帧率,但由于视频解码受网络环境、视频播放设备性能等因素影响,导致视频的实际解码帧率可能低于预设解码帧率。视频的实际解码帧率可以基于一段时间内解码总帧数与这段时间的比值确定。例如:10秒内解码总帧数为1000,那么实际解码帧率F1=1000/10=100。

在一种实施方式中,降低视频的播放倍速,包括:计算实际解码帧率;基于实际解码帧率和视频的预设解码帧率降低视频的播放倍速。其中,基于实际解码帧率和视频的预设解码帧率降低视频的播放倍速,包括:计算实际解码帧率与预设解码帧率的比值;将比值与设定值的差值确定为降低后的播放倍速。如果视频的预设解码帧率F2为120,那么在一种示例中,降低后的播放倍速=(F1/F2)-A,A为设定值,F1为前述计算得到的实际解码帧率。

其中,计算实际解码帧率之前,还包括:统计播放倍速提高时刻至当前时刻的解码总帧数;若解码总帧数大于解码帧数阈值、且当前帧视频画面的时间戳与当前音频时间戳的差值大于预设目标值,则执行计算实际解码帧率;基于实际解码帧率和视频的预设解码帧率降低视频的播放倍速的步骤;解码帧数阈值为预设解码帧率与预设值B的乘积。统计播放倍速提高时刻至当前时刻的解码总帧数,并判断解码总帧数与解码帧数阈值的大小,可以确定:播放倍速提高时刻至当前时刻这一段时间内解码总帧数,如果该解码总帧数大于解码帧数阈值,说明播放倍速提高时刻至当前时刻这一段时间已经满足降速功能开启的一个条件,即:已经以提高后播放倍速让视频播放了足够长时间;如果此时当前帧视频画面的时间戳与当前音频时间戳的差值大于预设目标值,说明当前时刻音画不同步,那么认为满足降速功能开启的另一个条件,因此降低视频的播放倍速。可见,当在某一倍速下已经尝试播放了足够长时间,但音画仍不同步,则认为当前设备难以在当前倍速下顺利播放视频,因此进行降速处理。其中,本实施例“统计播放倍速提高时刻至当前时刻的解码总帧数,并判断解码总帧数与解码帧数阈值的大小”的目的是:判断以提高后播放倍速让视频播放的时间是否足够长,此方式便于进行代码实现。当然,也可以直接从播放倍速提高时刻开始计时,待计时时间足够长时,判断视频画面时间戳落后音频时间戳多久,从而确定是否进行降速处理。

可见,本实施例在识别到当前所播放视频的播放倍速不是用户设定的期望播放倍速时,以第一变化值提高视频的播放倍速,并识别视频是否发生卡顿;若视频发生卡顿,则降低视频的播放倍速。由此本实施例可以逐步提升视频播放倍速,在视频发生卡顿时,则降低视频的播放倍速,从而可以在保证视频音画同步播放的前提下,参照用户设定的期望播放倍速逐步自动调整视频播放倍速,降低视频播放卡顿、黑屏等现象的发生概率。

基于上述实施例,需要说明的是,无论以哪个倍速值播放视频,在播放过程中都会进入丢帧判断流程,因为在解码每一帧画面之前,会针对当前帧画面进行是否丢帧的判断。

在一种实施方式中,对视频中的每帧视频画面解码之前,初始化可丢连续画面数,可丢连续画面数用于限制最多允许连续丢几帧;计算当前帧视频画面的时间戳与当前音频时间戳的差值;若差值大于预设第一阈值、且不大于预设第二阈值,则对比已丢连续画面数和当前的可丢连续画面数的大小,并按照对比结果确定是否丢弃当前帧视频画面;其中,预设第一阈值小于预设第二阈值。若差值不大于预设第一阈值,则对当前帧视频画面进行解码,并使已丢连续画面数置零。若差值大于预设第二阈值,则使当前的可丢连续画面数递增,并在差值不大于预设第三阈值时,执行对比已丢连续画面数和当前的可丢连续画面数的大小,并按照对比结果确定是否丢弃当前帧视频画面的步骤;其中,预设第二阈值小于预设第三阈值。若差值大于预设第三阈值,则使当前的可丢连续画面数再次递增,并执行对比已丢连续画面数和当前的可丢连续画面数的大小,并按照对比结果确定是否丢弃当前帧视频画面的步骤。其中,递增可丢连续画面数时,可以递增一个固定值或按照预设的算法、规则进行递增。

其中,按照对比结果确定是否丢弃当前帧视频画面,包括:在已丢连续画面数小于当前的可丢连续画面数时,丢弃当前帧视频画面,并使已丢连续画面数递增一;在已丢连续画面数不小于当前的可丢连续画面数时,对当前帧视频画面进行解码,并使已丢连续画面数置零。

请参见图2,对于每一帧画面,初始化最大连续丢帧次数M(即上文所述的可丢连续画面数),计算当前画面的时间戳落后音频时间戳多久,若落后时长不大于X1(即上文所述的预设第一阈值),说明落后时长在允许范围内,认为当前时刻音画是同步的,所以当前帧画面不丢,此时由于当前帧画面被保留,导致已丢连续画面数的计数被中断,因此实际连续所丢的画面帧数N(即上文所述的已丢连续画面数)置0。

若落后时长大于X1,那么比较落后时长与X2(即上文所述的预设第二阈值)的大小。若落后时长不大于X2,说明没有达到M的增大条件,所以M保持不变,之后对比N和M的大小,在N大于M时,说明实际连续所丢的画面帧数N已经达到最大值,再丢本帧画面的话,会影响画面连续性,因此本帧画面不丢,此时已丢连续画面数的计数被中断,因此N置0;在N不大于M时,说明实际连续所丢的画面帧数N没有达到最大值,本帧画面被丢弃,不会影响画面连续性,因此丢弃本帧画面,此时已丢连续画面数的计数递增一,即N=N+1。其中,已丢连续画面数可参照下述示例进行理解:如果视频中的第1帧、第2帧、第3帧都被丢弃,而第4帧被保留,那么在针对第3帧进行丢帧判断后,已丢连续画面数N就等于3;在针对第4帧进行丢帧判断后,N会置0。

若落后时长大于X2,那么认为达到了M的增大条件,此时使M递增一,即M=M+1。之后比较落后时长与X3(即上文所述的预设第三阈值)的大小。若落后时长不大于X3,此时M取前一步骤更新得到的M+1,之后对比N和M的大小,以确定本帧是否需要丢弃以及N的取值。若落后时长大于X3,那么M在M+1的基础上再加一,即:M=M+1+1,之后对比N和M的大小,以确定本帧是否需要丢弃以及N的取值。

其中,按照图2在针对每一帧画面进行丢帧判断时,都初始化M的取值,故针对每一帧画面,M最多增大2。图2中X1<X2<X3。

可见,本实施例设定了三个阈值来层层把控丢帧策略,由此可谨慎确定是否丢帧,从而避免因丢帧太多导致画面不连续或因丢帧太少导致音画不同步。也就是说,本实施例可以在保证音画同步以及画面连续性的前提下,进行丢帧判断,由此可避免播放卡顿、音画不同步、黑屏等异常现象。

基于上述实施例,可以在能够安装于视频播放设备的视频播放器中设置丢帧判断组件、升速组件、检测组件和降速组件。其中,丢帧判断组件可以用于判断每一视频帧是否丢弃。升速组件可以在用户提升视频播放倍速时,使视频播放倍速逐渐升速至用户期望的倍速、或使视频播放倍速逐渐升速至稍小于用户期望的倍速。检测组件用于判断是否开启降速功能。降速组件用于在开启降速功能后,逐渐进行降速处理。逐渐降低播放倍速或逐渐提高播放倍速,可以使播放倍速平滑地过渡,降低用户对播放倍速变化地感知,也使视频流畅播放。

丢帧判断组件能够在保障画面连续性的同时,避免视频播放卡顿现象,具体可以执行图2所示流程实现。如图2所示,其中设置了最大连续丢帧次数M,并且在图2所示流程中,M可以根据视频帧时间戳落后音频帧时间戳的时长进行变动。如果视频帧时间戳落后音频帧时间戳过长,那么M会在流程中递增,如果视频帧时间戳落后音频帧时间戳不是很长,那么M可以保持不变。

升速组件在逐渐升速的过程中,还可以保证音画同步。如图3所示,若视频播放器正在以倍速C播放视频,且以倍速C播放视频未发生卡顿,此时若用户设置倍速2,那么视频播放器可以判断视频当前播放倍速C与倍速2的大小,如果C小于2,那么视频播放器调用升速组件使播放倍速提升为C+D,D为上述实施例所述的第一变化值,之后以增大后的C+D进行视频播放。如果C等于,那么以倍速2播放视频。

需要说明的是,如果C小于2,那么C+D不能大于用户期望倍速2,所以在以C+D进行视频播放之前,还需要比较C+D与2的大小,若C+D不大于2,那么以C+D进行视频播放。如果C+D大于2,那么以用户期望倍速2进行视频播放。无论以哪个倍速值进行视频播放,在解码每一帧视频时,都调用丢帧判断组件确定是否需要丢帧。

如果C+D小于2、且以C+D播放视频没有卡顿,那么再次调用升速组件使播放倍速提升为C+D+D,如此循环,直至视频播放倍速提升至用户期望倍速2或视频播放倍速稍小于2。如果C+D小于2、但以C+D播放视频发生卡顿,那么调用检测组件来确定是否降速。在整个调整过程中,可以提示用户当前正在动态调整播放倍速。

如图3所示,以某一倍速播放视频是否发生卡顿通过如下条件进行判断:按照图2所示流程确定是连续且未被丢的视频帧数量不小于E×F2,E为预先设定的数值,F2为视频的预设解码帧率,那么认为以当前倍速播放视频未发生卡顿,即:认为当前倍速下能够实现音画同步播放;否则,认为以当前倍速播放视频发生卡顿,即:认为当前倍速下不能够实现音画同步播放。其中,连续且未被丢的视频帧数量可参照下述示例进行理解:如果视频中的第1帧、第2帧、第3帧都被保留,而第4帧被丢弃,那么在针对第3帧进行丢帧判断后,连续且未被丢的视频帧数量就等于3;在针对第4帧进行丢帧判断后,连续且未被丢的视频帧数量会置0。

检测组件能够检测出当前是否满足降速条件。也即:在以某一倍速P播放视频发生卡顿时,调用检测组件来确定是否降速。如图4所示,是否降速的判断条件为:在倍速P下解码的总帧数大于解码帧数阈值、且当前时刻音画不同步,那么认为满足降速功能开启条件,因此调用降速组件进行降速处理。

如图4所示,在降速组件确定降速功能开启后,确定降速功能开启时刻至当前时刻的时间差T,如果T不小于预设时间阈值,那么计算降速功能开启时刻至当前时刻这一段时间内的实际解码帧率F1,然后按照公式(F1/F2)-A计算得到本次降低后的倍速。F2为视频的预设解码帧率,A为设定值。如果F2为100帧/每秒,那么计算实际解码帧率F1时,可以从降速功能开始时刻计时,在计时5分钟后,计算这5分钟内的解码总帧数除以300秒,得到的商即为F1。本次降低倍速后,以本次降低后的倍速进行视频播放,同样在播放过程中判断是否存在卡顿,若存在卡顿,则重复上述流程再次降速;如果不存在卡顿,则在播放过程中进行是否丢帧的判断。可见,无论以哪个倍速值进行视频播放,在解码每一帧视频时,都调用丢帧判断组件确定是否需要丢帧。在整个调整过程中,可以提示用户当前正在动态调整播放倍速。

可见,本实施例能够为视频播放器增加:逐渐升速功能和逐渐降速功能,并同时能够保障音画同步播放,从而在保证视频音画同步播放的前提下,参照用户设定的期望播放倍速逐步自动调整视频播放倍速,降低视频播放卡顿、黑屏等现象的发生概率。

下面对本申请实施例提供的一种视频播放装置进行介绍,下文描述的一种视频播放装置与上文描述的一种视频播放方法可以相互参照。

参见图5,图5为本申请公开的一种视频播放装置示意图。在本实施例中,该装置包括:

识别模块501,用于识别视频的播放倍速是否为期望播放倍速;期望播放倍速为用户设定值;

提速模块502,用于若视频的播放倍速不为期望播放倍速,则以第一变化值提高视频的播放倍速,并识别视频是否发生卡顿;

降速模块503,用于若视频发生卡顿,则降低视频的播放倍速。

在一种实施方式中,降速模块具体用于:

以第二变化值降低视频的播放倍速。

在一种实施方式中,降速模块包括:

计算单元,用于计算实际解码帧率;

降速单元,用于基于实际解码帧率和视频的预设解码帧率降低视频的播放倍速。

在一种实施方式中,降速模块还包括:

统计单元,用于统计播放倍速提高时刻至当前时刻的解码总帧数;若解码总帧数大于解码帧数阈值、且当前帧视频画面的时间戳与当前音频时间戳的差值大于预设目标值,则进入计算单元;解码帧数阈值为预设解码帧率与预设值的乘积。

在一种实施方式中,降速单元具体用于:

计算实际解码帧率与预设解码帧率的比值;

将比值与设定值的差值确定为降低后的播放倍速。

在一种实施方式中,该装置还包括:丢帧判断模块;

其中,丢帧判断模块用于:

对视频中的每帧视频画面解码之前,初始化可丢连续画面数;

计算当前帧视频画面的时间戳与当前音频时间戳的差值;

若差值大于预设第一阈值、且不大于预设第二阈值,则对比已丢连续画面数和当前的可丢连续画面数的大小,并按照对比结果确定是否丢弃当前帧视频画面;其中,预设第一阈值小于预设第二阈值。

在一种实施方式中,丢帧判断模块具体用于:

在已丢连续画面数小于当前的可丢连续画面数时,丢弃当前帧视频画面,并使已丢连续画面数递增一;

在已丢连续画面数不小于当前的可丢连续画面数时,对当前帧视频画面进行解码,并使已丢连续画面数置零。

在一种实施方式中,丢帧判断模块还用于:

若差值不大于预设第一阈值,则对当前帧视频画面进行解码,并使已丢连续画面数置零。

在一种实施方式中,丢帧判断模块还用于:

若差值大于预设第二阈值,则使当前的可丢连续画面数递增,并在差值不大于预设第三阈值时,执行对比已丢连续画面数和当前的可丢连续画面数的大小,并按照对比结果确定是否丢弃当前帧视频画面的步骤;其中,预设第二阈值小于预设第三阈值。

在一种实施方式中,丢帧判断模块还用于:

若差值大于预设第三阈值,则使当前的可丢连续画面数再次递增,并执行对比已丢连续画面数和当前的可丢连续画面数的大小,并按照对比结果确定是否丢弃当前帧视频画面的步骤。

在一种实施方式中,还包括:

执行模块,用于若视频的播放倍速为期望播放倍速,则执行识别视频是否发生卡顿的步骤;若视频未发生卡顿,则执行识别视频的播放倍速是否为期望播放倍速的步骤。

其中,关于本实施例中各个模块、单元更加具体的工作过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。

可见,本实施例提供了一种视频播放装置,能够在保证视频音画同步播放的前提下,参照用户设定的期望播放倍速逐步自动调整视频播放倍速,降低视频播放卡顿、黑屏等现象的发生概率。

下面对本申请实施例提供的一种电子设备进行介绍,下文描述的一种电子设备与上文描述的一种视频播放方法及装置可以相互参照。

参见图6,图6为本申请公开的一种电子设备示意图。在本实施例中,该设备包括:

存储器601,用于保存计算机程序;

处理器602,用于执行所述计算机程序,以实现以下步骤:识别当前所播放视频的播放倍速是否为期望播放倍速;期望播放倍速为用户设定值;若视频的播放倍速不为期望播放倍速,则以第一变化值提高视频的播放倍速,并识别视频是否发生卡顿;若视频发生卡顿,则降低视频的播放倍速。

在本实施例中,所述处理器执行所述存储器中保存的计算机子程序时,可以具体实现以下步骤:以第二变化值降低视频的播放倍速。

在本实施例中,所述处理器执行所述存储器中保存的计算机子程序时,可以具体实现以下步骤:计算实际解码帧率;基于实际解码帧率和视频的预设解码帧率降低视频的播放倍速。

在本实施例中,所述处理器执行所述存储器中保存的计算机子程序时,可以具体实现以下步骤:统计播放倍速提高时刻至当前时刻的解码总帧数;若解码总帧数大于解码帧数阈值、且当前帧视频画面的时间戳与当前音频时间戳的差值大于预设目标值,则执行计算实际解码帧率的步骤;解码帧数阈值为预设解码帧率与预设值的乘积。

在本实施例中,所述处理器执行所述存储器中保存的计算机子程序时,可以具体实现以下步骤:计算实际解码帧率与预设解码帧率的比值;将比值与设定值的差值确定为降低后的播放倍速。

在本实施例中,所述处理器执行所述存储器中保存的计算机子程序时,可以具体实现以下步骤:对视频中的每帧视频画面解码之前,初始化可丢连续画面数;计算当前帧视频画面的时间戳与当前音频时间戳的差值;若差值大于预设第一阈值、且不大于预设第二阈值,则对比已丢连续画面数和当前的可丢连续画面数的大小,并按照对比结果确定是否丢弃当前帧视频画面;其中,预设第一阈值小于预设第二阈值。

在本实施例中,所述处理器执行所述存储器中保存的计算机子程序时,可以具体实现以下步骤:在已丢连续画面数小于当前的可丢连续画面数时,丢弃当前帧视频画面,并使已丢连续画面数递增一;在已丢连续画面数不小于当前的可丢连续画面数时,对当前帧视频画面进行解码,并使已丢连续画面数置零。

在本实施例中,所述处理器执行所述存储器中保存的计算机子程序时,可以具体实现以下步骤:若差值不大于预设第一阈值,则对当前帧视频画面进行解码,并使已丢连续画面数置零。

在本实施例中,所述处理器执行所述存储器中保存的计算机子程序时,可以具体实现以下步骤:若差值大于预设第二阈值,则使当前的可丢连续画面数递增,并在差值不大于预设第三阈值时,执行对比已丢连续画面数和当前的可丢连续画面数的大小,并按照对比结果确定是否丢弃当前帧视频画面的步骤;其中,预设第二阈值小于预设第三阈值。

在本实施例中,所述处理器执行所述存储器中保存的计算机子程序时,可以具体实现以下步骤:若差值大于预设第三阈值,则使当前的可丢连续画面数再次递增,并执行对比已丢连续画面数和当前的可丢连续画面数的大小,并按照对比结果确定是否丢弃当前帧视频画面的步骤。

在本实施例中,所述处理器执行所述存储器中保存的计算机子程序时,可以具体实现以下步骤:若视频的播放倍速为期望播放倍速,则执行识别视频是否发生卡顿的步骤;若视频未发生卡顿,则执行识别视频的播放倍速是否为期望播放倍速的步骤。

参见图7,图7为本申请公开的另一种电子设备示意图。该电子设备可以包括存储器11、处理器12和总线13。

其中,存储器11至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、磁性存储器、磁盘、光盘等。存储器11在一些实施例中可以是电子设备的内部存储单元,例如该电子设备的硬盘。存储器11在另一些实施例中也可以是电子设备的外部存储设备,例如电子设备上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(FlashCard)等。进一步地,存储器11还可以既包括电子设备的内部存储单元也包括外部存储设备。存储器11不仅可以用于存储安装于电子设备的应用软件及各类数据,例如视频播放程序的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。

处理器12在一些实施例中可以是一中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器11中存储的程序代码或处理数据,例如执行视频播放程序等。

该总线13可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

进一步地,电子设备还可以包括网络接口,网络接口可选的可以包括有线接口和/或无线接口(如WI-FI接口、蓝牙接口等),通常用于在该设备与其他电子设备之间建立通信连接。

可选地,该设备还可以包括用户接口,用户接口可以包括显示器(Display)、输入单元比如键盘(Keyboard),可选的用户接口还可以包括标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在该设备中处理的信息以及用于显示可视化的用户界面。

图7仅示出了具有组件11-13的电子设备,本领域技术人员可以理解的是,图7示出的结构并不构成对设备的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。

下面对本申请实施例提供的一种可读存储介质进行介绍,下文描述的一种可读存储介质与上文描述的一种视频播放方法、装置、设备及可读存储介质可以相互参照。

一种可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述实施例公开的视频播放方法。关于该方法的具体步骤可以参考前述实施例中公开的相应内容,在此不再进行赘述。

下面对本申请实施例提供的一种计算机程序产品进行介绍,下文描述的一种计算机程序产品与上文描述的一种视频播放方法、装置、设备及可读存储介质可以相互参照。

一种计算机程序产品,包括计算机指令,当其在计算机上运行时,使得计算机可以执行前述实施例公开的视频播放方法。关于该方法的具体步骤可以参考前述实施例中公开的相应内容,在此不再进行赘述。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的可读存储介质中。

本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

相关技术
  • 控制视频播放的方法、装置、可读存储介质及电子设备
  • 一种浴室加热装置和用于控制浴室加热装置的方法、设备、电子设备及计算机可读存储介质
  • 一种数据存储方法、装置、设备及计算机可读存储介质
  • 一种存储池创建方法、装置、设备及可读存储介质
  • 一种日志存储方法、装置、设备及可读存储介质
  • 视频播放方法、视频播放装置、电子设备和可读存储介质
  • 视频播放控制方法、装置、视频播放设备和可读存储介质
技术分类

06120115592502