AVI
AVI (Audio Video Interleave) ist ein von Microsoft definiertes Multimedia-Format, das von dem für Windows 3.1 eingeführten RIFF (Resource Interchange File Format) abgeleitet ist. AVI ist auf MS Windows-basierten Systemen der De-facto-Standard für Audio-/Video-Daten. Die wichtigste Alternative zu AVI stellt MPEG (Moving Picture Experts Group) dar und ist im Gegensatz zu AVI ein breit abgestützter Standard.Bei AVI werden die unterschiedlichen Daten in ineinander verschachtelten ("interleaved") Datenstrukturen, so genannten streams abgespeichert. Das AVI-Format bildet hierbei lediglich den Container - die Daten selbst können mittels unterschiedlicher Verfahren komprimiert sein. Die Aufgabe der (De)Komprimierung übernimmt der Codec. Die Kennzeichnung, in welchem Format die eigentlichen Daten vorliegen, steht im FourCC (Four Character Code), einem vier Zeichen Langen Feld im Header der AVI-Datei.
Hier ein Auszug aus dem AVI Header:
Alle 32bit Zahlen (Länge 4) sind BigEndian da das AVI Format auf der x86 Architektur seinen Ursprung nahm.
Beispiel zur Umrechnung der Zahlen im AVI Header Offset 32: (Breite des Videos in Pixel) Daten im Header: 80 02 00 00 (Länge 4 in BigEndian Format)--> eigentliche Zahl im Hex System: 00 00 02 80 --> 0x280h --> Zahl im Dezimal System : 640d.h. aa bb cc dd --> dd cc bb aa
Dieser Teil des Headers startet bei Offset 32, d.h. man muss 32 zu den unten genannten Offsets addieren.
base offset = 32offset size description 0 4 time delay between frames in microseconds 4 4 data rate of AVI data 8 4 padding multiple size, typically 2048 12 4 parameter flags 16 4 number of video frames 20 4 number of preview frames 24 4 number of data streams (1 or 2) 28 4 suggested playback buffer size in bytes 32 4 width of video image in pixels 36 4 height of video image in pixels 40 4 time scale, typically 30 44 4 data rate (frame rate = data rate / time scale) 48 4 starting time, typically 0 52 4 size of AVI data chunk in time scale units 156 4 FourCC Video Codec in ASCII encoding
Es exstieren noch weitere Header und Codec spezifische Unterheader.