Microsoft Audio/Video Interleaved: Difference between revisions

From MultimediaWiki
Jump to navigation Jump to search
No edit summary
 
Line 31: Line 31:
An AVI has this RIFF structure:
An AVI has this RIFF structure:


  RIFF: name: `AVI ' (space at end)
  RIFF "AVI " (space at end)
     LIST: name: `hdrl'
     LIST "hdrl"
     DATA: name: `avih', len: 56
     DATA "avih", len: 56
         LIST: name: `strl'
         LIST "strl"
             DATA: name: `strh', len: 56
             DATA "strh", len: 56
             DATA: name: `strf'
             DATA "strf"
         LIST: name: `strl'
         ''LIST "strl"''
            DATA: name: `strh', len: 56
             ...
             DATA: name: `strf'
     ''LIST: name: `INFO''' (optional)
     LIST: name: `INFO'
        optional info
    LIST: name: `movi'
        DATA: name: `00dc'
        DATA: name: `01wb'
         ...
         ...
     DATA: name: `idx1'
     LIST "movi"
        DATA "00dc"
        DATA "01wb"
        ...
    DATA "idx1"

Revision as of 11:56, 16 January 2006

Uses RIFF tree for structure.

RIFF

General structure for all RIFF nodes:

Nodes can be data or LIST, data structure is:

4 bytes name (a.k.a. FourCC)
4 bytes length, 32 bit integer in little-endian
length bytes data
optionally 1 byte padding if length is odd

LIST structure is:

4 bytes string "LIST"
4 bytes length, 32 bit integer in little-endian
4 bytes name
length bytes data - data is a list of nodes.
optionally 1 byte padding if length is odd

An entire RIFF file has the structure:

4 bytes string "RIFF"
4 bytes length, 32 bit integer in little-endian
4 bytes name
length bytes data - data is a list of nodes.

AVI

An AVI has this RIFF structure:

RIFF "AVI " (space at end)
    LIST "hdrl"
    DATA "avih", len: 56
        LIST "strl"
            DATA "strh", len: 56
            DATA "strf"
        LIST "strl"
            ...
    LIST: name: `INFO' (optional)
        ...
    LIST "movi"
        DATA "00dc"
        DATA "01wb"
        ...
    DATA "idx1"