Containerformate
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
Datei-/Containerformat.
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 legen.
ffmpeg
und
MEncoder können
solche Dateien erzeugen.
VideoformateMPEG-Dateien
MPEG-Dateien kommen in unterschiedlichen Erscheinungen:
MPG: Dies ist die grundlegende
Form des MPEG-Dateiformates.
Es enthält MPEG1-Video und MP2-(MPEG-1 layer 2) oder selten MP1-Audio.
DAT: Dies ist dasselbe Format wie MPG mit einer unterschiedlichen
Endung. Es wird auf Video-CDs benutzt.
Auf Grund der Tatsache, wie VCDs erzeugt werden und wie Linux entworfen
wurde, kann man die DAT-Dateien einer VCD weder abspielen noch kopieren.
Du musst die Option zum Abspielen einer Video-CD
verwenden.
VOB: VOB ist das MPEG-Dateiformat bei DVDs.
Es ist das gleiche wie MPG mit zusätzlicher Unterstützung für Untertitel
oder nicht-MPEG-(AC3)-Audio. Es enthält MPEG2-Video und normalerweise
AC3-Audio, aber auch DTS, MP2 und unkomprimierte LPCMs sind erlaubt.
Lies die DVD-Sektion!
TY: Dies ist ein TiVo MPEG-Stream. Er enthält gleichermaßen MPEG-PES-Daten
für Audio- und Video-Streams wie auch extra Informationen wie geschlossene
Titel. Der Container ist kein MPEG-Programmstream, sondern ein geschlossenes,
von TiVo erzeugtes Format. Mehr Informationen zum TiVo-Streamformat
findest Du auf der
der TyStudio-Seite.
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 besitzen
dieses Feld nicht, sodass diese während des Encodierens skaliert werden
müssen oder die Option bei der Wiedergabe verwendet
werden muss.
AVI-DateienAVI (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, 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:
Interleaved: Audio- und Video-Inhalt
werden paketweise ineinander geschachtelt. Die ist üblich, wird empfohlen
und auch meist verwendet. Einige Tools erzeugen interleaved AVIs mit
schlechter Synchronisation.
MPlayer erkennt diese als interleaved, was
zum Verlust von A/V-Synchronisation führen kann (evtl. erst beim Vor-/Zurückspulen).
Diese Dateien sollten non-interleaved (mit der Option )
abgespielt werden.
Non-interleaved: Als erstes kommt der
ganze Videostream, dann dann der ganze Audiostream. Dies erfordert viel
Suchen in der Datei, was die Wiedergabe vom Netzwerk oder von CDROM schwierig
macht.
MPlayer unterstützt zwei Arten des Timings für
AVI-Dateien:
bps-basiert: Diese Methode basiert auf
der Bitrate/Samplerate des Video-/Audio-Streams. Diese Methode wird von den
meisten Playern verwendet, inklusive
avifile
und Windows Media Player. Dateien mit kaputten
Headern und Dateien, welche mit VBR-Audio aber nicht VBR-unterstützendem
Encoder erstellt wurden, führen zu A/V-Desynchronisation mit dieser Methode
(meistens beim Spulen).
interleaving-basiert: Diese Methode benutzt
nicht mehr den Wert der Bitrate sondern die relative Position des
Audio-Paketes zum aktuellen Video-Paket, was einige falsch codierte
Dateien mit VBR-Audio abspielbar macht.
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/WMV-Dateien
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.
QuickTime/MOV-Dateien
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
und kannst du sie sogar extrahieren.).
Die meisten QuickTime-Dateien benutzen
Sorenson-Video und QDesign-Audio. Lies dazu
die Sorenson-Codec-Sektion.
VIVO-DateienMPlayer 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-DateienFLI 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 aktiviert
hat). FLI-Dateien haben keine Keyframes, was zu verunstalteten Bildern kurz
nach dem Spulen führt.
RealMedia-(RM)-Dateien
Ja, MPlayer kann RealMedia-Dateien
(.rm) lesen (demuxen).
Hier ist die Liste der unterstützten
RealVideo- und
RealAudio-Codecs.
NuppelVideo-DateienNuppelVideo
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 (seeking) funktioniert.
yuv4mpeg-Dateienyuv4mpeg / 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.
FILM-Dateien
Dieses Format wird auf alten Sega Saturn CD-ROM-Spielen verwendet.
RoQ-Dateien
RoQ-Dateien sind Multimedia-Dateien, welche in gewissen ID-Spielen wie
Quake III und Return to castle Wolfenstein benutzt werden.
OGG/OGM-Dateien
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-DateienSDP ist ein
IETF-Standardformat, das Video- und/oder Audio-RTP-Streams beschreibt. (Dazu
werden die
"LIVE555 Streaming Media"-Bibliotheken
benötigt.)
PVA-Dateien
PVA ist MPEG-ähnliches Format, das von verschiedenen Programmen
benutzt wird, die bei DVB-TV-Karten mitgeliefert werden (z.B.
MultiDec, WinTV
unter Windows).
NSV-Dateien
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 aud seine Implementierung
wartet (diese Dateien sind ohnehin nicht abspielbar, weil sie VLB-Audio verwenden).
Matroska-Dateien
Matroska ist ein offenes Containerformat.
Lies mehr dazu auf der offiziellen Site.
NUT -Dateien
NUT ist das von MPlayer- und
FFmpeg-Leuten entwickelte Containerformat.
Beide Projekts unterstützen es.
Lies mehr dazu auf der offiziellen Site.
GIF-Dateien
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 und 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 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.
AudioformateMPlayer ist ein Movie-
(Film)und kein Media-Player.
Er kann auch einige Audioformate wiedergeben (diese sind in der unteren
Sektion beschrieben). Dies ist jedoch nicht die empfohlene Verwendung in
MPlayer, du solltest besser
XMMS verwenden.
MP3-Dateien
Du hast vielleicht Probleme mit der Wiedergabe bestimmter MP3-Dateien, die
MPlayer fälschlicherweise 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
, welche in der Man Page beschrieben wird, könnte
dir in diesen Fällen helfen.
OGG/OGM-Dateien (Vorbis)
Benötigt richtig installierte
libogg und
libvorbis.
CD-AudioMPlayer kann die Bibliotheken von
cdparanoia
benutzen, um CDDA-Dateien (Audio CD) wiederzugeben. Alle
Features von cdparanoia
aufzuzählen gehört nicht zu den Aufgaben dieser Dokumentation.
Schau in der Man Page bei der Option nach, wie mit ihr
Parameter an cdparanoia übergeben
werden können.
XMMSMPlayer 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 dies nicht, dann musst du eventuell die Pfade für die
XMMS-Plugins und die
XMMS-Bibliotheken explizit mit
und
angeben.