Es ist wichtig, einen häufigen Fehler zu berichtigen. Wenn Leute eine Datei mit .AVI-Erweiterung sehen denken sie sofort, dass es keine MPEG- Datei ist. Das ist nicht wahr. Zumindest nicht vollständig. Im Gegensatz zur verbreiteten Ansicht kann solche eine Datei MPEG1-Video enthalten.
Ein Codec ist nicht dasselbe wie ein Dateiformat.
Beispiele für Video-Codecs sind: MPEG1, MPEG2, DivX, Indeo5,
3ivx.
Beispiele für Dateiformate sind: MPG, AVI, ASF.
Theoretisch kannst du ein OpenDivX-Video und MP3-Audio in einer .MPG-Datei vereinigen. Die meisten Player könnten es jedoch nicht abspielen, da sie MPEG1-Video und MP2-Audio erwarten (im Gegensatz zu AVI besitzt MPG nicht die nötigen Felder, die die Video- und Audio-Streams beschreiben). Oder du könntest ein MPEG1-Video in ein .AVI geben. ffmpeg und MEncoder können solche Dateien erzeugen.
MPEG-Dateien kommen in unterschiedlichen Erscheinungen:
-vcd
-Option zum Abspielen verwenden.Serien von Frames bilden unabhängige Gruppen in MPEG-Dateien. Das
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, das das
Breiten-/Höhenverhältnis des Video-Streams 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 haben
diese Feld nicht, 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 OpenDMS. Microsoft tät von der Verwendung stark ab und propergiert ASF/WMV. Als ob das irgendwen kratzen würde.
Es gibt einen Hack, der es AVI-Dateien erlaubt, Ogg Vorbis Audio-Streams zu enthalten, sie aber auch inkompatibel zu Standard-AVIs macht. MPlayer unterstützt die Wiedergabe solcher Dateien. Eine Spulfunktion ist auch implementiert, jedoch wird diese start von schlecht konvertierten 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.
Es gibt 2 Arten von AVI-Dateien:
-ni
-Option) abgespielt
werden.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 verwendenm, aber die meinsten Player erwarten CBR- Audio, weswegen VBR-Audio nicht funktioniert. VBR ist ungewöhnlich, und Microsofts Spezifikation zu AVI beschreiben 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 habe 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 sehr 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 designt 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. (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.).
Hinweis: Die meisten QuickTime-Dateien benutzen Sorenson- Video und QDesign-Audio. Lies dazu die Sorenson-Codec-Sektion.
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.
In den VIVO-Videocodec- und VIVO-Audiocodec-Sektionen findest du Installationsanweisungen.
FLI ist ein sehr altes vom Autodesk Animator benutztes Dateiformat.
Es ist aber immer noch ein im Internet gebräucliches 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 -loop
-Option aktiviert hat). FLI-Dateien haben
keine Keyframes, was zu verunstalteten Bildern kurz nach dem Spulen
führt.
Ja, MPlayer kann RealMedia (.rm) Dateien lesen (demuxen). Spulen
(seeking) funktioniert, jedoch muss die -forceidx
-Option
verwendet werden (das Format unterstüzt Keyframes). Hier ist die Liste
der unterstützten RealVideo- und RealAudio-Codecs.
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 dekodiert (und diese auch mit MEncoder zu DivX/etc! encodiert). Spulen (seeking) 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 von unkomprimierten YUV 4:2:0 Bildern.
Dieses Format wird auf alten Sega Saturn CD-Rom-Spielen verwendet.
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 LIVE.COM Streaming Media-Bibliotheken benötigt.)
PVA ist MPEG-ähnliches Format, das von verschiedenen Windowsprogrammen benutzt wird, die bei DVB-TV-Karten mitgeliefert werden (z.B. MultiDec, WinTV).
Die PVA-Spezifikationen können an der folgenden Adresse heruntergeladen werden: http://www.technotr end.de/download/av_format_v1.pdf
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
unterstützt. 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 nicht das Spulen in GIF-Dateien. 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 selber aber eine feste Größe hat. Die Bildrate wird von einem optionalen Block vor jedem Bild kontrolliert, der die Anzeigedauer des nachfolgenden Bildes in Zentisekunen 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.
MPlayer ist ein Movie-(Film-) und kein Media-Player. Er kann auch einige Audioformate wiedergeben (diese sind in der unteren Sektion beschrieben). Dies wird jedoch nicht empfohlen, und du solltest besser xmms verwenden.
Du hast vielleicht Probleme mit der Wiedergabe einiger MP3-Dateien, die
MPlayer falsch als MPEGs erkennt und dementsprechend falsch oder gar
nicht wiedergibt. Dies kann nicht gelöst werden, ohne die
Unterstützung für einige kaputte MPEG-Dateien aufzugeben und wird
desshalb bis auf weiteres so bleiben. Die Option -demuxer
, welche
in der Manpage beschrieben wird, könnte dir in diesen Fällen
helfen.
Benötigt richtig installierte libogg
und
libvorbis
.
MPlayer kann die Bibliotheken von cdparanoia benutzen, um CDDA-Dateien wiederzugeben. Alle Kommandozeilenparameter von cdparanoia aufzuzählen gehört nicht zu den Aufgaben dieser Dokumentation.
Schau in der Manpage bei der Option -cdda
nach, wie mit ihr
Parameter an cdparanoia übergeben werden können.
MPlayer kann XMMS-Inputplugins benutzen, um eine Vielzahl von Dateiformaten abzuspielen. Es gibt Plugins für SNES-Spielemusik, SID-Musik (vom guten alten Commodore 64), viele Amiga-Formate, .xm, .it, VQF, musepack, Bonk shorten und viele weitere. Du findest sie auf der Seite für XMMS-Inputplugins.
Um dieses Feature benutzen zu können, brauchst du XMMS und musst
MPlayer mit ./configure --enable-xmms
compilieren. Funktioniert
das nicht, dann musst du eventuell die Pfade für die XMMS-Plugings und die
XMMS-Bibliotheken explizit mit --with-xmmsplugindir
und
--withxmmslibdir
angeben.