Audio Video Interleave: Unterschied zwischen den Versionen
Michi (Diskussion | Beiträge) |
Michi (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
Zeile 48: | Zeile 48: | ||
Für die Aufzeichnung in einer AVI-Datei gibt es standardkonform zwei Methoden: | Für die Aufzeichnung in einer AVI-Datei gibt es standardkonform zwei Methoden: | ||
*<b>AVI-Typ 1 (Interleaved):</b> 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. | * <b>AVI-Typ 1 (Interleaved):</b> 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. | ||
*<b>AVI-Typ 2 (Non-Interleaved):</b> 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. | * <b>AVI-Typ 2 (Non-Interleaved):</b> 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: | Mplayer unterstützt zwei Arten des timings für AVI-Dateien: | ||
*Die <b>bps-basierte</b> 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 <b>bps-basierte</b> 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 <b>interleaving-basierte</b> Methode benutzt nicht mehr den Wert der Bitrate sondern die relative Position des Audio- | * Die <b>interleaving-basierte</b> 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 | 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 == | == FAQ == | ||
Zeile 104: | Zeile 104: | ||
{{cat|Dateiformat}} | {{cat|Dateiformat}} | ||
{{cat|Medienformat}} | {{cat|Medienformat}} | ||
{{cat|UNFERTIG}} | |||
{{cat|Videoformat}} | {{cat|Videoformat}} |
Version vom 25. Januar 2009, 11:36 Uhr
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
Anzeige von 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
Shell-Befehl file.
$ 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)
Medienencoder Transcode.
$ 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