MPlayer - The Movie Player for LINUX

© 2000-2003 Arpad Gereoffy (A'rpi/ESP-team)
http://www.mplayerhq.hu

[ Deutsch ] [ Englisch ] [ Ungarisch ] [ Französisch ] [ Polnisch ] [ Italienisch ] [ Chinesisch ]


Inhaltsverzeichnis



0. Wie diese Dokumentation zu lesen ist

Wenn du die Installation zum ersten Mal durchführst: Pass auf, dass du alles von hier bis zum Ende der Installationsanleitung durchliest, und folge den entsprechenden Links. Wenn du immer noch Fragen hast, kehre zum Inhaltsverzeichnis zurück und suche nach dem Begriff, lies die FAQ oder versuche, mit Hilfe von grep die Dateien zu durchsuchen.

Die Hauptregel dieser Dokumentation: Wenn es nicht dokumentiert ist, existiert es nicht. Wenn nichts von einer Möglichkeit der Audioencodierung von TV-Karten steht, kann man dies auch nicht tun. Wenn du gut kombinieren kannst, dann ist das hier wirklich gut für dich. Viel Glück. Du wirst es brauchen :) Ein weiterer guter Ratschlag ist folgendes Zitat von Chris Phillips, der auf der mplayer-users Mail-Liste folgendes schrieb:

Vor einiger Zeit habe ich gesagt, dass es einen Unterschied zwischen einem Neuling und einem Idioten gibt. Egal, wieviel du von einer Sache wirklich weißt (sei es Linux, Autos, Frauen :D), du solltest IMMER dazu fähig sein, einen Schritt zurück zu machen und objektiv die Lage zu betrachten. Andernfalls bist du meiner bescheidenen Meinung nach einfach nur dumm. Eine Frau, mit der ich zusammen wohne, nahm einmal an, dass der Staubsauger defekt war, nur weil er nichts mehr aufgesaugt hat. Sie hat nie daran gedacht, den Staubbeutel zu wechseln, weil sie das nie vorher gemacht hatte. Und das ist einfach nur doof und kein Fall von 'ich weiß nicht, was ich tun soll'. Mit etwas nicht vertraut zu sein ist absolut keine Entschuldigung für a) Faulheit und b) Unwissenheit. Es gibt so viele Menschen, die das Wort "Fehler" sehen und dann einfach aufhören zu denken. Tatsächlich scheinen nur wenige auch die Wörter hinter dem Punkt zu lesen.

1. Einleitung

MPlayer ist ein Video-Player für LINUX (er läuft auch auf vielen anderen Unix-Systemen und nicht-x86-CPUs, siehe Sektion 6). Er spielt die meisten MPEG, VOB, AVI, OGG/OGM, VIVO, ASF/WMA/WMV, QT/MOV/MP4, FLI, RM, NuppelVideo, yuv4mpeg, FILM, RoQ und PVA-Dateien ab. Dabei kommen viele eingebaute Codecs, Xanim-, RealPlayer und Win32-DLL-Codecs zum Einsatz. Du kannst dir VideoCDs, SVCDs, DVDs, 3ivx-, RealMedia- und auch DivX-Filme sehen (und dafür wird nicht einmal die avifile-Bibliotek benötigt). Ein weiteres großes Feature von MPlayer ist die große Bandbreite unterstützter Ausgabetreiber. MPlayer funktioniert mit X11, Xv, DGA, OpenGL, SVGAlib, fbdev, AAlib und DirectFB. Du kannst aber auch GGI und SDL (und dadurch alle deren Treiber) und einige grafikkartenspezifische Low-Level-Treiber verwenden - z.B. für Matrox, 3Dfx und Radeon, Mach64 oder Permedia3. Die meinsten von ihnen unterstützen Software- oder Hardware-Skalierung, sodass du deine Videos im Vollbild genießen kannst. MPlayer unterstützt auch die Wiedergabe mit einigen Hardware-MPEG-Decoder-Karten wie der DVB und der DXR3/Hollywood+! Und was meinst du zu den schönen, großen, antialiasten und schattierten Untertiteln (10 unterstützte Typen) mit europäischen (ISO 8859-1,2, Ungarisch, Englisch, Tschechisch, usw.), kyrillischen und koreanischen Schriften? Und das onscreen display (OSD)?

Der Player spielt felsenfest beschädigte MPEG-Dateien (nützlich für einige VCDs) und schlechte AVI-Dateien, welche auch mit dem bekannten Windows Media Player nicht mehr abspielbar sind. Auch AVI-Dateien ohne Index sind abspielbar, und du kannst den Index entweder temporär mit der -idx-Option oder permanent mit MEncoder wiederherstellen. Beides ermöglicht wieder die Suchfunktion! Du siehst also, Stabilität und Qualität sind die wichtigsten Dinge für mich, aber die Geschwindigkeit ist genauso beeindruckend.

MEncoder (der Filme encodierende Partner von MPlayer) ist ein einfacher Filmencodierer, der dazu bestimmt ist, von MPlayer abspielbare Filme (AVI/ASF/OGG/DVD/VCD/VOB/MPG/MOV/VIV/FLI/RM/NUV/NET/PVA) in andere von MPlayer abspielbare Formate umzuwandeln (siehe unten). Er kann verschiedene Codecs zum Encodieren benutzen (DivX4 (mit 1 oder 2 Durchgängen), libavcodec, PCM/MP3/VBR MP3-Audio). Er verfügt weiterhin über ein mächtiges Pluginsystem für die Manipulation des Videos.

Features von MEncoder

Geplante Features

MPlayer und MEncoder können unter den Bedingungen der GNU General Public License Version 2 vertrieben werden.

1.1. Geschichte

Es begann vor einem Jahr... Ich (A'rpi) hatte eine eine Menge von Playern unter Linux ausprobiert (mtv, xmps, dvdview, livid/oms, videolan, xine, xanim, avifile, xmmp), aber sie hatten alle ihre Probleme. Meist mit speziellen Dateien oder mit der Audio-Video-Synchronisation. Die meisten waren unfähig, alle drei - MPEG1, MPEG2 und AVI (DivX) - abzuspielen. Einige Player hatten auch Probleme mit der Bildqualität und der Geschwindkeit. So beschloss ich, einen Player zu schreiben/zu modifizieren...

1.2. Installation

In diesem Kapitel versuche ich, dich auf dem Weg der Konfiguration und Compilierung von MPlayer zu begleiten. Es ist nicht einfach, aber auch nicht unnötig schwer. Wenn dir ein unterschiedliches Verhalten als hier beschrieben auffällt, versuche bitte diese Dokumentation zu durchsuchen, und du wirst eine Antwort erhalten. Wenn du Links siehst, folge ihnen bitte und lies, was sie enthalten. Es wird einige Zeit benötigen, aber es zahlt sich aus.

Du brauchst ein ziemlich aktuelles System. Unter Linux sind 2.4.x-Kernel empfohlen.

Voraussetzungen an die Software

Codecs

Grafikkarten

Es gibt allgemein gesprochen zwei Arten von Grafikkarten. Die eine Art (die neueren Karten) besitzen Hardware-Skalierung und YUV-Beschleunigung, die anderen nicht.

YUV-Karten

YUV-Karten können das Bild anzeigen und auf jede beliebige Größe skalieren, die noch in ihren Speicher passt. Dabei kommt es zu sehr sehr geringer CPU-Beslastung (Zoomen erhöht sie nicht!), weswegen Abspielen im Vollbild gut aussieht und sehr schnell ist.

Nicht-YUV-Karten

Vollbild kann durch Zoomen durch eine Softwareskalierung (benutze die Option -zoom oder -vop scale) erreicht werden. Aber sei gewarnt: Es ist langsam! Eventuell reicht es auch schon aus, in einen kleineren Videomodus zu wechseln, z.B. zu 352x288. Wenn keine YUV-Beschleunigung zur Verfügung steht, ist diese letztgenannte Methode zu empfehlen. Bei MPlayer wird dieses mit der -vm-Option angeschaltet und funktioniert mit folgenden Karten:

Einige Karten:

Soundkarten

Features

Nun kompiliere MPlayer:

    ./configure
    make
    make install

Ab diesem Zeitpunkt ist MPlayer zur Benutzung bereit. Das Verzeichnis $PREFIX/etc/mplayer enthält die Datei codecs.conf, welche benutzt wird, um dem Programm alle Codecs und deren unterstütze Features mitzuteilen. Diese Datei sollte zusammen mit dem Hauptprogramm immer aktuell gehalten werden!
Du solltest außerdem überprüfen, ob eine codecs.conf deinem Home-Verzeichnis (~/.mplayer/codecs.conf) von einer alten MPlayer-Version vorhanden ist. Diese solltest du unbedingt löschen!

Debian-Benutzer können ein .deb-Paket für sich compilieren, was sehr einfach ist. Du musst bloß fakeroot debian/rules binary in MPlayer's Sourceverzeichnis ausführen. Genauere Anleitungen können in der Debian-Sektion gefunden werden.

Schau dir immer die Ausgabe von ./configure und die configure.log-Datei an. Beide enthalten Infos darüber, welche Features eincompiliert werden, und welche nicht. Du kannst dir auch die Dateien config.h und config.mak ansehen.
Wenn einige Bibliotheken installiert sind, diese aber nicht von ./configure erkannt werden, dann solltest du überprüfen, ob auch die dazugehärigen Header-Dateien installiert sind (welche sich meist in -dev-Paketen befinden), und ob die Versionsnummern übereinstimmen. Das configure.log sagt dir normalerweise, was fehlt.

Auch wenn sie nicht zwingend erforderlich sind, solltest du doch Schriften installieren, um das OSD und Untertitel benutzen zu können. Die empfohlene Methode ist, eine TrueType-Schrift zu installieren und MPlayer anzuweisen, diese zu benutzen. Wie das funktioniert, kannst du in der Sektion über Untertitel und das OSDnachlesen.

1.3. Was ist mit dem GUI?

Das GUI basiert auf GTK (nicht das ganze GUI sondern nur die Dialoge). Die Skins sind als PNG-Grafiken gespeichern, so dass du also auch gtk und die libpng (und deren devel-Pakete) installieren musst. Du kannst das GUI durch den Parameter --enable-gui bei ./configure anschalten. Um MPlayer im GUI-Modus zu betreiben, kannst du entweder

Im Moment kannst du die -gui-Kommandozeilenoption nicht verwenden.

Da MPlayer keine Skins enthält, musst du dir welche herunterladen, wenn du das GUI verwenden willst. Schau dazu auf die Download-Seite. Diese sollten in das normale, systemweite Verzeichnis ($PREFIX/share/mplayer/Skin) oder nach $HOME/.mplayer/Skin extrahiert werden. Mplayer sucht standardmäßig nach einem Verzeichnis namens default, aber du kannst mit der Option -skin (neuer Skin) oder dem Eintrag skin=(neuer Skin) in der Konfigurationsdatei den Skin */Skin/(neuer Skin) auswählen.

1.4. Untertitel und das OSD

MPlayer kann Untertitel zu Filmen darstellen. Momentan werden folgende Formate unterstützt:

MPlayer kann die oben aufgeführten Formate in die folgenden Formate konvertieren, wenn du die jeweils dahinter angegebene Option benutzt:

Die Kommandozeilenoptionen unterscheidet sich leicht für die unterschiedlichen Formate:

VobSub-Untertitel bestehen aus einer mehreren MB großen .SUB-Datei und optionalen .IDX- und/oder .IFO-Dateien.
Benutzung: wenn du Dateien wie beispiel.sub, beispiel.ifo (optional) und beispiel.idx hast, dann musst du die Optionen -vobsub beispiel [-vobsubid <id>] angeben (optional mit Pfadangabe natürlich). Die -vobsubid-Option funktioniert wie -sid bei DVDs. Du kannst mit ihr zwischen Untertitel-Sprache wählen. Falls keine -vobsubid angegeben wird, versucht MPlayer, die mit -slang angegebene Sprache zu benutzen und zur Not die durch langidx in der .IDX-Datei angegebene Sprache wählen. Wenn das ebenfalls fehlschlägt, werden keine Untertitel angezeigt.

Andere Untertitelformate

Die anderen Formate bestehen aus einer einzigen Textdatei, welche das Timing, die Platzierung und die Texte selber enthält.
Verwendung: Wenn man eine Datei wie beispiel.txt hat, übergibt man einfach die Option -sub beispiel.txt (natürlich optional mit Pfadname).

Angleichung der Untertitel-Anzeigezeit und der Platzierung

-subdelay <sec>
Verzögert die Untertitel um <sec> Sekunden. Der Wert kann negativ sein.
-subfps <rate>
Gibt die Bildrate in Bildern pro Sekunde für die Datei an (Fließkommazahl).
-subpos <0 - 100>
Legt die Position für die Untertitel fest.

Wenn du feststellst, dass bei Verwendung einer MicroDVD-Untertiteldatei die Verzögerung im Laufe der Zeit immer größer wird, dann liegt das wahrscheinlich daran, dass die Bildraten für den Film und die Untertitel unterschiedlich sind.
Es sei gesagt, dass das MicroDVD-Format absolute Bildnummern verwendet, um anzugeben, wann Text anzuzeigen ist. Deswegen funktioniert die -subfps-Option mit diesem Format nicht. Da MPlayer natürlich nicht in der Lage ist, die richtige Bildrate zu erraten, musst du die Bildrate manuell konvertieren. Auf dem MPlayer-FTP-Server liegt im contrib-Verzeichnis ein kleines Perl-Skript, das diese Konvertierung für dich vornehmen kann.

MPlayer wird versuchen, die Untertiteldatei zu erraten, wenn er einen Film abspielt. Wenn, wie das meistens der Fall ist, der Film und die Untertiteldatei den gleichen Namen haben und am gleichen Ort liegen, dann musst du nicht die Untertiteloption benutzen. Spiel einfach den Film ab, und MPlayer wird automatisch die Untertitel finden.

Für DVD Untertitel lies die DVD-Sektion.

1.4.1 MPlayers eigenes Untertitelformat (MPsub)

MPlayer hat ein neues Untertitelformat eingeführt, das MPsub genannt wird. Es wurde von mir (Gabucino) entwickelt. Das Haupt-Feature ist, dass es dynamische Zeitabhängigkeiten benutzt (obwohl es auch einen Frame-basierende Modus besitzt). Ein Beispiel (aus mpsub.sub):

# erste Nummer : warte so lange nach dem Verschwinden des vorherigen Untertitels
# zweite Nummer : zeige den momentanen Untertitel für so viele Sekunden

15 3
A long time ago...

0 3
in a galaxy far, far away...

0 3
Naboo was under attack.

Wie man erkennen kann, ist das Hauptziel, das Bearbeiten/Timing/ Zusammenfügen/Schneiden von Untertiteln einfach zu machen. Und wenn du mal angenommen einen SSA-Untertitel bekommst und er zeitlich schlecht zu deinem Video abgestimmt ist, kannst du einfach mplayer dummy.avi -sub quelle.ssa -dumpmpsub ausführen. Es wird eine dump.mpsub-Datei im aktuellen Verzeichnis erzeugt, die den Quell-Untertitel-Text enthält, jedoch im MPsub-Format. Dann kannst du dem Untertitel einfach Sekunden hinzufügen usw.

Untertitel werden mit einer Technik - genannt 'OSD', On Screen Display - angezeigt. OSD wird verwendet, um die aktuelle Zeit, die Lautstärken- und Such-Leisten etc. anzuzeigen.

1.4.2 Installation des OSD und der Untertitel

Du brauchst ein MPlayer-Schriftenpaket, um das OSD oder Untertitel anzeigen zu können. Es gibt mehrere Möglichkeiten, eines zu bekommen:

Wenn du eine Nicht-TrueType-Schrift benutzt, dann entpacke die Dateien nach den Download nach ~/.mplayer oder $PREFIX/share/mplayer. Danach benennst du eine davon um oder erstellst einen symbolischen Links zu font (wie z.B.: ln -s ~/.mplayer/arial-24 ~/.mplayer/font). Nun solltest du die Zeit in oberen linken Ecke des Films sehen (kann man mit der Taste "o" ausschalten).

Das OSD hat 4 Anzeigearten, zwischen denen du mit 'o' umschalten kannst:

(Untertitel werden immer angezeigt. Wie du sie deaktivierst, findest du in der man-Page.)

Du kannst das Standard-Verhalten mit der osdlevel=-Variable in der Konfigurationsdatei oder der Kommandozeilenoption -osdlevel ändern.

1.4.3 Das OSD-Menü

MPlayer besitzt nun ein komplett vom Benutzer definierbares OSD-Menü.

Installation

  1. Gib vor der Compilierung ./configure die Optionen --enable-new-conf --enable-menu mit.
  2. Überzeuge dich, dass du auch wirklich eine Schrift für das OSD installiert hast (siehe oben).
  3. Kopiere die Datei etc/menu.conf in dein ~/.mplayer-Verzeichnis.
  4. Kopiere die Datei etc/input.conf in dein ~/.mplayer-Verzeichnis oder in MPlayers systemweites Konfigurationsverzeichnis (standardmäßig /usr/local/etc/mplayer).
  5. Überprüfe den Inhalt der Datei input.conf und passe ihn nach deinen Wünschen an, um die Navigationstasten des Menüs zu aktivieren. Wie das geht, steht unten.
  6. Starte MPlayer analog zu diesem Beispiel:
    $ mplayer -menu file.avi
  7. Drücke die Tasten, die du vorher für die Navigation festgelegt hast.

1.5 RTC

Es gibt drei Methoden der Zeitmessung in MPlayer.

Warnung: Installiere NIEMALS MPlayer mit setuid root auf einem Mehrbenutzersystem! Das wär ein simpler Weg, um Root-Rechte zu bekommen.

2. Features

2.1. Unterstützte Formate

2.2. Unterstützte Codecs

2.3. Video & Audio-Ausgabegeräte

2.4. MEncoder - Ein vielseitiger Encoder

2.5. TV input

Dieser Teil der Docs zeigt, wie man mit einem V4L-kompatiblen Gerät (z.B. einer TV-Karte) fernsehen oder Sendungen aufnehmen kann. In der man-page findest du eine Beschreibung aller TV-Optionen sowie die Belegung der Tastatur für's Fernsehen.

2.5.1. Compilierung

  1. Als erstes musst du MPlayer neu compilieren. ./configure erkennt automatisch die Kernel-Header von v4l und ob die /dev/video*-Einträge existieren. Wenn sie existieren, wird die TV-Unterstützung eingebaut (siehe Ausgabe von configure).
  2. stelle sicher, dass dein Tuner mit anderer TV-Software unter Linux funktioniert, zum Beispiel xawtv.

2.5.2 Tipps zur Benutzung

Die vollständige Auflistung der vorhandenen Optionen ist in der man-page verfügbar. Hier nur ein paar Tipps:

2.5.3 Beispiele

Dummy-Ausgabe mittels AAlib ;)
    mplayer -tv on:driver=dummy:width=640:height=480 -vo aa

Standard-V4L-Gerät als Quelle
    mplayer -tv on:driver=v4l:width=640:height=480 -vo xv

Hier ein sinnvolleres und umfassenderes Beispiel. MEncoder wird mit voller PAL-Größe aufnehmen, das Bild an den Rändern beschneiden und mit einem linear-blend-Algorithmus ein Deinterlacing vornehmen. Audio wird mit einer Bitrate von 64kbps mit dem LAME-Codec in MP3 comprimiert. Diese Einstellungen sind dazu geeignet, um Filme aufzunehmen.
    mencoder -tv on:driver=v4l:width=768:height=576 \
    -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=900 \
    -oac mp3lame -lameopts cbr:br=64 \
    -vop pp=lb,crop=720:544:24:18 -o output.avi


In diesem Beispiel wird das Bild noch auf 384x288 verkleinert und mit einer Bitrate von nur 350kbps im Qualitätsmodus comprimiert. Die vqmax-Option lockert die Beschränkungen der Quantizer und erlaubt es dem Codec erst, wirklich so eine niedrige Bitrate zu erreichen, was natürlich auf Kosten der Bildqualität geschieht. Dieses Beispiel kann verwendet werden, um z.B. lange TV-Serien aufzuzeichnen, wobei es auf die Qualität nicht so sehr wie auf den Platzbedarf ankommt.
    mencoder -tv on:driver=v4l:width=768:height=576 \
    -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=350:vhq:vqmax=31:keyint=300 \
    -oac mp3lame -lameopts cbr:br=48 \
    -vop scale=384:288,pp=tn/lb,crop=720:540:24:18 -sws 1 -o output.avi

Du könntest auch in der -tv-Option eine kleinere Bildgröße angeben und dafür auf die Softwareskalierung verzichten. Aber der oben gewählte Ansatz gibt MEncoder die maximal zur verfügung stehende Information zur Verarbeitung und ist ein bischen resistenter gegen Bildrauschen. Dazu kommt, dass der bt8x8-Chip wegen einer Hardwarebeschränkung nur in der Horizontale zwischen Pixeln interpolieren kann.

2.6 Edit Decision Lists (EDL)

Die Edit Decision Lists (EDL) erlauben es, bestimmte Stellen bei der Wiedergabe automatisch zu überspringen oder stummzuschalten. Dabei werden EDL-Konfigurationsdateien ausgewertet.

Das ist dann ganz nützlich, wenn du einen Film in einer "familienfreundlichen" Version sehen möchtest. Du kannst damit Gewalt, Obszönitäten oder Jar-Jar Binks rausschneiden, ganz so, wie du's willst. Davon abgesehen kannst du z.B. auch automatisch Werbung überspringen.

Das EDL-Dateiformat ist ziemlich simpel gestrickt. Wenn das EDL erst einmal einen gewissen Reifegrad erreicht hat, wird wahrscheinlich ein auf XML basierendes Dateiformat eingeführt (aber die Kompatibilität zu alten EDL-Formaten trotzdem gewahrt) werden.

Die maximale Anzahl von EDL-Einträgen beträgt momentan 1000. Falls du mehr davon brauchst, dann ändern einfach #define MAX_EDL_ENTRIES in der Datei edl.h.

2.6.1 Benutzung von EDL-Dateien

Gib mit der Option -edl <Dateiname> die EDL-Datei an, die du auf dein Video angewandt haben möchtest.

2.6.2 Erstellen von EDL-Dateien

Das aktuelle EDL-Dateiformat sieht so aus:

[Start in Sekunden] [Ende in Sekunden] [Aktion]

Die Sekundenangaben sind Fließkommazahlen, und die Aktion ist entweder 0 (überspringen) oder 1 (stummschalten). Beispiel:

5.3   7.1    0
15    16.7   1
420   422    0

Hier wird von Sekunde 5.3 bis Sekunde 7.1 ausgelassen. Von Sekunde 15 bis Sekunde 16.7 wird stummgeschaltet, bei 16.7 wieder lautgestellt, und von Sekunde 420 bis Sekunde 422 wird das Video übersprungen. Diese Aktionen werden ausgeführt, sobald der Abspieltimer die angegebenen Werte erreicht.

Wenn du eine EDL-Datei erstellen möchtest, dann benutze -edlout <filename>. Während der Wiedergabe kannst du i drücken. Es wird dann ein Eintrag erstellt, der an dieser Stelle 2 Sekunden überspringt. Du kannst dann mit einem Editor deiner Wahl die generierte EDL-Datei verfeinern.

3. Verwendung

3.1. Kommandozeile

MPlayer benützt einen komplexen Abspielbaum. Er besteht aus globalen Optionen am Anfang (z.B. mplayer -vfm 5) und Optionen nach dem Dateinamen, welche nur für die jeweilige Datei/URL/etc gelten (z.B. mplayer -vfm 5 movie1.avi movie2.avi -vfm 4).
Mit { und } können Dateinamen/URL-Grupen gebildet werden. Dies ist mit der Option -loop nützlich: mplayer { 1.avi -loop 2 2.avi } -loop 3 spielt die Dateien in dieser Reihenfolge: 1 1 2 1 1 2 1 1 2

  Datei  mplayer [Optionen] [Pfad/]Dateiname
Dateimplayer [standard Optionen] [Pfad/]Dateiname [Optionen für datei1] datei2 datei3 [Optionen für datei3]
VCDmplayer [Optionen] -vcd Tracknr [-cdrom-device /dev/cdrom]
DVDmplayer [Optionen] -dvd Titelnr [-dvd-device /dev/dvd]
Netzmplayer [Optionen] http://site.com/datei.asf (playlist kann auch benutzt werden)

Die neusten Versionen von MPlayer akkzeptieren auch VCD- und DVD-Tracks im URL-Format, so wie z.B. auch Xine: mplayer dvd://1 oder mplayer vcd://1

  mplayer -vo x11 /mnt/Filme/Contact/contact2.mpg
  mplayer -vcd 2
  mplayer -afm 3 /mnt/DVDtrailers/alien4.vob
  mplayer -dvd 1
  mplayer -abs 65536 -delay -0.4 -nobps ~/movies/test.avi

3.2. Steuerung

MPlayer besitzt eine vollständig konfigurierbare, durch Befehle angesteuerte Steuerungsschicht (control layer), der es erlaubt, MPlayer mit Tastatur, Maus, Joystick oder Fernbedienung (unter Verwendung von LIRC) zu steuern. Schau in die man-page. Dort steht eine vollständige Liste aller Tastaturkommandos.

3.2.1. Konfiguration der Steuerung

MPlayer ermöglicht es, dass du jede Taste/jeden Button mit einem MPlayer-Befehl verbindest. Dieses wird in einer simplen Konfigurationsdatei festgelegt. Die Syntax besteht einfach aus einem Tastennamen gefolgt vom auszuführenden Befehl. Die Standardkonfigurationsdatei ist $HOME/.mplayer/input.conf, aber diese Position kann auch mit der Option -input geändert werden. Pfadangaben beziehen sich hier relativ zu $HOME/.mplayer).

Beispiel:

##
## MPlayer input control file
##

RIGHT seek +10
LEFT seek -10
- audio_delay 0.100
+ audio_delay -0.100
q quit
> pt_step 1
< pt_step -1
ENTER pt_step 1 1

3.2.2.1. Tastennamen

Mit folgendem Befehl erhälst du eine vollständige Liste: mplayer -input keylist

Tastatur

Maus (wird nur unter X unterstützt)

Joystick (Joystick-Unterstützung muss bei der Kompilierung aktiviert sein)

3.2.2.2. Befehle

Mit folgendem Befehl erhälst du eine vollständige Liste: mplayer -input cmdlist

3.2.3. Steuerung mittels LIRC

Linux Infrared Remote Control - verwende einen einfach zu bauenden, selbstgebauten IR-Empfänger, (fast) jede beliebige Fernbedienung und steuere deinen Linux-Rechner damit. Mehr dazu auf www.lirc.org.

Wenn du das lirc-Paket installiert hast, erkennt es configure automatisch. Wenn alles gut geht, gibt MPlayer während des Starts eine Nachricht wie etwa "Setting up lirc support..." aus. Wenn ein Fehler auftritt, wird dies auch gemeldet. Wenn gar nichts gesagt wird, ist auch keine LIRC-Unterstützung eincompiliert. Das ist alles :-)

Der Anwendungsname für MPlayer ist - oh, ein Wunder - mplayer. Du kannst jeden beliebigen MPlayer-Befehl benutzen und sogar mehrere nacheinander ausführen lassen, indem du sie durch \n voneinander trennst. Vergiss nicht, die repeat-Option in der .lircrc zu benutzen, wenn es Sinn macht (beim Suchen, bei der Lautstärke etc.). Hier ist ein Auszug aus meiner .lircrc:

begin
     button = VOLUME_PLUS
     prog = mplayer
     config = volume 1
     repeat = 1
end

begin
    button = VOLUME_MINUS
    prog = mplayer
    config = volume -1
    repeat = 1
end

begin
    button = CD_PLAY
    prog = mplayer
    config = pause 
end

begin
    button = CD_STOP
    prog = mplayer
    config = seek 0 1\npause
end

Wenn du die Standard-Position der LIRC-Konfigurationsdatei (~/.lircrc) nicht magst, verwende die Option -lircconf <Dateiname>, um eine andere Datei anzugeben.

3.2.4. Der "Slave"-Modus

Der Slave-Modus erlaubt es dir, ein einfaches Frontend für MPlayer zu erstellen. Wenn er mit der Option -slave aktiviert wurde, dann liest MPlayer durch neue Zeilen unterbrochene Befehle (\n) von der Standardeingabe.

3.3. Streaming über das Netzwerk oder Pipes

MPlayer kann Videos über Netzwerke unter Verwendung des HTTP- MMS- oder RTSP/RTP-Protokolls abspielen.

Abspielen geht einfach durch das Hinzufügung der URL zu der Kommandozeile. MPlayer berücksichtigt auch die http_proxy-Umgebungsvariable und benutzt einen Proxy, falls vorhanden. Der Proxygebrauch kann auch erzwungen werden:

mplayer http_proxy://proxy.micorsops.com:3128/http://micorsops.com:80/stream.asf

MPlayer kann auch von stdin lesen (nicht von benannte Pipes). Dies ist ein Beispiel für die Verwendung, um von FTP abzuspielen:

  wget ftp://micorsops.com/etwas.avi -O - | mplayer -

Hinweis: Bei der Wiedergabe übers Netzwerk empfiehlt sich, den Cache zu aktivieren:

  wget ftp://micorsops.com/etwas.avi -O - | mplayer -cache 8192 -

4. CD/DVD-Sektion

5. FAQs - Die häufisten Fragen und Antworten

6. Portierungen

6.1 Linux

Die hauptsächliche Entwicklungsplattform ist Linux auf x86, obwohl MPlayer auch auf anderen Linuxportierungen läuft.

6.1.1 Debian-Pakete

Um selber ein Debianpaket zu erstellen, starte den folgenden Befehl im Source-Verzeichnis:

    fakeroot debian/rules binary

Und nun einfach root werden und:

	dpkg -i ../mplayer_0.90-1_i386.deb als root.

Christian Marillat hat seit einiger Zeit unoffizielle Debianpakete von MPlayer, MEncoder und den Schriften erstellt. Du kannst sie (per apt-get) von seiner Homepage herunterladen. Diese Pakete sind definitiv inoffiziell, da Christian bereits damals diese Pakete erstellt und verteilt hat, als MPlayer noch nicht komplett unter der GPL stand und Binärpakete nicht erlaubt waren. Christian ignorierte unsere Bitte, das zu unterlassen, was einiges an bösem Blut zwischen ihm und den MPlayer-Entwicklern hinterließ. Inzwischen sind Binärpakete kein Problem mehr. Trotzdem supporten wir diese Pakete nicht!

6.1.2 RPM-Pakete

Dominik Mierzejewski erstellt und wartet die offiziellen RedHat RPM-Pakete für MPlayer. Diese können von seiner Homepage heruntergeladen werden. Bitte lies die Anweisungen auf seiner Seite, und schreib ihm wegen Problemen und nicht uns.

Inzwischen gibt es auch andere RPM-Versionen (SuSE liefert MPlayer mit ihrer offiziellen Distribution aus, Mandrake-Pakete gibt es von P.L.F) von MPlayer, aber keine dieser Versionen wird offiziell unterstützt.

6.2. *BSD

MPlayer läuft auf FreeBSD, OpenBSD, NetBSDO, BSD/OS und Darwin. Es sind ports/pkgsrc/fink/etc-Versionen verfügbar, die sich wahrscheinlich leichter als die normalen Quelltexte installieren lassen.

Um das Paket zu compilieren, brauchst du GNU make (gmake, /usr/ports/devel/gmake), das originale BSD make wird nicht funktionieren. Außerdem ist eine relativ neue Version der binutils nötig.

Wenn MPlayer meldet "CD-ROM Device '/dev/cdrom' not found!" musst du einen symbolischen Link setzen: ln -s /dev/(dein CD-ROM Device) /dev/cdrom

Wenn du die Win32-DLLs mit MPlayer benuzen willst, dann musst du deinen Kernel mit "option USER_LDT" neu compilieren (es sei denn, bei dir läuft FreeBSD-CURRENT, in dem der Kernel bereits damit compiliert wurde).

6.2.1 FreeBSD

Falls deine CPU SSE unterstützt, musst du den Kernel mit "options CPU_ENABLE_SSE" übersetzen, um diese nutzen zu können (FreeBSD-STABLE oder ein Kernel-Patch werden dafür benötigt).

6.2.2 OpenBSD

Aufgrund der Beschränkungen in verschiedenen Versionen von gas (Relokation vs. MMX), musst du den Kernel in zwei Schritten neu compilieren. Stell zuerst sicher, dass das nicht mitgelierferte "as" über deinen $PATH erreichbar ist. Danach rufe gmake -k auf und stell sicher, dass die mitgelieferte Version benutzt wird. Schließlich wird mit gmake der Kernel übersetzt.

6.3. Solaris

MPlayer sollte auf Solaris 2.6 oder neuer funktionieren.

Bei UltraSPARCs kann MPlayer die Vorteile der VIS-Erweiterungen (vergleichbar mit MMX) verwenden, zur Zeit jedoch erst in libmpeg2, libvo und libavcodec, jedoch nicht in mp3lib. Du kannst eine VOB-Datei auf einer 400MHz CPU ansehen. Du musst dazu mLib installiert haben.

Um dieses Paket zu compilieren, brauchst du GNU Make (gmake, /opt/sfw/gmake). Das originale Solaris Make wird nicht funktionieren. Dies ist ein typischer Fehler, den du bekommen wirst, wenn du Solaris' Make anstatt von GNU Make verwendest:

    % /usr/ccs/bin/make
    make: Fatal error in reader: Makefile, line 25: Unexpected end of line seen

Unter Solaris SPARC brauchst du den GNU C/C++ Compiler. Es spielt keine Rolle, ob der GNU C/C++-Compiler mit oder ohne GNU Assembler konfiguriert ist.

Unter Solaris x86 brauchst du den GNU C/C++-Compiler, welcher konfiguriert sein muss, den GNU Assembler zu verwenden! Der MPlayer-Code erzeugt auf x86 Plattformen eine Binary mit Verwendungen von MMX-, SSE- und 3DNOW-Befehlen. Dies kann mit dem Sun Assembler /usr/ccs/bin/as nicht assembliert werden.

Das configure Skript versucht herauszufinden, welches Assemblerprogramm von deinem "gcc" Befehl ausgeführt wird (für den Fall, dass es fehlschlägt, verwende die Option "--as=/woimmer/du/es/installiert/hast/gnu-as" und sage damit dem Skript, wo es den GNU "as" auf deinem System finden kann).

Fehlermeldungen von configure auf einem Solaris x86 System bei Verwendung von GCC ohne GNU Assembler:

    % configure
    ...
    Checking assembler (/usr/ccs/bin/as) ... , failed
    Please upgrade(downgrade) binutils to 2.10.1...

(Lösung: Installiere und verwende einen gcc, der mit "--with-as=gas" konfiguriert ist)

Ein typischer Fehler beim Kompilieren mit einem GNU C Compiler, der nicht den GNU as verwendet:

    % gmake
    ...
    gcc -c -Iloader -Ilibvo -O4 -march=i686 -mcpu=i686 -pipe -ffast-math 
	-fomit-frame-pointer  -I/usr/local/include   -o mplayer.o mplayer.c
    Assembler: mplayer.c
    "(stdin)", line 3567 : Illegal mnemonic
    "(stdin)", line 3567 : Syntax error
    ... more "Illegal mnemonic" and "Syntax error" errors ...

Aufgrund von Fehlern in Solaris 8 x86 ist es nicht möglich, DVDs mit einer Speicherkapazität von mehr als 4GB zu verwenden:

Bei Solaris mit einer UltraSPARC CPU kannst du zusätzliche Geschwindigkeit gewinnen, indem du die VIS-Befehle für rechenintensive Operationen verwendest. VIS-Beschleunigungen können von MPlayer durch das Aufrufen von Funktionen in Suns mediaLib verwendet werden.

VIS-Beschleunigungen von mediaLib werden für MPEG2 Video-Decodierung und für Farbraumkonvertierung im Videoausgabetreiber verwendet.

6.4. StrongARM

Es wurde berichtet, dass man MPlayer auf einem StrongARM kompilieren kann. Verwende die folgende Kommandozeile:

  ./configure --target=arm-linux --disable-css --with-x11libdir=/usr/arm/lib
	      --with-x11incdir=/usr/arm/lib --disable-gcc-checking

6.5. Silicon Graphics / IRIX

Du hast zwei Möglichkeiten. Die eine besteht darin, das GNU install-Programm zu installieren und ./configure mitzuteilen, wo es liegt (sofern du es nicht in deinen $PATH installiert hast):

  ./configure --install-path=PATH

Die zweite Möglichkeit besteht darin, das bei IRIX 6.5 mitgelieferte "install" zu benutzen. Dazu musst du aber das Makefile ein wenig von Hand anpassen. Ändere die folgenden beiden Zeilen

  $(INSTALL) -c -m 644 DOCS/mplayer.1 $(MANDIR)/man1/mplayer.1

  $(INSTALL) -c -m 644 etc/codecs.conf $(CONFDIR)/codecs.conf

in:

  $(INSTALL) -m 644 mplayer.1 $(MANDIR)/man1/

  $(INSTALL) -m 644 codecs.conf $(CONFDIR)/

Führ danach noch die beiden Befehle aus dem MPlayer-Quellcodeverzeichnis heraus auf:

  cp DOCS/mplayer.1 . ; cp etc/codecs.conf .

Nun mache ganz normal mit dem Compilierungs- und Installationsprozess weiter.

6.6 QNX

Funktioniert. Du musst SDL für QNX herunterladen, installieren und dann MPlayer mit den Optionen -vo sdl:photon und -ao sdl:nto starten. Es sollte schnell sein.

Die -vo x11-Ausgabe ist sogar noch langsamer als unter Linux, da QNX nur eine sehr langsame X-Emulation hat. Benutze SDL.

6.7 Cygwin

Die Portierung auf Cygwin, eine Unix-Tool-Umgebung unter Windows, steckt noch in ihren Kinderschuhen. Momentan werden die folgenden Punkte nicht unterstützt: Win32-DLLs, VCDs, OpenGL. Von SDL ist bekannt, dass sie Audio- und Videoverzerrung hervorruft oder sogar das System zum Absturz bringt. Patches sind natürlich jederzeit willkommen. Die besten Resultate erhälst du mit der windowseigenen DirectX-Videoausgabe (-vo directx) und dem windowseigenenen waveout-Audiotreiber (-ao win32). Du solltest auf jeden Fall einen Blick auf die mplayer-cygwin Mailingliste werfen, um Hilfe zu bekommen und die neuesten Informationen zu finden.

Du wirst die Datei etc/cygwin_inttypes.h aus den MPlayer-Quellen nach /usr/include/inttypes.h kopieren und erst danach MPlayer compilieren müssen, da der Compiler sich sonst über eine fehlende intypes.h beschwert..

Wenn du Unterstützung für DirectX-Videoausgabe (-vo directx) haben willst, dann installier die DirectX 7 Header Files und compiliere MPlayer erneut. Du solltest mit -vo directx -ao win32 die besten Ergebnisse erzielen. Falls das Bild gestört ist, so versuche es ohne die Hardwarebeschleunigung erneut: -vo directx:noaccel.

Anweisungen, wie du SDL unter Cygwin zum Laufen bringst, findest du auf der libsdl-Seite.

Anhang A - Mailing-Listen

Es stehen einige öffentliche Mailinglisten für MPlayer zur Verfügung. Wenn nichts anderes angegeben wird, dann ist die auf der Liste zu verwendende Sprache Englisch. Bitte schreibe nicht in anderen Sprachen, und schick niemals HTML-Mails! Es gibt eine Größenbeschränkung auf 80k. Wenn du etwas größeres hast, dann lade es irgendwo hoch und gib in der Mail nur die URL an. Klick auf die Links, um dich bei den Listen anzumelden. Auf diesen Mailinglisten gelten die gleichen Regeln bezüglich Schreibstil und Antworten wie im Usenet. Bitte befolge diese Regeln, da es das Leben für diejenigen, die deine Mails lesen, deutlich vereinfacht. Wenn du diese Regeln nicht kennst, dann lies bitte die HOWTO über's Schreiben von Mails (Englisch) durch. Wenn du gerade keine Zeit hast, dann lies alternativ die Quoting-HOWTO (Englisch).

Hinweis: Du kannst das durchsuchbare Mailinglisten-Archiv an folgender Stelle finden: http://www.mplayerhq.hu/cgi-bin/htsearch

Anhang B - Wie man einen Fehler berichtet

Anhang C - Bekannte Probleme

Spezielle System-/CPU-spezifische Fehler/Probleme:

Verschiedene A-V Sync- und andere Audio-Probleme

Allgemein Audio-Verzögerung und ruckartiger Sound (kommt bei allen oder einigen Dateien vor):

Audio (verschiebt sich / verliert die Synchronisation / bricht nach einer gewissen Zeit ab) bei einer oder nur einigen wenigen Dateien:

Überhaupt kein Ton:

Überhaupt kein Bild (nur ein graues/grünes Fenster):

Videoausgabe-Probleme:

Erster Hinweis: Die Optionen -fs, -vm und -zoom sind nur Empfehlungen, sie werden (noch) nicht von allen Treiber unterstützt. Also ist dies kein Fehler (Bug), wenn es nicht funktioniert. Nur einige Treiber unterstützten Scaling/Zooming, erwarte das nicht von x11 oder dga.

Zucken des OSD/Untertiteln:

Grünes Bild bei der Verwendung von mga_vid (-vo mga / -vo xmga):

Anhang D - MPlayer skin format (Englisch)

Anhang E - Aufschrei der Entwickler