音视频文件格式解析:AVI与ASF的深度剖析
1. AVI文件结构解析
1.1 流数据列表
紧跟在头列表之后的是流数据列表,其FOURCC代码为movi。该列表之后是一系列的块,也就是构成流的音频和视频样本。流中的每个块都由一个FOURCC代码标识。FOURCC值由流编号加上表1中的双字符代码组成。
双字符代码 | 描述 |
---|---|
db | 未压缩视频 |
dc | 压缩视频 |
pc | 调色板更改 |
wb | 音频数据 |
流编号和代码连接起来就形成了一个FOURCC值。例如,流0中的视频可以标识为00db或00dc,流1上的音轨可以标识为01wb。每个样本的内部结构,除了用于标识其为流样本的FOURCC代码外,会因样本使用的压缩技术而有很大差异。一般来说,不同流的样本会在流数据列表中交错排列。
另外,movi列表中也可以包含一个“rec ”块列表。“rec ”FOURCC代码标识的流数据块意味着要同时作为一个单元来读取,这在从CD - ROM读取紧密交错的数据时非常有用,因为读取下一个块的任何延迟都可能导致播放时丢帧。