mp4文件格式解析
- 格式:pdf
- 大小:3.10 MB
- 文档页数:17
mp4可高考知识点随着科技的不断进步,人们的生活受益于各种新的技术产品。
其中,MP4作为一种多媒体设备,成为人们生活中不可或缺的一部分。
在高考中,了解MP4的相关知识点不仅仅是对科技的了解,还有可能涉及到题目考点的答题。
一、什么是MP4?MP4是Moving Picture Experts Group(MPEG)提出的一种多媒体格式标准,该格式可同时存储音频、视频和字幕等多种媒体数据。
MP4的文件扩展名为.mp4,可通过电脑、手机等设备播放。
二、MP4的特点1. 多格式支持:MP4可以支持多种音频、视频和字幕格式,如AAC、MP3、H.264等,使得用户可以在MP4设备上播放各种不同格式的媒体文件。
2. 多设备兼容:MP4文件可以在多种设备上进行播放,包括电脑、手机、平板等。
这意味着用户可以随时随地享受媒体内容。
3. 小巧便携:MP4设备通常非常小巧轻便,方便携带。
用户可以将喜欢的音乐、视频等媒体文件放入MP4设备,随时欣赏。
4. 高效压缩:由于MP4格式采用了一些高效的压缩算法,使得文件大小大大减小,不仅方便存储,还能减少网络传输的带宽占用。
三、MP4在高考中的应用1. 高考题目解析:在某些高考题目中,可能会涉及到MP4相关的知识点,要求考生对MP4的特点、使用场景等进行分析。
了解MP4的相关知识,可以更好地理解和回答这类问题。
2. 影视作品分析:高考语文、英语等科目中,可能会涉及到对影视作品的分析和评论。
而MP4作为一种主流的媒体播放格式,了解MP4的特点可以帮助学生更好地理解和解读影视作品。
3. 媒体素材创作:在艺术类科目的高考考试中,学生可能需要进行媒体素材的创作,如音乐、视频等。
而MP4作为一种常见的媒体文件格式,学生可以使用MP4设备进行素材的录制、剪辑和处理。
四、MP4在学习中的应用1. 学习资料存储:学生可以将课堂录音、讲座视频等学习资料转换为MP4格式并存储在MP4设备上,方便随时复习和借阅。
mp4 不是标准的视频文件MP4 不是标准的视频文件。
MP4 是一种常见的视频文件格式,被广泛应用于各种设备和平台上。
然而,有些人可能会误以为MP4是标准的视频文件格式,实际上,MP4并不是标准的视频文件格式。
在本文中,我们将探讨MP4不是标准的视频文件格式的原因,以及应该如何正确地理解和使用MP4文件。
首先,我们需要明确一点,MP4是一种容器格式,而不是一种编解码标准。
MP4文件可以包含各种不同编解码器(如H.264、H.265、MPEG-4等)压缩的视频和音频数据。
因此,MP4文件并不代表具体的视频编码标准,而是一种通用的容器格式。
这意味着,即使两个文件的扩展名都是MP4,它们可能使用了完全不同的编解码器,导致在不同的设备上播放时出现兼容性问题。
其次,虽然MP4是一种通用的容器格式,但并不是所有的设备和平台都能完美地支持MP4文件。
特别是一些老旧的设备或者特定的播放器软件,可能会出现对MP4文件的解码或者播放问题。
这也是由于MP4文件可以使用多种不同的编解码器,导致了兼容性上的挑战。
因此,虽然MP4是一种常见的视频文件格式,但并不是标准的视频文件格式。
在处理MP4文件时,我们需要注意以下几点:首先,要确保使用合适的编解码器来压缩视频和音频数据。
尽管H.264是目前最常用的视频编码标准,但在某些情况下,其他编解码器可能会更适合你的需求。
因此,在创建MP4文件时,要根据实际情况选择合适的编解码器。
其次,要注意设备和平台的兼容性。
在选择MP4作为视频文件格式时,要考虑目标设备和平台的支持情况。
如果需要在特定的设备上播放MP4文件,建议事先测试兼容性,以避免出现播放问题。
最后,要注意文件的质量和大小。
由于MP4文件可以使用不同的编解码器,因此在压缩视频和音频数据时,要注意保持良好的质量和合理的文件大小。
过高的压缩比可能会导致画质损失,而过大的文件大小则可能会影响播放和传输的效率。
总之,MP4并不是标准的视频文件格式,而是一种通用的容器格式。
mp4格式的九年级知识点随着科技的发展,我们生活中使用的多媒体设备越来越多,其中MP4是我们经常使用的一种格式。
它在手机、平板电脑、电视等设备上播放视频和音乐非常方便。
今天,我们就来了解一下MP4格式的九年级知识点。
一、MP4格式的基本概念MP4,全称为Moving Picture Experts Group-4,是一种数字多媒体容器格式,由MPEG(Moving Picture Experts Group)标准化组织开发。
MP4格式可以存储视频、音频、字幕等多种媒体信息,并且可以适应不同的网络传输速度。
二、MP4格式的特点1. 高度压缩:MP4格式可以将视频文件进行高度压缩,减小文件大小,方便存储和传输。
2. 跨平台兼容:MP4格式能够在多种设备上播放,包括手机、电脑、平板电视等,具有良好的跨平台兼容性。
3. 多媒体容器:MP4格式不仅可以存储视频文件,还可以存储音频、字幕等多种媒体信息,提供了更多的应用场景。
4. 高质量音视频:MP4格式支持高清视频和高音质音频的存储和播放,提供更好的视听效果。
三、MP4格式的编码方式1. 视频编码方式:MP4格式支持多种视频编码方式,常见的有H.264(或称为AVC)、H.265(或称为HEVC)等。
H.264是一种常用的视频编码标准,具有较高的压缩比和良好的视觉质量,被广泛应用在MP4格式的视频存储和传输中。
2. 音频编码方式:MP4格式支持多种音频编码方式,常见的有AAC、MP3等。
AAC是一种广泛用于音频压缩的编码标准,具有较高的音频质量和较小的文件大小,被广泛应用在MP4格式的音频存储和传输中。
四、MP4格式的应用领域1. 视频网站:MP4格式是视频网站常用的视频存储格式,具有较小的文件大小和较好的视觉质量,方便用户在线观看和下载。
2. 移动设备:MP4格式在手机、平板电脑等移动设备上广泛应用,用户可以随时随地享受高质量的视频和音乐。
3. 影视制作:MP4格式在影视制作过程中常用于存储和传输视频素材,方便后期剪辑和处理。
目录1.引言 (1)2.MP4中一些概念详解 (1)3.MP4文件结构分析 (1)3.1box结构 (1)3.2MP4总体结构 (2)3.3Movie box(moov) (3)3.3.1Movie Header box(mvhd) (3)3.3.2Trak box (4)3.4Media box (6)3.4.1Media header box(mdhd) (6)3.4.2Hdlr box (7)3.4.3Minf box (7)3.5Sample Table Box(stbl) (8)3.5.1Sample Description Box(stsd) (8)3.5.2Time To Sample Box(stts) (8)3.5.3Sample Size Box(stsz) (8)3.5.4Sample To Chunk Box(stsc) (8)3.5.5Sync Sample Box(stss) (9)3.5.6Chunk Offset Box(stco) (9)MP4文件格式解析总结1.引言MP4是一种常见的多媒体容器格式,对应MPEG-4标准,这种容器格式非常全面开放,被认为可以在其中嵌入任何形式的数据,各种编码的视频、音频等都可以。
在MP4文件中,媒体的描述信息与媒体数据是分开的,并且媒体数据的组织也很自由,不一定要按照时间顺序排列。
同时,MP4也支持流媒体,MP4目前被广泛用于封装h.264视频和AAC音频,是高清视频的代表。
MP4格式的官方文件后缀名是“.mp4”,还有其他的以mp4为基础进行的扩展或者是缩水版本的格式。
2.MP4中一些概念详解MP4文件格式中,所有的内容存在一个称为movie的容器中。
一个movie可以由多个tracks组成。
每个track就是一个随时间变化的媒体序列,track里的每个时间单位是一个sample,它可以是一帧视频,或者一段连续的压缩音频。
sample按照时间顺序排列。
MP4是一种常见的视频文件格式,其工作原理是通过压缩和编码技术实现视频数据的存储和传输。
具体来说,MP4文件采用了一种名为MPEG-4(Moving Picture Experts Group-4)的压缩技术,它通过对视频数据进行压缩,使得视频文件能够更小、更易于存储和传输。
在MP4文件中,视频数据被编码为一系列的帧,每一帧都代表了视频中的一个瞬间。
这些帧被压缩后存储在文件中,以便于后续的播放和传输。
同时,MP4文件还包含了音频数据,这些音频数据与视频数据同步播放,使得视频更加生动有趣。
为了实现视频数据的压缩,MPEG-4采用了多种技术,包括空间预测、运动补偿、量化、编码等。
其中,空间预测和运动补偿是MPEG-4中最核心的技术。
空间预测是指通过对当前帧与其相邻帧进行比较,预测当前帧中哪些像素值会发生变化,从而减少需要编码的数据量。
而运动补偿则是通过预测当前帧与上一帧之间的运动矢量,来减少需要编码的数据量。
除了这些技术之外,MPEG-4还采用了分块编码的方式,将每一帧图像分割为多个小块,对每个小块进行独立的编码。
这种分块编码的方式使得MPEG-4能够更好地处理复杂的图像变化和运动。
总的来说,MP4格式的工作原理是通过采用多种压缩和编码技术,实现对视频数据的有效存储和传输。
这些技术使得MP4文件能够更小、更易于存储和传输,同时也保证了视频的播放质量和流畅度。
mp4 reader 解析
MP4 Reader 解析是指对 MP4 文件进行读取和解析的过程。
MP4 (MPEG-4 Part 14) 是一种常见的多媒体文件格式,它通常
用于存储视频、音频和字幕数据。
进行 MP4 文件解析的目的
是能够提取出其中的视频和音频数据,并对其进行进一步的处理或播放。
MP4 Reader 解析一般涉及以下内容:
1. 文件头解析:读取 MP4 文件的文件头部分,包括文件格式
标识、版本号、文件大小等信息。
2. Box 解析:MP4 文件使用 Box 结构来组织数据,一个 Box
包含一个四字节的类型标识和一个长度字段,然后是实际的数据。
MP4 Reader 解析会按顺序读取各个 Box,识别其类型并
解析对应的数据。
3. 媒体数据解析:对于包含视频和音频的 MP4 文件,解析过
程会进一步解析对应的媒体数据。
视频数据通常采用 H.264 或H.265 等压缩格式,需要按照相应的解码规则进行解析和解码。
音频数据通常使用 AAC 或 MP3 等格式,也需要进行相应的
解析和解码。
通过 MP4 Reader 解析,可以获取到视频的帧数据、音频的采
样数据等,进而进行如视频播放、媒体编辑、转码等操作。
同时,MP4 Reader 解析还能够获取到一些相关的元数据,例如
视频的分辨率、帧率,音频的采样率、声道数等信息,以供后续处理使用。
mp4⽂件格式详细解析⽬录1. 概述2. mp4⽂件基本信息3. 封装格式重要概念4. 重要box介绍5. 其他box介绍6. 实⽤技术7. 开源软件参考[1] ISO/IEC 14496-12:2015[2] wikipedia/MPEG-4[3] wikipedia/ISO base media file format[4] wikipedia/MPEG-4 Part 14[5] Tocy/多媒体⽂件格式之MP4[6] Phil Cluff/What's in the box_![7] /gpac/mp4box.js[8] tao/Android⾳视频系列:视频容器操作篇 -- mp4容器打包实现[9] LiaoJunXiong/使⽤gpac封装mp4[10] Jameson Steiner/Fun with Container Formats – Part 21. 概述mp4或称MPEG-4 Part 14,是⼀种多媒体容器格式,扩展名为.mp4。
历史[6]:2001年,apple的QuickTime格式,.qt和.mov的后缀名。
2001年,MPEG-4 Part1,把基于QuickTime的box布局的容器格式添加到了MPEG-4标准。
2004年,标准⽂档把编码和容器格式的说明分开。
MPEG-4 Part12,定义了容器格式通⽤的box结构,即ISO媒体⽂件格式(ISO base media file format, ISOBMFF)。
MPEG-4 Part14,基于Part12进⾏了细化,定义了⽤于存储MPEG-4内容的容器格式,即.mp4格式。
图1 MP4 File Format.png以下是各标准⽂档的链接:QuickTime:QuickTime/QTFFMPEG-4 Part12:ISO/IEC 14496-12:2015MPEG-4 Part14:ISO/IEC 14496-14:2018,官⽹上这部分是付费的。
MP4文件格式详解——结构概述一、基本概念1、文件,由许多Box和FullBox组成。
2、 Box,每个Box由Header和Data组成。
3、 FullBox,是Box的扩展,Box结构的基础上在Header中增加8bits version和24bits flags。
4、 Header,包含了整个Box的长度size和类型type。
当size==0时,代表这是文件中最后一个Box;当size==1时,意味着Box长度需要更多bits来描述,在后面会定义一个64bits的largesize 描述Box的长度;当type是uuid时,代表Box中的数据是用户自定义扩展类型。
5、 Data,是Box的实际数据,可以是纯数据也可以是更多的子Boxes。
6、当一个Box的Data中是一系列子Box时,这个Box又可成为Container Box。
Box的结构用伪代码表示如下:[cpp] view plaincopyprint?1.aligned(8) class Box (unsigned int(32) boxtype,optional u nsigned int(8)[16] extended_type)2.{3.unsigned int(32) size;4.unsigned int(32) type = boxtype;5.if (size==1)6.{7.unsigned int(64) largesize;8.}9.else if (size==0)10.{11.// box extends to end of file12.}13.if (boxtype==‘uuid’)14.{15.unsigned int(8)[16] usertype = extended_type;16.}结构如下图:文件基本结构描述图二、MP4文件格式(ISO-14496-12/14)MP4文件概述MP4文件就是由各式各样的Box组成的,下表中列出了所有必选或可选的Box类型,√代表Box必选。
mp4文件格式解析(三)it6655多媒体技术实验室•4.2.2.3.1 Media Information Header Box(vmhd、smhd、hmhd、nmhd)Video Media Header Box(vmhd)Sound Media Header Box(smhd)Hint Media Header Box(hmhd)略Null Media Header Box(nmhd)非视音频媒体使用该box,略。
4.2.2.3.2 Data Information Box(dinf)“dinf”解释如何定位媒体信息,是一个container box。
“dinf”一般包含一个“dref”,即data reference box;“dref”下会包含若干个“url”或“urn”,这些box组成一个表,用来定位track数据。
简单的说,track可以被分成若干段,每一段都可以根据“url”或“urn”指向的地址来获取数据,sample描述中会用这些片段的序号将这些片段组成一个完整的track。
一般情况下,当数据被完全包含在文件中时,“url”或“urn”中的定位字符串是空的。
“dref”的字节结构如下表。
“url”或“urn”都是box,“url”的内容为字符串(location string),“urn”的内容为一对字符串(name string and location string)。
当“url”或“urn”的box flag为1时,字符串均为空。
下面是一个“dinf”的字节实例图。
其中黄色为“dinf”的box header,由红色部分我们知道包含的“url”或“urn”个数为1,红色后面为“url”box的内容。
紫色为“url”的box header(根据box type我们知道是个“url”),绿色为box flag,值为1,说明“url”中的字符串为空,表示track数据已包含在文件中。
多媒体⽂件格式(⼀):MP4格式在互联⽹常见的格式中,跨平台最好的应该就属MP4⽂件了。
因为MP4⽂件既可以在PC平台的Flashplayer中播放,⼜可以在移动平台的Android、iOS等平台中进⾏播放,⽽且使⽤系统默认的播放器即可以播放。
MP4格式是最常见的多媒体⽂件格式。
⼀、MP4 格式标准介绍MP4格式标准为ISO-14496 Part 12、ISO-14496 Part 14,标准内容不是很多,下⾯我们来介绍⼀下格式标准中⼀些重要的信息。
MP4是⼀种描述较为全⾯的容器格式,被认为可以在其中嵌⼊任何形式的数据,各种编码的视频、⾳频等都不在话下,常见的⼤部分的MP4⽂件存放的AVC(H.264)或MPEG-4(Part 2)编码的视频和AAC编码的⾳频。
MP4格式的官⽅⽂件后缀名是“.mp4”,还有其他的以mp4为基础进⾏的扩展或者是阉割版的格式,如:M4V, 3GP, F4V等。
MP4是由⼀个个“Box”组成的,⼤Box中存放⼩Box,⼀级嵌套⼀级来存放媒体信息。
下⾯我们来楚关于Box的⼏个概念:MP4⽂件由许多个Box与FullBox组成。
每个Box由Header和Data两部分组成。
FullBox是Box的扩展,其在Box结构的基础上,在Header中增加8位version标志和24的flags标志。
Header包含了整个Box的长度的⼤⼩(size)和类型(type),当size等于0时,代表这个Box是⽂件的最后⼀个Box。
当size等于1时,说明Box长度需要更多的位来描述,在后⾯会⾃定义⼀个64位的largesize⽤来描述Box的长度。
当type等于uuid时,说明这个Box 中的数据是⽤户⾃定义扩展类型。
Data为Box的实际数据,可以是纯数据,也可以是更多的⼦Box。
当⼀个Box中Data是⼀系列的⼦Box时,这个Box⼜可以称为Container(容器)Box。
介绍了MP4的格式标准后,下⾯我们来介绍是三个MP4分析⼯具,为后续理解MP4⽂件⼀些关键信息做辅助⼯具。
MP4⽂件格式解析⽂章转⾃:1.ISO/IEC 14496标准ISO/IEC 14496是MPEG专家组制定的MPEG-4标准,分为多个部分(仍在更新)。
参考:第⼀部分(ISO/IEC 14496-1):系统:描述视频和⾳频数据流的控制、同步以及混合⽅式(即混流Multiplexing,简写为MUX)。
第⼆部分(ISO/IEC 14496-2):视频:定义⼀个对各种视觉信息(包括⾃然视频、静⽌纹理、计算机合成图形等等)的编解码器。
(例如XviD编码就属于MPEG-4 Part 2)第三部分(ISO/IEC 14496-3):⾳频:定义⼀个对各种⾳频信号进⾏编码的编解码器的集合。
包括⾼级⾳频编码(Advanced Audio Coding,缩写为AAC)的若⼲变形和其他⼀些⾳频/语⾳编码⼯具。
第四部分(ISO/IEC 14496-4):⼀致性:定义对本标准其他的部分进⾏⼀致性测试的程序。
第五部分(ISO/IEC 14496-5):参考软件:提供⽤于演⽰功能和说明本标准其他部分功能的软件。
第六部分(ISO/IEC 14496-6):多媒体传输集成框架(DMIF for Delivery Multimedia Integration Framework)第七部分(ISO/IEC 14496-7):优化的参考软件:提供对实现进⾏优化的例⼦(这⾥的实现指的是第五部分)。
第⼋部分(ISO/IEC 14496-8):在IP⽹络上传输:定义在IP⽹络上传输MPEG-4内容的⽅式。
第九部分(ISO/IEC 14496-9):参考硬件:提供⽤于演⽰怎样在硬件上实现本标准其他部分功能的硬件设计⽅案。
第⼗部分(ISO/IEC 14496-10):⾼级视频编码或称⾼级视频编码(Advanced Video Coding,缩写为AVC):定义⼀个视频编解码器(codec)。
AVC和XviD都属于MPEG-4编码,但由于AVC属于MPEG-4 Part 10,在技术特性上⽐属于MPEG-4 Part2的XviD要先进。
MP4格式详解1. 概览 (实例,很好) QuickTime 常⽤的⼀些Box mdhd 存放视频流创建时间,长度等信息 avc1 视频宽⾼、extionsion中有sps、pps信息(关于和esds) esds:aac⾳频头信息、视频vos、vo头信息() stts:定义每个sample时长(+) ctts:重建P、B帧的DTS、CTS。
stsc:sample-chunk映射表 stsz:指定了每个sample的size stco、co64:Chunk位置偏移表,指定了每个chunk在⽂件中的位置() elst:使某个track的时间戳产⽣偏移。
较少见, mp4a:另有mp4v,不同的mp4分⽀。
c实现的mp4的解析: () 主流编码器的 以下是⼀个典型的mp4格式的⽂件。
后⾯将逐⾏分析格式规范。
2. 详解 下⾯的内容翻译⾃ ISO_IEC_14496-12。
2.1 Box的概念 Box以⼀个header开头,它提供了 size 和 type。
ftpy Box Header ⽀持压缩或扩展⼤⼩(32或64位,可变)以及压缩、扩展类型(32位或完整的通⽤唯⼀标识符,即UUID)。
标准的Box都使⽤紧凑型(32位),⼤多数Box都使⽤紧凑型(32位)⼤⼩。
通常只有媒体数据框需要64位⼤⼩。
⼤⼩是整个Box的⼤⼩(包括size、type、header)、字段和所有包含的框。
这有助于⽂件的⼀般解析。
语法:aligned(8) class Box (unsigned int(32) boxtype, optional unsigned int(8)[16] extended_type) {unsigned int(32) size;unsigned int(32) type = boxtype;if (size==1) {unsigned int(64) largesize;} else if (size==0) {// box extends to end of file}if (boxtype==‘uuid’) {unsigned int(8)[16] usertype = extended_type;}} size:整型,为整个Box的⼤⼩(包含⼦Box),如果size是1,则使⽤largesize表⽰更⼤的范围(8字节),如果size是0则此Box作为⽂件中最后⼀个Box,范围直⾄⽂件末尾(only used for a Media Data Box)。
路漫漫其修远兮,吾将上下而求索 - 百度文库目录1.引言 (1)2.MP4中一些概念详解 (1)3.MP4文件结构分析 (2)3.1box结构 (2)3.2MP4总体结构 (3)3.3Movie box(moov) (3)3.3.1Movie Header box(mvhd) (4)3.3.2Trak box (5)3.4Media box (6)3.4.1Media header box(mdhd) (6)3.4.2Hdlr box (7)3.4.3Minf box (8)3.5Sample Table Box(stbl) (8)3.5.1Sample Description Box(stsd) (8)3.5.2Time To Sample Box(stts) (9)3.5.3Sample Size Box(stsz) (9)3.5.4Sample To Chunk Box(stsc) (9)3.5.5Sync Sample Box(stss) (9)3.5.6Chunk Offset Box(stco) (9)MP4文件格式解析总结1.引言MP4是一种常见的多媒体容器格式,对应MPEG-4标准,这种容器格式非常全面开放,被认为可以在其中嵌入任何形式的数据,各种编码的视频、音频等都可以。
在MP4文件中,媒体的描述信息与媒体数据是分开的,并且媒体数据的组织也很自由,不一定要按照时间顺序排列。
同时,MP4也支持流媒体,MP4目前被广泛用于封装h.264视频和AAC音频,是高清视频的代表。
MP4格式的官方文件后缀名是“.mp4”,还有其他的以mp4为基础进行的扩展或者是缩水版本的格式。
2.MP4中一些概念详解MP4文件格式中,所有的内容存在一个称为movie的容器中。
一个movie可以由多个tracks组成。
每个track就是一个随时间变化的媒体序列,track里的每个时间单位是一个sample,它可以是一帧视频,或者一段连续的压缩音频。
mp4是什么意思
Mp4是一种媒体文件格式,它是根据ISO(国际标准化组织)14496-14规范设计和开发的。
它是一种容易在不同的设备和操作系统上播放的多媒体文件格式。
MP4文件使用在许多应
用中,比如在视频转换等多种应用上。
MP4格式因为它占用的空间较小,特点是音视频文
件和图片融合成一个文件,处理相对来说也比较简单,文件大小也更小。
MP4文件结构包括视频和音频流,以及用于同步视频和音频流的定时器。
它的优势在于可
以同时在多设备之间播放,尤其是在RT(实时传输)传输模式之间的播放方式中,MP4在
实现多渠道的实时传输时有更多的优势。
此外,MP4文件还可以支持动态文件元数据更新,这样就可以在不同的环境下使用不同的文件元数据来改善用户体验。
MP4被广泛用于在线和离线的播放,是一种高压缩的媒体文件格式。
相比而言,其他格式
的音频和视频文件要求更大的存储以及更高的空间来容纳的素材数量。
尽管MP4文件最终
也会有一定的质量损失,但是此类媒体格式所提供的压缩程度已经非常及格。
尤其是在联
网播放中,MP4文件风靡无数网友。
总而言之,MP4是一种应用广泛的媒体文件格式,用于在线和离线的播放。
它可以部署在
不同的平台上,而且具有非常小的存储空间,运行起来也非常方便和能够实现多渠道的实
时传输。
它被广泛用于音视频转换,视频分享和视频编辑等等应用领域。
MP4文件格式详解文件类型ftyp(ISO-14496-12)Author:Pirate LeoEmail:*********************ISO 14496 - 12 定义了一种封装媒体数据的基础文件格式,mp4、3gp、ismv等我们常见媒体封装格式都是以这种基础文件格式为基础衍生的。
如果从全局角度了解基础文件格式,请看我之前的博文《MP4文件格式详解——结构概述》。
本系列文档从MP4文件入手,对文件中重要的box进行解析。
<======================================================================>本次解析ftyp box[cpp] view plain copyprint?1.aligned(8) class FileTypeBox extends Box(‘ftyp’)2.{3.unsigned int(32) major_brand;4.unsigned int(32) minor_version;5.unsigned int(32) compatible_brands[]; // to end of the b ox6.}什么是brands?官方是这样描述的:Each brand is a printable four-character code, registered with ISO, that identifies a precise specification.//在ISO注册的4个字符。
下表来源于网络,列出了几种常见的基于基础文件格式的,媒体封装格式标识。
更多的内容可以查看结合实际文件,下图是MP4文件起始位置存放的数据length(4字节):0x0000001c:box的长度是28字节;boxtype(4字节):0x66747970:“ftyp”的ASCII码,box 的标识;major_brand(4字节):0x69736f6d:“isom“的ASCII码;minor_version(4字节):0x00000200:ismo的版本号;compatible_brands(12字节):说明本文件遵从(或称兼容)ismo,iso2,mp41三种协议。
MP4文件格式综述关键概念MP4文件格式中,所有的内容存在一个称为movie的容器中。
一个movie可以由多个track s组成。
每个track就是一个随时间变化的媒体序列,例如,视频帧序列。
track里的每个时间单位是一个sample,它可以是一帧视频,或者音频。
sample按照时间顺序排列。
注意,一帧音频可以分解成多个音频sample,所以音频一般用sample作为单位,而不用帧。
MP4文件格式的定义里面,用sample这个单词表示一个时间帧或者数据单元。
每个track会有一个或者多个sample description s。
track里面的每个sample通过引用关联到一个sample description。
这个sample description s定义了怎样解码这个sample,例如使用的压缩算法。
与其他的多媒体文件格式不同的是,MP4文件格式经常使用几个不同的概念,理解其不同是理解这个文件格式的关键。
这个文件的物理格式没有限定媒体本身的格式。
例如,许多文件格式将媒体数据分成帧,头部或者其他数据紧紧跟随每一帧视频,!!!TODO(例如MPEG2)。
而MP4文件格式不是如此。
文件的物理格式和媒体数据的排列都不受媒体的时间顺序的限制。
视频帧不需要在文件按时间顺序排列。
这就意味着如果文件中真的存在这样的一些帧,那么就有一些文件结构来描述媒体的排列和对应的时间信息。
MP4文件中所有的数据都封装在一些box中(以前叫atom)。
所有的metadata(媒体描述元数据),包括定义媒体的排列和时间信息的数据都包含在这样的一些结构box中。
MP4文件格式定义了这些这些box的格式。
Metadata对媒体数据(例如,视频帧)引用说明。
媒体数据可以包含在同一个的一个或多个box里,也可以在其他文件中,metadata允许使用URLs来引用其他的文件,而媒体数据在这些引用文件中的排列关系全部在第一个主文件中的metadata描述。
MP4文件格式的解析和MP4文件的分割算法MP4文件格式的解析和MP4文件的分割算法MP4文件格式的解析,以及MP4文件的分割算法mp4应当算是一种比较困难的媒体格式了,起源于QuickTime。
以前探讨的时候就花了一番的功夫,尤其是如何把它完备的融入到视频点播应用中,更是费尽了心思,主要问题是处理mp4文件浩大的"媒体头"。
当然,流媒体点播也可以采纳flv格式来做,flv也可以封装H.264视频数据的,不过Adobe却不举荐这么做,人家说终归mp4才是H.264最佳的存储格式嘛。
这几天整理并重构了一下mp4文件的解析程序,融合了分解与合并的程序,以前是c语言写的,应用在linux上运行的服务器程序上,现在改成c++,便利我在其他项目中运用它,至于用不用移植一份c#的,短暂用不到,等有必要了再说吧。
这篇文章先简洁介绍一下mp4文件的大体结构,以及它的分割算法,之后再写文章介绍如何把mp4完备应用在点播项目中。
一、MP4格式分析MP4(MPEG-4 Part 14)是一种常见的多媒体容器格式,它是在"ISO/IEC 14496-14"标准文件中定义的,属于MPEG-4的一部分,是"ISO/IEC 14496-12(MPEG-4 Part 12 ISO base media file format)"标准中所定义的媒体格式的一种实现,后者定义了一种通用的媒体文件结构标准。
MP4是一种描述较为全面的容器格式,被认为可以在其中嵌入任何形式的数据,各种编码的视频、音频等都不在话下,不过我们常见的大部分的`MP4文件存放的AVC(H.264)或MPEG-4(Part 2)编码的视频和AAC编码的音频。
MP4格式的官方文件后缀名是".mp4",还有其他的以mp4为基础进行的扩展或者是缩水版本的格式,包括:M4V,3GP,F4V等。