一、前提——简析RIFF文件格式
简介
RIFF(Resource Interchange File Format)是由Microsoft提出的一种多媒体文件的存储方式。不同编码的视音频文件可按照RIFF的规则保存。在读取文件时同样根据RIFF的规则解析文件。
结构
RIFF文件是一种树状结构,其基本单元是List和Chunk,相当于树的节点和叶子,又类似Windows系统的目录和文件。RIFF文件主要由FOURCC、CHUNK、LIST和RIFF文件头组成。
(1)FOURCC
占4个字节,一般表示4个ASCII字符。ChunkID、ListType和起始标识符(比如:“LIST”、“RIFF”)等信息都是用FOURCC表示。
(2)CHUNK
一个数据块结构如下:
ChunkID:识别该Chunk为哪类数据,视频或音频等等。
ChunkSize:4个字节,表ChunkData部分的数据大小(以字节为单位)。
ChunkData:该Chunk存储的具体数据。
(3)LIST
“LIST”:固定的,每个LIST都以它开头。
ListSize:4个字节,表ListType和ListData总大小。
ListType:标识该List数据类型。
ListData:该List存储的具体数据。由Chunk和子List组成,大小和次序不定。
(4)RIFF文件头
“RIFF”:标志该文件为RIFF文件。
FileSize:4个字节,表FileType和FileData总大小。
FileType:说明文件类型,如“AVI”、“WAV”等等。
FileData:具体数据,可是LIST也可是CHUNK。
RIFF格式规定,只有 RIFF及LIST块可以含有子块,其它的块不允许包含子块。