AVI RIFF Form (Compact 2013)
3/26/2014
AVI files use the AVI RIFF form. The AVI RIFF form is identified by the FOURCC (four-character code) 'AVI '.
All AVI files include two mandatory LIST chunks. These chunks define the format of the stream and stream data.
AVI files might also include an index chunk. This optional chunk specifies the location of data chunks within the file.
An AVI file with these chunks has the following form:
RIFF ('AVI '
LIST ('hdrl'
.
.
.
)
LIST ('movi'
.
.
.
)
['idx1'<AVI Index>]
)
The LIST chunks and the index chunk are subchunks of the RIFF 'AVI ' chunk.
The 'AVI ' chunk identifies the file as an AVI RIFF file.
The LIST 'hdrl' chunk defines the format of the data and is the first required LIST chunk.
The LIST 'movi' chunk contains the data for the AVI sequence and is the second required LIST chunk.
The 'idx1' chunk is the index chunk.
AVI files must keep these chunks in the proper sequence.
The LIST 'hdrl' and LIST 'movi' chunks use subchunks for their data. The following example shows the AVI RIFF form expanded with the chunks needed to complete the LIST 'hdrl' and LIST 'movi' chunks.
RIFF ('AVI '
LIST ('hdrl'
'avih'(<Main AVI Header>)
LIST ('strl'
'strh'(<Stream header>)
'strf'(<Stream format>)
'strd'(<additional header data>)
'strn'(<Stream name>)
...
)
.
.
.
)
LIST ('movi'
{SubChunk | LIST ('rec '
SubChunk1
SubChunk2
.
.
.
)
.
.
.
}
.
.
.
)
['idx1'<AVI Index>]
)