基于缓存时间判断视频播放状态的方法及终端与流程

文档序号:11480247阅读:232来源:国知局
基于缓存时间判断视频播放状态的方法及终端与流程

本发明涉及计算机技术,尤其涉及一种基于缓存时间判断视频播放状态的方法及终端。



背景技术:

随着网络带宽的不断提高,用户可以通过终端直接观看网络视频。网络视频在播放过程中,当网络下载速度低于片源码率,终端中的缓存数据持续降低时,播放就会出现卡顿。

现有技术中,终端通过特定的算法确定终端中已经缓存的网络视频数据量,当已经缓存的网络视频数据量低于预设的缓冲开始阈值时,终端会暂停播放,开始缓冲。当通过缓冲所缓存的数据量达到预设的缓冲结束阈值时,终端会结束缓冲,继续播放。

但是使用现有技术的方法所确定出的终端中已经缓存的网络视频数据量不够准确,导致缓冲次数过多,影响用户体验。



技术实现要素:

本发明提供一种基于缓存时间判断视频播放状态的方法及终端,用于解决现有技术中由于对终端中缓存时间计算不准确而导致的缓冲次数过多问题。

本发明第一方面提供一种基于缓存时间判断视频播放状态的方法,包括:

确定解码模块接收的多个数据帧中的时间戳信息;

根据所述时间戳信息,及当前视频播放时间,确定所述解码模块及所述解码模块的在后模块中的第二缓存时间;

根据所述第二缓存时间,与所述解码模块的在先模块中的第一缓存时间的和值,判断是否继续播放视频。

进一步地,所述时间戳信息包括最大音频显示时间戳pts以及最大视频pts。

进一步地,所述根据所述时间戳信息,及当前视频播放时间,确定所述解码模块及所述解码模块的在后模块中的第二缓存时间,包括:

计算所述最大音频pts与所述当前视频播放时间的差值;

计算所述最大视频pts与所述当前视频播放时间的差值;

将所述最大音频pts与所述当前视频播放时间的差值以及所述最大视频pts与所述当前视频播放时间的差值中的最小值作为所述第二缓存时间。

进一步地,所述根据所述第二缓存时间,以及解码模块的在先模块中的第一缓存时间的和值,判断是否继续播放视频,包括:

若所述第二缓存时间与所述解码模块的在先模块中的第一缓存时间的和值大于或等于预设的缓冲开始阈值,则所述终端确定继续播放视频,否则,所述终端确定暂停播放视频。

本发明第二方面提供一种基于缓存时间判断视频播放状态的方法,包括:

确定音视频分离模块及音视频分离模块的在先模块中的第一缓存时间;

判断所述音视频分离模块及所述音视频分离模块的在先模块中的第一缓存时间是否大于或等于缓冲开始阈值,若是,则确定继续播放视频,否则,根据上述第一方面所述的方法步骤确定是否继续播放视频。

本发明第三方面提供一种终端,包括:

第一确定模块,用于确定解码模块接收的多个数据帧中的时间戳信息;

第二确定模块,用于根据所述时间戳信息,以及当前视频播放时间,确定所述解码模块及所述解码模块的在后模块中的第二缓存时间;

处理模块,用于根据所述第二缓存时间,以及解码模块的在先模块中的第一缓存时间的和值,判断是否继续播放视频。

进一步地,所述时间戳信息包括最大音频显示时间戳pts以及最大视频pts。

进一步地,所述第二确定模块包括:

第一计算单元,用于计算所述最大音频pts与所述当前视频播放时间的差值;

第二计算单元,用于计算所述最大视频pts与所述当前视频播放时间的差值;

确定单元,用于将所述最大音频pts与所述当前视频播放时间的差值以及所述最大视频pts与所述当前视频播放时间的差值中的最小值作为所述第二缓存时间。

进一步地,所述处理模块包括:

播放单元,用于在所述第二缓存时间与所述解码模块的在先模块中的第一缓存时间的和值大于或等于预设的缓冲开始阈值时,确定继续播放视频;

暂停单元,用于在所述第二缓存时间与所述解码模块的在先模块中的第一缓存时间的和值小于预设的缓冲开始阈值时,确定暂停播放视频。

本发明第四方面提供一种终端,包括:

第一确定模块,用于确定音视频分离模块及所述音视频分离模块的在先模块中的第一缓存时间;

第二确定模块,用于在所述音视频分离模块及所述音视频分离模块的在先模块中的第一缓存时间大于或等于预设的缓冲开始阈值时,确定继续播放视频,以及,在所述音视频分离模块及所述音视频分离模块的在先模块中的第一缓存时间小于预设的缓冲开始阈值时,根据上述第一方面所述的方法步骤确定是否继续播放视频。

本发明所提供的基于缓存时间判断视频播放状态的方法及终端,终端根据解码模块接收的多个数据帧中的时间戳信息以及当前视频播放时间,可以估算出解码模块及其在后模块的缓存时间,而由于解码模块及其在后模块的缓存时间并不能直接读取,因此现有技术中不考虑这部分缓存时间,而本发明可以基于解码模块接收的多个数据帧的时间戳信息以及当前视频播放时间这两个信息,估算出解码模块及其在后模块的缓存时间,进而,将这些缓存时间增加到总缓存时间中,因此,相比于现有技术,本发明的方法可以使得确定出的终端总缓存时间与实际总缓存时间更加接近,从而减少缓冲次数,提升用户体验。

附图说明

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

图1为终端中进行视频处理的一种示例性的模块划分;

图2为本发明提供的基于缓存时间判断视频播放状态的方法实施例一的流程示意图;

图3为本发明提供的基于缓存时间判断视频播放状态的方法实施例二的流程示意图;

图4为本发明提供的另一种基于缓存时间判断视频播放状态的方法实施例一的流程示意图;

图5为本发明提供的终端实施例一的模块结构图;

图6为本发明提供的终端实施例二的模块结构图;

图7为本发明提供的终端实施例三的模块结构图;

图8为本发明提供的终端实施例四的模块结构图;

图9为本发明提供的另一种终端实施例一的模块结构图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

终端中进行视频处理的模块可能有多个,图1为终端中进行视频处理的一种示例性的模块划分,如图1所示,该终端中包括数据下载及缓存模块、音视频分离模块、解码模块、音视频同步模块以及输出模块。其中,数据下载及缓存模块用于从网络中下载并缓存待播放视频数据,并将数据发送给音视频分离模块,音视频分离模块进行音视频分离,将分离出的音频数据和视频数据发送给解码模块,由解码模块分别对音频数据和视频数据解码后发送给音视频同步模块,音视频同步模块对音频数据和视频数据的播放时间进行同步之后将音频数据和视频数据发送给输出模块,并由输出模块输出并进行播放。在上述的视频处理过程中,可能有多个模块中都存在缓存数据量,但是并不是所有模块中的缓存数据量都可以直接检测出来。例如,数据下载及缓存模块、音视频分离模块、解码模块中都可能存在缓存数据量,其中,数据下载及缓存模块和音视频分离模块的缓存数据量可以通过判断播放时长等方式准确计算出来,但是解码模块中的缓存数据量不能计算出来,现有技术中就不考虑这部分缓存数据量。

现有技术中直接将可以计算获取的缓存数据量作为终端中的总的缓存数据量,在这种处理方式下,被用作判断是否要缓冲的依据的缓存数据量就比终端中实际的缓存数据量小,从而可能出现不需要缓冲时却进行了缓冲的情况,导致缓冲次数过多,影响用户体验。

本发明基于上述问题,提出一种基于缓存时间判断视频播放状态的方法,通过估算解码模块及其在后模块的缓存时间,使得确定出的终端总缓存时间与实际总缓存时间更加接近,从而减少缓冲次数,提升用户体验。

本发明中使用缓存时间来表示缓存数据量。

图2为本发明提供的基于缓存时间判断视频播放状态的方法实施例一的流程示意图,如图2所示,该方法包括:

s201、终端确定解码模块接收的多个数据帧中的时间戳信息。

具体地,上述时间戳信息包括最大音频显示时间戳(presentationtimestamp,简称pts)以及最大视频pts。

当音视频分离模块向解码模块传递数据时,即传递数据帧时,终端可以将每个帧的pts都记录下来。帧的pts是指该帧对应的视频的播放时间,终端获取这些播放时间中最大时间。这个最大时间代表了音视频分离模块向解码模块传递的视频中的最晚播放时间。

以音频pts为例,假设音视频分离模块向解码模块传递了3个数据帧,第一个数据帧的音频pts为1秒,第二数据帧的音频pts为5秒,第三个数据帧的音频pts为10秒。则说明音视频分离模块向解码模块所传递的视频数据对应的最晚播放时间为10秒。

s202、终端获取当前视频播放时间。

当前视频播放时间是指视频当前播放到的时间。,例如,一个视频目前播放到第10秒,则该视频的当前视频播放时间为10秒。

s203、终端根据上述时间戳信息以及上述当前视频播放时间,确定解码模块及解码模块的在后模块中的第二缓存时间。

其中,解码模块的在后模块的视频播放处理在解码模块之后进行。

例如,在图1所示的模块划分中,解码模块的在后模块指音视频同步模块以及输出模块。

本步骤中,终端基于音视频分离模块发送给解码模块的最大音频pts以及最大视频pts,以及视频的当前播放时间,就可以确定出解码模块及其在后模块,即不可计算缓存时间的模块中的第二缓存时间。

s204、终端根据上述第二缓存时间,以及解码模块的在先模块中的第一缓存时间的和值,判断是否继续播放视频。

例如,在图1所示的模块划分中,解码模块的在先模块为音视频分离模块以及音视频分离模块的在先模块,音视频分离模块的在先模块包括指数据下载及缓存模块。

由于音视频分离模块及其在先模块的缓存时间可以通过计算直接获得,因此,在本步骤之前,终端可以预先计算音视频分离模块及其在先模块的缓存时间。例如,终端可以通过数据下载和缓存模块中所保存的数据量来确定数据下载和缓存模块的缓存时间。

现有技术中,解码模块的在先模块,即音视频分离模块及其在先模块的缓存时间可以直接读取出来,而解码模块及其在后模块的缓存时间不能直接读取,因此,现有技术中不考虑这部分缓存时间,导致终端确定出的总缓存时间不准确。而本实施例中,终端根据解码模块接收的多个数据帧中的时间戳信息以及当前视频播放时间,可以估算出解码模块及其在后模块的缓存时间,即基于解码模块接收的多个数据帧的时间戳信息以及当前视频播放时间这两个信息,可以将现有技术不予考虑的缓存时间估算出来,进而,将这些缓存时间增加到总缓存时间中,从而使得确定出的终端总缓存时间与实际总缓存时间更加接近,从而减少缓冲次数,提升用户体验。

在上述实施例的基础上,本实施例涉及终端根据时间戳信息,及当前视频播放时间,确定解码模块及解码模块的在后模块中的第二缓存时间的具体方法,即,图3为本发明提供的基于缓存时间判断视频播放状态的方法实施例二的流程示意图,如图3所示,上述步骤s203具体包括:

s301、终端计算最大音频pts与当前视频播放时间的差值。

s302、终端计算最大视频pts与当前视频播放时间的差值。

s303、终端将最大音频pts与当前视频播放时间的差值以及最大视频pts与当前视频播放时间的差值中的最小值作为解码模块及解码模块的在后模块中的第二缓存时间。

以下通过公式解释上述公式。

假设终端所计算出最大音频pts为pts(maxaudiopts),最大视频pts为pts(maxvideopts),当前视频播放时间为curposition,则解码模块及其在后模块中的第二缓存时间buffersize2可以使用如下公式(1)计算:

buffersize2=min((maxvideopts–curposition),(maxaudiopts–curposition))(1)

具体地,以音频为例,音视频分离模块发送给解码模块的最大音频pts代表了解码模块及其在后模块所接纳的最大数据,而当前视频播放时间代表了解码模块及其在后模块所消耗的数据,将二者相减,所获得的结果就是解码模块及其在后模块中的第二缓存时间。例如,音视频分离模块向解码模块发送的最大音频pts为30秒,而当前视频播放时间为10秒,即视频目前播放到第10秒,则说明此时解码模块及其在后模块中缓存了20秒的缓存时间。

进一步地,当终端分别获取到音频的缓存时间和视频的缓存时间之后,将其中的较小值作为最终的解码模块及其在后模块的第二缓存时间。

在上述实施例的基础上,本实施例涉及终端根据第二缓存时间,以及解码模块的在先模块中的第一缓存时间的和值,判断是否继续播放视频的具体方法,即,上述步骤s204的一种具体方法为:

若第二缓存时间与解码模块的在先模块中的第一缓存时间的和值大于或等于预设的缓冲开始阈值,则终端确定继续播放视频,否则,终端确定暂停播放视频。

具体地,解码模块及解码模块的在后模块中的第二缓存时间与音视频分离模块及音视频分离模块的在先模块中的第一缓存时间之和即为终端当前的总缓存时间,将该终端的总缓存时间与预设的缓冲开始阈值进行比较,如果大于或等于预设的缓冲开始阈值,则说明终端当前总缓存时间较大,不需要缓冲,继续进行播放即可。

如果解码模块及解码模块的在后模块中的第二缓存时间与音视频分离模块及音视频分离模块的在先模块中的第一缓存时间之和已经小于预设的缓冲开始阈值,则说明终端的总缓存时间已经较小,此时终端再暂停播放,开始缓冲。

相比于现有技术中的仅将可计算出的缓存时间与预设的缓冲开始阈值进行比较,本实施例中,是将可计算出的缓存时间与通过前述方法确定出的缓存时间之和与预设的缓冲开始阈值进行比较,显然,相比于现有技术,本实施例进行比较的缓存时间要更大,因此,能够保证缓冲次数明显减少,提升用户体验。

图4为本发明提供的另一种基于缓存时间判断视频播放状态的方法实施例一的流程示意图,如图4所示,该方法包括:

s401、终端确定音视频分离模块及音视频分离模块的在先模块中的第一缓存时间。

s402、终端判断音视频分离模块及音视频分离模块的在先模块中的第一缓存时间是否大于或等于预设的缓冲开始阈值,若是,则执行s403,否则,终端根据前述实施例一所述的方法步骤确定是否继续播放视频。

s403、终端确定继续播放视频。

终端确定是否暂停播放视频的上述过程可以按照一定的时间间隔周期性进行,在每个周期开始时,终端可以先执行本实施例中的步骤s401-s403,即终端首先确定音视频分离模块及其在先模块中的第一缓存时间,如果这些缓存时间已经大于或等于预设的缓冲开始阈值,则终端就继续播放视频,而无需再确定解码模块及其在后模块中的第二缓存时间。只有当音视频分离模块及其在先模块中的第一缓存时间小于预设的缓冲开始阈值时,终端才进一步根据解码模块及其在后模块的第二缓存时间来确定是否要暂停播放视频。这种处理方式能够保证在可计算出缓存时间的模块的缓存时间较大时直接继续播放视频,从而可以减小终端的运算次数,提升终端的处理效率。

图5为本发明提供的终端实施例一的模块结构图,如图5所示,该终端包括:

第一确定模块501,用于确定解码模块接收的多个数据帧中的时间戳信息。

获取模块502,用于获取当前视频播放时间。

第二确定模块503,用于根据上述时间戳信息,以及当前视频播放时间,确定解码模块及解码模块的在后模块中的第二缓存时间。

处理模块504,用于根据上述第二缓存时间,以及解码模块的在先模块中的第一缓存时间的和值,判断是否继续播放视频。

该终端用于实现前述方法实施例,其实现原理和技术效果类似,此处不再赘述。

另一实施例中,上述时间戳信息包括最大音频pts以及最大视频pts。

图6为本发明提供的终端实施例二的模块结构图,如图6所示,第二确定模块503包括:

第一计算单元5031,用于计算所述最大音频pts与当前视频播放时间的差值。

第二计算单元5032,用于计算所述最大视频pts与当前视频播放时间的差值。

确定单元5033,用于将最大音频pts与当前视频播放时间的差值以及最大视频pts与上述当前视频播放时间的差值中的最小值作为上述第二缓存时间。

图7为本发明提供的终端实施例三的模块结构图,如图7所示,处理模块504包括:

播放单元5041,用于在上述第二缓存时间与解码模块的在先模块中的第一缓存时间的和值大于或等于预设的缓冲开始阈值时,确定继续播放视频。

图8为本发明提供的终端实施例四的模块结构图,如图8所示,处理模块504还包括:

暂停单元5042,用于在上述第二缓存时间与所述解码模块的在先模块中的第一缓存时间的和值小于预设的缓冲开始阈值时,确定暂停播放视频。

图9为本发明提供的另一种终端实施例一的模块结构图,如图9所示,该终端还包括:

第一确定模块901,用于确定音视频分离模块及音视频分离模块的在先模块中的第一缓存时间。

第二确定模块902,用于在音视频分离模块及音视频分离模块的在先模块中的第一缓存时间大于或等于预设的缓冲开始阈值时,确定继续播放视频,以及,在音视频分离模块及音视频分离模块的在先模块中的第一缓存时间小于预设的缓冲开始阈值时,根据前述实施例一所述的方法步骤确定是否继续播放视频。

本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

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