首页> 中国专利> 一种支持MOV/3GP/MP4文件的索引系统及方法

一种支持MOV/3GP/MP4文件的索引系统及方法

摘要

本发明公开了一种支持MOV/3GP/MP4文件的索引系统及方法。所述索引的系统由索引文件头模块,一级索引模块和二级索引模块组成。索引文件头模块,用于记录视音频文件的文件头基本信息,具体为预写的所有数据流的基本文件信息和索引文件建立后复写的完整的视音频数据流信息;一级索引模块,用于存储视音频文件的一级索引,具体为视音频二级索引满预设回写的数据流信息;二级索引模块,用于存储视音频文件的二级索引,具体为视音频每个样本sample记录的信息。通过本发明可以大大提高读取查询的效率,也减少了系统内存的存储空间。

著录项

  • 公开/公告号CN102682016A

    专利类型发明专利

  • 公开/公告日2012-09-19

    原文格式PDF

  • 申请/专利权人 新奥特(北京)视频技术有限公司;

    申请/专利号CN201110061524.8

  • 发明设计人 夏永宏;杨珂;郑晓东;

    申请日2011-03-15

  • 分类号G06F17/30(20060101);H04N7/24(20060101);

  • 代理机构北京挺立专利事务所(普通合伙);

  • 代理人叶树明

  • 地址 100195 北京市海淀区五棵松路49号新奥特科技大厦

  • 入库时间 2023-12-18 08:00:51

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2023-03-03

    未缴年费专利权终止 IPC(主分类):G06F17/30 专利号:ZL2011100615248 申请日:20110315 授权公告日:20181002

    专利权的终止

  • 2018-10-02

    授权

    授权

  • 2014-04-09

    实质审查的生效 IPC(主分类):G06F17/30 申请日:20110315

    实质审查的生效

  • 2012-09-19

    公开

    公开

说明书

技术领域

本发明涉及节目制作技术领域,尤其涉及一种支持MOV/3GP/MP4文件的索引系统及方法。 

背景技术

流媒体业务是视频领域的特色业务,对高效录像且对录像内容实现准确灵活播放是流媒体业务中的一项急迫的需求。 

播放的准确灵活性取决于多方数据的存储策略和播放策略。在流媒体业务中,流媒体文件多以MOV/3GP/MP4格式存储。 

MOV格式文件是以轨道(track)的形式组织起来的。一个MOV格式文件结构中可以包含很多轨道。轨道的数目限制有一些经验值,这些值会因为计算机的能力越来越强大而发生改变,然而MOV格式文件本身并没有预定义的轨道数目限制。 

3GP是一种3G流媒体的视频编码格式,使用户能够发送大量的数据到移动电话网络,从而明确传输大型文件,如音频,视频和数据网络的手机。 

MP4格式是一款优秀的流媒体格式,目前广泛应用于各种在线媒体领域。MP4文件所有文件存在一个称为movie的容器中,简单来看movie容器中装有两头文件,包括MP4文件的头文件(index)和MP4文件的数据文件(data)。数据文件data是纯粹的媒体资料数据,但这些数据是不能直接被播放软件识别并播放的,头文件index不含媒体数据,但其指明了每个帧,每个数据簇的大小、在data的位置以及使用什么方式进行解码。 

发明人发现上述三种特殊格式文件在视频播出编辑过程中,存在以下问题: 

1)播放质量差,帧数低; 

2)在线播放上述格式文件时,需解析完整文件,需要很长的等待; 

3)传统的编辑定位方法很难达到快速的帧精确。 

发明内容

为了解决上述现有技术的缺点,本发明的主要目的是提供一种支持MOV/3GP/MP4文件的索引系统及方法,解决现有技术中编辑大文件需要占用很大内存和查询需要很长时间的问题,达到高效的帧编辑。 

为达到上述目的,本发明的一方面提供了一种支持MOV/3GP/MP4文件的索引系统,具体包括: 

索引文件头模块,用于记录视音频文件的文件头基本信息,具体为预写的所有数据流的基本文件信息和索引文件建立后复写的完整的视音频数据流信息; 

一级索引模块,用于存储视音频文件的一级索引,具体为视音频二级索引满预设回写的数据流信息; 

二级索引模块,用于存储视音频文件的二级索引,具体为每个视音频帧sample记录的信息。 

本发明另一方面还提供了一种支持MOV/3GP/MP4文件的方法,具体包括以下步骤: 

获取一个视音频帧sample开始和持续时间并记录sample序号; 

查找所述sample序号判断视音频帧类型; 

依据所述sample序号获取所述sample的大小; 

准确定位sample在文件中的位置。 

本发明实施例通过对MOV/3GP/MP4视音频媒体流文件建立的二级索引结构系统,并在所述的索引系统中根据流媒体文件中的视音频数据流的视音频sample开始和持续时间记录sample序号,依据所述序号判断视音频帧类型以及sample大小,准确定位sample在文件中的位置,从而获得整个MOV/3GP/MP4视音频媒体流文件的位置,大大提高了读取查询的效率,也减少了对系统内存的过多依赖。 

附图说明

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

图1为本发明实施例一种支持MOV/3GP/MP4的索引系统。 

图2为本发明实施例一种支持MP4文件的索引文件生成示意图; 

图3为本发明实施例一个MP4文件索引结构示意图; 

图4为本发明实施例获取MOV/3GP/MP4的方法示意图; 

具体实施方式

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

本发明实施例一为一种支持MOV/3GP/MP4的索引系统如图1所示,具体为: 

索引文件头模块10,用于记录视音频文件的文件头基本信息,具体为预写的所有数据流的基本文件信息和索引文件建立后复写的完整的视音频数据流信息; 

一级索引模块20,用于存储视音频文件的一级索引,具体为视音频二级索引满预设回写的数据流信息; 

二级索引模块30,用于存储视音频文件的二级索引,具体为每个视音频帧sample记录的信息。 

本发明实施例二以支持MP4文件的索引方法为例更加详细的说明本发明系统生成的技术方案,当然并不引以为限。如图2所示为本发明实施例中支持MP4文件的索引文件生成流程示意图,具体为: 

步骤S1:从入口处读取MP4文件,并根据国际标准分析moov box分别 得到audio track(音频轨道)结构和video track(视频轨道)结构。 

步骤S2:根据所述audio track结构和video track结构分别提取音频格式信息与视频格式信息,得到视频stbl结构与音频上stbl结构。 

步骤S3:当获取视频stbl结构与音频上stbl结构后,预写视频与音频所有数据流的基本信息到索引文件头,并预留空间以便后续存储一级索引文件。 

步骤S4:从stts结构中获取每个sample开始和持续时间,并真正开始分析数据流信息。 

步骤S5:通过分析数据流信息得到视音频sample时间,并判断音频时间与视频时间的大小,当音频时间小于视频时间时,分析音频chunk,当视频时间小于等于音频时间时,分析视频chunk。 

步骤S6:若为音频信息,则分析音频chunk,对于每个sample信息都记录到二级音频索引,同样若为视频信息则分析音频chunk,对于每个sample信息都记录到二级视频索引。 

步骤S7:当分析记录完当前视音频chunk,指向当前track的下一个chunk,得到这个chunk中第一个sample的时间继续分析,以进行步骤S5。 

步骤S8:当记录的sample信息达到预设值时,回写视音频二级索引到预留的一级索引空间。 

步骤S9:stbl结构分析结束后,复写完整的视音频流信息到文件头。 

本发明实施例通过根据国际标准读取并解析包含MOV/3GP/MP4视音频媒体流文件,根据流媒体文件中的视音频数据流的stbl结构预写目标索引文件的基本文件信息,分别记录分析视音频数据chunk信息生成视音频二级索引,按照出现时间的先后顺序将记录下的二级索引分组形成一级索引;最后复写完整的视音频流信息,大大提高了读取查询的效率,也减少了对系统内存的过多依赖。 

本发明实施例三为一个MP4文件索引结构示意图,如图3所示,其中stbl为二级索引结构,其内容具体为:视音频帧时间stts(Time To Sample Box)存储了sample的时间长度duration,描述了sample时序的映射方法,我们通过它可以找到任何时间的sample。视音频帧尺寸stsz(Sample Size Box)定义 了每个sample的大小。视音频数据块stsc(Sample To Chunk Box)中用一个表描述了sample与chunk的映射关系,查看这张表就可以找到包含指定sample的chunk,从而找到这个sample。用chunk组织sample可以方便优化数据获取,一个chunk包含一个或多个sample。视音频关键帧stss(Sync Sample Box)确定media中的关键帧。“stss”可以非常紧凑的标记媒体内的随机存取点,它包含一个sample序号表,表内的每一项严格按照sample的序号排列,说明了媒体中的哪一个sample是关键帧。如果此表不存在,说明每一个sample都是一个关键帧,是一个随机存取点。数据块位置stco(Chunk Offset Box)定义了每个chunk在媒体流中的位置。位置有两种存储格式,32位的和64位的,后者对非常大的电影很有用。在一个表中只会有一种可能,这个位置是在整个文件中的,而不是在任何box中的,这样做就可以直接在文件中找到媒体数据,而不用解释box。 

本发明实施例通过对MOV/3GP/MP4视音频媒体流文件建立的二级索引结构系统,并在所述的索引系统中根据流媒体文件中的视音频数据流的视音频sample开始和持续时间记录sample序号,依据所述序号判断视音频帧类型以及sample大小,准确定位sample在文件中的位置,从而获得整个MOV/3GP/MP4视音频媒体流文件的位置,大大提高了读取查询的效率,也减少了对系统内存的过多依赖。 

针对MOV\3GP索引文件生成的方式与MP4文件生成方法类似,在此不再赘述。 

本发明实施例四提供了一种获取MOV/3GP/MP4的方法,如图4所示,具体为: 

S1:由stts得出:sample起始时间和持续时间,并记录这个sample的序号SampleNum。 

S2:在stss中查找是否有SampleNum记录,如果有这一记录,表明这一帧是关键帧,否则是非关键帧。 

S3:依据序号SampleNum,从stsz中取得这个sample的大小。 

S4:根据SampleNum,分析stsc得出当前这帧视频所属的chunk序号 ChunkNum,并算出这个sample在当前chunk中的序号SampleNumInChunk。 

S5:依据ChunkNum,从stco得到当前chunk在文件中的位置ChunkOffset。 

S6:把SampleNum之前SampleNumInChunk-1个视频帧的大小相加,然后再加上ChunkOffset,得到当前视频帧在文件中的位置FrameOffset。 

本发明实施例通过对MOV/3GP/MP4视音频媒体流文件建立的二级索引结构系统,根据国际标准读取并解析包含MOV/3GP/MP4视音频媒体流文件,根据流媒体文件中的视音频数据流的stbl结构预写目标索引文件的基本文件信息,分别记录分析视音频数据chunk信息生成视音频二级索引,按照出现时间的先后顺序将记录下的二级索引分组形成一级索引;最后复写完整的视音频流信息,并在所述的索引系统中根据流媒体文件中的视音频数据流的视音频sample开始和持续时间记录sample序号,依据所述序号判断视音频帧类型以及sample大小,准确定位sample在文件中的位置,从而获得整个MOV/3GP/MP4视音频媒体流文件的位置,大大提高了读取查询的效率,也减少了对系统内存的过多依赖。 

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通过软件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。 

以上所述,仅为本发明的一个最佳具体实施例,但本发明的特征并不局限于此,任何熟悉该项技术的人在本发明领域内,可轻易想到的变化或修饰,都应涵盖在以下本发明的申请专利范围中。 

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号