CN104581436B - 一种视频帧定位方法及装置 - Google Patents
一种视频帧定位方法及装置 Download PDFInfo
- Publication number
- CN104581436B CN104581436B CN201510044566.9A CN201510044566A CN104581436B CN 104581436 B CN104581436 B CN 104581436B CN 201510044566 A CN201510044566 A CN 201510044566A CN 104581436 B CN104581436 B CN 104581436B
- Authority
- CN
- China
- Prior art keywords
- frame
- video
- time
- media file
- relative
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
- H04N21/8455—Structuring of content, e.g. decomposing content into time segments involving pointers to the content, e.g. pointers to the I-frames of the video stream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/85—Assembly of content; Generation of multimedia applications
- H04N21/854—Content authoring
- H04N21/8547—Content authoring involving timestamps for synchronizing content
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明的实施例提供一种视频帧定位方法及装置,涉及数字电视领域,解决了现有视频帧定位方法需要在播放前对文件进行全面扫描来建立索引,而导致定位的时间过长的问题。该方法具体包括:获取当前需要跳转的毫秒级定位时间;根据该定位时间,按照搜索步长和搜索方向检索媒体文件,从中定位出定位时间对应的目标图像组;根据媒体文件的第一视频帧的显示时间戳以及目标图像组中的每个视频帧的显示时间戳,确定出目标图像组中的每个视频帧相对于媒体文件的第一视频帧的毫秒级相对时间;将定位时间与目标图像组中的每个视频帧相对于媒体文件的第一视频帧的相对时间进行匹配,从而定位出定位时间对应的目标视频帧。
Description
技术领域
本发明涉及数字电视领域,尤其涉及一种视频帧定位方法及装置。
背景技术
MPEG-2是运动图像专家组(Moving Picture Experts Group,简称MPEG)组织制定的视频和音频有损压缩标准之一,通常除了作为DVD的指定标准,还可以作为广播、有线电视网、电缆网络以及卫星直播(Direct Broadcast Satellite)提供广播级的数字视频。同时,MPEG-2采用了帧间预测编码方式来对视频进行编码,这种编码方式的压缩效率很高,同时图像质量比较高,因而获得了广泛的应用。
在现有技术中,当用户观看MPEG-2标准的视频的过程中需要快速定位到某一特定时间点的播放位置时,常用的一种做法是:通过对媒体文件的全面扫描,建立各个视频帧的索引文件,每个视频帧对应一个索引文件,每个索引文件包含了对应视频帧的时间信息和对应的文件位置,然后,根据具体的定位时间,获取与该定位时间匹配的索引文件,从而找到该定位时间对应的视频帧。
但是,发明人发现,在实现上述的视频帧定位方法时,需要在播放前对文件进行全面的扫描来建立索引,这种做法针对较小体积的码流文件缺点尚不明显,但针对大数据量的媒体文件(比如,几个GByte甚至十几个GByte的高清或者超高清的媒体文件),全面扫描媒体文件和建立索引需要较长时间。因而,在这种情况下,上述的视频帧定位技术就难以满足用户的立即播放和快速定位的需求。
发明内容
本发明的实施例提供的一种视频帧定位方法及装置,解决了现有视频帧定位方法需要在播放前对文件进行全面扫描来建立索引,而导致的定位的时间过长的问题。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,提供一种视频帧定位方法,包括:
获取当前需要跳转的定位时间;所述定位时间为毫秒级定位时间;
根据所述定位时间,按照搜索步长和搜索方向检索所述媒体文件,从中定位出所述定位时间对应的目标图像组;
根据所述媒体文件的第一视频帧的显示时间戳以及所述目标图像组中的每个视频帧的显示时间戳,确定出所述目标图像组中的每个视频帧相对于所述媒体文件的第一视频帧的相对时间;所述相对时间为毫秒级相对时间;
将所述定位时间与所述目标图像组中的每个视频帧相对于所述媒体文件的第一视频帧的相对时间进行匹配,从而定位出所述定位时间对应的目标视频帧。
可选的,所述根据所述定位时间,按照搜索步长和搜索方向检索所述媒体文件,从中定位出所述定位时间对应的目标图像组具体包括:
按照预定搜索步长和搜索方向搜索所述媒体文件中的视频序列头或图组头;
若所述定位时间属于当前搜索到的视频序列头中包含的视频序列帧的时间范围,则从所述视频序列头中获取所述视频序列头对应的目标视频序列中图像组的视频帧帧数和帧速率参数,并根据所述帧速率参数确定对应的帧速率;
根据所述帧速率以及所述目标视频序列中图像组的视频帧帧数,计算出所述目标视频序列中图像组的大小;
将所述预定搜索步长重置为所述目标视频序列中图像组的大小;
按照重置的搜索步长搜索所述目标视频序列中的图组头,直到搜寻到的图组头对应的图像组的第一视频帧相对于所述媒体文件的第一视频帧的相对时间与所述定位时间间的差值小于或等于预定门限值时,则将所述图像组定位为所述定位时间对应的目标图像组。
可选的,所述按照搜索步长和搜索方向搜索所述媒体文件中的视频序列头或图组头之后,所述方法还包括:
若当前搜寻到的图组头对应的图像组的第一视频帧相对于所述媒体文件的第一视频帧的相对时间与所述定位时间间的差值小于或等于所述预定门限值时,则直接将所述当前搜寻到的图组头对应的图像组定位为所述定位时间对应的目标图像组。
可选的,所述将所述定位时间与所述目标图像组中的每个视频帧相对于所述媒体文件的第一视频帧的相对时间进行匹配,从而定位出所述定位时间对应的目标视频帧具体包括:
获取所述毫秒级定位时间的小数部分;
获取所述目标图像组中的每个视频帧相对于所述媒体文件的第一视频帧的毫秒级相对时间的小数部分;
将所述毫秒级定位时间的小数部分与所述目标图像组中的每个视频帧相对于所述媒体文件的第一视频帧的毫秒级相对时间的小数部分行匹配,从而定位出所述定位时间对应的目标视频帧。
可选的,所述获取当前需要跳转的定位时间之后,所述方法还包括:
获取所述媒体文件的第一个视频帧的显示时间戳和所述媒体文件的最后一个视频帧的显示时间戳;
获取所述根据所述媒体文件的第一个视频帧的显示时间戳、所述媒体文件的最后一个视频帧的显示时间戳,计算所述媒体文件的总时间长度;
获取所述媒体文件的文件长度;
根据所述定位时间、所述媒体文件的文件长度以及总时间长度,确定所述定位时间对应在所述媒体文件中的指针;
进一步的,所述根据所述定位时间,按照预定搜索步长和预定搜索方向检索所述媒体文件,从中定位出所述定位时间对应的目标图像组具体包括:
根据所述定位时间对应在所述媒体文件中的指针,按照搜索步长和搜索方向检索所述媒体文件,从中定位出所述定位时间对应的目标图像组。
第二方面,提供一种视频帧定位装置,包括:
获取模块,用于获取当前需要跳转的定位时间;所述定位时间为毫秒级定位时间;
定位模块,用于根据所述获取模块获取的所述定位时间,按照搜索步长和搜索方向检索所述媒体文件,从中定位出所述定位时间对应的目标图像组;
确定模块,用于根据所述媒体文件的第一视频帧的显示时间戳以及所述目标图像组中的每个视频帧的显示时间戳,确定出所述定位模块定位出的所述目标图像组中的每个视频帧相对于所述媒体文件的第一视频帧的相对时间;所述相对时间为毫秒级相对时间;
匹配模块,用于将所述获取模块获取的所述定位时间与所述确定模块确定出的所述目标图像组中的每个视频帧相对于所述媒体文件的第一视频帧的相对时间进行匹配,从而定位出所述定位时间对应的目标视频帧。
可选的,所述定位模块包括:
搜索单元,用于按照预定搜索步长和预定搜索方向搜索所述媒体文件中的视频序列头或图组头;
获取单元,用于若所述定位时间属于当前搜索到的视频序列头中包含的视频序列帧的时间范围,则从所述视频序列头中获取所述视频序列头对应的目标视频序列中图像组的视频帧帧数和帧速率参数,并根据所述帧速率参数确定对应的帧速率;
计算单元,用于根据所述获取单元获取的所述帧速率以及所述目标视频序列中图像组的视频帧帧数,计算出所述目标视频序列中图像组的大小;
重置单元,用于将所述预定搜索步长重置为所述计算单元计算出的所述目标视频序列中图像组的大小;
定位单元,用于按照所述重置单元重置的搜索步长搜索所述目标视频序列中的图组头,直到搜寻到的图组头对应的图像组的第一视频帧相对于所述媒体文件的第一视频帧的相对时间与所述定位时间间的差值小于或等于预定门限值时,则将所述图像组定位为所述定位时间对应的目标图像组。
可选的,所述定位单元还用于:
若当前搜寻到的图组头对应的图像组的第一视频帧相对于所述媒体文件的第一视频帧的相对时间与所述定位时间间的差值小于或等于所述预定门限值时,则直接将所述当前搜寻到的图组头对应的图像组定位为所述定位时间对应的目标图像组。
可选的,所述匹配模块具体用于:获取所述毫秒级定位时间的小数部分;获取所述目标图像组中的每个视频帧相对于所述媒体文件的第一视频帧的毫秒级相对时间的小数部分;将所述毫秒级定位时间的小数部分与所述目标图像组中的每个视频帧相对于所述媒体文件的第一视频帧的毫秒级相对时间的小数部分行匹配,从而定位出所述定位时间对应的目标视频帧。
可选的,所述装置还包括:
所述获取模块,还用于获取所述媒体文件的第一个视频帧的显示时间戳和所述媒体文件的最后一个视频帧的显示时间戳;
计算模块,用于根据所述获取模块获取的所述媒体文件的第一个视频帧的显示时间戳、所述媒体文件的最后一个视频帧的显示时间戳,计算所述媒体文件的总时间长度;
所述获取模块,还用于获取所述媒体文件的文件长度;
所述确定模块,还用于根据所述获取模块获取的所述定位时间、所述媒体文件的文件长度以及总时间长度,确定所述定位时间对应在所述媒体文件中的指针;
进一步的,所述定位模块具体用于:
根据所述确定模块确定的所述定位时间对应在所述媒体文件中的指针,按照搜索步长和搜索方向检索所述媒体文件,从中定位出所述定位时间对应的目标图像组。
本发明的实施例提供的视频帧定位方法及装置,根据当前需要跳转的毫秒级定位时间,按照搜索步长和搜索方向检索所述媒体文件,从中定位出定位时间对应的目标图像组;然后根据该媒体文件的第一视频帧的显示时间戳以及目标图像组中的每个视频帧的显示时间戳,确定出目标图像组中的每个视频帧相对于媒体文件的第一视频帧的毫秒级相对时间;最后将该定位时间与目标图像组中的每个视频帧相对于媒体文件的第一视频帧的相对时间进行匹配,从而定位出该定位时间对应的目标视频帧。相比于现有技术中需要在播放前对媒体文件进行全面的扫描来创建各个视频帧的索引文件,本发明所提供的方案无需创建索引文件,同时通过三级搜寻的方式来确定具体的定位位置,不仅提高了搜寻的效率,也降低了搜寻时间,同时由于上述的定位时间与用于确定目标视频帧的各个视频帧的相对时间为毫秒级时间,从而保证了定位的精度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的实施例提供的一种视频帧定位方法流程图;
图2为本发明的实施例提供的一种视频流结构图;
图3为本发明的实施例提供的另一种视频帧定位方法流程图;
图4为本发明的实施例提供的一种视频帧定位装置的结构示意图;
图5为本发明的实施例提供的另一种视频帧定位装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
本发明的实施例提供一种视频帧定位方法,如图1所示,该方法具体包括如下步骤:
101、视频帧定位装置获取当前需要跳转的定位时间。
其中,上述的定位时间为毫秒级定位时间。具体的,本发明实施例中描述的媒体文件可以为程序流媒体文件,该程序流媒体文件通常为MPEG-2(Moving Picture ExpertsGroup,运动图像专家组)标准视频码流文件,参照图2所示的视频流结构图可知,上述的媒体文件是由多个视频序列组成,而每个视频序列中包含多个相同的视频序列头以及多个图像组,一个视频序列中的每个图像组的大小相同,而每个图像组是由一个图组头和多个视频帧组成。参照图2所示,MPEG-2编码文件中具体包括三类编码图像:I帧、B帧、P帧。
需要说明的是,每个图像组的图组头中包含该图像组的开始码,以及时间码(time_code字段),从该时间码的time_code字段中可以分别解析出time_code_hours、time_code_minites、time_code_seconds三个字段,该装置可以通过这三个字段使用下面公式一,计算出该图像组的第一帧的时间值。
time=(time_code_hour*60+time_code_minites)*60+time_code_seconds
公式一
102、视频帧定位装置根据定位时间,按照搜索步长和搜索方向检索媒体文件,从中定位出该定位时间对应的目标图像组。
示例性的,当该装置设置搜索步长为1个字节,并默认搜索方向为右时,该装置根据该定位时间以及该媒体文件的总时间长度,确定该定位时间在整个媒体文件中的大致位置,并在该位置的附近按照设定的搜索步长和搜索方向搜索图组头,若搜索到一个图组头,便将该定位时间与该图组头的第一个视频帧相对于该媒体文件的第一个视频帧的相对时间进行比较,若该定位时间大于该相对时间且两者间的差值大于预定门限值时,则将该搜索方向改为向左,并向左移动一个步长进行搜索,若该定位时间小于该相对时间且两者间的差值大于预定门限值,则搜索方向不变,并向右移动一个步长进行搜索,重复上述操作,直到搜索到的图组头的第一个视频帧相对于该媒体文件的第一个视频帧的相对时间与该定位时间间的差值小于或等于预定门限值时,便将该图组头对应的图像组定位为该定位时间对应的目标图像组。
103、视频帧定位装置根据媒体文件的第一视频帧的显示时间戳以及目标图像组中的每个视频帧的显示时间戳,确定出目标图像组中的每个视频帧相对于媒体文件的第一视频帧的相对时间。
其中,上述的相对时间为毫秒级相对时间。而上述的视频帧的显示时间戳为创建该视频帧时编码设备所显示的时间。
需要说明的是,本发明中的视频帧的相对时间是该视频帧相对于该媒体文件的第一视频帧的相对时间,即假定节目开头为0时,该视频帧在该节目中的具体时间。
104、视频帧定位装置将定位时间与目标图像组中的每个视频帧相对于媒体文件的第一视频帧的相对时间进行匹配,从而定位出定位时间对应的目标视频帧。
可选的,步骤104具体包括如下步骤:
104a、视频帧定位装置获取毫秒级定位时间的小数部分。
104b、视频帧定位装置获取目标图像组中的每个视频帧相对于媒体文件的第一视频帧的毫秒级相对时间的小数部分。
104c、视频帧定位装置将毫秒级定位时间的小数部分与目标图像组中的每个视频帧相对于媒体文件的第一视频帧的毫秒级相对时间的小数部分行匹配,从而定位出定位时间对应的目标视频帧。
示例性的,该装置根据用户的拖动操作得到节目定位的时间位置,即当该装置根据用户操作跳转到的当前需要跳转到的节目位置对应的定位时间,若该定位时间假定为time_pos_target,时间单位为秒,则将time_pos_target的整数部分记为time_pos_target_s,将小数部分转换为整数毫秒,记为time_pos_target_ms。同时,需要说明的是,上述的time_pos_target_s用于程序流的粗定位,time_pos_target_ms用于程序流的精确定位。
在精确定位时,该装置在获取到定位时间的小数部分time_pos_target_ms后,便会获取目标图像组中的每个视频的PES包,从该PES包包头中得到该视频帧的pts值,由于该pts值是以90kHz来计数的,因而pts/90000代表了其绝对时间值,单位为秒,同时由于每个视频帧的pts值为该视频帧制作时终端所显示的时间,并非该视频帧在该媒体文件中的播放时间,因此,需要与该媒体文件的第一个视频帧的绝对时间值pts_start/90000相减得到相对于该媒体文件的第一个视频帧的相对时间值,并取出其小数部分,转化为ms,根据这个毫秒值与time_pos_target_ms相比较来进行定位,从而得到最终毫秒级的精确定位位置了。同时,在本实施例中,当该装置在进行精确定位时,由于每个视频组中的视频帧个数不多,因而精确定位部分会非常迅速,远远比现有技术中描述的定位方法定位速度更快。
本发明的实施例提供的视频帧定位方法,根据当前需要跳转的毫秒级定位时间,按照搜索步长和搜索方向检索媒体文件,从中定位出定位时间对应的目标图像组;然后根据该媒体文件的第一视频帧的显示时间戳以及目标图像组中的每个视频帧的显示时间戳,确定出目标图像组中的每个视频帧相对于媒体文件的第一视频帧的毫秒级相对时间;最后将该定位时间与目标图像组中的每个视频帧相对于媒体文件的第一视频帧的相对时间进行匹配,从而定位出该定位时间对应的目标视频帧。相比于现有技术中需要在播放前对媒体文件进行全面的扫描来创建各个视频帧的索引文件,本发明所提供的方案无需创建索引文件,同时通过三级搜寻的方式来确定具体的定位位置,不仅提高了搜寻的效率,也降低了搜寻时间,同时由于上述的定位时间与用于确定目标视频帧的各个视频帧的相对时间为毫秒级时间,从而保证了定位的精度。
实施例二
本发明的实施例提供一种视频帧定位方法,如图3所示,该方法具体包括如下步骤:
201、视频帧定位装置获取当前需要跳转的定位时间。
具体的,上述的步骤201具体可以参见实施例一中的步骤101中的详细描述。
202、视频帧定位装置根据定位时间,按照搜索步长和搜索方向检索媒体文件,从中定位出该定位时间对应的目标图像组。
可选的,步骤202具体包括如下步骤:
202a、视频帧定位装置按照预定搜索步长和搜索方向搜索媒体文件中的视频序列头或图组头。
具体的,若该视频帧定位装置根据该定位时间最先定位到目标视频序列的视频序列头时,则转向步骤202b,若该视频帧定位装置根据该定位时间最先定位到目标图像组的图像头时,则转向步骤202f。
202b、若定位时间属于当前搜索到的视频序列头中包含的视频序列帧的时间范围,则视频帧定位装置从视频序列头中获取视频序列头对应的目标视频序列中图像组的视频帧帧数和帧速率参数,并根据帧速率参数确定对应的帧速率。
具体的,每个视频序列头中均包含一个帧速率字段(frame_rate_code字段),该装置在获取到该字段中的帧速率参数后,便可从预置的帧速率映射表(如表1)中获取与该帧速率参数相对应的帧速率frame_rate_value。例如,当该frame_rate_code字段中存储的是0010,则对应的帧速率为24。
frame_rate_code | frame_rate_value |
0001 | 23.976 |
0010 | 24 |
0011 | 25 |
0100 | 29.97 |
0101 | 30 |
0110 | 50 |
0111 | 59.59 |
1000 | 60 |
表1
202c、视频帧定位装置根据帧速率以及目标视频序列中图像组的视频帧帧数,计算出目标视频序列中图像组的大小。
具体的,从视频序列头中获取数据码率bit_rate单位是400bit/s从图1的视频流结构图中的图像组的头中可以得到本组图像的帧数(GOP_frame_sum),然后,根据步骤202b得到的frame_rate_value,从而得到图像组(GOP)的大小GOP_bytes。具体的,GOP计算公式为:
GOP_bytes=(400*GOP_frame_sum/frame_rate_value)/8 公式二
202d、视频帧定位装置将预定搜索步长重置为目标视频序列中图像组的大小。
202e、视频帧定位装置按照重置的搜索步长搜索目标视频序列中的图组头,直到搜寻到的图组头对应的图像组的第一视频帧相对于媒体文件的第一视频帧的相对时间与定位时间间的差值小于或等于预定门限值时,则将图像组定位为定位时间对应的目标图像组。
其中,上述的预定门限值为该装置预先配置好的。
需要说明的是,由于每个视频序列中会包含多个重复的视频序列头,因此,在搜索的过程中该装置会有比较高的频率获取到视频序列的序列头,即该装置会有极大的可能通过执行上述的步骤202b-步骤202e,将预定搜索步长重置为图像组的大小加大搜索步长,提高搜索速度。
202f、若当前搜寻到的图组头对应的图像组的第一视频帧相对于媒体文件的第一视频帧的相对时间与定位时间间的差值小于或等于预定门限值时,则视频帧定位装置直接将当前搜寻到的图组头对应的图像组定位为定位时间对应的目标图像组。
203、视频帧定位装置根据媒体文件的第一视频帧的显示时间戳以及目标图像组中的每个视频帧的显示时间戳,确定出目标图像组中的每个视频帧相对于媒体文件的第一视频帧的相对时间。
其中,上述的相对时间为毫秒级相对时间。
204、视频帧定位装置将定位时间与目标图像组中的每个视频帧相对于媒体文件的第一视频帧的相对时间进行匹配,从而定位出定位时间对应的目标视频帧。
可选的,步骤204具体包括如下步骤:
204a、视频帧定位装置获取毫秒级定位时间的小数部分。
204b、视频帧定位装置获取目标图像组中的每个视频帧相对于媒体文件的第一视频帧的毫秒级相对时间的小数部分。
204c、视频帧定位装置将毫秒级定位时间的小数部分与目标图像组中的每个视频帧相对于媒体文件的第一视频帧的毫秒级相对时间的小数部分行匹配,从而定位出定位时间对应的目标视频帧。
可选的,在步骤201之后,该方法还包括:
201a、视频帧定位装置获取媒体文件的第一个视频帧的显示时间戳和媒体文件的最后一个视频帧的显示时间戳。
201b、视频帧定位装置获取该根据媒体文件的第一个视频帧的显示时间戳、媒体文件的最后一个视频帧的显示时间戳,计算该媒体文件的总时间长度。
具体的,媒体文件的总时间长度的计算是在节目开始播放前计算的,首先搜寻该媒体文件的第一个视频帧的显示时间戳记为PTS_start,然后从文件尾端往后寻找该媒体文件的最后一个视频帧的显示时间戳记为PTS_end,最后根据上述的PTS_start、PTS_end以及媒体文件的总时间长度计算公式,得到该媒体文件的总时间长度program_length。
其中,上述的媒体文件的总时间长度计算公式为:
program_length=(PTS_end-PTS_start)/90000 公式三
201c、视频帧定位装置获取媒体文件的文件长度。
201d、视频帧定位装置根据定位时间、媒体文件的文件长度以及总时间长度,确定定位时间对应在媒体文件中的指针。
具体的,该装置在确定定位时间对应在媒体文件中的指针flie_pos_target时,所用的公式如下所示:
flie_pos_target=file_length*(time_pos_target_s/program_length)公式四
其中,上述的ile_length为媒体文件的文件长度,上述的time_pos_target_s为定位时间的整数部分,上述的program_length为媒体文件的总时间长度。
基于上述的步骤201、201a至201d,进一步可选的,步骤202具体可以通过如下过程实现:视频帧定位装置根据定位时间对应在媒体文件中的指针,按照搜索步长和搜索方向检索媒体文件,从中定位出定位时间对应的目标图像组。
本发明的实施例提供的视频帧定位方法,根据当前需要跳转的毫秒级定位时间,按照搜索步长和搜索方向检索媒体文件,从中定位出定位时间对应的目标图像组;然后根据该媒体文件的第一视频帧的显示时间戳以及目标图像组中的每个视频帧的显示时间戳,确定出目标图像组中的每个视频帧相对于媒体文件的第一视频帧的毫秒级相对时间;最后将该定位时间与目标图像组中的每个视频帧相对于媒体文件的第一视频帧的相对时间进行匹配,从而定位出该定位时间对应的目标视频帧。相比于现有技术中需要在播放前对媒体文件进行全面的扫描来创建各个视频帧的索引文件,本发明所提供的方案无需创建索引文件,同时通过三级搜寻的方式来确定具体的定位位置,不仅提高了搜寻的效率,也降低了搜寻时间,同时由于上述的定位时间与用于确定目标视频帧的各个视频帧的相对时间为毫秒级时间,从而保证了定位的精度。
实施例三
本发明的实施例提供一种视频帧定位装置,该装置用于实现上述实施例中所描述的视频帧定位,如图4所示,该视频帧定位装置3包括:获取模块31、定位模块32、确定模块33和匹配模块34,其中:
获取模块31,用于获取当前需要跳转的定位时间;该定位时间为毫秒级定位时间。
定位模块32,用于根据获取模块31获取的定位时间,按照搜索步长和搜索方向检索媒体文件,从中定位出定位时间对应的目标图像组。
确定模块33,用于根据媒体文件的第一视频帧的显示时间戳以及定位模块32定位出的目标图像组中的每个视频帧的显示时间戳,确定出目标图像组中的每个视频帧相对于媒体文件的第一视频帧的相对时间;该相对时间为毫秒级相对时间。
匹配模块34,用于将获取模块31获取的定位时间与确定模块33确定出的目标图像组中的每个视频帧相对于媒体文件的第一视频帧的相对时间进行匹配,从而定位出该定位时间对应的目标视频帧。
可选的,如5所示,该定位模块32包括:搜索单元321、获取单元322、计算单元323、重置单元324和定位单元325,其中:
搜索单元321,用于按照预定搜索步长和搜索方向搜索媒体文件中的视频序列头或图组头。
获取单元322,用于若定位时间属于当前搜索到的视频序列头中包含的视频序列帧的时间范围,则从视频序列头中获取视频序列头对应的目标视频序列中图像组的视频帧帧数和帧速率参数,并根据该帧速率参数确定对应的帧速率。
计算单元323,用于根据获取单元322获取的帧速率以及目标视频序列中图像组的视频帧帧数,计算出目标视频序列中图像组的大小。
重置单元324,用于将预定搜索步长重置为计算单元323计算出的目标视频序列中图像组的大小。
定位单元325,用于按照重置单元324重置的搜索步长搜索目标视频序列中的图组头,直到搜寻到的图组头对应的图像组的第一视频帧相对于媒体文件的第一视频帧的相对时间与定位时间间的差值小于或等于预定门限值时,则将图像组定位为定位时间对应的目标图像组。
进一步可选的,上述的定位单元325还用于:
若当前搜寻到的图组头对应的图像组的第一视频帧相对于媒体文件的第一视频帧的相对时间与定位时间间的差值小于或等于预定门限值时,则直接将当前搜寻到的图组头对应的图像组定位为定位时间对应的目标图像组。
可选的,上述的匹配模块34具体用于:获取毫秒级定位时间的小数部分;获取目标图像组中的每个视频帧相对于媒体文件的第一视频帧的毫秒级相对时间的小数部分;将毫秒级定位时间的小数部分与目标图像组中的每个视频帧相对于媒体文件的第一视频帧的毫秒级相对时间的小数部分行匹配,从而定位出定位时间对应的目标视频帧。
可选的,如图4、5所示,该装置3还包括:计算模块35,其中:
获取模块31,还用于获取媒体文件的第一个视频帧的显示时间戳和媒体文件的最后一个视频帧的显示时间戳。
计算模块35,用于根据获取模块31获取的媒体文件的第一个视频帧的显示时间戳、媒体文件的最后一个视频帧的显示时间戳,计算该媒体文件的总时间长度。
获取模块31,还用于获取媒体文件的文件长度。
确定模块33,还用于根据获取模块31获取的定位时间、媒体文件的文件长度以及总时间长度,确定定位时间对应在媒体文件中的指针。
进一步的,定位模块32具体用于:
根据确定模块33确定的定位时间对应在媒体文件中的指针,按照搜索步长和搜索方向检索媒体文件,从中定位出定位时间对应的目标图像组。
本发明的实施例提供的视频帧定位装置,根据当前需要跳转的毫秒级定位时间,按照搜索步长和搜索方向检索媒体文件,从中定位出定位时间对应的目标图像组;然后根据该媒体文件的第一视频帧的显示时间戳以及目标图像组中的每个视频帧的显示时间戳,确定出目标图像组中的每个视频帧相对于媒体文件的第一视频帧的毫秒级相对时间;最后将该定位时间与目标图像组中的每个视频帧相对于媒体文件的第一视频帧的相对时间进行匹配,从而定位出该定位时间对应的目标视频帧。相比于现有技术中描述的需要在播放前对媒体文件进行全面的扫描来创建各个视频帧的索引文件,本发明所提供的方案无需创建索引文件,同时通过三级搜寻的方式来确定具体的定位位置,不仅提高了搜寻的效率,也降低了搜寻时间,同时由于上述的定位时间与用于确定目标视频帧的各个视频帧的相对时间为毫秒级时间,从而保证了定位的精度。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能单元的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (10)
1.一种视频帧定位方法,其特征在于,包括:
获取当前需要跳转的定位时间;所述定位时间为毫秒级定位时间;
根据所述定位时间,按照搜索步长和搜索方向检索媒体文件,从中定位出所述定位时间对应的目标图像组;
根据所述媒体文件的第一视频帧的显示时间戳以及所述目标图像组中的每个视频帧的显示时间戳,确定出所述目标图像组中的每个视频帧相对于所述媒体文件的第一视频帧的相对时间;所述相对时间为毫秒级相对时间;
将所述定位时间与所述目标图像组中的每个视频帧相对于所述媒体文件的第一视频帧的相对时间进行匹配,从而定位出所述定位时间对应的目标视频帧。
2.根据权利要求1所述的方法,其特征在于,所述根据所述定位时间,按照搜索步长和搜索方向检索所述媒体文件,从中定位出所述定位时间对应的目标图像组具体包括:
按照预定搜索步长和搜索方向搜索所述媒体文件中的视频序列头或图组头;
若所述定位时间属于当前搜索到的视频序列头中包含的视频序列帧的时间范围,则从所述视频序列头中获取所述视频序列头对应的目标视频序列中图像组的视频帧帧数和帧速率参数,并根据所述帧速率参数确定对应的帧速率;
根据所述帧速率以及所述目标视频序列中图像组的视频帧帧数,计算出所述目标视频序列中图像组的大小;
将所述预定搜索步长重置为所述目标视频序列中图像组的大小;
按照重置的搜索步长搜索所述目标视频序列中的图组头,直到搜寻到的图组头对应的图像组的第一视频帧相对于所述媒体文件的第一视频帧的相对时间与所述定位时间间的差值小于或等于预定门限值时,则将所述图像组定位为所述定位时间对应的目标图像组。
3.根据权利要求2所述的方法,其特征在于,所述按照搜索步长和搜索方向搜索所述媒体文件中的视频序列头或图组头之后,所述方法还包括:
若当前搜寻到的图组头对应的图像组的第一视频帧相对于所述媒体文件的第一视频帧的相对时间与所述定位时间间的差值小于或等于所述预定门限值时,则直接将所述当前搜寻到的图组头对应的图像组定位为所述定位时间对应的目标图像组。
4.根据权利要求1所述的方法,其特征在于,所述将所述定位时间与所述目标图像组中的每个视频帧相对于所述媒体文件的第一视频帧的相对时间进行匹配,从而定位出所述定位时间对应的目标视频帧具体包括:
获取所述毫秒级定位时间的小数部分;
获取所述目标图像组中的每个视频帧相对于所述媒体文件的第一视频帧的毫秒级相对时间的小数部分;
将所述毫秒级定位时间的小数部分与所述目标图像组中的每个视频帧相对于所述媒体文件的第一视频帧的毫秒级相对时间的小数部分行匹配,从而定位出所述定位时间对应的目标视频帧。
5.根据权利要求1所述的方法,其特征在于,所述获取当前需要跳转的定位时间之后,所述方法还包括:
获取所述媒体文件的第一个视频帧的显示时间戳和所述媒体文件的最后一个视频帧的显示时间戳;
根据所述媒体文件的第一个视频帧的显示时间戳、所述媒体文件的最后一个视频帧的显示时间戳,计算所述媒体文件的总时间长度;
获取所述媒体文件的文件长度;
根据所述定位时间、所述媒体文件的文件长度以及总时间长度,确定所述定位时间对应在所述媒体文件中的指针;
进一步的,所述根据所述定位时间,按照预定搜索步长和预定搜索方向检索所述媒体文件,从中定位出所述定位时间对应的目标图像组具体包括:
根据所述定位时间对应在所述媒体文件中的指针,按照搜索步长和搜索方向检索所述媒体文件,从中定位出所述定位时间对应的目标图像组。
6.一种视频帧定位装置,其特征在于,包括:
获取模块,用于获取当前需要跳转的定位时间;所述定位时间为毫秒级定位时间;
定位模块,用于根据所述获取模块获取的所述定位时间,按照搜索步长和搜索方向检索媒体文件,从中定位出所述定位时间对应的目标图像组;
确定模块,用于根据所述媒体文件的第一视频帧的显示时间戳以及所述目标图像组中的每个视频帧的显示时间戳,确定出所述定位模块定位出的所述目标图像组中的每个视频帧相对于所述媒体文件的第一视频帧的相对时间;所述相对时间为毫秒级相对时间;
匹配模块,用于将所述获取模块获取的所述定位时间与所述确定模块确定出的所述目标图像组中的每个视频帧相对于所述媒体文件的第一视频帧的相对时间进行匹配,从而定位出所述定位时间对应的目标视频帧。
7.根据权利要求6所述的装置,其特征在于,所述定位模块包括:
搜索单元,用于按照预定搜索步长和搜索方向搜索所述媒体文件中的视频序列头或图组头;
获取单元,用于若所述定位时间属于当前搜索到的视频序列头中包含的视频序列帧的时间范围,则从所述视频序列头中获取所述视频序列头对应的目标视频序列中图像组的视频帧帧数和帧速率参数,并根据所述帧速率参数确定对应的帧速率;
计算单元,用于根据所述获取单元获取的所述帧速率以及所述目标视频序列中图像组的视频帧帧数,计算出所述目标视频序列中图像组的大小;
重置单元,用于将所述预定搜索步长重置为所述计算单元计算出的所述目标视频序列中图像组的大小;
定位单元,用于按照所述重置单元重置的搜索步长搜索所述目标视频序列中的图组头,直到搜寻到的图组头对应的图像组的第一视频帧相对于所述媒体文件的第一视频帧的相对时间与所述定位时间间的差值小于或等于预定门限值时,则将所述图像组定位为所述定位时间对应的目标图像组。
8.根据权利要求7所述的装置,其特征在于,所述定位单元还用于:
若当前搜寻到的图组头对应的图像组的第一视频帧相对于所述媒体文件的第一视频帧的相对时间与所述定位时间间的差值小于或等于所述预定门限值时,则直接将所述当前搜寻到的图组头对应的图像组定位为所述定位时间对应的目标图像组。
9.根据权利要求6所述的装置,其特征在于,所述匹配模块具体用于:获取所述毫秒级定位时间的小数部分;获取所述目标图像组中的每个视频帧相对于所述媒体文件的第一视频帧的毫秒级相对时间的小数部分;将所述毫秒级定位时间的小数部分与所述目标图像组中的每个视频帧相对于所述媒体文件的第一视频帧的毫秒级相对时间的小数部分行匹配,从而定位出所述定位时间对应的目标视频帧。
10.据权利要求6所述的装置,其特征在于,所述装置还包括:
所述获取模块,还用于获取所述媒体文件的第一个视频帧的显示时间戳和所述媒体文件的最后一个视频帧的显示时间戳;
计算模块,用于根据所述获取模块获取的所述媒体文件的第一个视频帧的显示时间戳、所述媒体文件的最后一个视频帧的显示时间戳,计算所述媒体文件的总时间长度;
所述获取模块,还用于获取所述媒体文件的文件长度;
所述确定模块,还用于根据所述获取模块获取的所述定位时间、所述媒体文件的文件长度以及总时间长度,确定所述定位时间对应在所述媒体文件中的指针;
进一步的,所述定位模块具体用于:
根据所述确定模块确定的所述定位时间对应在所述媒体文件中的指针,按照搜索步长和搜索方向检索所述媒体文件,从中定位出所述定位时间对应的目标图像组。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510044566.9A CN104581436B (zh) | 2015-01-28 | 2015-01-28 | 一种视频帧定位方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510044566.9A CN104581436B (zh) | 2015-01-28 | 2015-01-28 | 一种视频帧定位方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104581436A CN104581436A (zh) | 2015-04-29 |
CN104581436B true CN104581436B (zh) | 2017-12-05 |
Family
ID=53096472
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510044566.9A Active CN104581436B (zh) | 2015-01-28 | 2015-01-28 | 一种视频帧定位方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104581436B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106559678A (zh) * | 2015-09-28 | 2017-04-05 | 北京视连通科技有限公司 | 一种对数字视频进行结构化处理的方法 |
CN106131660B (zh) * | 2016-07-15 | 2019-08-09 | 青岛海信宽带多媒体技术有限公司 | 视频定位播放方法及装置 |
CN110460790A (zh) * | 2018-05-02 | 2019-11-15 | 北京视联动力国际信息技术有限公司 | 一种视频帧的抽取方法和装置 |
CN110175263A (zh) * | 2019-04-08 | 2019-08-27 | 浙江大华技术股份有限公司 | 一种定位视频帧的方法、保存视频的方法及终端设备 |
CN110262752B (zh) * | 2019-05-16 | 2020-08-11 | 罗普特科技集团股份有限公司 | 一种用于存储流媒体数据的方法、装置、存储介质 |
CN110445954B (zh) * | 2019-07-26 | 2022-04-26 | 腾讯医疗健康(深圳)有限公司 | 图像采集方法、装置及电子设备 |
CN110784717B (zh) * | 2019-10-11 | 2022-03-25 | 北京达佳互联信息技术有限公司 | 一种编码方法、装置、电子设备及存储介质 |
CN111405288A (zh) * | 2020-03-19 | 2020-07-10 | 北京字节跳动网络技术有限公司 | 视频抽帧方法、装置、电子设备及计算机可读存储介质 |
CN112336381B (zh) * | 2020-11-07 | 2022-04-22 | 吉林大学 | 一种基于深度学习的超声心动图收缩/舒张末期帧自动识别方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7174561B2 (en) * | 2001-04-13 | 2007-02-06 | Emc Corporation | MPEG dual-channel decoder data and control protocols for real-time video streaming |
CN101631228A (zh) * | 2008-07-18 | 2010-01-20 | 中国科学院声学研究所 | 一种支持dvb cas的网络时移电视实现方法及其系统 |
CN103260092A (zh) * | 2012-02-17 | 2013-08-21 | 三星电子株式会社 | 用于在多媒体内容中寻找帧的方法和设备 |
CN104093070A (zh) * | 2014-07-22 | 2014-10-08 | 中国科学院软件研究所 | 一种视频组播网络系统中频道切换加速的方法和频道族群标识方法 |
CN104159161A (zh) * | 2014-08-25 | 2014-11-19 | 广东欧珀移动通信有限公司 | 视频图像帧的定位方法和装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101635847B (zh) * | 2009-09-02 | 2011-11-30 | 中兴通讯股份有限公司 | 一种流媒体的传输方法、视频播放装置及终端 |
JP2011146799A (ja) * | 2010-01-12 | 2011-07-28 | Brother Industries Ltd | 画像処理装置及び画像処理プログラム |
EP2687969A3 (en) * | 2012-07-16 | 2015-11-11 | Samsung Electronics Co., Ltd | Electronic apparatus and control method of the same |
CN104065978B (zh) * | 2013-03-22 | 2017-12-01 | 北京中传数广技术有限公司 | 一种媒体内容定位的方法及系统 |
CN104038834A (zh) * | 2014-05-19 | 2014-09-10 | 乐视网信息技术(北京)股份有限公司 | 一种视频定位方法和装置 |
-
2015
- 2015-01-28 CN CN201510044566.9A patent/CN104581436B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7174561B2 (en) * | 2001-04-13 | 2007-02-06 | Emc Corporation | MPEG dual-channel decoder data and control protocols for real-time video streaming |
CN101631228A (zh) * | 2008-07-18 | 2010-01-20 | 中国科学院声学研究所 | 一种支持dvb cas的网络时移电视实现方法及其系统 |
CN103260092A (zh) * | 2012-02-17 | 2013-08-21 | 三星电子株式会社 | 用于在多媒体内容中寻找帧的方法和设备 |
CN104093070A (zh) * | 2014-07-22 | 2014-10-08 | 中国科学院软件研究所 | 一种视频组播网络系统中频道切换加速的方法和频道族群标识方法 |
CN104159161A (zh) * | 2014-08-25 | 2014-11-19 | 广东欧珀移动通信有限公司 | 视频图像帧的定位方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104581436A (zh) | 2015-04-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104581436B (zh) | 一种视频帧定位方法及装置 | |
CN103188522B (zh) | 提供与传送复合浓缩串流的方法以及系统 | |
CN100364339C (zh) | 执行代码转换前后保持定时参数的代码转换系统 | |
TWI684356B (zh) | 確定運動矢量預測值的方法及設備、電腦可讀儲存介質 | |
US8718388B2 (en) | Video processing with tiered interdependencies of pictures | |
EP2124454A1 (en) | Bit stream converting method, bit stream converting device, bit stream coupling device, bit stream dividing program, bit stream converting program and bit stream coupling program | |
US20090310934A1 (en) | Picture interdependencies signals in context of mmco to assist stream manipulation | |
CN111970562A (zh) | 视频处理方法、视频处理装置、存储介质与电子设备 | |
CN106303682B (zh) | 频道切换的方法、装置、终端及服务器 | |
CN108810545A (zh) | 用于视频编码的方法、装置、计算机可读介质及电子设备 | |
CN104284241A (zh) | 一种视频剪辑方法和装置 | |
CN109348309A (zh) | 一种适用于帧率上变换的分布式视频转码方法 | |
US7956898B2 (en) | Digital image stabilization method | |
CN110087116B (zh) | 多码率直播视频流剪辑方法、装置、终端及存储介质 | |
CN107147824A (zh) | 多视角视频的输出方法和装置 | |
CN104768062A (zh) | 实时视频流的无缝切换方法 | |
CN114245229A (zh) | 一种短视频制作方法、装置、设备以及存储介质 | |
Yokoyama | Adaptive GOP structure selection for real-time MPEG-2 video encoding | |
WO2021080617A1 (en) | Frame-accurate automated cutting of media content by using multiple airings | |
US12096084B2 (en) | Broadcast directing method, apparatus and system | |
CN103309865B (zh) | 视频源聚类的实现方法及实现系统 | |
CN112929694B (zh) | 视频拼接方法、装置、存储介质、计算机设备 | |
CN103327399B (zh) | 快速展现epg数据的方法 | |
CN106791274A (zh) | 一种场景检测方法及装置 | |
CN109120989B (zh) | Ts流播放时追溯定位的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |