RIFF (Resource Interchange File Format) ist ein Containerformat zur Speicherung von Multimedia-Daten, das 1991 von Microsoft und IBM entwickelt und mit den Multimediaerweiterungen für Windows 3.1 eingeführt wurde. Als Grundlage für das RIFF-Dateiformat diente das IFF-Dateiformat (Interchange File Format). RIFF-Dateien können beliebige Multimedia-Ressourcen in einer Datei abspeichern (z.B. Bitmaps, Audio- und Videodaten oder RTF-Texte).
Die einfachste Form z.B. einer AVI Datei wäre ein einziger Videostream, meistens werden aber dazu noch Audio-Informationen gespeichert. Allgemein ist es möglich, auch spezielle Multimedia-Sequenzen wie etwa einen MIDI-Track als zusätzlichen Datenstream in einer AVI-Datei aufzunehmen. Um Audioinformationen in Stereoton zu sichern, benötigt man dazu nur einen Stream, genauso als würde nur Mono gespeichert werden. Weiterhin sind Control-Tracks möglich, etwa um externe Geräte zu steuern.
Aufbau am Beispiel “Wave“
Der RIFF-Chunk (auch RIFF-Header) identifiziert die Datei als WAV-Datei:
Offset | Länge | Inhalt |
---|---|---|
0 | 4 bytes | 'RIFF' |
4 | 4 bytes | <file length - 8> |
8 | 4 bytes | 'WAVE' |
Der FORMAT-Chunk hat einige Parameter wie z. B. die Sample-Rate gespeichert.
- 12 4 bytes 'fmt'
- 16 4 bytes 0x00000010 // Länge der fmt-Daten (16 Bytes)
- 20 2 bytes 0x0001 // Format-Tag: 1 = PCM
- 22 2 bytes <channels> // Kanäle: 1 = mono, 2 = stereo
- 24 4 bytes <sample rate> // Abtastrate pro Sekunde: z.B., 44100
- 28 4 bytes <bytes/second> // Sample-Rate * Block-Align
- 32 2 bytes <block align> // Kanäle * Bits/Sample / 8
- 34 2 bytes <bits/sample> // 8 oder 16
Der DATA-Chunk enthält die tatsächlichen Audiodaten
- 36 4 bytes 'data'
- 40 4 bytes <Länge des Datenblocks>
- 44 bytes <sample data>
Siehe auch
IFF (Interchange File Format), AIFF (Audio Interchange File Format)