CN102723090B - Mp4文件读取方法 - Google Patents

Mp4文件读取方法 Download PDF

Info

Publication number
CN102723090B
CN102723090B CN201210229701.3A CN201210229701A CN102723090B CN 102723090 B CN102723090 B CN 102723090B CN 201210229701 A CN201210229701 A CN 201210229701A CN 102723090 B CN102723090 B CN 102723090B
Authority
CN
China
Prior art keywords
box
information
media data
file
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.)
Active
Application number
CN201210229701.3A
Other languages
English (en)
Other versions
CN102723090A (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

Landscapes

  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Management Or Editing Of Information On Record Carriers (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个信息记录文件中分别记录了每帧媒体数据对应stss box、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 (1)

1.一种MP4文件读取方法,其特征在于,所述方法包括步骤:
对每路媒体数据分别创建4个信息记录文件,每个信息记录文件均由相应的记录指针控制进行信息读写操作;
输入需要生成MP4文件的媒体数据;
按照MP4封装格式录制媒体数据,在每录制一帧媒体数据时,将该帧媒体数据对应的stssbox、sttsbox、stcobox和stszbox的信息分别记录至4个信息记录文件之中,MP4封装格式包括:有且只有一个作为MP4格式标志的“ftyp”类型的box;有且只有一个包含所有媒体数据的宏观描述信息的“moov”类型的box;MP4文件的媒体数据包含在“mdat”类型的box,“moov”类型的box包括2个子box:用于记录创建时间、修改时间、时间度量标尺、可播放时长信息的mvhdbox;具有一系列子box用于描述每个媒体轨道的具体信息的trakbox,trakbox具体包含:表述本视频轨或音频轨的基本信息的tkhdbox,描述了编辑片段信息用作文件定位的edtsbox,以及包含mdhd、hdlr和minf三类子box的mdiabox;其中,minfbox具有vmhd、dinf和stbl这三个子box,stblbox里面包含对媒体数据的样本进行各种描述的子box,其中包括stssbox、sttsbox、stcobox和stszbox;
生成MP4文件,且4个信息记录文件中分别记录了每帧媒体数据对应stssbox、sttsbox、stcobox和stszbox的信息;
根据4个信息记录文件中每帧媒体数据对应stssbox、sttsbox、stcobox和stszbox的信息,从MP4文件中读出每帧媒体数据及对应的I帧,具体过程为:
从用于记录stcobox的信息记录文件中读取记录第1帧媒体数据在文件中的起始位置的信息;
从用于记录stszbox的信息记录文件中读取记录第1帧 媒体数据的大小信息或数据长度信息;
从用于记录sttsbox的信息记录文件中读取记录第1帧媒体数据的时间信息;
从用于记录stssbox的信息记录文件中读取记录第1帧媒体数据对应的I帧;
以此类推,能够得到MP4录制中断前所有帧的媒体数据;
这样即使在遇到异常终止的情况时,也能够根据读出的每帧媒体数据及对应的I帧,还原得到录制时的媒体数据。
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 CN102723090A (zh) 2012-10-10
CN102723090B true 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)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103747065B (zh) * 2013-12-27 2017-02-08 河海大学 客户端http检索全索引容器格式媒体资源时间片段的方法
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 北京华宇信息技术有限公司 媒体文件自动合成方法及装置
CN114390319B (zh) * 2021-10-22 2023-11-03 广州市奥威亚电子科技有限公司 Mp4文件的读取下载方法、装置、电子设备及存储介质
CN114173075B (zh) * 2021-10-22 2024-01-30 广州市奥威亚电子科技有限公司 用于录制的mp4文件保存方法、装置、电子设备及存储介质
CN114374875B (zh) * 2021-12-31 2024-05-28 浙江大华技术股份有限公司 一种mp4文件的录制方法、装置及可读存储介质

Family Cites Families (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 メディア変換方法およびメディア変換装置
JP4062230B2 (ja) * 2003-10-10 2008-03-19 ソニー株式会社 ファイル記録再生装置、ファイル記録再生方法、ファイル記録再生方法のプログラム及びファイル記録再生方法のプログラムを記録した記録媒体
KR100958176B1 (ko) * 2008-11-26 2010-05-14 주식회사 코아로직 멀티미디어 데이터 처리장치, 그 처리장치를 포함하는 멀티미디어 시스템, 및 멀티미디어 데이터 레코딩 방법

Also Published As

Publication number Publication date
CN102723090A (zh) 2012-10-10

Similar Documents

Publication Publication Date Title
CN102723090B (zh) Mp4文件读取方法
JP4481889B2 (ja) データ記録装置及びその方法、プログラム、記録媒体
CN105103540B (zh) 文件生成方法、文件生成装置及记录介质
CN111063376B (zh) 一种mp4修复中音视频同步的方法、终端设备和存储介质
CN101803396A (zh) 记录媒体、再现装置和集成电路
AU2009210926B2 (en) Apparatus and method for generating and displaying media files
TWI584636B (zh) 藉由減少視訊圖框來降低在網路上傳輸視訊所需之位元率的方法
JP2007060286A (ja) コンテンツ編集装置及びその再生装置
CN102118539B (zh) 一种多媒体播放终端及其文件拖动播放方法和装置
EP3713243A1 (en) Mp4 file processing method and related device therefor
KR20110134857A (ko) 프래그먼트 기반의 멀티미디어 스트리밍 서비스 제공 방법과 그 장치, 그리고 프래그먼트 기반의 멀티미디어 스트리밍 서비스 수신 방법과 그 장치
AU2008300895A1 (en) Apparatus and method for storing and reading a file having a media data container and a metadata container
KR101591166B1 (ko) 프리셋을 이용한 객체기반 오디오 시스템, 객체기반 오디오 제공 방법 및 객체기반 오디오 재생 방법
JP2004336593A (ja) 情報処理装置および方法、プログラム記録媒体、並びにプログラム
US20110069934A1 (en) Apparatus and method for providing object based audio file, and apparatus and method for playing back object based audio file
WO2011129242A1 (ja) データ構造、画像処理装置、画像処理方法、およびプログラム
CN102969013A (zh) 数据处理设备及其控制方法
EP2560105A1 (en) Method and device for storing audio data
CN105210365A (zh) 文件生成方法以及文件生成装置
CN103428527A (zh) 数据源实时媒体流转换方法和续点切换播放方法
US11049257B2 (en) Data structure, information processing apparatus, and control method thereof
EP2277319B1 (en) Apparatus and method for creating and displaying media file
CN102647584A (zh) 一种视频文件生成方法及***
CN102723104A (zh) 基于mp4文件封装格式的多媒体录播***
WO2015083354A1 (ja) ファイル生成方法、再生方法、ファイル生成装置、再生装置および記録媒体

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