相对于点播 来说,解析一个视频文件结构格式必不可少,它关系到点播 的播放、快速定位等等。
AVI文件采用的是RIFF文件结构方式,RIFF(Resource Interchange File Format,资源互换文件格式)
是微软公司定义的一种用于管理windows环境中多媒体数据的文件格式,波形音频wave,MIDI和数字视频AVI都采用这种格式存储。
整个RIFF文件可以看成一个数据块,其数据块ID为RIFF,称为RIFF块。一个RIFF文件中只允许存在一个RIFF块。所有其他块都是RIFF块的子块,子块有两类,其中有一种子块的ID为"LIST",称为LIST,LIST块中可以再包含一系列的子块。另一类不能包含子块的,暂且称为普通子块。可见RIFF文件是按树形结构被组织
下面是一个RIFF文件结构的例子
+ RIFF
| + LIST
| | + sub chunk
| | + LIST
| | | + sub chunk
| | | + sub chunk
| | | + sub chunk
| | + LIST
| | | + sub chunk
| | | + sub chunk
| | | + sub chunk
| | + sub chunk
| + LIST
| + sub chunk
RIFF和LIST块分别比普通的数据块多一个被称为形式类型(Form Type)和列表类型(List Type)的数据域,其组成如下:
1、4字节的数据块标记(Chunk ID)
2、数据块的大小
3、4字节的形式类型或者列表类型
4、数据
所以,我们可以进行如下定义
TIndexHeader = record
Name