本文共 993 字,大约阅读时间需要 3 分钟。
在MP4文件格式中,文件由多个Box组成,每个Box包含特定的数据和子Box。Box的结构基本如下:
MP4文件由多个Box组成,下表列出了所有必选或可选的Box类型,√代表Box是必选项。
序号 | Box类型 | 简要说明 |
---|---|---|
√ | ftyp | 文件类型和兼容性信息 |
√ | moov | 包含所有媒体数据的宏观描述信息(包括mvhd和trak)。 |
√ | mvhd | 视频或音频的媒体头信息,包含创建时间、修改时间等。 |
√ | trak | 单个流或轨道的容器,包含多个子Box(如tkhd)。 |
tkhd | 轨道的宏观信息,包含轨道ID、音频编码等信息。 | |
trex | 轨道默认扩展信息,定位流中所有默认段落。 | |
mvex | 视频段落的扩展描述。 | |
elt | 编辑列表,记录时间和编辑信息。 | |
elst | 编辑列表。 | |
dref | 数据参考,记录媒体数据的来源。 | |
stsd | 样本描述,包含编码器类型和初始化信息。 |
图片描述了MP4文件的宏观结构,包括各个Box的位置和关系。例如,moovbox下包含mvhd和trak,进而包含多个子Box。
为了支持渐进式播放,MP4文件通常会被分割为多个Fragments(片段),每个Fragment包含一个或多个moof和mdatBox。这样,客户端在接收一个Fragment的完整数据后,就可以立即开始播放该片段的数据。
在Silverlight的Smooth Streaming技术中,MP4文件采用ismv格式,文件由多个Fragments组成。每个Fragment包含一个moofBox和一个或多个mdatBox。通过HTTP进行无缝播放,用户只需接收足够的Fragment数据即可开始播放。
以上是对MP4文件格式的基本理解和优化。
转载地址:http://erkrz.baihongyu.com/