Basic Description
AVIs are Microsoft's approach to storing movies. It uses the RIFF format to store information in a tree structure. Both audio and video data are encoded using the Windows' installable codecs.Basic File Format
Basic RIFF File Layout.RIFF: AVI | ||||
LIST: hdrl | ||||
avih | ||||
LIST: strl | ||||
strh | ||||
strf | ||||
strd (optional) | ||||
strn (optional) | ||||
LIST: movi | ||||
LIST: rec_ chunks 1..n | ||||
xx data chunks where is the stream number | ||||
xx data chunks where is the stream number | ||||
idx1 |
Structure of the 'avih' AVI header chunk.
Structure of the required 'strh' stream header chunk.
vids: Video Stream- RLE
- iv32
auds: Audio Stream
Structure of the required 'strf' stream format chunk.
Structure of the optional 'strd' chunk.
Structure of the optional 'strn' stream name chunk.
ASCII name of stream. "C-style" last byte zero.Structure of the 'rec ' chunk.
Structure of the 'idx1' header chunk.
Portability
Encoding AVIs on other platforms than MS-Windows can already be a tedious task, but trying to play/open files is next to impossible, due to the large number of codecs that could be used. It has been tried before (I've seen a DOS-Player somewhere), but once it comes to undocumented codecs ..... that's it.But then again, why should Microsoft use a portable format?
Trademarks, Patents and Royalties
To my knowledge: none.Note that the format of certain chunks contained in RIFFs may very well be patented. A number of video and audio codecs are based of patents. If any of the more popular codecs belong to this group is beyond my knowledge.
(please read the disclaimer)
Cross-Checking Software
This section is for programmers, who wish to cross-check their implementation with others. This is an incomplete list of programs, which are available as freeware / shareware / try-before-buy etc.The following software is able to decode AVIs:
- Microsoft ActiveMovie
- MPEG2AVI