一种视频时间长度的估计方法和装置制造方法

文档序号:7815498阅读:129来源:国知局
一种视频时间长度的估计方法和装置制造方法
【专利摘要】本发明实施例提供了一种视频时间长度的估计方法和装置,其中的方法具体包括:将待估计视频文件划分为多个视频分段;其中,每个视频分段包括若干视频封装单元;分别读取各视频分段中各视频封装单元的时间戳信息和文件位置信息;分别记录各视频分段中首个视频封装单元的时间戳信息和文件位置信息,以及最大的时间戳信息和所述最大的时间戳信息对应视频封装单元的位置;依据所记录的各视频分段中首个视频封装单元的时间戳信息和文件位置信息,以及最大的时间戳信息和所述最大的时间戳信息对应视频封装单元的文件位置信息,计算所述待估计视频文件对应的视频时间长度。本发明能够快速准确地估算出视频时间长度。
【专利说明】一种视频时间长度的估计方法和装置

【技术领域】
[0001] 本发明涉及视频处理【技术领域】,特别是涉及一种视频时间长度的估计方法和装 置。

【背景技术】
[0002] 随着多媒体技术、网络技术和有线电视的发展,视频已经成为人们日常生活中获 取信息和享受娱乐的主要载体。而视频处理能够增加视频的特效效果,增强视频的可观赏 性,因此,具有重要的作用。
[0003] 视频的播放、编辑、截图、转码等视频处理任务都需要预先知道准确的视频时间长 度。通常可以直接从视频文件所包含的信息中获取视频时长。然而,由于种种原因,很多视 频文件并没有包含时长信息。因此,视频时间长度的估计方法成为亟待解决的事情。
[0004] 目前,Ffmpeg是最常见的视频工具,其能够提供视频时间长度的估计功能,具体原 理是解出视频文件的起始位置时间戳DTS_start,以及结束位置时间戳DTS_end,使之相减 即可得到视频时间长度T:
[0005] T = (DTS_end - DTS_start)/time_base (1)
[0006] 其中,time_base为时间单位。
[0007] 然而,在实际应用中,很多视频并不能通过Ffmpeg获得准确的视频时间长度,这 是因为这些视频的时间戳并非单调递增,而是分段周期变化或者本身时间戳存在一些错 误,这些视频使用Ffmpeg获取的视频时间长度,往往与实际的视频时间长度相差甚远,严 重影响了其他视频业务。


【发明内容】

[0008] 本发明实施例所要解决的技术问题是提供一种视频时间长度的估计方法,能够快 速准确地估算出视频时间长度。
[0009] 相应的,本发明实施例还提供了一种视频时间长度的估计装置,用以保证上述方 法的实现及应用。
[0010] 为了解决上述问题,本发明公开了一种视频时间长度的估计方法,包括:
[0011] 将待估计视频文件划分为多个视频分段;其中,每个视频分段包括若干视频封装 单元;
[0012] 分别读取各视频分段中各视频封装单元的时间戳信息和文件位置信息;
[0013] 分别记录各视频分段中首个视频封装单元的时间戳信息和文件位置信息,以及最 大的时间戳信息和所述最大的时间戳信息对应视频封装单元的位置;
[0014] 依据所记录的各视频分段中首个视频封装单元的时间戳信息和文件位置信息,以 及最大的时间戳信息和所述最大的时间戳信息对应视频封装单元的文件位置信息,计算所 述待估计视频文件对应的视频时间长度。
[0015] 优选的,所述依据所记录的各视频分段中首个视频封装单元的时间戳信息和文件 位置信息,以及最大的时间戳信息和所述最大的时间戳信息对应视频封装单元的文件位置 信息,计算所述待估计视频文件对应的视频时间长度的步骤,包括:
[0016] 依据所记录的各视频分段中首个视频封装单元的时间戳信息和最大的时间戳信 息,计算各视频分段的时长;
[0017] 依据所记录的各视频分段中首个视频封装单元的文件位置信息,以及所述最大的 时间戳信息对应视频封装单元的文件位置信息,计算各视频分段的大小;
[0018] 依据各视频分段的时长和大小,计算所述待估计视频文件对应的视频时间长度。
[0019] 优选的,所述分别读取各视频分段中各视频封装单元的时间戳信息和文件位置信 息的步骤,包括:
[0020] 确定各视频分段的读取文件位置信息;
[0021] 按照所述各视频分段的读取位置从小到大的顺序,依次根据所述读取位置读取各 视频分段中各视频封装单元的时间戳信息和文件位置信息。
[0022] 优选的,所述时间戳信息包括:显示时间戳信息或者解码时间戳信息。
[0023] 另一方面,本发明还公开了一种视频时间长度的估计装置,包括:
[0024] 划分模块,用于将待估计视频文件划分为多个视频分段;其中,每个视频分段包括 若干视频封装单元;
[0025] 读取模块,用于分别读取各视频分段中各视频封装单元的时间戳信息和文件位置 信息;
[0026] 记录模块,用于分别记录各视频分段中首个视频封装单元的时间戳信息和文件位 置信息,以及最大的时间戳信息和所述最大的时间戳信息对应视频封装单元的位置;及
[0027] 计算模块,用于依据所记录的各视频分段中首个视频封装单元的时间戳信息和文 件位置信息,以及最大的时间戳信息和所述最大的时间戳信息对应视频封装单元的文件位 置信息,计算所述待估计视频文件对应的视频时间长度。
[0028] 优选的,所述计算模块包括:
[0029] 第一计算子模块,用于依据所记录的各视频分段中首个视频封装单元的时间戳信 息和最大的时间戳信息,计算各视频分段的时长;
[0030] 第二计算子模块,用于依据所记录的各视频分段中首个视频封装单元的文件位置 信息,以及所述最大的时间戳信息对应视频封装单元的文件位置信息,计算各视频分段的 大小;
[0031] 第三计算子模块,用于依据各视频分段的时长和大小,计算所述待估计视频文件 对应的视频时间长度。
[0032] 优选的,所述读取模块包括:
[0033] 确定子模块,用于确定各视频分段的读取文件位置信息;
[0034] 读取子模块,用于按照所述各视频分段的读取位置从小到大的顺序,依次根据所 述读取位置读取各视频分段中各视频封装单元的时间戳信息和文件位置信息。
[0035] 优选的,所述时间戳信息包括:显示时间戳信息或者解码时间戳信息。
[0036] 与现有技术相比,本发明实施例包括以下优点:
[0037] 本发明实施例不是类似现有方案根据视频文件的结束位置时间戳和起始位置时 间戳估计视频时间长度,而是将待估计视频文件划分为多个视频分段,从所述多个视频分 段对应的多个位置读取时间戳信息和文件位置信息,并利用所述多个视频分段的时间戳信 息和文件位置信息进行视频时间长度的估计;由于利用了更多、更丰富的时间戳信息和文 件位置信息进行视频时间长度的估计,因此能够提高视频时间长度估计的准确度。

【专利附图】

【附图说明】
[0038] 图1是本发明的一种视频时间长度的估计方法实施例的步骤流程图;
[0039] 图2是本发明的一种视频时间长度的估计方法示例5的步骤流程图;以及
[0040] 图3是本发明的一种视频时间长度的估计方法装置实施例的结构框图。

【具体实施方式】
[0041] 为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实 施方式对本发明作进一步详细的说明。
[0042] 如果视频文件的时间戳是单调递增的,那么,现有的估计方法只需用视频文件的 结束位置时间戳减去起始位置时间戳,就能够准确地得到视频时间长度。例如,一个视频 文件有10个视频帧,如果它们的时间戳是单调递增的,例如示例1中PTS(显示时间戳, Presentation Timestamp)值为1、2、3、4、5、6、7、8、9、10,那么,上述估计方法得到的视频时 间长度10-1 = 9是准确的。
[0043] 然而,如果PTS不是单调递增的,比如示例2中PTS值分别为1、2、3、4、5、1、2、3、4、 5,那么上述估计方法得到的视频时间长度就是5-1 = 4,这和真实的时长9相差甚远。
[0044] 本专利发明人注意到了上述问题,并创造性地将待估计视频文件划分为多个视频 分段,从所述多个视频分段对应的多个位置读取时间戳信息和文件位置信息,并利用所述 多个视频分段的时间戳信息和文件位置信息进行视频时间长度的估计;由于利用了更多、 更丰富的时间戳信息和文件位置信息进行视频时间长度的估计,因此能够提高视频时间长 度估计的准确度。
[0045] 以上述示例2为例,假设将视频文件划分为2个视频分段,第一个视频分段的PTS 值分别为1、2、3、4、5,第二个视频分段的PTS值分别为1、2、3、4、5,假设第一个视频分段和 第二个视频分段的大小均为5M,视频文件的大小为10M,那么,本发明估计得到的视频时间 长度为(5-l+5-l)Xl(V(5+5) =8,显然其更能接近真实的时长9。
[0046] 参照图1,示出了本发明的一种视频时间长度的估计方法实施例的步骤流程图,具 体可以包括如下步骤:
[0047] 步骤101、将待估计视频文件划分为多个视频分段;其中,每个视频分段具体可以 包括若干视频封装单元;
[0048] 在实际应用中,所述待估计视频文件的格式可以为MPEG (动态图像专家组,Motion Picture Experts Group)、AVI (音频视频交错,Audio Video Interleaved)和 RMVB (动态 速率RM,RM Variable Bit Rate)等等,本发明实施例对所述待估计视频文件的具体格式不 加以限制。
[0049] 在具体实现中,可以根据待估计视频文件的大小选择视频分段的数量N。通常待估 计视频文件越大,则自然数N越大。对于同样大小的待估计视频文件,理论上N越大则视频 时间长度的估算结果越准确,但耗时也会越大,反之亦然。在实际应用中可以根据实际情况 选择估算结果和耗时最优的N值,例如,可以在耗时不超过耗时阈值的前提下适当增加视 频分段数量,这里的耗时阈值用于表示可以接受的最大耗时;又如可以通过大量实验优化 视频分段的位置和数量,如可以采用经验值10。
[0050] 可以通过解封装所述待估计视频文件视频得到相应的视频封装单元序列,其中, 视频Packet (帧)是一种最常见的视频封装单元,但其不理解为本发明实施例的应用限制。
[0051] 另外,在具体实现中,可以根据实际需求选取每个视频分段所包含视频封装单元 的数目,例如,可以平均选取,也即,每个视频分段所包含视频封装单元的数目是相同的;又 如,也可以随机选取,为每个视频分段随机分配视频封装单元,仅需所有视频分段组成完整 的视频文件即可。
[0052] 在本发明的一种示例3中,假设待估计视频文件A由1000个视频帧组成,视频分 段的数目为10,则按照平均选取的的原则,第1-100个视频帧为第一个视频分段,101-110 个视频帧为第二个视频分段,依此类推。
[0053] 步骤102、分别读取各视频分段中各视频封装单元的时间戳信息和文件位置信 息;
[0054] 每个视频封装单元都可以包含时间戳信息和文件位置信息。在具体实现中,可以 对上述视频帧序列进行解析,获取视频文件中视频帧的数量及各视频帧的时间戳信息和 P〇S(位置,position)信息。
[0055] 其中,上述时间戳信息具体可以包括DTS (解码时间戳,Decompression Timestamp)信息和PTS信息等,分别为解码器进行解码和显示帧时所用到的时间信息,本 发明实施例主要以PTS为例进行说明,其它时间戳信息相互参照即可。
[0056] 视频帧的文件位置信息可用于表示视频帧之前的视频文件的大小信息,基本单位 可以为M。
[0057] 在本发明的一种优选实施例中,所述分别读取各视频分段中各视频封装单元的时 间戳信息和文件位置信息的步骤,具体可以包括:
[0058] 子步骤A1、确定各视频分段的读取位置;
[0059] 子步骤A2、按照所述各视频分段的读取位置从小到大的顺序,依次根据所述读取 位置读取各视频分段中各视频封装单元的时间戳信息和文件位置信息。
[0060] 其中,视频分段的读取位置可以为视频分段中首个视频封装单元的位置。以上述 示例为例,可以从待估计视频文件的起始位置开始,可以首先读取第1-100个视频帧得到 第一个视频分段中各视频帧的时间戳信息和文件位置信息,然后读取第101-110个视频帧 得到第二个视频分段中各视频帧的时间戳信息和文件位置信息,依此类推。
[0061] 步骤103、分别记录各视频分段中首个视频封装单元的时间戳信息和文件位置信 息,以及最大的时间戳信息和所述最大的时间戳信息对应视频封装单元的文件位置信息;
[0062] 上述最大的时间戳信息也即视频分段中所有视频封装单元的时间戳信息中最大 的那个信息,可以通过对所有视频封装单元的时间戳信息排序得到。
[0063] 步骤104、依据所记录的各视频分段中首个视频封装单元的时间戳信息和位置,以 及最大的时间戳信息和所述最大的时间戳信息对应视频封装单元的位置,计算所述待估计 视频文件对应的视频时间长度。
[0064] 在本发明的一种优选实施例中,所述依据所记录的各视频分段中首个视频封装单 元的时间戳信息和文件位置信息,以及最大的时间戳信息和所述最大的时间戳信息对应视 频封装单元的文件位置信息,计算所述待估计视频文件对应的视频时间长度的步骤,具体 可以包括:
[0065] 子步骤B1、依据所记录的各视频分段中首个视频封装单元的时间戳信息和最大的 时间戳信息,计算各视频分段的时长;
[0066] 子步骤B2、依据所记录的各视频分段中首个视频封装单元的文件位置信息,以及 所述最大的时间戳信息对应视频封装单元的文件位置信息,计算各视频分段的大小;
[0067] 子步骤B3、依据各视频分段的时长和大小,计算所述待估计视频文件对应的视频 时间长度。
[0068] 假设第η个视频分段的首个视频封装单元的时间戳信息和最大的时间戳信息分 别记为PTS_start_r^PPTS_max_n,第η个视频分段的首个视频封装单元的文件位置信息和 最大的时间戳信息对应视频封装单元的文件位置信息分别记为P〇S_start_n和P0S_max_ n,则第η个视频分段的时长可以表示为:PTS_max_n-PTS_start_n,第η个视频分段的大小 可以表示为:P〇S_max_n-POS_start_n,所述待估计视频文件对应的视频时间长度Τ可以表 示为:
[0069]

【权利要求】
1. 一种视频时间长度的估计方法,其特征在于,包括: 将待估计视频文件划分为多个视频分段;其中,每个视频分段包括若干视频封装单 元; 分别读取各视频分段中各视频封装单元的时间戳信息和文件位置信息; 分别记录各视频分段中首个视频封装单元的时间戳信息和文件位置信息,以及最大的 时间戳信息和所述最大的时间戳信息对应视频封装单元的位置; 依据所记录的各视频分段中首个视频封装单元的时间戳信息和文件位置信息,以及最 大的时间戳信息和所述最大的时间戳信息对应视频封装单元的文件位置信息,计算所述待 估计视频文件对应的视频时间长度。
2. 根据权利要求1所述的方法,其特征在于,所述依据所记录的各视频分段中首个视 频封装单元的时间戳信息和文件位置信息,以及最大的时间戳信息和所述最大的时间戳信 息对应视频封装单元的文件位置信息,计算所述待估计视频文件对应的视频时间长度的步 骤,包括: 依据所记录的各视频分段中首个视频封装单元的时间戳信息和最大的时间戳信息,计 算各视频分段的时长; 依据所记录的各视频分段中首个视频封装单元的文件位置信息,以及所述最大的时间 戳信息对应视频封装单元的文件位置信息,计算各视频分段的大小; 依据各视频分段的时长和大小,计算所述待估计视频文件对应的视频时间长度。
3. 根据权利要求1或2所述的方法,其特征在于,所述分别读取各视频分段中各视频封 装单元的时间戳信息和文件位置信息的步骤,包括: 确定各视频分段的读取文件位置信息; 按照所述各视频分段的读取位置从小到大的顺序,依次根据所述读取位置读取各视频 分段中各视频封装单元的时间戳信息和文件位置信息。
4. 根据权利要求1或2所述的方法,其特征在于,所述时间戳信息包括:显示时间戳信 息或者解码时间戳信息。
5. -种视频时间长度的估计装置,其特征在于,包括: 划分模块,用于将待估计视频文件划分为多个视频分段;其中,每个视频分段包括若干 视频封装单元; 读取模块,用于分别读取各视频分段中各视频封装单元的时间戳信息和文件位置信 息; 记录模块,用于分别记录各视频分段中首个视频封装单元的时间戳信息和文件位置信 息,以及最大的时间戳信息和所述最大的时间戳信息对应视频封装单元的位置;及 计算模块,用于依据所记录的各视频分段中首个视频封装单元的时间戳信息和文件位 置信息,以及最大的时间戳信息和所述最大的时间戳信息对应视频封装单元的文件位置信 息,计算所述待估计视频文件对应的视频时间长度。
6. 根据权利要求5所述的装置,其特征在于,所述计算模块包括: 第一计算子模块,用于依据所记录的各视频分段中首个视频封装单元的时间戳信息和 最大的时间戳信息,计算各视频分段的时长; 第二计算子模块,用于依据所记录的各视频分段中首个视频封装单元的文件位置信 息,以及所述最大的时间戳信息对应视频封装单元的文件位置信息,计算各视频分段的大 小; 第三计算子模块,用于依据各视频分段的时长和大小,计算所述待估计视频文件对应 的视频时间长度。
7. 根据权利要求5或6所述的装置,其特征在于,所述读取模块包括: 确定子模块,用于确定各视频分段的读取文件位置信息; 读取子模块,用于按照所述各视频分段的读取位置从小到大的顺序,依次根据所述读 取位置读取各视频分段中各视频封装单元的时间戳信息和文件位置信息。
8. 根据权利要求5或6所述的装置,其特征在于,所述时间戳信息包括:显示时间戳信 息或者解码时间戳信息。
【文档编号】H04N21/8547GK104301805SQ201410503219
【公开日】2015年1月21日 申请日期:2014年9月26日 优先权日:2014年9月26日
【发明者】黄剑飞 申请人:北京奇艺世纪科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1