Den Headerinformationen folgt ein LIST 'movi' Chunk, dieser enthält die Chunks für die aktuellen Daten im Stream, das können Bilder oder Audioinformationen sein. Die Datenchunks können entweder direkt im LIST 'movi' Chunk enthalten sein oder sie können in einen 'rec ' Chunk gruppiert werden. Die 'rec ' Gruppierung impliziert, daß die so verbundenen Chunks auf einmal vom Datenträger gelesen werden sollen. Speziell wird dies beim Abspielen von Interleaved Files benutzt, die von CD-ROM gelesen werden. Wie jeder RIFF Chunk enthalten die Datenchunks einen FOURCC um den Chunk Typ zu identifizieren - für jeden Stream einen Chunk. Außerdem ist noch ein TWOCC (TWO Character Code) enthalten, der den Typ der Informationen definiert, die in dem Chunk eingebunden sind. Z. B. ist dem Waveform Chunk der TWOCC 'wb' zugeordnet. Wenn ein Waveform Chunk der zweiten LIST 'hdrl' Streambeschreibung entspricht, hätte sie die FOURCC ´01wb´.
Sind nun alle Formatinformationen im Header, so enthalten die Audio-Daten in diesen Chunks keine Informationen über ihr Format. Ein Audio Chunk hat den folgenden Aufbau (## steht für den Streamidentifizierer):
WAVE Bytes '##wb' BYTE abBytes [];Video Daten können als gepackte oder ungepackte DIB's (Device Independent Bitmap) auftreten. Ein ungepackter DIB enthält den Wert BI_RGB in biCompression, in der zugehörigen BITMAPINFO Struktur. Ein gepackter DIB hat einen (beliebigen) anderen Wert in seinem biCompression Feld.
Mögliche Kompressoren wären:
Ein Datenchunk mit einem unkomprimierten DIB enthält RGB Video Daten. Diesen Chunks ist der TWOCC 'db' zugeordnet (db wird von DIB Bits abgeleitet). Ein Chunk mit komprimiertem DIB hat den TWOCC 'dc' (dc kommt von DIB compressed). Beide Daten Chunks enthalten Headerinformationen über die DIB's.
Der Datenchunk für einen nicht komprimierten DIB hat die folgende Form:
DIB Bits '##db' BYTE abBits[];Der Daten Chunk eines komprimierten DIB sieht folgendermaßen aus:
Compressed DIB '##dc' BYTE abBits[];Video Daten Chunks können auch neue Paletteneingänge definieren, diese werden benutzt, um während einer AVI-Sequenz Palettenupdates durchzuführen. Diese Chunks werden mit dem TWOCC 'pc' identifiziert (pc kommt von palette change).
Die folgende Datenstruktur definiert Paletteninformationen:
typedef struct { BYTE fFirstEntry; BYTE bNumEntries; WORD wFlags; PALETTEENTRY peNew; } AVIPALCHANGE;
Wenn man nun Palettenänderungen vornehmen will, muß man das im AVITF_VIDEO_PALCHANGES Flag in dwFlags angeben. Dieses Flag gibt an, ob im Videostream Palettenveränderungen enthalten sind und weist die Wiedergabesoftware darauf hin, die richtige Palette zu benutzen.