CN102723090A - Mp4文件生成及读取方法 - Google Patents

Mp4文件生成及读取方法 Download PDF

Info

Publication number
CN102723090A
CN102723090A CN2012102297013A CN201210229701A CN102723090A CN 102723090 A CN102723090 A CN 102723090A CN 2012102297013 A CN2012102297013 A CN 2012102297013A CN 201210229701 A CN201210229701 A CN 201210229701A CN 102723090 A CN102723090 A CN 102723090A
Authority
CN
China
Prior art keywords
box
file
information
media data
frame
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.)
Granted
Application number
CN2012102297013A
Other languages
English (en)
Other versions
CN102723090B (zh
Inventor
瞿新
廖海
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SHENZHEN REACH INFORMATION TECHNOLOGY Co Ltd
Original Assignee
SHENZHEN REACH INFORMATION TECHNOLOGY Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by SHENZHEN REACH INFORMATION TECHNOLOGY Co Ltd filed Critical SHENZHEN REACH INFORMATION TECHNOLOGY Co Ltd
Priority to CN201210229701.3A priority Critical patent/CN102723090B/zh
Publication of CN102723090A publication Critical patent/CN102723090A/zh
Application granted granted Critical
Publication of CN102723090B publication Critical patent/CN102723090B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Management Or Editing Of Information On Record Carriers (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

本发明公开一种MP4文件生成及读取方法。其中,所述MP4文件生成方法包括步骤:对每路媒体数据分别创建4个信息记录文件;输入需要生成MP4文件的媒体数据;按照MP4封装格式录制媒体数据,在每录制一帧媒体数据时,将该帧媒体数据对应的stss box、stts box、stco box和stsz box的信息分别记录至4个信息记录文件之中;生成MP4文件,且4个信息记录文件中分别记录了每帧媒体数据对应stss box、stts box、stco box和stsz box的信息。本发明使得重要的资料不会流失,具有方法简单、实现容易的优点。

Description

MP4文件生成及读取方法
技术领域
本发明涉及一种音视频处理技术,尤其是涉及一种MP4文件生成及读取方法。
背景技术
对于音频、视频文件而言,MP4文件封装格式近来得到较快发展和较为广泛的应用。所述的MP4文件封装格式,对应的标准为ISO/IEC 1449612。MP4文件格式作为开放容器,几乎可用来描述所有的媒体结构,目前被广泛用于封装H.264视频和AAC音频,是高清视频的代表。同时,由于受到美国Apple公司产品的支持,使得该格式发展前景较好。
在生成或者录制MP4文件时,有可能会碰到诸如停电、生成设备或录制设备的系统故障等原因导致录制过程异常中断,从而导致MP4文件不能使用的情况。
由于MP4文件格式作为开放容器,而MP4文件是由很多的容器(box)组成的。box主要分成两类,一类是数据(即音频或视频数据),另一类是参数。在读取时需要得到所有的信息,一旦文件有数据或者参数不符合或者不完整的情况,就会导致整个MP4文件读取失败。
发明内容
本发明提出一种MP4文件生成及读取方法,以解决目前在生成MP4文件的过程中产生异常中断时导致MP4文件无法正确读取的技术问题。
本发明采用如下技术方案实现:一种MP4文件生成方法,其包括步骤:
对每路媒体数据分别创建4个信息记录文件;
输入需要生成MP4文件的媒体数据;
按照MP4封装格式录制媒体数据,在每录制一帧媒体数据时,将该帧媒体数据对应的stss box、stts box、stco box和stsz box的信息分别记录至4个信息记录文件之中;
生成MP4文件,且4个信息记录文件中分别记录了每帧媒体数据对应stssbox、stts box、stco box和stsz box的信息。
其中,每个信息记录文件均由相应的记录指针控制进行信息读写操作。
其中,MP4封装格式包括:有且只有一个作为MP4格式标志的“ftyp”类型的box;有且只有一个包含所有媒体数据的宏观描述信息的“moov”类型的box;MP4文件的媒体数据包含在“mdat”类型的box。
其中,“moov”类型的box包括2个子box:用于记录创建时间、修改时间、时间度量标尺、可播放时长信息的mvhd box;具有一系列子box用于描述每个媒体轨道的具体信息的trak box。
其中,trak box具体包含:表述本视频轨或音频轨的基本信息的tkhd box,描述了编辑片段信息用作文件定位的edts box,以及包含mdhd、hdlr和minf三类子box的mdia box;其中,minfbox具有vmhd、dinf和stbl这三个子box。
其中,stbl box里面包含对媒体数据的样本进行各种描述的子box,其中包括stss box、stts box、stco box和stsz box。
另外,本发明公开一种MP4文件读取方法,其包括步骤:
根据4个信息记录文件中每帧媒体数据对应stss box、stts box、stco box和stsz box的信息,从MP4文件中读出每帧媒体数据及对应的I帧;
根据读出每帧媒体数据及对应的I帧,得到生成MP4文件之前的媒体数据;
其中,MP4文件是采用所述MP4文件生成方法所生成的。
与现有技术相比,本发明具有如下有益效果:
本发明可以采用将部分重要的参数数据生成文件的方式,比如stss、stts、stco和stsz等容器(box),在生成音视频数据的同时,将参数保存下来,生成独立的文件。这样即使遇到异常终止的情况,也可以根据保存的参数容器(BOX),还原原始的音视频数据。从而使得重要的资料不会流失。另外,本发明生成MP4文件的方法简单、实现容易。
附图说明
图1是本发明生成MP4文件的流程示意图;
图2是本发明读取MP4文件的流程示意图。
具体实施方式
为了便于理解本发明,先将MP4文件格式做适当介绍。
MP4文件是指符合ISO/IEC1449612标准的文件,由若干个封装有数据的容器(box)(其中,每个box的结构都是4字节的size,4字节的type,还有一些data数据)组成,具体包括:一个MP4文件首先会有且只有一个“ftyp”类型的box,作为MP4格式的标志并包含关于文件的一些信息;之后会有且只有一个“moov”类型的box(电影容器,Movie Box),它是一种内容容器(container box),不包含具体媒体数据,但包含本文件中所有媒体数据的宏观描述信息,moov box下有mvhd和trak这2个子box,其中,mvhd box中记录了创建时间、修改时间、时间度量标尺、可播放时长等信息,而trak box(轨道容器)中的一系列子box描述了每个媒体轨道的具体信息;MP4文件的媒体数据包含在“mdat”类型的box(媒体数据容器,Midia Data Box)中,该类型的box也是container box,可以有多个,也可以没有(当媒体数据全部引用其他文件时);在MP4文件末尾是一个mfra box,为媒体数据的索引文件,可通过查询直接定位所需时间点的媒体数据。
其中,trak box里面包含三类子box,分别是tkhd、edts和mdia,tkhd主要表述本视频轨或音频轨的一些基本信息,其域与前述的mvhd类似,不过mvhd描述的是整个文件的信息,而tkhd描述是本轨道的信息。edts是一个容器box,里面通过包含子box elst描述一些编辑片段信息,在文件的定位会有一些用处。trak box里面最重要的子box就是mdia box了,这个box也是一个容器box,里面包含mdhd、hdlr和minf三类子box。minf box里面又分别有vmhd(或smhd)(分别表示视频和音频)、dinf和stbl这三个box中,最重要的信息保存在stbl box中,stbl box可以说是mp4文件中最重要的box了,几乎关于所有核心数据描述都放在这个box里面。
stbl box也是一个容器,全称是sample table。stbl box里面包含对样本(sample)进行各种描述的子box。其中,样本(sample)是MP4文件数据的基本单位,一个样本就是表示音视频的一帧。stbl里面包含的几类主要的样本容器(sample box),分别是:
1、样本时间容器(stts box,time to sample box),存储了样本的时间信息。Stts box能很方便的根据时间标签(timestamp)找到对应的样本,或者获取某个样本对应的时间标签。
2、样本关键帧容器(stss box,sync sample box),存储了每个关键帧的样本ID,根据stss box能方便的找到当前帧最近的关键帧。
3、样本大小容器(stsz box,sample size box),stsz box可以描述每个样本的大小。
4、样本位置容器(stco box,chunk offset box),stco box描述了每个块(chunk)在文件中的绝对偏移位置。
在生成MP4文件的过程中,遇到异常情况导致进程终止时,一般来说,音视频的数据是在的。但是由于没有了参数,同时由于音视频在封装成MP4时会丢掉一些头信息,所以无法还原成原始的音视频数据。所以,本发明可以采用将部分重要的参数数据生成文件的方式,比如stss、stts、stco和stsz等容器(box),在生成音视频数据的同时,将参数保存下来,生成独立的文件。这样即使遇到异常终止的情况,也可以根据保存的参数容器(BOX),还原原始的音视频数据。从而使得重要的资料不会流失。
如图1所示,在一个优选实施例中,本发明生成MP4文件包括如下流程:
步骤S11、由于每路媒体数据(即每路音视频数据)在生成MP4时都有对应的stss、stts、stco和stsz等box信息,因此,在生成MP4文件之前,对每路媒体数据分别创建4个信息记录文件和相应的记录指针,4个信息记录文件分别在各自记录指针的控制下进行信息读写操作,在生成MP4文件时保持并动态更新stss box、stts box、stco box和stsz box的信息。
步骤S12、输入需要生成MP4文件的媒体数据。
步骤S13、按照MP4封装格式录制媒体数据,在每录制一帧媒体数据时,将该帧媒体数据对应的stss box、stts box、stco box和stsz box的信息分别记录至步骤S11创建的4个信息记录文件之中。
步骤S14、录制媒体数据完毕,生成MP4文件,且4个信息记录文件中分别记录了每帧媒体数据对应stss box、stts box、stco box和stsz box的信息。
若上述步骤S14在生成MP4文件的过程中,遇到异常情况导致进程终止时,导致MP4文件损坏,MP4文件无法正常读取,此时,可以结合4个信息记录文件,从MP4文件中读取已经录制的媒体数据,结合图2所示,具体包括如下步骤:
步骤S21、根据4个信息记录文件中每帧媒体数据对应stss box、stts box、stco box和stsz box的信息,从MP4文件中读出每帧媒体数据及对应的I帧。
先从用于记录stco box的信息记录文件中读取记录第1帧媒体数据在文件中的起始位置的信息、从用于记录stsz box的信息记录文件中读取记录第1帧媒体数据的大小信息(或数据长度信息)、从用于记录stts box的信息记录文件中读取记录第1帧媒体数据的时间信息、从用于记录stss box的信息记录文件中读取记录第1帧媒体数据对应的I帧。以此类推,可以得到MP4录制中断前所有帧的媒体数据。
步骤S22、根据读出每帧媒体数据及对应的I帧,还原得到录制时的媒体数据。
综上,本发明可以采用将部分重要的参数数据生成文件的方式,比如stss、stts、stco和stsz等容器(box),在生成音视频数据的同时,将参数保存下来,生成独立的文件。这样即使遇到异常终止的情况,也可以根据保存的参数容器(BOX),还原原始的音视频数据。从而使得重要的资料不会流失。另外,本发明生成MP4文件的方法简单、实现容易。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (7)

1.一种MP4文件生成方法,其特征在于,所述方法包括步骤:
对每路媒体数据分别创建4个信息记录文件;
输入需要生成MP4文件的媒体数据;
按照MP4封装格式录制媒体数据,在每录制一帧媒体数据时,将该帧媒体数据对应的stss box、stts box、stco box和stsz box的信息分别记录至4个信息记录文件之中;
生成MP4文件,且4个信息记录文件中分别记录了每帧媒体数据对应stssbox、stts box、stco box和stsz box的信息。
2.根据权利要求1所述MP4文件生成方法,其特征在于,每个信息记录文件均由相应的记录指针控制进行信息读写操作。
3.根据权利要求1所述MP4文件生成方法,其特征在于,MP4封装格式包括:有且只有一个作为MP4格式标志的“ftyp”类型的box;有且只有一个包含所有媒体数据的宏观描述信息的“moov”类型的box;MP4文件的媒体数据包含在“mdat”类型的box。
4.根据权利要求3所述MP4文件生成方法,其特征在于,“moov”类型的box包括2个子box:用于记录创建时间、修改时间、时间度量标尺、可播放时长信息的mvhd box;具有一系列子box用于描述每个媒体轨道的具体信息的trak box。
5.根据权利要求4所述MP4文件生成方法,其特征在于,trak box具体包含:表述本视频轨或音频轨的基本信息的tkhd box,描述了编辑片段信息用作文件定位的edts box,以及包含mdhd、hdlr和minf三类子box的mdia box;其中,minfbox具有vmhd、dinf和stbl这三个子box。
6.根据权利要求5所述MP4文件生成方法,其特征在于,stbl box里面包含对媒体数据的样本进行各种描述的子box,其中包括stss box、stts box、stco box和stsz box。
7.一种MP4文件读取方法,其特征在于,所述方法包括步骤:
根据4个信息记录文件中每帧媒体数据对应stss box、stts box、stco box和stsz box的信息,从MP4文件中读出每帧媒体数据及对应的I帧;
根据读出每帧媒体数据及对应的I帧,得到生成MP4文件之前的媒体数据;
其中,MP4文件是采用权利要求1-6任何一项所述方法所生成。
CN201210229701.3A 2012-07-04 2012-07-04 Mp4文件读取方法 Active CN102723090B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210229701.3A CN102723090B (zh) 2012-07-04 2012-07-04 Mp4文件读取方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210229701.3A CN102723090B (zh) 2012-07-04 2012-07-04 Mp4文件读取方法

Publications (2)

Publication Number Publication Date
CN102723090A true CN102723090A (zh) 2012-10-10
CN102723090B CN102723090B (zh) 2016-08-24

Family

ID=46948828

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210229701.3A Active CN102723090B (zh) 2012-07-04 2012-07-04 Mp4文件读取方法

Country Status (1)

Country Link
CN (1) CN102723090B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103747065A (zh) * 2013-12-27 2014-04-23 河海大学 客户端http检索全索引容器格式媒体资源时间片段的方法
CN109743614A (zh) * 2019-01-03 2019-05-10 北京大米科技有限公司 一种数据存储的方法、装置及电子设备
CN109936715A (zh) * 2017-12-19 2019-06-25 华为技术有限公司 一种mp4文件的处理方法及其相关设备
CN112507148A (zh) * 2020-12-16 2021-03-16 北京华宇信息技术有限公司 媒体文件自动合成方法及装置
CN114173075A (zh) * 2021-10-22 2022-03-11 广州市奥威亚电子科技有限公司 用于录制的mp4文件保存方法、装置、电子设备及存储介质
CN114374875A (zh) * 2021-12-31 2022-04-19 浙江大华技术股份有限公司 一种mp4文件的录制方法、装置及可读存储介质
CN114390319A (zh) * 2021-10-22 2022-04-22 广州市奥威亚电子科技有限公司 Mp4文件的读取下载方法、装置、电子设备及存储介质
CN114374875B (zh) * 2021-12-31 2024-05-28 浙江大华技术股份有限公司 一种mp4文件的录制方法、装置及可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003114845A (ja) * 2001-10-03 2003-04-18 Hitachi Ltd メディア変換方法およびメディア変換装置
CN1868210A (zh) * 2003-10-10 2006-11-22 索尼株式会社 文件再现装置、文件再现方法、文件再现方法程序和用于记录文件再现方法程序的记录介质
CN102227773A (zh) * 2008-11-26 2011-10-26 韩国科亚电子股份有限公司 多媒体数据记录

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003114845A (ja) * 2001-10-03 2003-04-18 Hitachi Ltd メディア変換方法およびメディア変換装置
CN1868210A (zh) * 2003-10-10 2006-11-22 索尼株式会社 文件再现装置、文件再现方法、文件再现方法程序和用于记录文件再现方法程序的记录介质
CN102227773A (zh) * 2008-11-26 2011-10-26 韩国科亚电子股份有限公司 多媒体数据记录

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103747065A (zh) * 2013-12-27 2014-04-23 河海大学 客户端http检索全索引容器格式媒体资源时间片段的方法
CN109936715A (zh) * 2017-12-19 2019-06-25 华为技术有限公司 一种mp4文件的处理方法及其相关设备
US11100956B2 (en) 2017-12-19 2021-08-24 Huawei Technologies Co., Ltd. MP4 file processing method and related device
CN109936715B (zh) * 2017-12-19 2021-09-03 华为技术有限公司 一种mp4文件的处理方法及其相关设备
CN109743614A (zh) * 2019-01-03 2019-05-10 北京大米科技有限公司 一种数据存储的方法、装置及电子设备
CN112507148A (zh) * 2020-12-16 2021-03-16 北京华宇信息技术有限公司 媒体文件自动合成方法及装置
CN114173075A (zh) * 2021-10-22 2022-03-11 广州市奥威亚电子科技有限公司 用于录制的mp4文件保存方法、装置、电子设备及存储介质
CN114390319A (zh) * 2021-10-22 2022-04-22 广州市奥威亚电子科技有限公司 Mp4文件的读取下载方法、装置、电子设备及存储介质
CN114390319B (zh) * 2021-10-22 2023-11-03 广州市奥威亚电子科技有限公司 Mp4文件的读取下载方法、装置、电子设备及存储介质
CN114173075B (zh) * 2021-10-22 2024-01-30 广州市奥威亚电子科技有限公司 用于录制的mp4文件保存方法、装置、电子设备及存储介质
CN114374875A (zh) * 2021-12-31 2022-04-19 浙江大华技术股份有限公司 一种mp4文件的录制方法、装置及可读存储介质
CN114374875B (zh) * 2021-12-31 2024-05-28 浙江大华技术股份有限公司 一种mp4文件的录制方法、装置及可读存储介质

Also Published As

Publication number Publication date
CN102723090B (zh) 2016-08-24

Similar Documents

Publication Publication Date Title
CN102723090A (zh) Mp4文件生成及读取方法
CN101682718B (zh) 基于iso基本媒体文件格式的mpeg-2传输流的存储/回放方法和设备
CN105103540B (zh) 文件生成方法、文件生成装置及记录介质
JP4481889B2 (ja) データ記録装置及びその方法、プログラム、記録媒体
US20030188182A1 (en) Data structure of multimedia file format, encrypting method and device thereof, and decrypting method and device thereof
CN111063376B (zh) 一种mp4修复中音视频同步的方法、终端设备和存储介质
MX2010002097A (es) Medio de grabacion, dispositivo de reproduccion, integracion a gran escala de sistema, metodo de reproduccion, lentes y dispositivo visual para imagenes 3d.
RU2016105434A (ru) Транспортировка hdr метаданных
CN101803396A (zh) 记录媒体、再现装置和集成电路
CN102740038A (zh) 半导体集成电路
CN102665103A (zh) 一种适用于流媒体服务的音频视频封装方法
CN104602105B (zh) 视频文件的播放方法及用户设备
TWI584636B (zh) 藉由減少視訊圖框來降低在網路上傳輸視訊所需之位元率的方法
EP3713243A1 (en) Mp4 file processing method and related device therefor
KR20110134857A (ko) 프래그먼트 기반의 멀티미디어 스트리밍 서비스 제공 방법과 그 장치, 그리고 프래그먼트 기반의 멀티미디어 스트리밍 서비스 수신 방법과 그 장치
CN102118539B (zh) 一种多媒体播放终端及其文件拖动播放方法和装置
US20070250323A1 (en) Apparatus and Method for Encoding and Decoding Plurality of Digital Data Sets
WO2020093931A1 (zh) 字幕数据处理方法、装置、设备和计算机存储介质
AU2008300895A1 (en) Apparatus and method for storing and reading a file having a media data container and a metadata container
CN109195012A (zh) 一种基于对象存储分片转码/合成闪拼成mp4文件的方法
KR20140062437A (ko) 프리셋을 이용한 객체기반 오디오 시스템, 객체기반 오디오 제공 방법 및 객체기반 오디오 재생 방법
US20110069934A1 (en) Apparatus and method for providing object based audio file, and apparatus and method for playing back object based audio file
CN103796047A (zh) 一种视音频数据的封装方法及封装装置
CN103428527A (zh) 数据源实时媒体流转换方法和续点切换播放方法
CN102682016A (zh) 一种支持mov/3gp/mp4文件的索引系统及方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant