Audio Video Interleave

Aus Mikiwiki
Zur Navigation springen Zur Suche springen

Das Dateiformat Audio Video Interleave / AVI ist ein Videoformat (Containerformat). In einer AVI-Datei können mehrere Video-, Audio- und Text-Untertiteldatenströme vorhanden sein, die mit verschiedenen Verfahren kodiert sein können. In einer AVI-Datei werden Audio- und Videodaten ineinander verzahnt ("interleaved") abgespeichert.

Die erste Definition von AVI wurde von der Firma Microsoft vom Resource Interchange File Format / RIFF abgeleitet und wurde als einheitliche Lösung für die Wiedergabe von kurzen Videodateien geschaffen. Die meisten AVI-Dateien nutzen die 1996 von der Matrox-Opendml-Gruppe vorgestellten Erweiterungen. Diese Dateien werden von Microsoft in begrenztem Umfang unterstützt und sind inoffiziell als AVI 2.0 bekannt. Das AVI-Format ist heute eines der unter Microsoft Windows meistverwendeten Videoformate und wird vor allem für Divx- und Divx 4-Videos verwendet

Typ Container
Codecs MJPEG, MPEG-4, DV, Windows uncompressed, Cinepak, Indeo, Microsoft Video usw.
Editierbarkeit unterschiedlich, je nach Codec
Streaming nicht möglich
Videostream 1
Audiostreams 0 bis 99
Dateigrösse Standard-AVI-Dateien (AVI 1.0) dürfen bis 4 GB gross sein. AVI 2.0-Dateien können die vom Dateisystem erlaubte Grösse erreichen. AVI 2.0 (auch: Opendml AVI, OpdenDML AVI) kann mehrere AVI 1.0-Dateien in einer Datei speichern. Microsoft rät von der Verwendung von Opendml stark ab und empfiehlt stattdessen seine eigenen Formate ASF und WMV.

Spezifikation

Videocodec Divx oder Xvid
Audiocodec MP3
Video Bitrate 500 - 2'000 (sinnvoll: 700 - 1'200)
Audio Bitrate 64 - 224 (sinnvoll: 96 - 128)
Samplerate 44'100 oder 48'000 (sinnvoll: 48'000)
Framerate beliebig (sinnvoll: 25)
Auflösung beliebig (sinnvoll: 576 x 432 oder 640 x 480)

AVI ist ein sehr offenes Format und beschreibt eigentlich nur, dass es sich bei einer Datei grundsätzlich um eine Videodatei handelt. Der Inhalt kann sowohl aus Video- und Audiodaten, aber auch nur aus Video- oder nur aus Audiodaten. Eine AVI-Datei kann aber auch nur einen Verweis auf die eigentlichen Videodaten beinhalten (z. B. bei DPS-Videosystemen) - in diesem Fall liegen die meist sehr umfangreichen Videodaten auf einem eigenen sehr schnellen Festplattensystem und die Projektdateien auf den gewöhnlichen Systemfestplatten.

AVI-Dateien können komprimierte oder unkomprimierte Videodaten enthalten. Eine AVI-Datei ist nur ein Container, der Audio- und Videodaten verschiedenster Codecs aufnimmt. Die Effizienz und die Filmqualität hängen vom verwendeten Codec ab (meist MPEG, Divx oder WMV). Der Four-CC-Code (Four Character Code) im Header einer AVI-Datei gibt an, in welchem Format und mit welchem Codec die Videodaten gespeichert sind; für Audiodaten kommen TwoCCs (Two Character Code) zum Einsatz. Neben den vielen Standardcodecs gibt es auch zahlreiche Softwareanbieter, die zusätzliche Codecs für spezielle Anwendungen anbieten. Auf Microsoft Windows-Systemen werden DV-Dateien im AVI-Format gespeichert.

Eine AVI-Datei kann ein MPEG-1-Video enthalten, muss aber nicht.

Es gibt einen Hack, der es AVI-Dateien erlaubt, Ogg Vorbis Audio-Streams zu enthalten, sie aber auch inkompatibel zu Standard-AVI-Dateien macht. Mplayer unterstützt die Wiedergabe solcher Dateien. Eine Spulfunktion ist auch implementiert, jedoch wird diese stark von schlecht umgewandelten Dateien mit verwirrenden Headers gestört. Leider schreibt der einzige Encodierer, der fähig ist, solche Dateien zu erzeugen (NanDub), solch problematischen Header.

Hinweis: DV-Kameras können Raw-DV-Streams erzeugen, welche von DV-Aufnahmetools in zwei unterschiedliche Typen von AVI-Dateien konvertiert werden. Die AVI-Datei enthält dabei entweder separate Audio- und Video-Streams, die MPlayer wiedergeben kann, oder den unveränderten DV-Stream. An dessen Unterstützung wird gerade gearbeitet.

Für die Aufzeichnung in einer AVI-Datei gibt es standardkonform zwei Methoden:

  • AVI-Typ 1 (Interleaved): Die AVI-Datei enthält die Audio- und Videodaten als einen einzigen Strom mit paketweise ineinandergeschachtelten Audio- und Videodaten. Dies ist die empfohlene und meistverwendete Form. Dieses Format kann nur mit Directshow abgespielt werden. Leider erzeugen einige Werkzeuge solche AVI-Dateien mit schlechter Synchronisation. Mplayer erkennt diese als interleaved, was zum Verlust von A/V-Sync führen kann (möglicherweise erst beim Vor-/Zurückspulen). Solche Dateien sollten non-interleaved (mit der "-ni"-Option) abgespielt werden.
  • AVI-Typ 2 (Non-Interleaved): Die Audio- und Videodaten sind getrennt. Als erstes kommt der ganze Videostream, danach der ganze Audiostream. Diese Art der Speicherung erfordert viel Suchen in der Datei, was die Wiedergabe vom Rechnernetz oder von CD-ROM schwierig macht. Im Unterschied zu AVI-Typ 1 werden die Audiodaten (wie im ursprünglichen Video) sowohl als Bestandteil des Videostroms, als auch aus Kompatibilitätsgründen in einem eigenen Audiostrom gespeichert. Dadurch sind AVI-Typ 2-Dateien etwas grösser: Durch die doppelt vorhandenen Audiodaten kommen zu den 3.7 MBit/s des Datenstroms noch zusätzlich 192 KBit/s hinzu. Darüber hinaus erfordert AVI-Typ 2 etwas mehr Rechenaufwand als Typ 1.

Mplayer unterstützt zwei Arten des timings für AVI-Dateien:

  • Die bps-basierte Methode fusst auf der Bitrate/Samplerate des Video-/Audio-Streams und wird von den meisten Playern verwendet (u. a. avifile und Windows Media Player). Dateien mit defekten Headern und Dateien, die mit VBR-Audio aber nicht VBR-unterstützendem Encoder erstellt wurden, führen bei dieser Methode zu A/V-Desync (meistens beim Spulen).
  • Die interleaving-basierte Methode benutzt nicht mehr den Wert der Bitrate sondern die relative Position des Audio-Pakets zum aktuellen Video-Paket, was einige falsch codierte Dateien mit VBR-Audio abspielbar macht.

Jeglicher Audio- und Videocodec ist erlaubt. Zu bedenken ist aber, dass VBR-Audio von den meisten Abspielprogrammen nicht gut unterstützt wird. Das AVI-Dateiformat macht es möglich, VBR-Audio zu verwenden, doch die meisten Abspielprogramme erwarten CBR-Audio, weswegen VBR-Audio nicht funktioniert. VBR ist ungewöhnlich, und Microsofts Spezifikation zu AVI beschreibt nur CBR-Audio. Ausserdem ist zu bedenken, dass die meisten AVI-Encoder/Multiplexer schlechte Dateien mit VBR-Audio erzeugen. Es gibt nur zwei Ausnahmen: NanDub und Mencoder.

FAQ

Informationen über eine AVI-Datei

AVInfo dient zur Anzeige von AVI-Header-Informationen. Im einzelnen werden Auflösung des Videos, Abspielzeit, Framerate des Videos und Videocodec angezeigt; ausserdem die Audio-samplerate, Abspielzeit, Audio-Bitrate und Audiocodec.

$ avinfo file.avi
file.avi, 102Mb
video: 528x384 00:05:40 25fps DivX5 2.3Mbps
audio: 48KHz  00:05:39 Stereo 128Kbps mp3

Der Shell-Befehl file zeigt folgende Informationen.

$ file file.avi
file.avi: RIFF (little-endian) data, AVI, 528 x 384, 25.00 fps, video: DivX 5,
audio:MPEG-1 Layer 3 (stereo, 48000 Hz)

Der Medienencoder Transcode zeigt folgende Informationen.

$ transcode -i file.avi -c 0-0
[transcode] V: import format | DivX5 RIFF data, AVI (V=ffmpeg|A=mp3)
[transcode] V: import frame  | 528x384  1.38:1
[transcode] A: import format | 0x55    MPEG layer-3 [48000,16,2] 128 kbps

Reparatur einer nicht-synchronen Audio-Spur

Zur Reparatur einer nicht-synchronen Audio-Spur wird avisync aus dem Transcode-Paket verwendet. Dies funktioniert nicht mit AVI-Dateien, die VBR/ABR MP3-Dateien verwenden.

Zerteilen einer AVI-Datei

Zum Zerteilen einer AVI-Datei wird avisplit aus dem Transcode-Paket verwendet. Dies funktioniert nicht mit AVI-Dateien, die VBR/ABR MP3-Dateien verwenden und sollte nur mit durch Transcode erzeugten AVI-Dateien versucht werden.

Extrahieren der Audio-Spur aus einer AVI-Datei

Mplayer kann dazu verwendet werden, den Ton zu extrahieren. Die Option "-vo null" veranlasst Mplayer, die Videospur nicht auszugeben. Im Beispiel erfolgt eine WAV-Extraktion der Audio-Spur, eine Umwandlung in PCM und Schreiben des Ergebnisses in die Datei "audio.wav".

$ mplayer -vo null -nogui -ao pcm -aofile audio.wav myvideo.avi

Weblinks

Herausgeber Sprache Webseitentitel Anmerkungen