Physical structure of the media Box定义了如何在sample
table中找到媒体数据的排列。这包括data reference(数据引用), the sample size table, the sample to
chunk table, and the chunk offset table. 这些表就可以找到track中每个sample在文件中的位置和大小。
data
reference允许在第二个媒体文件中找到媒体的位置。这样,一部电影就可以由一个媒体数据库中的多个不同文件组成,而且不用把它们全部拷贝到另一个新文件中。例如,对视频编辑就很有帮助。
为了节约空间,这些表都很紧凑。另外,interleave不是sample by
sample,而是把单个track的几个samples组合到一起,然后另外几个sample又进行新的组合,等等。一个track的连续几个
sample组成的单元就被称为chunk。每个chunk在文件中有一个偏移量,这个偏移量是从文件开头算起的,在这个chunk内,sample是连续存储的。
这样,如果一个chunk包含两个sample,第二个sample的位置就是chunk的偏移量加上第一个sample的大小。chunk
offset table说明了每个chunk的偏移量,sample to chunk table说明了sample序号和chunk序号的映射关系。
Temporal structure of the media
文件中的时间可以理解为一些结构。电影以及每个track都有一个timescale。它定义了一个时间轴来说明每秒钟有多少个ticks。合理的选择这个数目,就可以实现准确的计时。一般来说,对于audio
track,就是audio的sampling rate。对于video track,情况稍微复杂,需要合理选择。例如,如果一个media
TimeScale是30000,media sample durations是1001,就准确的定义了NTSC
video的时间格式(虽然不准确,但一般就是29.97),and provide 19.9 hours of time in 32 bits.