首页> 中国专利> 视频seek方法、系统、视频播放服务器及存储介质

视频seek方法、系统、视频播放服务器及存储介质

摘要

本发明提供了一种视频seek方法、系统、视频播放服务器及存储介质,本发明的视频seek方法在关键帧数据包不在拖动操作落点位置对应播放时间附近的第一时间范围内时,会收集落点位置至拖动操作的起点位置之间时间范围内所有的已解码视频帧生成暂播视频片段;将当前画面切换为播放暂播视频片段播放,以让用户知晓解码操作还在正常进行,避免用户因为视频画面长时间不动而导致的等待焦虑,同时再去扫描播放时间附近第一时间范围外的各个视频帧数据包,找到距离播放时间最近的关键帧数据包,找到关键帧数据包后解码到落点位置的视频帧及一定时间长度的后续视频帧后进行播放切换,解决了现有视频seek方法关键帧距离seek位置很远时,用户体验不佳的问题。

著录项

  • 公开/公告号CN115967842A

    专利类型发明专利

  • 公开/公告日2023-04-14

    原文格式PDF

  • 申请/专利权人 深圳软牛科技有限公司;

    申请/专利号CN202211652158.8

  • 发明设计人 姚梦琳;

    申请日2022-12-21

  • 分类号H04N21/845;H04N21/472;H04N21/438;

  • 代理机构深圳市特讯知识产权代理事务所(普通合伙);

  • 代理人孟智广

  • 地址 518000 广东省深圳市宝安区新安街道海旺社区兴业路1100号金利通金融中心大厦2栋1301-1310

  • 入库时间 2023-06-19 19:28:50

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2023-05-02

    实质审查的生效 IPC(主分类):H04N21/845 专利申请号:2022116521588 申请日:20221221

    实质审查的生效

说明书

技术领域

本发明涉及视频解码播放技术领域,尤其涉及一种视频seek方法、系统、视频播放服务器及存储介质。

背景技术

随着多媒体技术的发展,越来越多的人会使用手机电脑等设备观看视频,有时需要回过头反复观看某个片段,有时需要拖动进度条寻找某个感兴趣的画面或片段,因此,可以实时改变播放位置显示相应画面是很重要也很基础的一个功能,这个功能操作就叫做seek,对于音视频播放设备来说,能准确高速的响应seek操作是十分重要的。

现有视频seek方法,如果关键帧距离seek位置很远,需要解码的视频帧会增加,那么耗时也会相应增加,对应的播放画面就会长时间的处于暂停状态,而暂停时间一长,用户就可能会觉得是设备或网络发生了异常,就会去频繁的刷新视频,用户体验及其不佳。

因此,现有技术还有待于改进和发展。

发明内容

本发明的主要目的旨在提供一种视频seek方法、系统、设备及存储介质,以解决背景技术所述的现有技术问题。

本发明第一方面提供了一种视频seek方法,包括以下步骤:

接收用户对视频播放进度条的拖动操作,暂停当前画面的播放并获取所述拖动操作的落点位置;

判断所述落点位置是否处于已解码片段区;

若所述落点位置不处于已解码片段区,则获取所述落点位置的播放时间;

扫描所述播放时间附近第一时间范围内的各个视频帧数据包,若在所述播放时间附近所述第一时间范围内的各个视频帧数据包中未找到关键帧数据包,则收集所述落点位置至所述拖动操作的起点位置之间时间范围内所有的已解码视频帧生成暂播视频片段;

将当前画面切换为播放所述暂播视频片段,同时扫描所述播放时间附近所述第一时间范围外的各个视频帧数据包,找到距离所述播放时间最近的关键帧数据包;

从所述关键帧数据包开始解码获得所述播放时间的目标视频帧以及后续视频帧,其中,对于所述关键帧数据包与所述目标视频帧之间的各个视频数据包只解码属性为参考帧的视频帧数据包;

当所述后续视频帧的持续播放时间达到第一时长时,切换当前画面为播放所述目标视频帧并依次播放所述后续视频帧。

在本发明第一方面一种可选的实施方式中,所述则收集所述落点位置至所述拖动操作的起点位置之间时间范围内所有的已解码视频帧生成暂播视频片段之后,所述将当前画面切换为播放所述暂播视频片段之前包括:

获取所述暂播视频片段的总播放时长;

判断所述总播放时长是否大于等于第一阈值;

若所述总播放时长小于所述第一阈值,则将视频播放帧率降至第一计算值,所述第一计算值为使所述暂播视频片段的所述总播放时长延长至大于等于所述第一阈值时计算得到的目标帧率值。

在本发明第一方面一种可选的实施方式中,所述找到距离所述播放时间最近的关键帧数据包之后,所述从所述关键帧数据包开始解码获得所述播放时间的目标视频帧以及后续视频帧之前包括:

获取所述关键帧数据包的时间戳;

获取所述时间戳至所述播放时间内的需要解码的所有视频帧数据包,其中,需要解码的所有视频帧数据包包括所述关键帧数据包,所述时间戳至所述播放时间内的所有属性为参考帧的视频帧数据包,以及所述播放时间的视频帧数据包;

基于解码速率计算得到需要解码的所有视频帧数据包的解码时间值;

将所述解码时间值加上预设的附加值获得总解码时间值;

获取所述暂播视频片段的剩余播放时间值;

若所述总时间值小于所述剩余播放时间值,则对所述暂播视频片段进行倍数播放,以减少所述剩余播放时间值使所述剩余播放时间值与所述总时间值趋近相等;

若所述总时间值大于所述剩余播放时间值,则对所述暂播视频片段进行降帧率播放,以增大所述剩余播放时间值使所述剩余播放时间值与所述总时间值趋近相等。

在本发明第一方面一种可选的实施方式中,所述判断所述落点位置是否处于已解码片段区之后还包括:

若所述落点位置处于已解码片段区,则获取所述已解码片段区的起始时间和终止时间;

计算所述落点位置的所述播放时间与所述终止时间之间的第一差值;

判断所述第一差值是否大于等于第二阈值;

若所述第一差值小于所述第二阈值,则依序解码所述终止时间之后的各个视频帧数据包,以延长所述已解码片段区的所述终止时间使所述第一差值大于等于所述第二阈值。

当所述第一差值大于等于所述第二阈值时,从所述起始时间的已解码视频帧开始播放各个所述已解码视频帧。

在本发明第一方面一种可选的实施方式中,所述扫描所述播放时间附近第一时间范围内的各个视频帧数据包包括:

创建一个正向扫描进程和一个逆向扫描进程;

以所述播放时间对应的视频帧数据包作为起点,通过所述正向扫描进程和所述逆向扫描进程同时扫描所述第一时间范围内的各个视频帧数据包。

在本发明第一方面一种可选的实施方式中,所述将当前画面切换为播放所述暂播视频片段,同时扫描所述播放时间附近所述第一时间范围外的各个视频帧数据包,找到距离所述播放时间最近的关键帧数据包包括:

将当前画面切换为播放所述暂播视频片段,同时通过所述逆向扫描进程扫描所述播放时间附近所述第一时间范围外的各个视频帧数据包,找到距离所述播放时间最近的关键帧数据包。

在本发明第一方面一种可选的实施方式中,若通过所述正向扫描进程在所述第一时间范围内扫描获得了关键帧数据包,则将所述落点位置调整至由所述关键帧数据包确定的另定播放时间;从所述另定播放时间开始解码各个视频帧数据包获得视频播放数据,当所述视频播放数据的播放时长大于第三阈值时,将当前画面切换为播放所述视频播放数据。

本发明第二方面提供了一种视频seek系统,所述视频seek系统包括:

拖动位置获取模块,用于接收用户对视频播放进度条的拖动操作,并获取所述拖动操作的落点位置;

落点位置判断模块,用于判断所述落点位置是否处于已解码片段区,若所述落点位置不处于已解码片段区,则获取所述落点位置的播放时间;

视频帧扫描和暂播视频片段生成模块,用于扫描所述播放时间附近第一时间范围内的各个视频帧数据包,若在所述播放时间附近所述第一时间范围内的各个视频帧数据包中未找到关键帧数据包,则收集所述落点位置至所述拖动操作的起点位置之间时间范围内所有的已解码视频帧生成暂播视频片段;

视频暂播和关键帧查找模块,用于将当前播放画面切换为播放所述暂播视频片段,同时扫描所述播放时间附近所述第一时间范围外的各个视频帧数据包,找到距离所述播放时间最近的关键帧数据包;

解码模块,用于从所述关键帧数据包开始解码获得所述播放时间的目标视频帧以及后续视频帧,其中,对于所述关键帧数据包与所述目标视频帧之间的各个视频数据包只解码属性为参考帧的视频帧数据包;

播放画面切换模块,用于当所述后续视频帧的持续播放时间达到第一时长时,切换当前播放画面为播放所述目标视频帧并依次播放所述后续视频帧。

本发明第三方面提供了一种视频播放服务器,所述视频播放服务器包括:存储器和至少一个处理器,所述存储器中存储有指令,所述存储器和所述至少一个处理器通过线路互连;

所述至少一个处理器调用所述存储器中的所述指令,以使得所述视频播放服务器执行如上述任一项所述的视频seek方法。

本发明第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一项所述的视频seek方法。

有益效果:本发明提供了一种视频seek方法、系统、视频播放服务器及存储介质,本发明的视频seek方法在关键帧数据包不在拖动操作落点位置对应播放时间附近的第一时间范围内时,会收集落点位置至拖动操作的起点位置之间时间范围内所有的已解码视频帧生成暂播视频片段;将当前画面切换为播放暂播视频片段播放,以让用户知晓解码操作还在正常进行,避免用户因为视频画面长时间不动而导致的等待焦虑,同时再去扫描播放时间附近第一时间范围外的各个视频帧数据包,找到距离播放时间最近的关键帧数据包,找到关键帧数据包后解码到落点位置的视频帧及一定时间长度的后续视频帧后进行播放切换,解决了现有视频seek方法关键帧距离seek位置很远时,用户体验不佳的问题。

附图说明

图1为本发明一种视频seek方法的一个实施例示意图;

图2为本发明一种视频seek系统的一个实施例示意图;

图3为本发明一种视频播放服务器的一个实施例示意图。

具体实施方式

本发明实施例提供了一种视频seek方法、系统、视频播放服务器及存储介质。本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示。

或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

参阅图1,本发明第一方面提供了一种视频seek方法,包括以下步骤:

S100、接收用户对视频播放进度条的拖动操作,暂停当前画面的播放并获取所述拖动操作的落点位置;在本发明中,视频seek指的是用于拖动进度条寻找视频中某个感兴趣的画面或片段的情形,拖动操作是暂停当前画面的播放的目的是让用户能够更加直观的觉察出拖动进度条的作用是有效的,播放进度条被拖动之后视频播放主要涉及到的到就是视频的解码,在解码之前据要根据落点位置确定要解码的视频帧数据包;

S200、判断所述落点位置是否处于已解码片段区;在本发明中,播放进度条拖动后的落点位置一般有两种情况,一种是落点位置是已解码片段区,这种情况是做好的,直接播放就行,另一种情况就是落点位置不是已解码片段区,这时就需要找到解码获得落点位置的视频帧,而落点位置的视频帧可能不是独立帧需要依赖其它的视频帧,本发明技术方案主要针对的就是落点位置不是已解码片段区的情形;

S300、若所述落点位置不处于已解码片段区,则获取所述落点位置的播放时间;在本发明中,当落点位置不处于已解码片段区,接着就是要解码出落点位置的视频帧,由于落点位置的视频帧可能不是关键帧,所以需要先获取落点位置的播放时间,然后扫描播放时间附近的各个视频帧数据包,确定是否有关键帧数据包;

S400、扫描所述播放时间附近第一时间范围内的各个视频帧数据包,若在所述播放时间附近所述第一时间范围内的各个视频帧数据包中未找到关键帧数据包,则收集所述落点位置至所述拖动操作的起点位置之间时间范围内所有的已解码视频帧生成暂播视频片段;在本发明中,主要需要解决的就是视频解码过程中由于关键帧数据包位置难以确定,可能导致视频画面长时间停止的问题,解决办法就是在遇到需要等待比较长时间的情形时,尽快让画面恢复动起来,判断等待时间是否过长主要的依据就是看在播放时间附近第一时间范围是不是能够找到关键帧数据包,找不到的话就需要先收集到拖动操作的起点位置和落点位置之间的一段视频先进行播放,一般来讲,视频播放都会有超前解码,这段视频可以是超前解码的视频帧,也可能是视频播放多点同时分段解码得到的视频帧;

S500、将当前画面切换为播放所述暂播视频片段,同时扫描所述播放时间附近所述第一时间范围外的各个视频帧数据包,找到距离所述播放时间最近的关键帧数据包;在本发明中,在一定时间内没有解码得到落点位置的视频帧,播放系统就会先播放这段暂播视频片段,同时在去扫描播放时间附近所述第一时间范围外的视频帧数据包;

S600、从所述关键帧数据包开始解码获得所述播放时间的目标视频帧以及后续视频帧,其中,对于所述关键帧数据包与所述目标视频帧之间的各个视频数据包只解码属性为参考帧的视频帧数据包;在本发明中,在找到了关键帧数据包之后,就会从这个关键帧数据包开始解码,在之后,没获取一个视频帧数据包,判断这个视频帧数据包是不是参考帧数据包,如果是则解码,不是则丢弃,直至解码至所述播放时间的目标视频帧,对于所述目标视频帧之后的各个视频帧数据包,则每个视频帧数据包都会进行解码,判断所述所述关键帧数据包与所述目标视频帧之间的各个视频数据包是不是参考帧数据包的方式是:以AVPacket结构的视频帧数据包为例,视频帧数据包中有个flags的变量,可以用来判断是否为参考帧,flags和AV_PKT_FLAG_DISPOSABLE做与运算(&)后结果不为0,说明是非参考帧。

S700、当所述后续视频帧的持续播放时间达到第一时长时,切换当前画面为播放所述目标视频帧并依次播放所述后续视频帧。在本发明中,视频的播放不是直接获得了目标视频帧就进行播放,因为获得了目标视频帧直接就开始播放还可能会因为解码速度跟不上导致视频播放出现卡顿,所有在解码出的后续视频帧的持续播放时间达到第一时长时才会再开始播放。

在本发明第一方面一种可选的实施方式中,所述则收集所述落点位置至所述拖动操作的起点位置之间时间范围内所有的已解码视频帧生成暂播视频片段之后,所述将当前画面切换为播放所述暂播视频片段之前包括:

获取所述暂播视频片段的总播放时长;在本发明中,由于获取关键帧数据包的具体时间是没有办法确定的,所以暂播视频片段最好是要预留有足够的播放时长,因此在生成了暂播视频片段之后,还需要判断暂播视频片段的时长是不是满足要求;

判断所述总播放时长是否大于等于第一阈值;在本发明中,这个第一阈值可以是1-2分钟,这样就可以保证有充足的时间找到关键帧数据包并从关键帧数据包开始解码到落点位置播放时间的目标视频帧;

若所述总播放时长小于所述第一阈值,则将视频播放帧率降至第一计算值,所述第一计算值为使所述暂播视频片段的所述总播放时长延长至大于等于所述第一阈值时计算得到的目标帧率值。在本发明中,如果所述总播放时长小于所述第一阈值,则需要调整视频的视频播放帧率,通过减小视频播放帧率,暂播视频片段就可以播放更长的时间,获得第一计算值首先是要获得总帧数,具体就是先用总播放时长乘以视频的默认播放帧率获得总的播放帧数,然后用总的播放帧数除以需要延长到的播放时长,就可以得到第一计算值。

在本发明第一方面一种可选的实施方式中,所述找到距离所述播放时间最近的关键帧数据包之后,所述从所述关键帧数据包开始解码获得所述播放时间的目标视频帧以及后续视频帧之前包括:

获取所述关键帧数据包的时间戳;在本发明中,在确定了关键帧数据包的位置之后,还需要对暂播视频片段的剩余播放时间做一个适配,以使得从暂播视频片段切换到播放落点位置及其后的视频帧时不会过于突兀;

获取所述时间戳至所述播放时间内的需要解码的所有视频帧数据包,其中,需要解码的所有视频帧数据包包括所述关键帧数据包,所述时间戳至所述播放时间内的所有属性为参考帧的视频帧数据包,以及所述播放时间的视频帧数据包;在本发明中,为了提高从所述关键帧数据包开始解码获得所述播放时间的目标视频帧的效率,对于所述关键帧数据包与所述目标视频帧之间的视频数据帧数据包是只解码属性为参考帧的视频帧数据包的;

基于解码速率计算得到需要解码的所有视频帧数据包的解码时间值;在本发明中,计算解码时间值就是用所述时间戳至所述播放时间内需要解码的所有视频帧数据包的大小除以解码速率来获得需要的解码时间值;

将所述解码时间值加上预设的附加值获得总解码时间值;在本发明中,为了后续的流畅播放,本发明并不是在解码到播放时间的目标视频帧就直接播放的,还会在解码一段时间,所有这个解码时间值还需要加上一个附加值;

获取所述暂播视频片段的剩余播放时间值;在获得了总解码时间值后就是将所述暂播视频片段的剩余播放时间值与总解码时间值进行比对,所以要获得暂播视频片段的剩余播放时间值;

若所述总时间值小于所述剩余播放时间值,则对所述暂播视频片段进行倍数播放,以减少所述剩余播放时间值使所述剩余播放时间值与所述总时间值趋近相等;在本发明中,若所述总时间值小于所述剩余播放时间值,就是要对所述暂播视频片段进行进一步的快进播放,这样就可以让从拖动操作起点位置到落点位置之间收集到的暂播视频片段得到充分的播放,不会让画面内容衔接的特别突兀,这个倍数的计算同样是先用剩余播放时间值乘以当前播放帧率获得总剩余帧数,然后除以所述所述总时间值获得需要调整到的帧率;

若所述总时间值大于所述剩余播放时间值,则对所述暂播视频片段进行降帧率播放,以增大所述剩余播放时间值使所述剩余播放时间值与所述总时间值趋近相等。在本发明中,所述暂播视频片段的剩余播放时间值过长就需要加快播放,而剩余播放时间值过段则需要延时播放以便出现播放黑屏的问题,降帧率播放的帧数计算和倍数播放的帧率计算原理相同,本发明在此不再详述。

在本发明第一方面一种可选的实施方式中,所述判断所述落点位置是否处于已解码片段区之后还包括:

若所述落点位置处于已解码片段区,则获取所述已解码片段区的起始时间和终止时间;在本发明中,还有一种可能就是落点位置落到了已解码片段区,因为已经存在解码好了的视频帧,因此可以直接进行播放,但是为了播放之后不会产生卡顿,还需要判断落点位置的播放时间与已解码片段区终止时间之间的时间长度是否满足一定的长度要求;

计算所述落点位置的所述播放时间与所述终止时间之间的第一差值;在本发明中,判断所述播放时间与所述终止时间之间的时间长度是否满足要求之前就是需要获得所述播放时间与所述终止时间之间的第一差值;

判断所述第一差值是否大于等于第二阈值;在本发明中,所述第二阈值可以与之前提到的附加值相等,所述第一差值大于等于第二阈值则认为所述播放时间与所述终止时间之间的时间长度满足要求,否则就是不满足要求;

若所述第一差值小于所述第二阈值,则依序解码所述终止时间之后的各个视频帧数据包,以延长所述已解码片段区的所述终止时间使所述第一差值大于等于所述第二阈值;在本发明中,所述播放时间与所述终止时间之间的时间长度不满足要求时,就还需要对所述终止时间之后的各个视频帧数据包进行进一步的解码,以延长已解码片段区的终止时间至满足要求;

当所述第一差值大于等于所述第二阈值时,从所述起始时间的已解码视频帧开始播放各个所述已解码视频帧。在本发明中,优先选取的条件是所述第一差值大于等于所述第二阈值,当等于时则开始播放已解码片段区的视频。

在本发明第一方面一种可选的实施方式中,所述扫描所述播放时间附近第一时间范围内的各个视频帧数据包包括:

创建一个正向扫描进程和一个逆向扫描进程;在本发明中,在落点位置播放时间附件扫描第一时间范围内的各个视频帧数据包时采用的是双向扫描,如果正向扫描进程先扫描到关键帧数据包,则优先以将落点位置移动到关键帧数据包的时间进行解码播放,如果是逆向扫描进程先扫描到则不移动落点位置;

以所述播放时间对应的视频帧数据包作为起点,通过所述正向扫描进程和所述逆向扫描进程同时扫描所述第一时间范围内的各个视频帧数据包。在本发明中,第一时间范围内一般来讲是通过收集用户日常视频发生停顿多久之后会刷新视频播放得来,本发明采用双向扫描到方式可以更快的在落点位置附近找到关键帧数据包。

在本发明第一方面一种可选的实施方式中,所述将当前画面切换为播放所述暂播视频片段,同时扫描所述播放时间附近所述第一时间范围外的各个视频帧数据包,找到距离所述播放时间最近的关键帧数据包包括:

将当前画面切换为播放所述暂播视频片段,同时通过所述逆向扫描进程扫描所述播放时间附近所述第一时间范围外的各个视频帧数据包,找到距离所述播放时间最近的关键帧数据包。在本发明中,如果在所述播放时间附近第一时间范围内没有扫描到关键视频帧数据包,则正向扫描进程会注销,只保留逆向扫描进程,逆向扫描进程扫描时,直接以上次记录的扫描终止时间为起点继续逆向扫描,直到扫描到关键帧数据包则停止,判断视频帧数据是否是关键帧数据包主要依据视频帧数据包所携带的数据包标识(例如数据包标识为I帧)。

在本发明第一方面一种可选的实施方式中,若通过所述正向扫描进程在所述第一时间范围内扫描获得了关键帧数据包,则将所述落点位置调整至由所述关键帧数据包确定的另定播放时间;从所述另定播放时间开始解码各个视频帧数据包获得视频播放数据,当所述视频播放数据的播放时长大于第三阈值时,将当前画面切换为播放所述视频播放数据。在本发明中,如果是在所述播放时间正向的所述第一时间范围内找到了关键帧数据包,则为了能更快速播放,则直接移动播放时间至关键帧数据包对应的播放时间点,从关键帧数据包对应的播放时间点开始进行数据解码,在这种方式中,同样需要把另定播放时间之后的后续视频帧解码到一定的时间长度后才会开始进行播放,以避免开始播放后卡段的出现。

参见图2,本发明第二方面提供了一种视频seek系统,所述视频seek系统包括:

拖动位置获取模块10,用于接收用户对视频播放进度条的拖动操作,并获取所述拖动操作的落点位置;

落点位置判断模块20,用于判断所述落点位置是否处于已解码片段区;

播放时间获取模块30,用于若所述落点位置不处于已解码片段区,则获取所述落点位置的播放时间;

视频帧扫描和暂播视频片段生成模块40,用于扫描所述播放时间附近第一时间范围内的各个视频帧数据包,若在所述播放时间附近所述第一时间范围内的各个视频帧数据包中未找到关键帧数据包,则收集所述落点位置至所述拖动操作的起点位置之间时间范围内所有的已解码视频帧生成暂播视频片段;

视频暂播和关键帧查找模块50,用于将当前播放画面切换为播放所述暂播视频片段,同时扫描所述播放时间附近所述第一时间范围外的各个视频帧数据包,找到距离所述播放时间最近的关键帧数据包;

解码模块60,用于从所述关键帧数据包开始解码获得所述播放时间的目标视频帧以及后续视频帧,其中,对于所述关键帧数据包与所述目标视频帧之间的各个视频数据包只解码属性为参考帧的视频帧数据包;

播放画面切换模块70,用于当所述后续视频帧的持续播放时间达到第一时长时,切换当前播放画面为播放所述目标视频帧并依次播放所述后续视频帧。

在本发明第二方面一种可选的实施方式中,所述视频seek系统还包括:

总播放时长获取模块,用于获取所述暂播视频片段的总播放时长;

总播放时长判断模块,用于判断所述总播放时长是否大于等于第一阈值;

总播放时长延长模块,用于若所述总播放时长小于所述第一阈值,则将视频播放帧率降至第一计算值,所述第一计算值为使所述暂播视频片段的所述总播放时长延长至大于等于所述第一阈值时计算得到的目标帧率值。

在本发明第二方面一种可选的实施方式中,所述视频seek系统还包括:

关键帧时间戳获取模块,用于获取所述关键帧数据包的时间戳;

需解码视频帧数据包获取模块,用于获取所述时间戳至所述播放时间内的需要解码的所有视频帧数据包,其中,需要解码的所有视频帧数据包包括所述关键帧数据包,所述时间戳至所述播放时间内的所有属性为参考帧的视频帧数据包,以及所述播放时间的视频帧数据包;

解码时间计算模块,用于基于解码速率计算得到需要解码的所有视频帧数据包的解码时间值;

总时间值计算模块,用于将所述解码时间值加上预设的附加值获得总解码时间值;

剩余播放时间获取模块,用于获取所述暂播视频片段的剩余播放时间值;

播放调整模块,用于若所述总时间值小于所述剩余播放时间值,则对所述暂播视频片段进行倍数播放,以减少所述剩余播放时间值使所述剩余播放时间值与所述总时间值趋近相等;以及用于若所述总时间值大于所述剩余播放时间值,则对所述暂播视频片段进行降帧率播放,以增大所述剩余播放时间值使所述剩余播放时间值与所述总时间值趋近相等。

在本发明第二方面一种可选的实施方式中,所述视频seek系统还包括:

起始终止时间获取模块,用于若所述落点位置处于已解码片段区,则获取所述已解码片段区的起始时间和终止时间;

第一差值计算模块,用于计算所述落点位置的所述播放时间与所述终止时间之间的第一差值;

第一差值判断模块,用于判断所述第一差值是否大于等于第二阈值;

解码片段延长模块,用于若所述第一差值小于所述第二阈值,则依序解码所述终止时间之后的各个视频帧数据包,以延长所述已解码片段区的所述终止时间使所述第一差值大于等于所述第二阈值;

视频播放模块,用于当所述第一差值大于等于所述第二阈值时,从所述起始时间的已解码视频帧开始播放各个所述已解码视频帧。

在本发明第二方面一种可选的实施方式中,所述暂播视频片段生成模块40包括:

进程创建单元,用于创建一个正向扫描进程和一个逆向扫描进程;

双向扫描单元,用于以所述播放时间对应的视频帧数据包作为起点,通过所述正向扫描进程和所述逆向扫描进程同时扫描所述第一时间范围内的各个视频帧数据包。

在本发明第二方面一种可选的实施方式中,所述视频暂播和关键帧查找模块50具体用于将当前画面切换为播放所述暂播视频片段,同时通过所述逆向扫描进程扫描所述播放时间附近所述第一时间范围外的各个视频帧数据包,找到距离所述播放时间最近的关键帧数据包。

在本发明第二方面一种可选的实施方式中,若通过所述正向扫描进程在所述第一时间范围内扫描获得了关键帧数据包,则将所述落点位置调整至由所述关键帧数据包确定的另定播放时间;从所述另定播放时间开始解码各个视频帧数据包获得视频播放数据,当所述视频播放数据的播放时长大于第三阈值时,将当前画面切换为播放所述视频播放数据。

图3是本发明实施例提供的一种视频播放服务器的示意图,该视频播放服务器可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器110(centralprocessing units,CPU)(例如,一个或一个以上处理器)和存储器120,一个或一个以上存储应用程序或数据的存储介质130(例如一个或一个以上海量存储设备)。其中,存储器和存储介质可以是短暂存储或持久存储。存储在存储介质的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对视频播放服务器中的一系列指令操作。更进一步地,处理器可以设置为与存储介质通信,在视频播放服务器上执行存储介质中的一系列指令操作。

本发明的视频播放服务器还可以包括一个或一个以上电源140,一个或一个以上有线或无线网络接口150,一个或一个以上输入输出接口160,和/或,一个或一个以上操作系统,例如Windows Serve,Mac OS X,Unix,Linux,FreeBSD等等。本领域技术人员可以理解,图3示出的视频播放服务器结构并不构成对本发明视频播放服务器的具体限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

本发明还提供一种计算机可读存储介质,该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质也可以为易失性计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得计算机执行所述的视频seek方法的步骤。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统或系统、单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,视频播放服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-onlymemory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

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

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号