AVI视频封装格式分析
使用的工具
elecard video fomat analyer 与 WinHex
RIFF块
| RIFF(4Byte) | 数据块大小(4Byte) | 文件类型(4Byte) | 数据 |
|---|---|---|---|
| 0x52494646 | 0x0027d7d4 | 0x41564920(AVI) | … |
数据块大小=文件类型+数据
整个文件的大小=RIFF(4Byte)+数据块本身的大小(4Byte)+数据块大小

CHUNK块
CHUNK类型为:avih的结构数据

| CHUNK类型(4Byte) | CHUNK块大小(4Byte) 不包括类型与自身的4个字节 | CHUNK数据 |
|---|---|---|
| 0x61766968 | 0x00000038 | … 11 |
LIST块
| LIST (4Byte) | LIST块大小(4Byte) | LIST ID(4Byte) | LIST数据 |
|---|---|---|---|
| 0x4c495354 | 0x00000128 | 0x6864726C(hdrl) | … |
LIST块大小=LIST ID+LIST数据
整个LIST块的大小 =LIST(4Byte)+LIST块本身的大小(4Byte)+LIST块大小

hdrl LIST
这个LIST包含一个avih和若干个子LIST,每个子LIST表示一种码流的参数信息。

avih CHUNK
LIST ID 为hdrl 后面的数据格式,属于CHUNK块,即普通的块,格式见下文
ypedef struct
{
DWORD ChunID; // 必须为'avih'
DWORD ChunkSize; //本数据结构的大小,不包括最初的8個位元組(ID和Size兩個域)

本文深入探讨了AVI视频格式的封装结构,包括RIFF块、CHUNK块、LIST块的详细解释。重点分析了hdrl LIST中的avih和strl LIST,以及strh和strf CHUNK在视频和音频码流中的作用。同时,提到了JUNK CHUNK、movi LIST中的帧数据处理和idx1 CHUNK的索引功能。

8947

被折叠的 条评论
为什么被折叠?



