学习博客:
mp4文件格式浅述 :https://blog.csdn.net/qq_35413770/article/details/103989220
MP4的几个概念:https://blog.csdn.net/charleslei/article/details/51084046
MP4文件格式解析:https://blog.csdn.net/Guofengpu/article/details/51066295
MP4文件格式的解析,以及MP4文件的分割算法:https://www.cnblogs.com/haibindev/archive/2011/10/17/2214518.html
MP4 info查看moov头位置:https://blog.csdn.net/charleslei/article/details/51084997
一.Mp4文件基本格式
形象点如下:
更简单点:
简单描述:
MP4文件由若干个mp4文件由许多Box和FullBox组成,可以是container box或leaf box,即box里还可以套box.FullBox是mp4格式协议规定的某些特殊的Box.
box结构:
一个MP4文件首先会有且只有一个“ftyp”类型的box,作为MP4格式的标志并包含关于文件的一些信息;之后会有且只有一个“moov”类型的box(Movie Box),它是一种container box,子box包含了媒体的metadata信息;MP4文件的媒体数据包含在“mdat”类型的box(Midia Data Box)中,该类型的box也是container box,可以有多个,也可以没有(当媒体数据全部引用其他文件时),媒体数据的结构由metadata进行描述。
几个重要的box存放信息的说明:
二.MP4中的基本概念
track 表示一些sample的集合,对于媒体数据来说,track表示一个视频或音频序列。
hint track 这个特殊的track并不包含媒体数据,而是包含了一些将其他数据track打包成流媒体的指示信息。
sample 对于非hint track来说,video sample即为一帧视频,或一组连续视频帧,audio sample即为一段连续的压缩音频,它们统称sample。对于hint track,sample定义一个或多个流媒体包的格式。
sample table 指明sampe时序和物理布局的表。
chunk 一个track的几个sample组成的单元。