CN104869338B - 一种音视频文件转存及检索方法 - Google Patents
一种音视频文件转存及检索方法 Download PDFInfo
- Publication number
- CN104869338B CN104869338B CN201510252752.1A CN201510252752A CN104869338B CN 104869338 B CN104869338 B CN 104869338B CN 201510252752 A CN201510252752 A CN 201510252752A CN 104869338 B CN104869338 B CN 104869338B
- Authority
- CN
- China
- Prior art keywords
- time
- index
- level
- frame
- file
- 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
Landscapes
- Television Signal Processing For Recording (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种音视频文件转存方法,包括:对若干待转存的音视频文件按照时间顺序进行排序;依次对排好序的各个待转存文件按照块格式进行存储;在对每一个待转存的文件按照块格式进行存储包括:在存储设备上,开辟出块格式存储区域,向其中的超级块区域中填入对应的超级块信息,向其中的一级索引区填入一级时间索引,数据单元的二级时间索引区填入二级时间索引,数据单元的数据区中填入I帧组数据。本发明提出的音视频文件直存方法,仅需要在直存系统中输入需要观看的各个时间段录像即能一键式观看到所有录像。
Description
技术领域
本发明涉及视频文件存储及检索领域,尤其涉及一种音视频文件转存及检索方法。
背景技术
目前有很多以MP4、WMV、RM等文件格式存储的节目文件,当需要观看某个绝对时间段的录像内容时,操作非常复杂。以MP4文件为例,首先需要查找到待观看的录像分布在哪些MP4的录像文件中,然后打开该MP4文件,拖动播放位置到OSD显示为待观看的时间处,然后再进行观看。比如说,当观看2014年12月1日14:00~14:20的一档电视节目的时候,首先需要确定该电视节目分布在哪些录像文件中,然后拖动到视频画面上显示时间为14:00的位置开始进行观看。当需要当观看的时间段不连续时,需要反复上述操作多次。所以这种查看某段时间节目视频的操作非常麻烦。
发明内容
有鉴于此,本发明提供一种音视频文件转存方法,该方法包括:对若干待转存的音视频文件按照时间顺序进行排序;依次对排好序的各个待转存文件按照块格式进行存储;在对每一个待转存的文件按照块格式进行存储包括:在存储设备上,开辟出块格式存储区域,向其中的超级块区域中填入对应的超级块信息,向其中的一级索引区填入一级时间索引,数据单元的二级时间索引区填入二级时间索引,数据单元的数据区中填入I帧组数据;其中,一级时间索引区中的第一条一级时间索引中填入该待转存的文件的媒体开始时间T1;在第一个数据单元的二级时间索引区的第一条二级时间索引中填入所述时间T1,在该第一个数据单元的二级时间索引区的第n条二级时间索引中填入时间Tn,其中Tn=T1+(n-1)*I帧组的帧数/帧率,n为从2开始的自然数;第一个数据单元的数据区填入各二级时间索引对应的I帧组数据;在I帧组的每个帧的ES头中填充帧内包序号、帧首包标识、帧结尾标识、帧类型、码流类型、ES净长度、帧率。
优选地,每隔预设时间间隔,利用I帧数据解码获取OSD时间对所述二级索引时间进行校准。
优选地,当存在待插入的音视频文件时,重新开辟一块块格式存储区域用于该音视频文件的补存;对该块格式存储区域的一级时间索引区进行标记,以表示其为补存录像的索引区;将该补存的块格式文件与之前已经存储的块格式文件进行索引重构。
优选地索引重构包括:利用二分法在已经存储的块格式文件的二级时间索引中确定所述补存索引区的第一条时间索引的时间之前相邻的二级时间索引,将该相邻的二级时间索引进行标记,添加指向补存索引区的信息。
优选地,在对按照块格式存储的文件进行检索的时候,忽略存在补存标记的一级时间索引区,用二分法定位待检索录像的开始时间在其他一级时间索引区的一级时间索引中的位置,进一步用二分法定位待检索录像的开始时间在对应的二级时间索引中的位置,如果定位后的位置紧挨着存在补存录像标记的二级时间索引且在其后,则进一步在该存在补存录像标记的二级时间索引所指向的补存录像索引区再用二分法进行待检索录像开始时间的定位。
相较于现有技术,本发明的多媒体音视频文件转存方案将多媒体音视频文件按照其媒体时间连续地存储在块存储设备上。当后续要查询某一时间的录像时,系统能迅速定位到该录像并自动进行播放。
附图说明
图1是一种块存储格式。
图2是一个ES头示例。
图3是索引重构示例图。
具体实施方式
针对背景技术提出的技术问题,本发明提供一种多媒体音视频文件转存方案。该多媒体音视频文件转存方案将多媒体音视频文件按照其媒体时间连续地存储在块存储设备上。当后续要查询某一时间的录像时,系统能迅速定位到该录像并自动进行播放。以下通过具体实施例来详细描述本发明方案。
本实施例中的多媒体音视频文件包括但不限于MP4、WMV、MR格式的文件。以下以MP4格式文件为例进行说明。
当前需要对若干个MP4文件按照适于一键式检索的方式进行存储。
首先对这若干个MP4文件按照时间顺序进行排序。系统先获取各个文件的媒体开始时间,按照该获取的媒体开始时间对这些文件进行排序。获取媒体开始时间的方式包括:读取携带在MP4文件信息中的媒体创建时间;或者读取以文件方式保存的媒体创建时间;或者可以通过获取各个文件的第一帧视频数据,解码出OSD时间作为媒体的开始时间。
然后依次对排好序的各个MP4文件按照块格式进行存储。本实施例所述的块格式请参图1,其包括如下几部分:
超级块:一般有几十K(比如16K)字节,用来记录块格式的版本号、录像来源设备编码。由于超级块中的数据有限,因此通常有较多的预留空间。
一级时间索引区:超级块后面为一级时间索引区,索引区中的每条时间索引与一个数据单元一一对应(比如:第n个一级时间索引,对应第n个数据单元),用于记录该数据单元的最早I帧组的时间,从而可以基于时间快速定位到某个数据单元。
数据单元:一级时间索引区后面是一系列的数据单元,用于保存录像的I帧组数据。为了保证I帧组数据的连续写入,数据单元一般达到几百M字节(比如256M字节)。每个数据单元是以一个二级时间索引区开始的,其中每条时间索引项与一个I帧组一一对应(比如:第n个二级时间索引,对应本数据单元的第n个I帧组),用于记录该I帧组的开始时间,从而可以基于时间快速定位某个I帧组。二级索引区之后,就是本数据单元中的所有I帧组数据。I帧组:一个I帧组通常就是1秒的录像数据。在I帧组中,存储的是该I帧组的所有视频、音频数据包。I帧组中的视频、音频数据以ES数据的形式进行存储,ES数据具有ES头,该ES头包括PTS(Presentation Time Stamp显示时间戳)、DTS(Decoding Time Stamp解码时间戳)。
将一个MP4文件按照块格式进行存储时要考虑如何生成块格式中的一级时间索引、二级时间索引以及I帧组中的ES头部数据。
在存储设备上,开辟出块格式存储区域,向其中的超级块区域中填入对应的超级块信息,向其中的一级索引区填入一级时间索引,数据单元的二级时间索引区中填入二级时间索引,数据单元的数据区中填入对应的I帧组数据。
在对排序后的第一个MP4文件按照块格式进行转存时,一级时间索引区中的第一条一级时间索引中填入步骤S11中获取的该MP4文件的媒体开始时间T1。对于第一个数据单元的二级时间索引区中第一条二级时间索引(表示为In1.1)仍然填入上述媒体开始时间T1,对于In1.n(第一个数据单元的二级时间索引区中的第n条二级时间索引,n从2开始直到某一个数值)填入的时间值为Tn,该Tn=T1+(n-1)*I帧组的帧数/帧率。第一个数据单元的数据区则填入各个二级时间索引对应的各个I帧组数据,比如说In1.1对应的第一个I帧组。如果一个数据单元的大小是256M,那么当该数据单元被存满时,则在下一个数据单元中存储时间索引和对应的数据。此时,一级时间索引区中需要填入一条新的一级时间索引,同样的二级时间索引区中也要填入相应的二级时间索引。如果一级时间索引区中设定存储256条一级时间索引,对应的数据单元也有256个,那么当该空间都被存满时,需要在另外的存储空间中按照同样的方式存储MP4文件中的数据。
为了提高检索精度,本发明实施例利用I帧数据解码获取到的OSD时间对该二级索引时间进行校准。为了提高存储速率,可以每隔一定的时间间隔进行一次校准。比如说,每隔10个GOP就进行一次校准。例如,In1.1的时间值是T1,则计算得到的第11个二级时间索引In1.11的时间值为T1+10*I帧组的帧数/帧率,在利用OSD进行校准时,可以解码第11个I帧组中的I帧,然后将解码得到的OSD时间与计算得到的In1.11时间值进行比较,若两者的差值大于设定阈值时,则以当前的OSD时间作为该I帧的二级时间索引中的时间值。后续二级索引时间的计算以该OSD时间为基准进行计算。上述计算得到的二级时间索引中的时间值精度不准的原因有获取到的帧率不准、MP4文件部分数据丢失等。
在生成每个帧的ES头部时,先确定各ES头部中的PTS、DTS间隔值。PTS间隔值为90*1000/帧率;假设I帧的PTS时间为t1,则其后的第一个P帧的PTS值为t1+90*1000/帧率;第二个P帧的PTS值为t1+2*90*1000/帧率,以此类推。同样的,DTS间隔值也为90*1000/帧率;假设I帧的DTS时间为t2,则其后的第一个P帧的DTS值为t2+90*1000/帧率;第二个P帧的DTS值为t2+2*90*1000/帧率,依次类推。除了PTS和DTS之外,ES头中还需要进一步填充帧内包序号、帧首包标识、帧结尾标识、帧类型、码流类型、ES净长度、帧率等。请参图2给出的一个例子。packCnt表示帧内包序号,start表示帧首包标识,end表示帧结尾标识,frame表示帧类型,stream表示码流类型,length表示ES净长度,FrameRate表示帧率,Fseq是帧号,即第几帧。其中帧类型和码流类型可以通过MP4的视频数据解析出来,帧率可以从MP4的文件头中读出。帧内包序号、帧首包标识、帧结尾标识按照如下方式得出:
假设一个ES数据的长度为l,获取每一帧的长度为L,计算该帧的包序号总数n为L/l+1(L/l取整数),当前写入ES头的帧内包序号为上一个帧内序号(起始序号为1)累加1。当帧内包序号为1时,帧首包标识为1,当帧内包序号为n(n为帧内包序号总数,当包序号为n时,表示帧内最后一个包)时,帧结尾标识为1。该帧的其余包的帧首包标识和帧结尾标识均为0。
每一个MP4文件都按照上述方式转存成块格式文件。这样一系列按照时间顺序排好的MP4文件都被转化成了块格式存储的文件。
上述按照块格式存储的MP4文件有可能时间上连续的,也有可能时间上不连续。比如说,按照时间排序的各MP4文件分别是:2015年1月1日09:00:00~2015年1月1日12:00:00的MP4文件1;2015年1月1日14:05:00~2015年1月1日14:50:00的MP4文件2;2015年1月1日14:51:00~2015年1月1日16:00:20的MP4文件3;2015年1月1日17:00:00~2015年1月1日20:00:00的MP4文件4。这些MP4文件时间上并不连续,所以按照块格式存储后的文件时间上也不连续。若存在一个时间上需要插入上述块格式存储文件中的MP4文件时,如何将其插入到之前那些按块格式存储的文件中是需要考虑的一个问题。比如说2015年1月1日12:30:01~2015年1月1日13:59:00的MP4文件需要转存成块格式文件时,如何插入到上述已经存在的块格式存储文件中。下面的方案提供了一套索引重构的方法来解决此问题。
该索引重构的方法包括:
针对待插入的MP4文件,重新开辟一块块格式存储区域用于该MP4文件的补存。按照前文相同的方法,在该块格式存储区域的一级时间索引区、数据单元区中的二级时间索引区和数据区填充时间信息以及录像数据。对该新开辟的块格式存储区域的一级时间索引区进行标记,以表示其为补存录像的索引区。
当针对该中间时间段的MP4文件补存结束后,需要将其对应的转存后的块格式文件与之前的其他的MP4文件转存后的块格式文件进行索引重构。这主要为了提高后续录像检索的效率。
该索引重构主要包括利用二分法在已经存储的块格式文件的二级时间索引中确定所述补存索引区的第一条时间索引的时间之前相邻的二级时间索引,将该相邻的二级时间索引进行标记,添加指向补存索引区的信息
在进行索引重构时,首先利用二分法定位补存索引区的第一条索引的时间在之前已经存储的各个块格式文件的一级时间索引区的第一条时间中的位置。请参图3,比如说,第一个一级时间索引区中记录的第一条时间是2015年1月1日09:00:00,第二个一级时间索引区中记录的第一条时间是2015年1月1日14:05:00,第三个一级时间索引区中记录的第一条时间是2015年1月1日14:51:00;当补存索引区的时间是2015年1月1日12:30:01,通过二分法确定该时间位于第一个一级时间索引区中的第一条时间之后,第二个一级时间索引区中的第一条时间之前。
然后进一步利用二分法定位所述补存索引区的第一条索引时间在第一个一级时间索引区的第一条时间和最后一条时间之间的位置。比如说,第一个一级时间索引区的第一条时间为2015年1月1日09:00:00,最后一条时间为2015年1月1日12:00:00,通过二分法确定该补存索引区时间2015年1月1日12:30:01在最后一条时间之后。利用二分法进一步在该最后一条时间索引对应的二级时间索引区中定位该补存索引的位置。假如最后一条时间索引对应的二级时间索引区中包含20条二级时间索引:第一条时间为2015年1月1日12:00:00,第二条时间为:2015年1月1日12:01:00,第三条时间为2015年1月1日12:02:00......最后一条时间为2015年1月1日12:19:00。所以该补存索引在最后一条时间索引之后。所以在时间为2015年1月1日12:19:00的二级时间索引上添加指向补存索引区的信息,以表示该补存索引区中的录像在时间上位于该2015年1月1日12:19:00之后。
需要说明,为了后续检索方便迅速,需要在存在补存录像的二级时间索引上添加标记,即在2015年1月1日12:19:00这条索引上添加标记。
在对按照块格式存储的文件进行检索的时候,忽略存在补存标记的一级时间索引区,用二分法定位待检索录像的开始时间在其他一级时间索引区的一级时间索引中的位置,然后进一步用二分法定位待检索录像的开始时间在对应的二级时间索引中的位置,如果定位后的位置紧挨着存在补存录像标记的二级时间索引且在其后,则进一步在该存在补存录像标记的二级时间索引所指向的补存录像索引区再用二分法进行待检索录像开始时间的定位。
本发明提出的音视频文件直存方法,仅需要在该直存系统中输入需要观看的各个时间段录像即能一键式观看到所有录像。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (5)
1.一种音视频文件转存方法,其特征在于,该方法包括:
对若干待转存的音视频文件按照时间顺序进行排序;
依次对排好序的各个待转存文件按照块格式进行存储;
在对每一个待转存的文件按照块格式进行存储包括:
在存储设备上,开辟出块格式存储区域,向其中的超级块区域中填入对应的超级块信息,向其中的一级索引区填入一级时间索引,数据单元的二级时间索引区填入二级时间索引,数据单元的数据区中填入I帧组数据,所述I帧组数据为预设时间段的录像数据;
其中,一级时间索引区中的第一条一级时间索引中填入该待转存的文件的媒体开始时间T1;在第一个数据单元的二级时间索引区的第一条二级时间索引中填入所述时间T1,在该第一个数据单元的二级时间索引区的第n条二级时间索引中填入时间Tn,其中Tn=T1+(n-1)*I帧组的帧数/帧率,n为从2开始的自然数;第一个数据单元的数据区填入各二级时间索引对应的I帧组数据;
在I帧组的每个帧的ES头中填充帧内包序号、帧首包标识、帧结尾标识、帧类型、码流类型、ES净长度、帧率。
2.如权利要求1所述的方法,其特征在于,该方法包括:每隔预设时间间隔,利用I帧数据解码获取OSD时间对所述二级索引时间进行校准。
3.如权利要求1所述的方法,其特征在于,当存在待插入的音视频文件时,重新开辟一块块格式存储区域用于该音视频文件的补存;对该块格式存储区域的一级时间索引区进行标记,以表示其为补存录像的索引区;将该补存的块格式文件与之前已经存储的块格式文件进行索引重构。
4.如权利要求3所述的方法,其特征在于,所述索引重构包括:利用二分法在已经存储的块格式文件的二级时间索引中确定所述补存索引区的第一条时间索引的时间之前相邻的二级时间索引,将该相邻的二级时间索引进行标记,添加指向补存索引区的信息。
5.如权利要求4所述的方法,其特征在于,在对按照块格式存储的文件进行检索的时候,忽略存在补存标记的一级时间索引区,用二分法定位待检索录像的开始时间在其他一级时间索引区的一级时间索引中的位置,进一步用二分法定位待检索录像的开始时间在对应的二级时间索引中的位置,如果定位后的位置紧挨着存在补存录像标记的二级时间索引且在其后,则进一步在该存在补存录像标记的二级时间索引所指向的补存录像索引区再用二分法进行待检索录像开始时间的定位。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510252752.1A CN104869338B (zh) | 2015-05-18 | 2015-05-18 | 一种音视频文件转存及检索方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510252752.1A CN104869338B (zh) | 2015-05-18 | 2015-05-18 | 一种音视频文件转存及检索方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104869338A CN104869338A (zh) | 2015-08-26 |
CN104869338B true CN104869338B (zh) | 2019-03-12 |
Family
ID=53914814
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510252752.1A Active CN104869338B (zh) | 2015-05-18 | 2015-05-18 | 一种音视频文件转存及检索方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104869338B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107241323A (zh) * | 2017-06-01 | 2017-10-10 | 上海寰视网络科技有限公司 | 拼帧方法及设备 |
CN112558873B (zh) * | 2020-12-14 | 2021-10-15 | 上海创米科技有限公司 | 嵌入式音视频数据存储、检索、删除方法及装置、存储器 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102088620A (zh) * | 2010-12-01 | 2011-06-08 | 中兴通讯股份有限公司 | 一种内容分发网络中媒体文件下载方法及客户端 |
CN104469433A (zh) * | 2013-09-13 | 2015-03-25 | 深圳市腾讯计算机系统有限公司 | 一种视频直播回看方法及装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102375694B (zh) * | 2010-08-20 | 2014-09-10 | 浙江宇视科技有限公司 | 数据处理方法和装置 |
CN102075792B (zh) * | 2010-12-23 | 2013-01-02 | 华为技术有限公司 | 视频文件播放方法及系统、用户端设备、服务器设备 |
CN102231827B (zh) * | 2011-03-14 | 2013-03-06 | 新奥特(北京)视频技术有限公司 | 一种支持ps流媒体文件直接帧精确定位的索引方法 |
CN103226965B (zh) * | 2013-03-29 | 2015-09-09 | 浙江大学 | 基于时间位图的音视频数据存取方法 |
-
2015
- 2015-05-18 CN CN201510252752.1A patent/CN104869338B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102088620A (zh) * | 2010-12-01 | 2011-06-08 | 中兴通讯股份有限公司 | 一种内容分发网络中媒体文件下载方法及客户端 |
CN104469433A (zh) * | 2013-09-13 | 2015-03-25 | 深圳市腾讯计算机系统有限公司 | 一种视频直播回看方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104869338A (zh) | 2015-08-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11157689B2 (en) | Operations on dynamic data associated with cells in spreadsheets | |
US6760042B2 (en) | System and method of processing MPEG streams for storyboard and rights metadata insertion | |
US8818173B2 (en) | Synchronous data tracks in a media editing system | |
EP3089470B1 (en) | Video editing device | |
US8887190B2 (en) | Multimedia system generating audio trigger markers synchronized with video source data and related methods | |
US9286360B2 (en) | Information processing system, information processing device, information processing method, and computer readable recording medium | |
CN101840719B (zh) | 用于包括元数据的存储介质的再现和/或记录设备 | |
US9788084B2 (en) | Content-object synchronization and authoring of dynamic metadata | |
US10529383B2 (en) | Methods and systems for processing synchronous data tracks in a media editing system | |
BR112016006860B1 (pt) | Aparelho e método para criar um único fluxo de dados de informações combinadas para renderização em um dispositivo de computação do cliente | |
US20130089300A1 (en) | Method and Apparatus for Providing Voice Metadata | |
CA2761701A1 (en) | Multimedia system providing database of shared text comment data indexed to video source data and related methods | |
JP2006155384A (ja) | 映像コメント入力・表示方法及び装置及びプログラム及びプログラムを格納した記憶媒体 | |
US20090070850A1 (en) | System and method for searching video signals | |
US10446188B2 (en) | Method and apparatus for low latency non-linear media editing using file-based inserts into finalized digital multimedia files | |
US10210906B2 (en) | Content playback and recording based on scene change detection and metadata | |
US20240171791A1 (en) | Method and system for content aware monitoring of media channel output by a media system | |
CN104869338B (zh) | 一种音视频文件转存及检索方法 | |
EP3151549A1 (en) | A digital video recorder and a method for dynamic management of advertising content on a digital video recorder | |
CN104768083B (zh) | 一种章节内容展示的视频播放方法及装置 | |
JP2007037031A (ja) | 編集装置及び編集方法 | |
WO2018005569A1 (en) | Videos associated with cells in spreadsheets | |
TWI321952B (en) | Time shifting in video recoder | |
GB2549324A (en) | Media file systems and methods of storing media files in a media file system | |
CN112312193A (zh) | 电视节目的录制数据的管理方法及相关装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB03 | Change of inventor or designer information |
Inventor after: Zhou Di Inventor after: Xiao Hailin Inventor after: Liao Yonghan Inventor before: Zhou Di Inventor before: Liao Yonghan |
|
CB03 | Change of inventor or designer information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |