一种防止关键帧缺失而不能seek的方法及装置的制作方法

文档序号:7744599阅读:271来源:国知局
专利名称:一种防止关键帧缺失而不能seek的方法及装置的制作方法
技术领域
本发明涉及媒体文件处理领域,尤其涉及的是一种防止关键帧缺失而不能seek 的方法及装置。
背景技术
目前市面有很多AVI、MKV等媒体文件,在做seek (跳转)操作的时候,都是按照关键帧定位,根据关键帧所附带的文件位置信息,进行seek定位。由于编码的时候,有的音视频文件关键帧(关键帧相当于二维动画中的原画,指角色或者物体运动或变化中的关键动作所处的那一帧)比较少,造成在做seek操作的时候,不能够很好的按照一秒一秒的step (步进)进行seek,而是中间有类似几秒、甚至几十秒的浮动,seek的时候不能够准确的定位到用户想确定看的视频画面。根据关键帧定位位置数据的原因是在MPEG (Moving Pictures Experts Group/ Motin Pictures Experts Group,动态图像专家组)编码的过程中,部分视频帧序列压缩成为I帧;部分压缩成P帧;还有部分压缩成B帧。其中,I帧是靠尽可能去除图像空间冗余信息来压缩传输数据量的帧内编码图像,做为随机访问的参考点,即为关键帧;P帧是通过充分降低图像序列中前面已编码帧的时间冗余信息来压缩传输数据量的编码图像,由在它前面的P帧或者I帧预测而来,也叫预测帧;B帧是既考虑与源图像序列前面已编码帧、也顾及源图像序列后面已编码帧之间的时间冗余信息来压缩传输数据量的编码图像,也叫双向预测帧。解码器解码数据的时候必须要有关键帧,如果没有关键帧,只有P、B帧,解码器是不能解码出数据的。因此,现有技术还有待于改进和发展。

发明内容
本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种防止关键帧缺失而不能seek的方法及装置,其解决某些音视频文件播放时,不能准确seek定位到某一时间点的问题。本发明解决技术问题所采用的技术方案如下 一种防止关键帧缺失而不能seek的方法,其中,包括
A、对媒体音视频文件的帧数据进行seek操作时,根据seek到的时间点获取该seek时间点的前关键帧;
B、从该前关键帧的位置开始读取文件流,并将该读取的文件流传送给解码器解码;
C、判断解码后的帧数据的时间点是否到达seek的时间点,当判断出解码后的帧数据的时间点在seek的时间点前,则将该帧数据丢弃;
D、当判断出解码后的帧数据的时间点到达seek的时间点,则将解码后的数据进行播放显示。
所述防止关键帧缺失而不能seek的方法,其中,所述步骤B具体包括 Bi、根据获取到的前关键帧,得到该前关键帧的位置信息;
B2、根据该前关键帧的位置信息,读取从此位置开始的文件流,并将该读取的文件流传送给解码器解码。所述防止关键帧缺失而不能seek的方法,所述步骤C还包括通过同步线程进行数据同步,当判断出解码后的帧数据的时间点在seek的时间点前,则通过同步线程将该帧数据丢弃。所述防止关键帧缺失而不能seek的方法,所述关键帧为影响画面图象参数的帧数据,所述前关键帧为在时间轴上的位置位于seek时间点前并且最接近seek时间点的关键帧。所述防止关键帧缺失而不能seek的方法,其特征在于,所述音视频文件为AVI文件或MKV文件。所述防止关键帧缺失而不能seek的方法,其中,所述步骤C还包括通过同步线程进行数据同步,当判断出解码后的帧数据的时间点在seek的时间点前,则通过同步线程将该帧数据丢弃。所述防止关键帧缺失而不能seek的方法,其中,所述关键帧为影响画面图象参数的帧数据;所述前关键帧为在时间轴上的位置位于seek时间点前并且最接近seek时间点的关键帧。一种防止关键帧缺失而不能seek的装置,其中,包括
前关键帧获取模块,用于对媒体音视频文件的帧数据进行seek操作时,根据seek到的时间点获取该seek时间点的前关键帧;
读取与传送模块,用于从该前关键帧的位置开始读取文件流,并将该读取的文件流传送给解码器解码;
判断模块,用于判断解码后的帧数据的时间点是否到达seek的时间点,当判断出解码后的帧数据的时间点在seek的时间点前,则将该帧数据丢弃;
播放模块,用于当判断出解码后的帧数据的时间点到达seek的时间点,则将解码后的数据进行播放显示。所述防止关键帧缺失而不能seek的装置,其中,所述读取与传送模块包括 位置信息提取单元,用于根据获取到的前关键帧,得到该前关键帧的位置信息; 读取单元,用于根据该前关键帧的位置信息,读取从此位置开始的文件流; 传送单元,用于将该读取的文件流传送给解码器解码。所述防止关键帧缺失而不能seek的装置,所述判断模块包括
同步单元,用于通过同步线程进行数据同步,当判断出解码后的帧数据的时间点在 seek的时间点前,则通过同步线程将该帧数据丢弃。所述防止关键帧缺失而不能seek的装置,所述关键帧为影响画面图象参数的帧数据;前关键帧为在时间轴上的位置位于seek时间点前并且最接近seek时间点的关键帧。所述防止关键帧缺失而不能seek的装置,所述音视频文件为AVI文件或MKV文件。本发明所提供的防止关键帧缺失而不能seek的方法及装置,由于采用了按照关键帧定位seek位置的文件,首先根据要seek到的时间点,定位到最接近这个时间点的前关键帧,获取这个关键帧所在的文件位置,根据这个位置信息进行播放。由于此时的位置信息并不是实际要播放的那个时间点的位置信息,所以在将此位置信息的开始的数据传送给解码器解码后,并不马上将解码后的数据显示出来,而是通过同步线程进行数据同步,按照要 seek的时间点进行同步,如果该帧数据在要seek的时间点前,直接将解码后的数据丢弃, 直到该帧数据是要seek定位的时间点,此时将解码后的数据显示,能够在准确的seek定位到要播放的音视频时间点;其在seek操作的时候能够准确的定位到用户跳转的视频画面。


图1是本发明防止关键帧缺失而不能seek的方法一种实施例的流程图。图2是本发明防止关键帧缺失而不能seek的装置一种实施例的原理框图。图3是本发明防止关键帧缺失而不能seek的装置中的读取与传送模块内部原理框图。
具体实施例方式本发明所提供的一种防止关键帧缺失而不能seek的方法及装置,为使本发明的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。本发明实施例提供的一种防止关键帧缺失而不能seek的方法,如图1所示,主要包括以下步骤
步骤S110、对媒体音视频文件的帧数据进行seek操作时,根据seek到的时间点获取该seek时间点的前关键帧。本步骤具体为在对媒体音视频文件的帧数据进行seek操作时,首先获取seek时间点,再根据seek时间点获取位于seek时间点前并且最接近seek时间点的关键帧。播放音视频文件时,用户可通过seek操作(跳转操作)将播放点跳转到用户喜欢的任意位置。其中,关键帧为影响画面图象参数的帧数据,前关键帧为在时间轴上的位置位于seek时间点前并且最接近seek时间点的关键帧。音视频文件如AVKAudio Video Interleaved,音频视频交错格式)文件或MKV文件,MKV不是一种压缩格式,而是Matroska 的一种媒体文件,Matroska是一种新的多媒体封装格式,也称多媒体容器(Multimedia Container)。步骤S120、从该前关键帧的位置开始读取文件流,并将该读取的文件流传送给解码器解码。本步骤具体为根据获取到的前关键帧,获取该前关键帧的位置信息;根据该前关键帧的位置信息,读取从此位置开始的文件流,并将该读取的文件流传送给解码器,解码器对读取的文件流进行连续解码。然后进入步骤S130。步骤S130、判断解码后的帧数据的时间点是否到达seek的时间点,当判断出解码后的帧数据的时间点在seek的时间点前,则将该帧数据丢弃;
例如,通过同步线程进行数据同步,当判断出解码后的帧数据的时间点在seek的时间点前,则通过同步线程将该帧数据丢弃。本实施例中通过获取seek时间点的前关键帧所在的文件位置,由于前关键帧的位置信息并不是实际需要播放的seek时间点的位置信息,所以将从前关键帧位置信息开始的文件流传送给解码器进行解码后,并不马上将解码后的数据显示出来,而是通过同步线程进行数据同步,按照要seek的时间点进行同步,如果该帧数据在seek时间点前,直接将解码后的数据丢弃。然后持续进行解码,直到解码的帧数据的时间点到达seek时间点进入步骤S140。步骤S140、当判断出解码后的帧数据的时间点到达seek的时间点,则将解码后的数据进行播放显示。即直到解码后的帧数据是要seek定位的时间点,此时将解码后的数据进行正常的播放显示。由上可见,本发明实施例的一种防止关键帧缺失而不能seek的方法,其能准确的 seek定位到要播放的音视频时间点。基于上述实施例,本发明实施例还提供了一种防止关键帧缺失而不能seek的装置,如图2所示,主要包括
前关键帧获取模块210,用于对媒体音视频文件的帧数据进行seek操作时,根据seek 到的时间点获取该seek时间点的前关键帧;具体如上述步骤SllO所述。其中,所述seek 操作为跳转操作。读取与传送模块220,用于从该前关键帧的位置开始读取文件流,并将该读取的文件流传送给解码器250解码;具体如上述步骤S120所述。判断模块230,用于判断解码后的帧数据的时间点是否到达seek的时间点,当判断出解码后的帧数据的时间点在seek的时间点前,则将该帧数据丢弃;具体如上述步骤 S130所述。播放模块MO,用于当判断出解码后的帧数据的时间点到达seek的时间点,则将解码后的数据进行播放显示,具体如上述步骤S140所述。解码器250,用于对所读取的文件流进行连续解码。其中,如图3所示,读取与传送模块220包括
位置信息提取单元221,用于根据获取到的前关键帧,得到该前关键帧的位置信息; 读取单元222,用于根据该前关键帧的位置信息,读取从此位置开始的文件流; 传送单元223,用于将该读取的文件流传送给解码器250解码。其中,所述判断模块230包括同步单元,用于通过同步线程进行数据同步,当判断出解码后的帧数据的时间点在seek的时间点前,则通过同步线程将该帧数据丢弃。综上所述,本发明所提供的防止关键帧缺失而不能seek的方法及装置,由于采用了按照关键帧定位seek位置的文件,首先根据要seek到的时间点,定位到最接近这个时间点的前关键帧,获取这个关键帧所在的文件位置,根据这个位置信息进行播放。由于此时的位置信息并不是实际要播放的那个时间点的位置信息,所以在将此位置信息的开始的数据传送给解码器解码后,并不马上将解码后的数据显示出来,而是通过同步线程进行数据同步,按照要seek的时间点进行同步,如果该帧数据在要seek的时间点前,直接将解码后的数据丢弃,直到该帧数据是要seek定位的时间点,此时将解码后的数据显示,能够在准确的seek定位到要播放的音视频时间点。应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。
权利要求
1.一种防止关键帧缺失而不能seek的方法,其特征在于,包括A、对媒体音视频文件的帧数据进行seek操作时,根据seek到的时间点获取该seek时间点的前关键帧;B、从该前关键帧的位置开始读取文件流,并将该读取的文件流传送给解码器解码;C、判断解码后的帧数据的时间点是否到达seek的时间点,当判断出解码后的帧数据的时间点在seek的时间点前,则将该帧数据丢弃;D、当判断出解码后的帧数据的时间点到达seek的时间点,则将解码后的数据进行播放显示。
2.根据权利要求1所述防止关键帧缺失而不能seek的方法,其特征在于,所述步骤B 具体包括Bi、根据获取到的前关键帧,得到该前关键帧的位置信息;B2、根据该前关键帧的位置信息,读取从此位置开始的文件流,并将该读取的文件流传送给解码器解码。
3.根据权利要求1所述防止关键帧缺失而不能seek的方法,其特征在于,所述步骤C 还包括通过同步线程进行数据同步,当判断出解码后的帧数据的时间点在seek的时间点前,则通过同步线程将该帧数据丢弃。
4.根据权利要求1所述防止关键帧缺失而不能seek的方法,其特征在于,所述关键帧为影响画面图象参数的帧数据,所述前关键帧为在时间轴上的位置位于seek时间点前并且最接近seek时间点的关键帧。
5.根据权利要求1所述防止关键帧缺失而不能seek的方法,其特征在于,所述音视频文件为AVI文件或MKV文件。
6.一种防止关键帧缺失而不能seek的装置,其特征在于,包括前关键帧获取模块,用于对媒体音视频文件的帧数据进行seek操作时,根据seek到的时间点获取该seek时间点的前关键帧;读取与传送模块,用于从该前关键帧的位置开始读取文件流,并将该读取的文件流传送给解码器解码;判断模块,用于判断解码后的帧数据的时间点是否到达seek的时间点,当判断出解码后的帧数据的时间点在seek的时间点前,则将该帧数据丢弃;播放模块,用于当判断出解码后的帧数据的时间点到达seek的时间点,则将解码后的数据进行播放显示。
7.根据权利要求6所述防止关键帧缺失而不能seek的装置,其特征在于,所述读取与传送模块包括位置信息提取单元,用于根据获取到的前关键帧,得到该前关键帧的位置信息;读取单元,用于根据该前关键帧的位置信息,读取从此位置开始的文件流;传送单元,用于将该读取的文件流传送给解码器解码。
8.根据权利要求6所述防止关键帧缺失而不能seek的装置,其特征在于,所述判断模块包括同步单元,用于通过同步线程进行数据同步,当判断出解码后的帧数据的时间点在 seek的时间点前,则通过同步线程将该帧数据丢弃。
9.根据权利要求6所述防止关键帧缺失而不能seek的装置,其特征在于,所述关键帧为影响画面图象参数的帧数据;所述前关键帧为在时间轴上的位置位于seek时间点前并且最接近seek时间点的关键帧。
10.根据权利要求6所述防止关键帧缺失而不能seek的方法,其特征在于,所述音视频文件为AVI文件或MKV文件。
全文摘要
本发明公开了一种防止关键帧缺失而不能seek的方法及装置,所述方法包括对媒体音视频文件的帧数据进行seek操作时,根据seek到的时间点获取该seek时间点的前关键帧;从该前关键帧的位置开始读取文件流,并将该读取的文件流传送给解码器解码;判断解码后的帧数据的时间点是否到达seek的时间点,当判断出解码后的帧数据的时间点在seek的时间点前,则将该帧数据丢弃;当判断出解码后的帧数据的时间点到达seek的时间点,则将解码后的数据进行播放显示。借此,本发明能解决某些音视频文件播放时,不能准确seek定位到某一时间点的问题。
文档编号H04N21/647GK102264004SQ201110223980
公开日2011年11月30日 申请日期2011年8月5日 优先权日2011年8月5日
发明者孙茂杰 申请人:Tcl集团股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1