MPEG-Dateien treten in unterschiedlichen Erscheinungen auf:
Serien von Frames bilden unabhängige Gruppen in MPEG-Dateien. Dies bedeutet, dass du eine MPEG-Datei mit einem Standard-Dateitool (wie dd oder cut) schneiden und zusammenfügen kannst und dieses trotzdem vollständig funktionsfähig bleibt.
Ein wichtiges Feature von MPGs ist, dass sie ein Feld besitzen, welches das Breiten-/Höhenverhältnis des Videostreams angibt. SVCDs haben zum Beispiel Video mit einer Auflösung von 480x480, und im Header ist dieses Feld auf 4:3 gesetzt. Also wird es als 640x480 abgespielt. AVI-Dateien fehlt dieses Feld oft, sodass diese während des Encodierens skaliert werden müssen oder die Option -aspect bei der Wiedergabe verwendet werden muss.
AVI (Audio Video Interleaved) ist ein von Microsoft entworfenes und weitverbeitetes Multifunktionsformat, das zur Zeit hauptsächlich für DivX- und DivX4-Videos verwendet wird. Es hat einige bekannte Nachteile, und ihm fehlen ein paar wichtige Features (zum Beispiel Streaming). Es unterstützt einen Videostream und 0 bis 99 Audiostreams. Die Dateien können bis zu 2 GB groß sein. Es existiert eine Erweiterung für größere Dateien, genannt OpenDML. Microsoft rät von der Verwendung dringend ab und propagiert ASF/WMV. Als ob das irgendwen kratzen würde.
Es gibt einen Hack, der es AVI-Dateien erlaubt, Ogg Vorbis Audio-Streams zu enthalten, was sie aber auch inkompatibel zu Standard-AVIs macht. MPlayer unterstützt die Wiedergabe solcher Dateien. Eine Spulfunktion ist auch implementiert, jedoch wird diese stark von schlecht konvertierten Dateien mit verwirrenden Headern gestört. Leider schreibt der einzige Encodierer, der fähig ist, solche Dateien zu erzeugen (NanDub), solch problematische Header.
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.
Es gibt 2 Arten von AVI-Dateien:
MPlayer unterstützt zwei Arten des Timings für AVI-Dateien:
Jeglicher Audio- und Video-Codec ist erlaubt. Aber bedenke, dass VBR-Audio von den meisten Playern nicht gut unstützt wird. Das Dateiformat macht es möglich, VBR-Audio zu verwenden, aber die meisten Player erwarten CBR-Audio, weswegen VBR-Audio nicht funktioniert. VBR ist ungewöhnlich, und Microsofts Spezifikation zu AVI beschreibt nur CBR-Audio. Bedenke auch, dass die meisten AVI-Encoder/Multiplexer schlechte Dateien mit VBR-Audio erzeugen. Es gibt nur zwei Ausnahmen: NanDub und MEncoder.
ASF (Active Streaming Format) kommt von Microsoft. Sie haben zwei Arten von ASF entwickelt, v1.0 und v2.0. v1.0 wird von ihren Media Tools (Windows Media Player und Windows Media Encoder) verwendet und ist streng geheim. v2.0 ist veröffentlicht und patentiert :). Natürlich sind sie unterschiedlich und besitzten überhaupt keine Gemeinsamkeiten (es ist nur ein weiteres Spiel mit den Gesetzen). MPlayer unterstützt nur v1.0, weil noch niemand v2.0 Dateien gesehen hat :). Beachte, dass .ASF-Dateien heute auch mit der Extension .WMA oder .WMV vorkommen.
Diese Formate sind von Apple entworfen und können jeden beliebigen Codec enthalten, CBR oder VBR. Normalerweise haben sie die Endung .QT oder .MOV. Seitdem die MPEG4-Gruppe QuickTime als das empfohlene Dateiformat für MPEG4 ausgewählt hat, kommen ihre .MOV-Dateien mit den Endungen .MPG oder .MP4 daher. (Interessanterweise sind bei diesen Dateien die Video- und Audiostreams richtige MPG- und AAC-Dateien. Mit den den Optionen -dumpvideo und -dumpaudio kannst du sie sogar extrahieren.).
MPlayer demuxt nun auch fröhlich VIVO-Dateiformate. Der grösste Nachteil des Formates ist, dass es keinen Index-Block besitzt, auch keine fixe Paketgröße oder Sync-Bytes. Die meisten Dateien besitzen nicht mal Keyframes, also vergiss das Spulen!
Der Videocodec von VIVO/1.0-Datei ist Standard-h.263. Der Videocodec der VIVO/2.0 Dateien ist veränderter, nichtstandard-h.263. Bei Audio ist es dasselbe, es ist g.723 (Standard) oder Vivo Siren.
FLI ist ein sehr altes vom Autodesk Animator benutztes Dateiformat. Es ist aber immer noch ein im Internet gebräuchliches Dateiformat für kurze Animationen. MPlayer demuxt und decodiert FLI-Filme und ist sogar fähig, in ihnen vor- und zurückzuspulen (nützlich, wenn man looping mit der Option -loop aktiviert hat). FLI-Dateien haben keine Keyframes, was zu verunstalteten Bildern kurz nach dem Spulen führt.
NuppelVideo ist, soweit ich weiss, ein TV-Aufnahmeprogramm. MPlayer kann dessen .NUV-Dateien (nur NuppelVideo 5.0) lesen. Diese Dateien können unkomprimierte YV12-, komprimierte YV12+RTJpeg-, komprimierte YV12-RTJpeg+lzo- und komprimierte YV12+lzo-Frames enthalten, welche MPlayer alle decodiert (und diese auch mit MEncoder zu MPEG4 (DivX)/etc!) encodiert). Spulen funktioniert.
yuv4mpeg / yuv4mpeg2 ist ein Dateiformat, das von den mjpegtools-Programmen verwendet wird. Du kannst damit Video in diesem Format einlesen, produzieren, filtern oder encodieren. Das Dateiformat ist eigentlich eine Sequenz unkomprimierter YUV 4:2:0 Bilder.
RoQ-Dateien sind Multimedia-Dateien, welche in gewissen ID-Spielen wie Quake III und Return to castle Wolfenstein benutzt werden.
Dies ist ein neues Dateiformat von
Xiphophorus. Es kann beliebige
Video- und Audio-Codecs enthalten, sowohl CBR als auch VBR. Man benötigt
dazu installierte libogg
- und
libvorbis
-Bibliotheken vor
der Kompilierung von MPlayer, um sie wiedergeben
zu können.
SDP ist ein IETF-Standardformat, das Video- und/oder Audio-RTP-Streams beschreibt. (Dazu werden die "LIVE555 Streaming Media"-Bibliotheken benötigt.)
PVA ist ein MPEG-ähnliches Format, das von verschiedenen Programmen benutzt wird, die bei DVB-TV-Karten mitgeliefert werden (z.B. MultiDec, WinTV unter Windows).
NSV (NullSoft Video) ist das vom Winamp-Player zum Streamen von Audio und Video verwendete Dateiformat. Video ist VP3, VP5 oder VP6, Audio is MP3, AAC oder VLB. Die Nur-Audio-Version von NSV hat die Erweiterung .nsa. MPlayer kann beides abspielen, NSV-Streams und -Dateien. Beachte bitte, dass die meisten Dateien von der Winamp-Seite VLB-Audio verwenden, welches noch nicht decodiert werden kann. Darüber hinaus benötigen Streams von dieser Seite einen extra Layer zum Extrahieren der Pakete, der immer noch auf seine Implementierung wartet (diese Dateien sind ohnehin nicht abspielbar, weil sie VLB-Audio verwenden).
Matroska ist ein offenes Containerformat. Lies mehr dazu auf der offiziellen Site.
NUT ist das von MPlayer- und FFmpeg-Leuten entwickelte Containerformat. Beide Projekte unterstützen es. Lies mehr dazu auf der offiziellen Site.
Das GIF-Format ist ein weit verbreitetes Format
für Grafiken im Web. Es gibt zwei Versionen der GIF-Spezifikationen, GIF87a und
GIF89a.
Der größte Unterschied liegt darin, dass GIF89a Animationen erlaubt.
MPlayer unterstützt beide Formate mit
Hilfe der libungif
-Bibliothek oder
einer anderen libgif-kompatiblen Bibliothek.
Nicht-animierte GIFs werden als Ein-Bild-Videos dargestellt. (Mit den
Optionen -loop und -fixed-vo können solche
GIFs länger angezeigt werden.)
Momentan unterstützt MPlayer das Spulen in GIF-Dateien nicht. Die einzelnen Bilder in GIF-Dateien haben nicht zwangsläufig die gleichen Dimensionen, und auch nicht eine feste Bildrate. Jedes Bild hat vielmehr seine eigenen Dimensionen und soll an einer bestimmten Position auf einem Bereich angezeigt werden, der selbst aber eine feste Größe hat. Die Bildrate wird von einem optionalen Block vor jedem Bild kontrolliert, der die Anzeigedauer des auf ihn folgenden Bildes in hundertstel Sekunden angibt.
Standard-GIF-Dateien enthalten 24 Bit RGB-Bilder mit einer indizierten Palette, die höchstens bis 8 Bit geht. Die Bilder sind normalerweise mit dem LZW-Algorithmus komprimiert. Es gibt aber auch GIF-Encoder, die unkomprimierte Bilder erzeugen, um die Patentprobleme mit dem LZW-Algorithmus zu umgehen.
Wenn bei deiner Distribution die libungif
nicht dabei ist, dann lade sie
von der libungif-Homepage
herunter. Detaillierte technische Informationen findest
du in den
GIF89a-Spezifikationen.