CN109936715B - 一种mp4文件的处理方法及其相关设备 - Google Patents
一种mp4文件的处理方法及其相关设备 Download PDFInfo
- Publication number
- CN109936715B CN109936715B CN201711379276.5A CN201711379276A CN109936715B CN 109936715 B CN109936715 B CN 109936715B CN 201711379276 A CN201711379276 A CN 201711379276A CN 109936715 B CN109936715 B CN 109936715B
- Authority
- CN
- China
- Prior art keywords
- information
- file
- frame
- frame data
- data
- 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
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B27/00—Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
- G11B27/10—Indexing; Addressing; Timing or synchronising; Measuring tape travel
-
- 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/85406—Content authoring involving a specific file format, e.g. MP4 format
-
- 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]
-
- 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/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/41—Structure of client; Structure of client peripherals
- H04N21/422—Input-only peripherals, i.e. input devices connected to specially adapted client devices, e.g. global positioning system [GPS]
- H04N21/4223—Cameras
-
- 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/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/433—Content storage operation, e.g. storage operation in response to a pause request, caching operations
- H04N21/4334—Recording operations
-
- 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
-
- 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/8456—Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/76—Television signal recording
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/76—Television signal recording
- H04N5/91—Television signal processing therefor
Abstract
本申请实施例公开了一种MP4文件的处理方法及其相关设备,用于解决由于文件尾不完整造成的文件无法播放的问题,保证异常终止前已录制的MP4文件正常可用。本申请实施例方法包括:录入所述MP4文件时,在所述MP4文件MDAT的头部存入私有媒体信息,所述私有媒体信息包含所述MP4文件中帧数据的媒体信息参数;在所述MDAT中分段存入所述帧数据的索引信息,所述索引信息包含所述帧数据的时域信息和空域信息。
Description
技术领域
本申请涉及通信领域,尤其涉及一种MP4文件的处理方法及其相关设备。
背景技术
随着移动通信和多媒体技术的发展,消费者在生活中应用越来越多的监控类IPCamera和消费类camera等监控设备,而标准MP4文件封装在camera类产品录像业务中也是各大厂家的主流选择。
由于MP4协议的限制,在随机断电和拔卡等场景下文件尾如果不完整会造成文件无法播放。如何保证异常终止前已录制的文件正常可用,是当前消费类监控类产品的强需求。
MP4文件格式大致结构如图1所示,MP4里的所有数据,都是以一个个Box组装在一起的,每个Box的都遵循如图2所示的格式,其中有三个Box,分别是FTYP,MDAT和MOOV,FTYP是MP4文件开头的标识信息,MDAT里保存了实际的码流信息,MOOV里则保存了码流中每一帧数据的时域空域信息。在遇到掉电或者拔卡等异常情况时,MOOV信息未及时写入,导致整个MP4文件的时域空域信息不完整,导致文件无法正常播放。
为了解决上述问题,在现有技术一中,会按照编解码CODEC特征库中的视频帧结构特征,从受损的视频文件流中提取视频帧帧数据,生成视频帧序列,然后根据记录的解码参数,CODEC类型,帧序列以及位置信息和索引信息重构文件容器数据时域空域信息,生成对应格式文件。但现有技术一存在的缺点有,1、需要对流进行解析,浪费CPU;2、像某些流里没有的参数,只能给默认值,例如播放速率;3、对于高帧率大文件的修复耗时过长,用户体验差。
为了解决上述问题,在现有技术二中,会定期将MP4文件索引信息moov存储在存储介质的备份文件中,在设备重启后找到坏文件,选择相应的备份文件将索引信息moov追加到MP4文件中。现有技术而存在的缺点有,1、当存储介质为SD卡时,存储索引数据的备份文件在增加了磁盘读写速度io性能消耗,在高帧率大码流长时间场景下引发丢帧,增加文件系统中文件数量,造成存储空间不连续,后期录像文件中有簇链空洞引发丢帧;2、存储介质为FLASH时,频繁更新备份数据会减少存储介质寿命;3、修复精度依赖备份文件的更新频率,无法修复至异常前的最后一帧,并且在更新备份数据频率过高时占用CPU过高。
发明内容
本申请实施例提供了一种MP4文件的处理方法及其相关设备,用于解决由于文件尾不完整造成的文件无法播放的问题,保证异常终止前已录制的MP4文件正常可用。
本申请实施例的第一方面提供一种MP4文件的处理方法,具体包括:录入所述MP4文件时,在所述MP4文件MDAT的头部存入私有媒体信息,所述私有媒体信息包含所述MP4文件中帧数据的媒体信息参数;在所述MDAT中分段存入所述帧数据的索引信息,所述索引信息包含所述帧数据的时域信息和空域信息。当MP4文件的文件尾不完整的时候,本实施例可以利用MDAT数据中的私有媒体信息和索引信息对MOOV进行修复,可以在不引入备份文件概念,不额外占用文件系统io性能,不影响flash寿命,不造成文件系统碎片化的前提下对文件进行修复。
在一种可能的设计中,在本申请实施例第一方面的第一种实现方式中,所述索引信息包括索引表和/或私有帧数据信息。
在一种可能的设计中,在本申请实施例第一方面的第二种实现方式中,所述在所述MDAT中分段存入所述帧数据的索引信息包括:在所述MDAT中每间隔N字节帧数据后存入一个所述索引表,所述索引表包含所述索引表前N字节帧数据的时域信息和空域信息。本实施例具体说明了如何在所述MDAT中分段存入所述帧数据的索引信息,丰富了实施例的实现方式。
在一种可能的设计中,在本申请实施例第一方面的第三种实现方式中,所述在所述MDAT中分段存入所述帧数据的索引信息包括:所述MDAT中写入每一个帧数据时,在所述每一个帧数据的前面存入私有帧数据信息,所述私有帧数据信息包含所述私有帧数据信息后面的一个帧数据的时域信息和空域信息。本实施例具体说明了如何在所述MDAT中分段存入所述帧数据的索引信息,丰富了实施例的实现方式。
在一种可能的设计中,在本申请实施例第一方面的第四种实现方式中,所述在所述MDAT中分段存入所述帧数据的索引信息之后,所述方法还包括:根据所述私有媒体信息和所述索引信息修复所述MP4文件。本实施例追加了本申请的修复环节,提高了实施例的完整性。
在一种可能的设计中,在本申请实施例第一方面的第五种实现方式中,所述根据所述私有媒体信息和所述索引信息修复所述MP4文件包括:读取所述私有媒体信息,得到每一帧数据的媒体信息参数;对所述索引表进行拼接,得到完整索引表;根据所述每一帧数据的媒体信息参数和所述完整索引表修复所述MP4文件。本实施例具体说明了如何根据所述私有媒体信息和所述索引信息修复所述MP4文件,提高了实施例的可操作性。
在一种可能的设计中,在本申请实施例第一方面的第六种实现方式中,所述对所述索引表进行拼接,得到完整索引表之后,所述方法还包括:对尾部帧数据的私有帧数据信息进行解析,得到尾部帧数据的时域信息和空域信息,所述尾部帧数据为最后一个索引表后面的帧数据。本实施例追加了对所述索引表进行拼接之后的一个步骤,增加了实施例的完整性。
在一种可能的设计中,在本申请实施例第一方面的第七种实现方式中,所述根据所述每一帧数据的媒体信息参数和所述完整索引表修复所述MP4文件包括:根据所述每一帧数据的媒体信息参数、所述完整索引表和所述尾部帧数据的时域信息和空域信息修复所述MP4文件。本申请实施例具体细化了如何修复所述MP4文件,丰富了修复MP4文件的实现手段。
在一种可能的设计中,在本申请实施例第一方面的第七种实现方式中,所述根据所述私有媒体信息和所述索引信息修复所述MP4文件包括:读取所述私有媒体信息,得到每一帧数据的媒体信息参数;对每一个帧数据前面的私有帧数据信息进行解析,得到每一个帧的时域信息和空域信息;根据所述每一帧数据的媒体信息参数和所述每一个帧的时域信息和空域信息修复所述MP4文件。本申请实施例更加具体地细化了如何修复所述MP4文件,丰富了修复MP4文件的实现手段。
本申请实施例的第二方面提供一种MP4文件的处理设备,其特征在于,包括:第一存储单元,用于当录入所述MP4文件时,在所述MP4文件MDAT的头部存入私有媒体信息,所述私有媒体信息包含所述MP4文件中帧数据的媒体信息参数;第二存储单元,用于在所述MDAT中分段存入所述帧数据的索引信息,所述索引信息包含所述帧数据的时域信息和空域信息。
当MP4文件的文件尾不完整的时候,本实施例可以利用MDAT数据中的私有媒体信息和索引信息对MOOV进行修复,可以在不引入备份文件概念,不额外占用文件系统io性能,不影响flash寿命,不造成文件系统碎片化的前提下对文件进行修复。
在一种可能的设计中,在本申请实施例第二方面的第一种实现方式中,所述索引信息包括索引表和/或私有帧数据信息。
在一种可能的设计中,在本申请实施例第二方面的第二种实现方式中,所述第二存储单元包括:
第一存储子单元,用于在所述MDAT中每间隔N字节帧数据后存入一个所述索引表,所述索引表包含所述索引表前N字节帧数据的时域信息和空域信息。
本实施例具体说明了如何在所述MDAT中分段存入所述帧数据的索引信息,丰富了实施例的实现方式。
在一种可能的设计中,在本申请实施例第二方面的第三种实现方式中,第二存储子单元,用于当所述MDAT中写入每一个帧数据时,在所述每一个帧数据的前面存入私有帧数据信息,所述私有帧数据信息包含所述私有帧数据信息后面的一个帧数据的时域信息和空域信息。
本实施例具体说明了如何在所述MDAT中分段存入所述帧数据的索引信息,丰富了实施例的实现方式。
在一种可能的设计中,在本申请实施例第二方面的第四种实现方式中,所述设备还包括:
修复单元,用于根据所述私有媒体信息和所述索引信息修复所述MP4文件。
本实施例追加了本申请的修复环节,提高了实施例的完整性。
在一种可能的设计中,在本申请实施例第二方面的第五种实现方式中,所述修复单元包括:
第一读取子单元,用于读取所述私有媒体信息,得到每一帧数据的媒体信息参数;
拼接子单元,用于对所述索引表进行拼接,得到完整索引表;
第一修复子单元,用于根据所述每一帧数据的媒体信息参数和所述完整索引表修复所述MP4文件。
本实施例具体说明了如何根据所述私有媒体信息和所述索引信息修复所述MP4文件,提高了实施例的可操作性。
在一种可能的设计中,在本申请实施例第二方面的第六种实现方式中,所述修复单元还包括:
第一解析子单元,用于对尾部帧数据的私有帧数据信息进行解析,得到尾部帧数据的时域信息和空域信息,所述尾部帧数据为最后一个索引表后面的帧数据。
本实施例追加了对所述索引表进行拼接之后的一个步骤,增加了实施例的完整性。
在一种可能的设计中,在本申请实施例第二方面的第七种实现方式中,所述第一修复子单元包括:
修复模块,用于根据所述每一帧数据的媒体信息参数、所述完整索引表和所述尾部帧数据的时域信息和空域信息修复所述MP4文件。
本申请实施例具体细化了如何修复所述MP4文件,丰富了修复MP4文件的实现手段。
在一种可能的设计中,在本申请实施例第二方面的第八种实现方式中,所述修复单元包括:
第二读取子单元,用于读取所述私有媒体信息,得到每一帧数据的媒体信息参数;
第二解析子单元,用于对每一个帧数据前面的私有帧数据信息进行解析,得到每一个帧的时域信息和空域信息;
第二修复子单元,用于根据所述每一帧数据的媒体信息参数和所述每一个帧的时域信息和空域信息修复所述MP4文件。
本申请实施例更加具体地细化了如何修复所述MP4文件,丰富了修复MP4文件的实现手段。
本申请的又一方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
本申请的又一方面提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
从以上技术方案可以看出,本申请实施例具有以下优点:
本申请实施例中,录入MP4文件的时候,会在MP4文件MDAT的头部存入私有媒体信息,其中私有媒体信息包含MP4文件中帧数据的媒体信息参数;并在MDAT中分段存入帧数据的索引信息,其中,索引信息包含帧数据的时域信息和空域信息。当MP4文件的文件尾不完整的时候,可以利用MDAT数据中的私有媒体信息和索引信息对MOOV进行修复,可以在不引入备份文件概念,不额外占用文件系统io性能,不影响flash寿命,不造成文件系统碎片化的前提下对文件进行修复。
附图说明
图1为本申请实施例中MP4文件格式的一个结构示意图;
图2为本申请实施例中Box的一个结构示意图;
图3为本申请实施例中MP4文件的处理方法的一个封装结构示意图;
图4为本申请实施例中MP4文件的处理方法的一个实施例示意图;
图5为本申请实施例中private media info的一个结构示意图;
图6为本申请实施例中index table的一个实施例示意图;
图7为本申请实施例中帧数据前存入private frame info的一个结构示意图;
图8为本申请实施例中private frame data的一个实施例示意图;
图9为本申请实施例中异常拔卡后MP4主文件的一个结构示意图;
图10为本申请实施例中MP4文件的处理设备的一个实施例示意图;
图11为本申请实施例中MP4文件的处理设备的另一个实施例示意图;
图12为本申请实施例中MP4文件的处理设备的另一个实施例示意图。
具体实施方式
本申请实施例提供了一种MP4文件的处理方法及其相关设备,用于解决由于文件尾不完整造成的文件无法播放的问题,保证异常终止前已录制的MP4文件正常可用。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本申请实施例中的MP4文件的处理方法分为录制过程和修复过程两个部分。录制过程是生成MP4主文件的过程,修复过程是根据录制过程生成的MP4主文件恢复MP4文件的过程。如图3所示,在录制过程中我们会在主文件符合MP4标准封装格式的前提下写入修复所需的私有媒体信息以及分段插入索引表等信息,其中,私有媒体信息private mediainfo是每个音视频流的媒体信息参数等,索引表index table为每块帧数据frame data的帧数据索引表。除此之外每块frame data也扩展为流式存储,即可以根据帧数据前的私有帧数据信息private frame info可以得到每一帧数据的时域空域索引信息
请参阅图4,本申请实施例中MP4文件的处理方法的一个实施例包括:
401、在MP4文件的MDAT的头部存入私有媒体信息。
本实施例中,在录入MP4文件的时候,会在该MP4文件主文件中的MDAT数据的头部存入私有媒体信息private media info,私有媒体信息包含每个音频流、视频流的媒体信息参数等,其中,私有媒体信息的结构如图5所示,在私有媒体信息的结构中可以根据实际场景选择增加或者减少相应的音频流视频流数据流等,例如,有些MP4文件不需要音频信息,则可以减少关于音频流的数据。
402、在MDAT中每间隔N字节帧数据后存入一个索引表。
本实施例中,在录入MP4文件的时候,还会在MDAT中每间隔N字节帧数据后存入一个索引表index table,该索引表包含索引表前N字节帧数据的时域信息和空域信息。N字节可以是50M,还可以配置为其他大小,例如100M,N的具体大小此处不做限定。
其中,索引表index table的结构如图6所示,该index table中的stbl索引表是MP4封装协议中定义的标准stbl,可在录像的过程中与写帧的操作同步生成,每个音视频流对应一个索引表stbl,写在第n*N(n为正整数,N索引表间的间隔长度,即每N字节byte数据后存入一个index table)处,该index table是该N字节大小码流数据的索引表,每N字节大小的码流数据如有索引表index table,则可以不用解析每一帧码流数据进行恢复,可大大节省修复时长,在获取所有的index table后进行拼接,则可生成完整文件的索引信息表。
需要说明的是,index table索引表可以是分段索引表,即为第n个N字节(n为正整数,N索引表间的间隔长度,即每N字节byte数据后存入一个index table,该index table包含前N字节byte数据的时域信息空域信息)数据的分段索引表,除此之外,该index table也可是追加生成的前n*N字节数据的完整的索引表(即index table逐步叠加生成,该indextable包含前面所有字节数据的时域信息空域信息),后者在修复时则不需要对所有的index table进行解析和拼接,而只需要找到最后一个index table,用它恢复重组moov。
403、在每一个帧数据的前面存入私有帧数据信息。
本实施例中,每块帧数据frame data扩展为流式存储,在MP4文件mdat数据中每写入一帧码流数据时存入在该码流数据前写入私有帧数据信息private frame info,如图7所示,图7为帧数据前存入了private frame info的示意图。
其中,private frame data具体结构如图8所示,在写入帧数据时,先写入属于哪一个流的trackid,是否为I帧的keyFrameFlag标记,帧数据的时间戳timestamp以及帧数据长度framelen,后续可根据每一帧的帧前信息恢复每一帧的索引数据,从而修复MP4文件中数据至最后一帧。
需要说明的是,步骤403可以为可选步骤,即本申请也可以不写入private frameinfo,利用每一帧数据前的private frame info实现了将MP4文件修复到最后一帧,例如在实际应用场景下,如果用户追求减少修复耗时而不追求修复精度达可以修复至最后一帧,可以将private frame info这部分数据省略,即只利用private media info和indextable等数据实现文件的修复,该情况下文件可修复至最后一个index table处,后面的码流数据则被舍弃,不用解析最后每一帧的码流数据,从而大大提高修复速率。
404、根据私有媒体信息、索引表和私有帧数据信息修复MP4文件。
本实施例中,如图9所示,图9为异常拔卡后MP4主文件结构,该结构中文件尾不完整,缺少MOOV,本申请将根据私有媒体信息、索引表和私有帧数据信息修复MP4文件中的MOOV信息。
修复流程如下:
1、读取MP4文件mdat中私有媒体数据private media info,将每个数据流媒体信息,播放速率等封装需要的参数都解析出来,恢复重组MOOV中每一个流的信息;
2、依次对文件n*N(n=1,2,3…)字节处进行解析,将每一块数据的分段索引信息表index table进行拼接,更新至重组moov中;
3、对最后一块没有分段索引信息表的数据的每一帧进行解析,利用privateframe info信息将文件修复至最后一帧,形成最终的moov后,将moov追加到原文件,并更新mdat size,完成文件修复。
需要说明的是,如果用户追求减少修复耗时而不追求修复精度达可以修复至最后一帧,可以将private frame info这部分数据省略,即只利用private media info和indextable等数据实现文件的修复,该情况下文件可修复至最后一个index table处,后面的码流数据则被舍弃,不用解析最后每一帧的码流数据,从而大大提高修复速率。
本申请实施例中,录入MP4文件的时候,会在MP4文件MDAT的头部存入私有媒体信息,其中私有媒体信息包含MP4文件中帧数据的媒体信息参数;并在MDAT中分段存入帧数据的索引信息,其中,索引信息包含帧数据的时域信息和空域信息。当MP4文件的文件尾不完整的时候,可以利用MDAT数据中的私有媒体信息和索引信息对MOOV进行修复,可以在不引入备份文件概念,不额外占用文件系统io性能,不影响flash寿命,不造成文件系统碎片化的前提下对文件进行修复。
此外,本申请至少还有以下有益效果:
1、能够实时修复至不完整文件的最后一帧完整数据;
2、能够在没有备份数据情况下修复用户在封装时设置的各项属性,如播放速率等。
3、不需要对整个文件每一帧进行解析来修复文件,节约CPU;
4、在修复高帧率大文件时,修复时长较其他解决方案(整个流进行解析)耗时降低效果显著。
请参阅图10,本申请实施例中MP4文件的处理设备的一个实施例包括:
第一存储单元1001,用于当录入MP4文件时,在MP4文件MDAT的头部存入私有媒体信息,私有媒体信息包含MP4文件中帧数据的媒体信息参数;
第二存储单元1002,用于在MDAT中分段存入帧数据的索引信息,索引信息包含帧数据的时域信息和空域信息。
本申请实施例中,录入MP4文件的时候,第一存储单元1001会在MP4文件MDAT的头部存入私有媒体信息,其中私有媒体信息包含MP4文件中帧数据的媒体信息参数;第二存储单元1002在MDAT中分段存入帧数据的索引信息,其中,索引信息包含帧数据的时域信息和空域信息。当MP4文件的文件尾不完整的时候,可以利用MDAT数据中的私有媒体信息和索引信息对MOOV进行修复,可以在不引入备份文件概念,不额外占用文件系统io性能,不影响flash寿命,不造成文件系统碎片化的前提下对文件进行修复。
请参阅图11,本申请实施例中MP4文件的处理设备的另一个实施例包括:
第一存储单元1101,用于当录入MP4文件时,在MP4文件MDAT的头部存入私有媒体信息,私有媒体信息包含MP4文件中帧数据的媒体信息参数;
第二存储单元1102,用于在MDAT中分段存入帧数据的索引信息,索引信息包含帧数据的时域信息和空域信息。
其中,第二存储单元1102包括:
第一存储子单元11021,用于在MDAT中每间隔N字节帧数据后存入一个索引表,索引表包含索引表前N字节帧数据的时域信息和空域信息。
或,第二存储单元1102包括:
第二存储子单元11022,用于当MDAT中写入每一个帧数据时,在每一个帧数据的前面存入私有帧数据信息,私有帧数据信息包含私有帧数据信息后面的一个帧数据的时域信息和空域信息。
修复单元1103,用于根据私有媒体信息和索引信息修复MP4文件。
其中,修复单元1103包括:
第一读取子单元11031,用于读取私有媒体信息,得到每一帧数据的媒体信息参数;
拼接子单元11032,用于对索引表进行拼接,得到完整索引表;
第一解析子单元11033,用于对尾部帧数据的私有帧数据信息进行解析,得到尾部帧数据的时域信息和空域信息,尾部帧数据为最后一个索引表后面的帧数据;
第一修复子单元11034,用于根据每一帧数据的媒体信息参数和完整索引表修复MP4文件。
其中,第一修复子单元11034包括:
修复模块110341,用于根据每一帧数据的媒体信息参数、完整索引表和尾部帧数据的时域信息和空域信息修复MP4文件。
或,修复单元1103包括:
第二读取子单元11035,用于读取私有媒体信息,得到每一帧数据的媒体信息参数;
第二解析子单元11036,用于对每一个帧数据前面的私有帧数据信息进行解析,得到每一个帧的时域信息和空域信息;
第二修复子单元11037,用于根据每一帧数据的媒体信息参数和每一个帧的时域信息和空域信息修复MP4文件。
本申请实施例中,录入MP4文件的时候,第一存储单元1101会在MP4文件MDAT的头部存入私有媒体信息,其中私有媒体信息包含MP4文件中帧数据的媒体信息参数;第二存储单元1102在MDAT中分段存入帧数据的索引信息,其中,索引信息包含帧数据的时域信息和空域信息。当MP4文件的文件尾不完整的时候,修复单元1103可以利用MDAT数据中的私有媒体信息和索引信息对MOOV进行修复,可以在不引入备份文件概念,不额外占用文件系统io性能,不影响flash寿命,不造成文件系统碎片化的前提下对文件进行修复。
请参阅图12,本申请实施例中MP4文件的处理设备的另一个实施例包括:
图12是本申请实施例提供的一种处理设备结构示意图,该处理设备1200为MP4文件的处理设备,该设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,CPU)1222(例如,一个或一个以上处理器)和存储器1232,一个或一个以上存储应用程序1242或数据1244的存储介质1230(例如一个或一个以上海量存储设备)。其中,存储器1232和存储介质1230可以是短暂存储或持久存储。存储在存储介质1230的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对处理设备中的一系列指令操作。更进一步地,中央处理器1222可以设置为与存储介质1230通信,在处理设备1200上执行存储介质1230中的一系列指令操作。
处理设备1200还可以包括一个或一个以上电源1226,一个或一个以上有线或无线网络接口1250,一个或一个以上输入输出接口1258,和/或,一个或一个以上操作系统1241,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
上述实施例中由处理设备所执行的步骤可以基于该图12所示的处理设备结构。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid StateDisk(SSD))等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (20)
1.一种MP4文件的处理方法,其特征在于,包括:
录入MP4文件时,在所述MP4文件MDAT的头部存入私有媒体信息,所述私有媒体信息包含所述MP4文件中帧数据的媒体信息参数;
在所述MDAT中分段存入所述帧数据的索引信息,所述索引信息包含所述帧数据的时域信息和空域信息;
其中,所述私有媒体信息和所述索引信息用于在所述MP4文件的文件尾不完整时修复所述MP4文件。
2.根据权利要求1所述的方法,其特征在于,所述索引信息包括索引表和/或私有帧数据信息。
3.根据权利要求2所述的方法,其特征在于,所述在所述MDAT中分段存入所述帧数据的索引信息包括:
在所述MDAT中每间隔N字节帧数据后存入一个所述索引表,所述索引表包含所述索引表前N字节帧数据的时域信息和空域信息。
4.根据权利要求2所述的方法,其特征在于,所述在所述MDAT中分段存入所述帧数据的索引信息包括:
所述MDAT中写入每一个帧数据时,在所述每一个帧数据的前面存入私有帧数据信息,所述私有帧数据信息包含所述私有帧数据信息后面的一个帧数据的时域信息和空域信息。
5.根据权利要求2至4中任一项所述的方法,其特征在于,所述在所述MDAT中分段存入所述帧数据的索引信息之后,所述方法还包括:
根据所述私有媒体信息和所述索引信息修复所述MP4文件。
6.根据权利要求5所述的方法,其特征在于,所述根据所述私有媒体信息和所述索引信息修复所述MP4文件包括:
读取所述私有媒体信息,得到每一帧数据的媒体信息参数;
对所述索引表进行拼接,得到完整索引表;
根据所述每一帧数据的媒体信息参数和所述完整索引表修复所述MP4文件。
7.根据权利要求6所述的方法,其特征在于,所述对所述索引表进行拼接,得到完整索引表之后,所述方法还包括:
对尾部帧数据的私有帧数据信息进行解析,得到尾部帧数据的时域信息和空域信息,所述尾部帧数据为最后一个索引表后面的帧数据。
8.根据权利要求7所述的方法,其特征在于,所述根据所述每一帧数据的媒体信息参数和所述完整索引表修复所述MP4文件包括:
根据所述每一帧数据的媒体信息参数、所述完整索引表和所述尾部帧数据的时域信息和空域信息修复所述MP4文件。
9.根据权利要求5所述的方法,其特征在于,所述根据所述私有媒体信息和所述索引信息修复所述MP4文件包括:
读取所述私有媒体信息,得到每一帧数据的媒体信息参数;
对每一个帧数据前面的私有帧数据信息进行解析,得到每一个帧的时域信息和空域信息;
根据所述每一帧数据的媒体信息参数和所述每一个帧的时域信息和空域信息修复所述MP4文件。
10.根据权利要求1所述的方法,其特征在于,所述在所述MDAT中分段存入所述帧数据的索引信息之后,所述方法还包括:
根据所述私有媒体信息和所述索引信息修复所述MP4文件。
11.一种MP4文件的处理设备,其特征在于,包括:
第一存储单元,用于当录入MP4文件时,在所述MP4文件MDAT的头部存入私有媒体信息,所述私有媒体信息包含所述MP4文件中帧数据的媒体信息参数;
第二存储单元,用于在所述MDAT中分段存入所述帧数据的索引信息,所述索引信息包含所述帧数据的时域信息和空域信息;
其中,所述私有媒体信息和所述索引信息用于在所述MP4文件的文件尾不完整时修复所述MP4文件。
12.根据权利要求11所述的处理设备,其特征在于,所述索引信息包括索引表和/或私有帧数据信息。
13.根据权利要求12所述的处理设备,其特征在于,所述第二存储单元包括:
第一存储子单元,用于在所述MDAT中每间隔N字节帧数据后存入一个所述索引表,所述索引表包含所述索引表前N字节帧数据的时域信息和空域信息。
14.根据权利要求12所述的处理设备,其特征在于,所述第二存储单元包括:
第二存储子单元,用于当所述MDAT中写入每一个帧数据时,在所述每一个帧数据的前面存入私有帧数据信息,所述私有帧数据信息包含所述私有帧数据信息后面的一个帧数据的时域信息和空域信息。
15.根据权利要求12至14中任一项所述的处理设备,其特征在于,所述处理设备还包括:
修复单元,用于根据所述私有媒体信息和所述索引信息修复所述MP4文件。
16.根据权利要求15所述的处理设备,其特征在于,所述修复单元包括:
第一读取子单元,用于读取所述私有媒体信息,得到每一帧数据的媒体信息参数;
拼接子单元,用于对所述索引表进行拼接,得到完整索引表;
第一修复子单元,用于根据所述每一帧数据的媒体信息参数和所述完整索引表修复所述MP4文件。
17.根据权利要求16所述的处理设备,其特征在于,所述修复单元还包括:
第一解析子单元,用于对尾部帧数据的私有帧数据信息进行解析,得到尾部帧数据的时域信息和空域信息,所述尾部帧数据为最后一个索引表后面的帧数据。
18.根据权利要求17所述的处理设备,其特征在于,所述第一修复子单元包括:
修复模块,用于根据所述每一帧数据的媒体信息参数、所述完整索引表和所述尾部帧数据的时域信息和空域信息修复所述MP4文件。
19.根据权利要求15所述的处理设备,其特征在于,所述修复单元包括:
第二读取子单元,用于读取所述私有媒体信息,得到每一帧数据的媒体信息参数;
第二解析子单元,用于对每一个帧数据前面的私有帧数据信息进行解析,得到每一个帧的时域信息和空域信息;
第二修复子单元,用于根据所述每一帧数据的媒体信息参数和所述每一个帧的时域信息和空域信息修复所述MP4文件。
20.根据权利要求11所述的处理设备,其特征在于,所述处理设备还包括:
修复单元,用于根据所述私有媒体信息和所述索引信息修复所述MP4文件。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711379276.5A CN109936715B (zh) | 2017-12-19 | 2017-12-19 | 一种mp4文件的处理方法及其相关设备 |
EP18893199.2A EP3713243A1 (en) | 2017-12-19 | 2018-11-28 | Mp4 file processing method and related device therefor |
PCT/CN2018/117838 WO2019120048A1 (zh) | 2017-12-19 | 2018-11-28 | 一种mp4文件的处理方法及其相关设备 |
US16/905,012 US11100956B2 (en) | 2017-12-19 | 2020-06-18 | MP4 file processing method and related device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711379276.5A CN109936715B (zh) | 2017-12-19 | 2017-12-19 | 一种mp4文件的处理方法及其相关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109936715A CN109936715A (zh) | 2019-06-25 |
CN109936715B true CN109936715B (zh) | 2021-09-03 |
Family
ID=66984222
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711379276.5A Active CN109936715B (zh) | 2017-12-19 | 2017-12-19 | 一种mp4文件的处理方法及其相关设备 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11100956B2 (zh) |
EP (1) | EP3713243A1 (zh) |
CN (1) | CN109936715B (zh) |
WO (1) | WO2019120048A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110944225B (zh) * | 2019-11-20 | 2022-10-04 | 武汉长江通信产业集团股份有限公司 | 一种基于html5的不同帧率音视频的同步方法及装置 |
CN110781037B (zh) * | 2020-01-02 | 2020-04-17 | 成都易我科技开发有限责任公司 | 恢复存储介质中视频文件的方法、系统及可读存储介质 |
CN111063380A (zh) * | 2020-01-02 | 2020-04-24 | 南京美乐威电子科技有限公司 | 一种mp4文件生成方法,处理装置,设备以及存储介质 |
CN113127265B (zh) * | 2021-03-29 | 2023-03-10 | 珠海全志科技股份有限公司 | 行车记录文件的修复方法及系统 |
CN113382189A (zh) * | 2021-05-24 | 2021-09-10 | 深圳市爱为物联科技有限公司 | 一种电子设备损坏文件修复方法 |
CN113365140B (zh) | 2021-06-21 | 2022-12-23 | 北京百度网讯科技有限公司 | Mp4在线播放方法、装置、设备、存储介质及程序产品 |
CN114390319B (zh) * | 2021-10-22 | 2023-11-03 | 广州市奥威亚电子科技有限公司 | Mp4文件的读取下载方法、装置、电子设备及存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1559119A (zh) * | 2001-09-24 | 2004-12-29 | ��˹��ŵ�� | 包括元数据和媒体数据的多媒体文件的流播 |
CN102723090A (zh) * | 2012-07-04 | 2012-10-10 | 深圳锐取信息技术股份有限公司 | Mp4文件生成及读取方法 |
CN103404146A (zh) * | 2013-03-11 | 2013-11-20 | 华为技术有限公司 | 视频文件修复方法及装置 |
CN104063447A (zh) * | 2014-06-17 | 2014-09-24 | 惠州华阳通用电子有限公司 | 一种监控视频文件修复方法 |
CN105409235A (zh) * | 2013-07-19 | 2016-03-16 | 索尼公司 | 文件生成装置和方法以及内容重放装置和方法 |
CN105451073A (zh) * | 2015-11-16 | 2016-03-30 | 深圳Tcl数字技术有限公司 | Mp4视频源的传送方法和装置 |
CN105721809A (zh) * | 2014-12-02 | 2016-06-29 | 联咏科技股份有限公司 | 储存方法与录像系统 |
CN105847724A (zh) * | 2016-04-12 | 2016-08-10 | 深圳市极酷威视科技有限公司 | 一种视频录制断电保护方法及装置 |
CN105872484A (zh) * | 2016-06-04 | 2016-08-17 | 武汉诚迈科技有限公司 | 一种监控录像异常的保护方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8625680B2 (en) * | 2003-09-07 | 2014-01-07 | Microsoft Corporation | Bitstream-controlled post-processing filtering |
CN101083756A (zh) * | 2007-03-14 | 2007-12-05 | 中国科学技术大学 | 基于互联网的电视流媒体数据实时传输和服务装置及方法 |
KR20100078700A (ko) * | 2008-12-30 | 2010-07-08 | 삼성전자주식회사 | 파일 전송 방법 및 그를 수행하는 단말기 |
CN101477575A (zh) * | 2009-01-22 | 2009-07-08 | 中兴通讯股份有限公司 | 一种多媒体信息存储和播放方法及其装置 |
US20100189440A1 (en) * | 2009-01-28 | 2010-07-29 | Telefonaktiebolaget L M Ericsson (Publ) | Methods and Systems for Transmitting Data in Scalable Passive Optical Networks |
RU2629001C2 (ru) | 2012-04-26 | 2017-08-24 | Квэлкомм Инкорпорейтед | Система улучшенной потоковой передачи блоков по запросу для обработки потоковой передачи с малой задержкой |
JP5641090B2 (ja) * | 2013-03-14 | 2014-12-17 | ソニー株式会社 | 送信装置、送信方法、受信装置および受信方法 |
CN103327362A (zh) * | 2013-05-24 | 2013-09-25 | 武汉东信同邦信息技术有限公司 | 高可靠性流媒体存储系统及其方法 |
JP6478760B2 (ja) * | 2015-03-27 | 2019-03-06 | キヤノン株式会社 | 記録装置及びその制御方法並びにコンピュータプログラム |
CN106227623B (zh) * | 2016-08-03 | 2019-03-26 | 深圳市智行畅联科技有限公司 | 一种基于智能终端的文件格式及数据掉电修复方法及系统 |
-
2017
- 2017-12-19 CN CN201711379276.5A patent/CN109936715B/zh active Active
-
2018
- 2018-11-28 EP EP18893199.2A patent/EP3713243A1/en active Pending
- 2018-11-28 WO PCT/CN2018/117838 patent/WO2019120048A1/zh unknown
-
2020
- 2020-06-18 US US16/905,012 patent/US11100956B2/en active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1559119A (zh) * | 2001-09-24 | 2004-12-29 | ��˹��ŵ�� | 包括元数据和媒体数据的多媒体文件的流播 |
CN102723090A (zh) * | 2012-07-04 | 2012-10-10 | 深圳锐取信息技术股份有限公司 | Mp4文件生成及读取方法 |
CN103404146A (zh) * | 2013-03-11 | 2013-11-20 | 华为技术有限公司 | 视频文件修复方法及装置 |
CN105409235A (zh) * | 2013-07-19 | 2016-03-16 | 索尼公司 | 文件生成装置和方法以及内容重放装置和方法 |
CN104063447A (zh) * | 2014-06-17 | 2014-09-24 | 惠州华阳通用电子有限公司 | 一种监控视频文件修复方法 |
CN105721809A (zh) * | 2014-12-02 | 2016-06-29 | 联咏科技股份有限公司 | 储存方法与录像系统 |
CN105451073A (zh) * | 2015-11-16 | 2016-03-30 | 深圳Tcl数字技术有限公司 | Mp4视频源的传送方法和装置 |
CN105847724A (zh) * | 2016-04-12 | 2016-08-10 | 深圳市极酷威视科技有限公司 | 一种视频录制断电保护方法及装置 |
CN105872484A (zh) * | 2016-06-04 | 2016-08-17 | 武汉诚迈科技有限公司 | 一种监控录像异常的保护方法 |
Also Published As
Publication number | Publication date |
---|---|
US11100956B2 (en) | 2021-08-24 |
CN109936715A (zh) | 2019-06-25 |
EP3713243A4 (en) | 2020-09-23 |
US20200321031A1 (en) | 2020-10-08 |
WO2019120048A1 (zh) | 2019-06-27 |
EP3713243A1 (en) | 2020-09-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109936715B (zh) | 一种mp4文件的处理方法及其相关设备 | |
US10313712B2 (en) | Method, device, and server for producing video frame set | |
CN109151505B (zh) | 一种视频转码方法、系统、装置及计算机可读存储介质 | |
CN112491652A (zh) | 一种用于测试的网络流量样本处理方法及装置 | |
CN103024603A (zh) | 一种用于解决播放网络视频时短时停顿的装置及方法 | |
US20220329505A1 (en) | Distributed packet capture | |
JP2016187122A (ja) | 映像データ処理装置、映像データ処理システム、映像データ処理方法、及び、映像データ処理プログラム | |
CN105357229B (zh) | 一种视频处理方法及装置 | |
CN109966742A (zh) | 游戏运行中获取渲染性能数据的方法及装置 | |
US20180226104A1 (en) | Video Stream Storage Method, Reading Method and Device | |
CN101895736A (zh) | 媒体流数据处理方法及其装置 | |
US20230106217A1 (en) | Web-end video playing method and apparatus, and computer device | |
CN110851301A (zh) | 一种用于mp4文件的恢复方法和系统 | |
CN114143486A (zh) | 视频流同步方法、装置、计算机设备和存储介质 | |
EP3223478A1 (en) | Packet processing method and device, and storage medium | |
CN109982146B (zh) | 一种智能电视的软件升级方法、存储介质以及应用服务器 | |
US20240135942A1 (en) | Decoding method and apparatus, and computer readable storage medium | |
CN113038248B (zh) | 文件处理方法和装置、视频播放方法和装置及电子装置 | |
CN113571100B (zh) | Mp4的生成方法、装置、设备及存储介质 | |
CN104756502A (zh) | 通信设备之间的视频和音频共享的方法、设备和系统 | |
CN102855922A (zh) | 一种在Flash中记录死机信息的方法 | |
US20240137315A1 (en) | Metadata enhancement for packet capture using vxlan encapsulation | |
CN109684122B (zh) | 一种雕复故障西数硬盘的段位表模块的方法 | |
CN115334350A (zh) | 修复文件的方法、装置、终端设备及存储介质 | |
US10789989B2 (en) | Video recording apparatus and video recording method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |