Resource Interchange File Format
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 anschließende 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 schließlich 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)