QuickTime Container是由一系列ATOM组成,而每个ATOM都有一个名字——FOURCC,不同FOURCC的ATOM的结构也各不相同。
FOURCCs:Audio FOURCCs and Video FOURCCs
Microsoft ID FOURCCs —— 微软的wav格式
//FOURCC全称:Four-Character Codes
//FOURCC的详细类型大全,可以直接Google;
ATOM结构:
一般结构:
bytes 0-3 atom size (including 8-byte size and type preamble)
bytes 4-7 atom type
bytes 8..n data
如果4字节无法描述ATOM的大小,则ATOM结构会变成如下:
bytes 0-3 always 0x00000001
bytes 4-7 atom type
bytes 8-15 atom size (including 16-byte size and type preamble)
bytes 16..n data
结构中所描述的data也并不是真正的视频/音频data,data是指该FOURCC类型的数据,这个数据很可能是文件类型信息或者音视频信息。
另外,在写mp4文件的时候,对于mdat这个ATOM,一般是先将ATOM size填写0,待数据写完之后,再回过来填入具体大小。