MPlayer - Movie Player für LINUX (C) 2000-2002 Arpad Gereoffy (A'rpi/ESP-team)

http://www.mplayerhq.hu

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


Inhaltsverzeichnis



Entwicklerschreie (Englisch)


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. Viel Glück. Du wirst es brauchen :)

1. Einleitung

1.1. Übersicht

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, VIVO, ASF/WMF, QT/MOV, FLI, RM, NuppelVideo, yuv4mpeg, FILM und RoQ Dateien ab, unterstützt von einigen eingebauten, Xanim und Win32 DLL Codecs. Du kannst VideoCD, SVCD, DVD, 3ivx und auch DivX Filme sehen (und du brauchst die avifile-Bibliotek nicht einmal!). Ein weiteres großes Feature von MPlayer ist die große Weite von unterstützten Ausgabetreibern. Es funktioniert mit X11, Xv, DGA, OpenGL, SVGAlib, fbdev, AAlib und DirectFB. Du kannst aber auch GGI und SDL (und dadurch alle deren Treiber) und einigen Low-Level grafikkartenabhängige Treiber (für Matrox, 3Dfx und Radeon) verwenden. Die meinsten von ihnen unterstützen Software- oder Hardware-Scaling, also kannst du die meinsten deiner Videos in Vollbild geniesen. MPlayer unterstützt auch die Wiedergabe via hardwarehäßiger MPEG-Decoder-Karten, wie DVB und DXR3/Hollywood+ ! Und was meinst du zu den großen, antialias-schattierten Untertiteln (10 unterstützte Typen!!!) mit europäischen/ISO 8859-1,2 (ungarische, englische, tschechische, usw.), kyrillischen und koreanischen Schriften? Und der OSD?

Mein Player spielt felsenfest zerstörte MPEG Dateien (nützlich für einige VCDs) und schlechte AVI-Dateien, welche auch mit dem bekannten Windows Media Player nicht mehr abspielbar sind, ab. Auch AVI-Dateien ohne Index-Chuck sind spielbar und du kannst ihr Index entweder kurzfristig mit der -idx Option wiederherstellen oder permanent mit MEncoder, diese ermöglichen die Suchfunktion! Also du siehst, Stabilität und Qualität sind die wichtigsten Dinge für mich, aber die Geschwindigkeit ist auch überraschend.

1.2. Geschichte

Es begann vor einem Jahr... Ich (A'rpi) hatte eine eine Menge von Playern unter Linux probiert (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 beides abzuspielen, MPEG1, MPEG2 und AVI (DivX) Dateien. Einige Player hatten auch Probleme mit der Bildqualität und der Geschwindkeit. So beschloss ich einen Player zu schreiben/zu modifizieren...

1.3. Installation

Dieses Kapitel wird versuchen dich auf dem Weg der Konfiguration und Kompilierung von MPlayer zu leiten. 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 sieht, bitte folge ihnen und lese was sie enthalten. Es ist einige Zeit benötigen, aber es zahlt sich aus.

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

SOFTWARE VORAUSSETZUNGEN

CODECS

VIDEOKARTEN

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

YUV Karten

Sie können das Bild anzeigen und Scalen (Zoomen), in jeder Größe die in ihren Speicher passen und das auch noch mit geringer CPU Auslastung (Zoomen erhöht sie nicht!), darum bekommst du auch ein nettes und sehr schnelle Vollbild.

Nicht-YUV Karten

Vollbild kann durch Zoomen per Software (benutze die Option -zoom, aber sei gewarnt: Es ist laaaangsam!) oder durch den Wechsel in einen kleineren Videomodus erreicht werden, z.B. zu 352x288. Wenn du keine YUV Beschleunigung zur Verfügung hast, ist diese letztgenannte Methode zu empfehlen. Bei MPlayer kann dieses Verhalten durch das Verwenden der -vm Option und mit den folgenden Treibern beeinflusst werden:

SOUNDKARTEN

FEATURES

Nun kompiliere MPlayer:

    ./configure
    make
    make install

Ab diesem Zeitpunkt ist MPlayer zur Benutzung bereit. Das Verzeichnis /usr/local/share/mplayer enthält die codecs.conf Datei, welche benutzt wird um dem Programm alle Codecs und deren Möglichkeiten zu sagen. Diese Datei sollte zusammen mit dem Hauptprogramm immer aktuell gehalten werden!
Es sollte ausserdem überprüft werden, ob eine codecs.conf in dem Home-Verzeichnis (~/.mplayer/codecs.conf) von einer alten MPlayer Version vorhanden ist. Diese sollte gelöscht werden!

Debian Benutzer können ein .deb Paket für sich kompilieren, es ist sehr einfach. Man muss bloss fakeroot debian/rules binary in MPlayer's Basisverzeichnis ausführen. Genauere Anleitungen können hier gefunden werden.

Schau dir IMMER die Ausgabe von ./configure und der configure.log-Datei an, es enthält Infos darüber, was eingebaut wird, und was nicht. Du kannst dir auch die config.h und config.mak Dateien ansehen.
Wenn einige Bibliotheken installiert sind, jedoch nicht von ./configure erkannt werden, sollte überprüft werden, ob auch die richtigen Header-Dateien installiert sind (normalerweise die -dev Pakete) und ob deren Versionen stimmen. Das configure.log sagt die normalerweise, was fehlt.

Wenn auch unwichtig sollten trotzdem die Schriften installiert werden um das OSD und die Untertitel-Unterstützung zu ermöglichen. Lade dir mp_arial-iso-8859-*.zip und optionale (fall sie existieren) Sprachupdates. Es ist SEHR ZU EMPFEHLEN die Sektion 1.5 für Details zu lesen.

    mkdir ~/.mplayer/font
    cd ~/.mplayer/font
    unzip mp_arial-iso-8859-1.zip

1.4. Was ist mit dem GUI?

Das GUI basiert auf GTK, es muss also auch gtk (und dessen devel-Pakete) installiert sein. Du kannst es durch den Parameter --enable-gui bei ./configure einbauen. Um MPlayer im GUI-Modus zu betreiben kannst du entweder

HINWEIS: benütze die mittlere Maustaste (auf 2 Tastenmäusen drücke links und rechts gleichzeitig) um ein GTK-Menu mit DVD Wiedergabeoptionen zu öffnen!

Da MPlayer keine Skins enthält musst du dir welche downloaden, wenn du das GUI verwenden willst. Schau dazu auf die Download-Seite. Diese sollten in das normale, systemweite Verzeichnis (/usr/local/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.5. Untertitel und OSD

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

Die Kommandozeilen-Option unterscheidet sich leicht für die unterschiedlichen Formate:

VobSub subtitles
VobSub Untertitel bestehen aus einer grossen .SUB Datei und optional .IDX und/oder .IFO Dateien.
Benutzung: wenn du Dateien wie beispiel.sub, beispiel.ifo, beispiel.idx hast - musst du die Option -vobsub beispiel -vobsubid <id> mitgeben (optional mit Pfadangabe natürlich). Die -vobsubid Option ist wie -sid für DVDs, du kannst mit ihm zwischen Untertitel-Abschnitten (Sprache) wählen.

Andere Untertitel
Die anderen Formate bestehen aus einer einzigen Textdatei, welche das Timing, die Plazierung und die Textinformationen 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 Timings und Plazierungen
-subdelay <sec> : Verzögert die Untertitel um <sec> Sekunden. Kann negativ sein.
-subfps <rate> : Gibt die Frame/sec Rate der Untertitel-Datei an (Fliesskommazahl)
-subpos <0 - 100> : Gibts die Position der Untertitel an.

Wenn eine höherwerdende Verzögerung zwischen dem Film und den Untertiteln festgestellt wird bei einer MicroDVD Untertitel-Datei, dann sind höchstwahrscheinlich die Frameraten des Filmes und der Untertitel-Datei unterschiedlich.
Hinweis: Das MicroDVD Untertitel-Format verwendet eine absolute Framenummer für sein Timing, desshalb kann die -subfps Option nicht für dieses Format verwendet werden. Da MPlayer keine Möglichkeit besitzt die Framerate einer Untertitel-Datei zu erraten, muss die Framerate manuell konvertiert werden. Im contrib Verzeichnis der MPlayer ftp-Seite befindet sich ein kleines Perl-Script, das diese Konvertierung für dich vornimmt.

Für DVD Untertitel lese die DVD Sektion.

MPlayer unterstützt ein neues Untertitel-Format, genannt MPsub. Es wurde von mir (Gabucino) entwickelt. Das Haupt-Feature ist grundsätzlich dynamisch zeitabhängig (obwohl es auch einen Frame-basierende Modus besitzt). Ein Beispiel (von DOCS/tech/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, long time ago...

0 3
in a galaxy far away...

0 3
Naboo was under an attack.

Wie man erkennen ist das Hauptziel Untertitel bearbeiten/Timing/Zusammenfügen/Schneiden einfach zu machen. Und wenn du mal angenommen einen SSA Untertitel bekommst und er ist er ist zeitlich schlecht abgestimmt zu deinem Video, 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 anzuzeigen.

INSTALLATION des OSD und der Untertitel

Du brauchst ein MPlayer-Schriftenpaket, dass du das OSD/SUB Feature verwenden kannt. Es gibt mehrere Möglichkeiten um eines zu bekommen:

Nach den Download entpacke die Dateien nach ~/.mplayer oder $PREFIX/share/mplayer. Dann benennst du eine davon um oder erstellst einen symbolischen Links zu font (wie z.B. : ln -s ~/.mplayer/arial-24 ~/.mplayer/font). Nun musst du die Zeit im oberen, linken Ecke des Films sehen (kann man mit 'o' ausschalten).

Das OSD hat 3 Anzeigearten: (Wechsel mit 'o')

Du kannst das Standard-Verhalten mit der osdlevel= Variable in der Konfigurationsdatei einstellen.

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

2.5.1. Übersicht

Dieser Teil der Docs zeigt wie man das Sehen/Grabben über einen V4L-kompatiblen TV-Tuner ermöglicht.

2.5.2. Kompilierung

Hinweis: sind die Farben falsch? Dann kein dein Tuner kein YV12 darstellen. Versuche I420 (verwende die auch die -vc rawi420 Option!), YUY2, UYVY oder RGB32 (mit -vo sdl) Colorspaces. Du kannst diese Eigenschaft mit der outfmt=YV12 Option (siehe unten) einstellen.

2.5.3. Verfügbare Optionen
   on    verwenden des TV-Inputs
   noaudio    kein Ton
   driver dummy - NULL TV-Input :) Nur zum Testen, erzeugt Dummy-Input.
v4l - nimmt Bilder vom Standard-V4L-Interface (normalerweise /dev/video0)
   device    wählt einen anderen Treiber als /dev/video0
   input    welcher Eingang des TV-Tuners verwendet werden soll (z.B. television, s-video, composite, ...)
Beim Inizialisieren werden die verfügbaren Eingänge angezeigt.
   freq    wählt die Frequenz für den Tuner (z.B. 511.250)
   outfmt    Format, mit dem ausgegeben werden soll (rgb32, rgb24, yv12, uyvy, i420 (für i420 musst du die Option -vc rawi420 übergeben, wegen eines fourcc Konflikts))
   width    die Breite des Ausgabe-Fensters, in Pixel
   height    die Höhe des Ausgabe-Fensters, in Pixel
   norm    verfügbare Normen: PAL, SECAM, NTSC
   channel    Tuner auf eingestellten Kanal setzen
   chanlist    verfügbar: us-bcast, us-cable, europe-west, europe-east, usw

2.5.4. Tastatursteuerung

  h oder l  wählt vorherigen/nächsten Kanal
nändern der Norm
bändern der Kanalliste

2.5.5. Beispiele

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

Eingabe von Standard-V4L
    mplayer -tv on:driver=v4l:width=640:height=480:outfmt=i420 -vc rawi420 -vo xv

2.6. Video Filter

2.6.1. Übersicht

Beide, MPlayer und MEncoder, unterstützen die Benutzung einer universalen Video-Filterschicht (video filter layer), welche eine grosse Anzahl Plugins enthält, die unten aufgelistet und beschrieben werden. Diese Plugins können verschiedene Aktionen auf die Bilder ausführen, wie Neuskalierungen (rescale), Abschneiden (crop) schwarzer Ränder (nicht nur für eine Konvertierung nützlich, sondern auch für die Wiedergabe, da die schwarzen Ränder den Bus-Gebrauch eröhen: Das Abschneiden von jenen kann die Wiedergabegeschwindigkeit auf langsamen Boards erhöhen), Erweitern (expand) von Bildern (für SVCDs).

Mit dieser Filterschicht ist es möglich schnelle Bildformat-Konvertierungen zwischen verschiedenen RGB und YUV durchzuführen falls nötig. Dies erlaubt zum Beispiel die Wiedergabe von RGB Daten auf den xv und xmga Ausgaben, neben anderen. (siehe Skalieren (Scale))

Die Schicht erlaubt auch Direct Rendering zwischen den Plugins, um die Geschwindigkeit zu maximieren.

Hinweis: Der Nachbearbeitung (postprocessing) Code ist nun auch Teil dieser Schicht. Dies wird später erklärt.

2.6.2. Verwendung

  mplayer/mencoder -vop filter1,filter2,filter3,...

Dies erzeugt eine Filter-Pipeline (man kann eine beliebige Anzahl Filter verwenden). Deren Parameter sind optional und einige haben, wenn ausgelassen, Standard-Werte, so wie z.B. x und y beide auf die Mitte des Bildschirms gesetzt sind und höhe und breite werden auf die Höhe und Breite des Films gesetzt.

Die Filter werden von libvo eingereiht, so dass filter1 der zuletzt ausgeführte Filter sein wird (danach kommt libvo oder, wenn MEncoder verwendet wird, encoding).

2.6.3. Schneiden (crop)

Beschreibung:

Schneidet einen vorgegebenen Teil aus dem Bild aus und verwirft den Rest. Nützlich, um die schwarzen Ränder auf Breitbild-Filmen zu löschen.

Verwendung:

  -vop crop[=höhe:breite:x:y]

2.6.4. Erweitern (expand)

Beschreibung:

Erweitert (NICHT skaliert) die Filmauflösung um den gegebenen Wert, plaziert das unskalierte Original auf x y. Für Filme, die keine schwarzen Ränder besitzen, kann dies verwendet werden, um diese hinzuzufügen. Dies ist gut bei der Erstellung von SVCDs oder bei der Benutzung des SDL Videoausgabe, welche Untertitel in diesen Rändern unterbringen können.

Verwendung:

  -vop expand[=höhe:breite:x:y]

2.6.5. Fame

Beschreibung:

Echtzeit MPEG1-Konvertierer (um mit DVB/DXR3 benutzt zu werden).

Verwendung:

  -vop fame

2.6.6. Spiegeln (flip)

Beschreibung:

Spiegelt einfach das Bild. Nützlich für einige alte Codecs, welche nur gespiegelte bilder wiedergeben können (diese werden automatisch erkannt).

Verwendung:

  -vop flip

2.6.7. Format

Beschreibung:

Dieser Filter ist KEIN Bildformat-Konvertierer. Es zwingt bloss den nächsten Filter (oder libvo), welches Bildformat verwendet werden soll. Nützlich für Karten mit langsamen YV12, wie tdfx und Savage4. Für eine echte Konvertierung sollte der Skalier (scale) Filter verwendet werden.

Verwendung:

  -vop format[=format] (wobei format z.B. dies sein kann: rgb32, yuy2, etc...)

2.6.8. Nachbearbeiten (postprocess)

Beschreibung:

Dies ist das gute alte postprocess, einfach in die Filterschicht verschoben. Führt Bildqualitäts-Erweiterungen durch, deinterlacing, usw. Die Option -npp help zeigt alle verfügbaren Optionen.

Verwendung:

  -vop pp[=postprocess Optionen/Schlüsselwörter]

2.6.9. RGB2BGR

Beschreibung:

Führt eine RGB 24/32 <-> BGR 24/32 colorspace Konvertierung durch (normales Verhalten) oder RGB 24/32 <-> RGB 24/32 Konvertierung mit R<->B swapping (mit der swap Option)

Verwendung:

  -vop rgb2bgr[=swap]

2.6.10. Drehen (rotate)

Beschreibung:

Rotiert (spiegelt) das Bild. Der Parameter 'x' (Werte: 0-3) legt die horizontale und vertikale Spiegelung fest.

Verwendung:

  -vop rotate[=x]

2.6.11. Skalieren (scale)

Beschreibung:

Skaliert das Bild mit dem Software-Skalierer (langsam). Man kann dabei die Qualität des Skalierers mit der -sws Option einstellen (siehe Manpage). Gute Qualität führt zu Geschwindigkeitsverlusten.

HINWEIS: Der Aufruf dieses Filters ohne Optionen führt zu einer colorspace Konvertierung! Dies ist für einige Codecs nützlich, die nicht im benötigten Ausgabeformat für das angegebene Videoausgabe Device ausgeben können. Diese werden hoffentlich automatisch erkannt und der Skalierfilter zur Konvertierung aufgerufen. In anderen Fällen, kann man ihn manuell gebrauchen.

Verwendung:

  -vop scale[=höhe:breite]

2.6.12. YUY2

Beschreibung:

Erzwingt eine YV12/I420 zu YUY2 Konvertierung.

Verwendung:

  -vop yuy2

2.6.13. Lavc

Beschreibung:

Echtzeit MPEG1-Konvertierer (um mit DVB/DXR3 verwendet zu werden).

Verwendung:

  -vop lavc

3. Verwendung

3.1. Kommandozeile

MPlayer benützt einen komplexen playtree. Er besteht aus globalen Optionen am Anfang (z.B. mplayer -vfm 5) und Optionen nach dem Dateiname, welche nur für die jeweilige Datei/URL/etc gelten (z.B. mplayer -vfm 5 movie1.avi movie2.avi -vfm 4).
Es können Dateinamen/URL Groupen mit { und } gebildet werden. Dies ist nützlich mit der Option -loop: 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-Style, 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 (verwendet lirc) zu steuern.

3.2.1. Standard Steuerung

Tastatur

  <- oder ->  Suche zurück/vorwärts 10 Sekunden
nach-oben und nach-untensuche zurück/vorwärts 1 Minute
Bild-nach-oben und Bild-nach-untensuche zurück/vorwärts 10 Minute
< oder >suche rück-/vorwärts in der Playliste
p oder LeertastePause (drücke irgendeine Taste um weiterzumachen)
q oder ESCstoppe die Wiedergabe und beende Programm
+ oder -einstellen des Audio-Delays, +/- 0,1 Sekunden
/ oder *vermindere/erhöhe Lautstärke
fwechselt den Vollbildschirm-Modus
owechselt OSD: kein / Suchleiste / Suchleiste und Zeit
z oder xeinstellen des Untertitel-Delays, +/- 0,1 Sekunden
r oder teinstellen der Untertitel-Position
> oder <nächster/vorheriger playtree Eintrag
HOME oder ENDnächster/vorheriger playtree Eintrag in der übergeordneten Liste
INSERT oder DELETEnächste/vorherige alternative Quelle (nur verfügbar in der asx Wiedergabeliste)

(die folgende Tasten sind nur gültig, wenn man -vo xv verwendet)

1 oder 2Kontrast-Einstellung
3 oder 4Helligkeits-Einstellung
5 oder 6Farbton-Einstellung
7 oder 8Sättigungs-Einstellung

GUI

  , und .  vorherige / nächste Datei
graues - und +verringere / erhöhe Lautstärke
Enterstartet Wiedergabe
LeertastePause
sStop
aüber
llädt Datei
bSkin-Browser
ezeigt Equalizer
pzeigt Playliste
fwechselt zu/von Vollbild
maktiviert/deaktiviert Mute

TV

h oder l  vorheriger/nächster Kanal
nändern der Norm
bändern der Kanalliste/TD>

3.2.2. Steuerungskonfiguration

MPlayer erlaubt dir eine beliebige Taste auf ein MPlayer-Befehl festzulegen unter Verwendung einer einfachen Konfigurationsdatei. Die Syntax besteht aus einem Tastennamen gefolgt von einem Befehl. Die standard Konfigurationsdatei befindet sich in $HOME/.mplayer/input.conf, kann jedoch durch die -input conf überschrieben werden (relative Pfade sind relativ zu $HOME/.mplayer).

Beispiel:

##
## MPlayer Eingabe-Konfigurationsdatei
##

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ält man eine vollständige Liste: mplayer -input keylist

Tastatur

Maus

Hinweis: Die Maus ist nur unter X unterstützt

Joystick

Hinweis: Joystick-Unterstützung muss bei der Kompilierung aktiviert sein

3.2.2.2. Befehle

Mit folgendem Befehl erhält man eine vollständige Liste: mplayer -input cmdlist

3.2.3. Steuerung von LIRC

Linux Infrared Remote Control - verwende einen einfach zu bauenden, selbstgebauten IR-Empfänger, eine (fast) willkürliche 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...". Wenn ein Fehler auftritt, wird dies auch gemeldet. Wenn gar nichts gesagt wird, ist auch keine LIRC-Unterstützung einkompiliert. Das ist alles :-)

, kannst du MPlayer mit LIRC-Untertützung mit ./configure --enable-lirc kompilieren.

Wenn alles gut läuft, wird MPlayer eine Nachricht wie LIRC init was successful. beim Starten schreiben. Wenn ein Fehler aufgetreten ist, wird es sich melden. Wenn es nicht ausgibt über LIRC, dann ist keine Unterstützung hineinkompiliert. Das wars :-)

Der Anwendungsname für MPlayer ist - oh, ein Wunder - mplayer. Man kann irgendein mplayer Befehl verwenden, sogar mehr als ein Befehl kann mit \n dazwischen übergeben werden. Dabei sollte das repeat Flag in .lircrc nicht vergessen werden, wenn es Sinn macht (seek, volume, usw.). Hier ist ein Auszug aus .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 den -lircconf <Dateiname> Parameter um eine andere Datei anzugeben.

3.2.4. Slave Modus

Der Slave-Modues erlaubt es einem, ein einfaches Frontend für MPlayer zu erstellen. Wenn aktiviert (mit der -slave Option) liest MPlayer durch neue Zeilen unterbrochene Befehle (\n) vom stdin.

3.3. Streaming von Netzwerk oder Pipes

MPlayer kann Videos über Netzwerke, unter Verwendung des HTTP oder MMS Protokoll.

Abspielen geht einfach durch die Hinzufügung der URL zu der Kommandozeile. MPlayer berücksichtigt auch die HTTP_PROXY Variable 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 benannte Pipes). Dies ist ein Beispiel für die Verwendung um von FTP zu spielen:

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. FAQ Sektion

5. CD/DVD Sektion

6. Verschiedene OS's

6.1. Debian Paketierung

Um das Paket zu machen, besorge dir die CVS-Version oder .tgz, entpacke sie und wechsle in das Programm-Verzeichnis:

    cd main
    fakeroot debian/rules binary

(... MPlayer stellt die Hard-/Software fest, kompiliert sich und.. ) dpkg-deb: building package `mplayer' in `../mplayer_0.18-1_i386.deb'.

Und nun einfach root werden und:

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

So sieht es dann aus:

    eyck@incubus:/src/main$ sudo dpkg -i ../mplayer_0.18-1_i386.deb 
    Password:
    (Reading database ... 26946 files and directories currently installed.)
    Preparing to replace mplayer 0.17a-1 (using ../mplayer_0.18-1_i386.deb)
    Unpacking replacement mplayer ...
    Setting up mplayer (0.18-1) ...

6.2. FreeBSD

Um das Paket zu kompilieren brauchst du GNU make (gmake, /usr/ports/devel/gmake), das originale BSD make wird nicht funktionieren.

Um MPlayer zu starten musst den Kernel neu kompilieren, mit "options USER_LDT" (wenn du -CURRENT verwendest, wo dies normal ist). Wenn du eine CPU mit SSE hast, verwende auch "options CPU_ENABLE_SSE" um es zu verwenden (FreeBSD-STABLE erforderlich, oder verwende Kernel-Patches).

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

Es gibt bis jetzt keine DVD-Unterstützung unter FreeBSD.

6.3. Solaris

MPlayer sollte auf Solaris 2.6 oder neuer funktionieren.

AVI-Dateiwiedergabe funktioniert bestens unter Solaris x86, denn du hast die Möglichkeit, die Win32-Codecs auf der x86 Plattform zu verwenden oder du kannst auch die MMX/MMX2/3DNow/usw Befehlssätze für MP3/DivX/DVD/was-auch-immer verwenden. Unter Solaris SPARC wirst du bestimmt noch einige AVI-Dateien mit nicht funktionierendem Video und/oder Audiowiedergabe finden, denn die Video/Audio Codec, die die Win32 DLLs verwenden sind nicht verfügbar. Aber DivX/OpenDivX-Filme sollten funktionieren, unter Verwendung von libavcodec.

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 kompilieren brauchst du GNU Make (gmake, /opt/sfw/gmake), das originale Solaris Make wird nicht funktionieren. Dies ist ein typischer Fehler, denn 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, um 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 das es fehlschlägt, verwende die "--as=/woimmer/du/es/installiert/hast/gnu-as" Option 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 ...

Für DVD-Unterstützung musst du die gepatchte Libcss installieren. Patch: http://www.tools.de/solaris/mplayer/.

Aufgrund dieser zwei Bugs 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 verwendet werden durch das Aufrufen von Funktionen in Suns mediaLib.

VIS-Beschleunigungen von mediaLib werden für MPEG2 Video-Decodierung und für Color Space Konversationen 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 Indigo / IRIX

Funktion wurde berichtet... Du musst möglicherweise den sgi ao-Treiber verwenden. Hat jemand genauere Infos ?

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. OpenBSD

Um das Paket zu erstellen benötigt man GNU make (gmake, /usr/ports/devel/gmake, mit dem standard BSD make wird es nicht funktionieren) und die aktuellen binutils (inklusive objcopy).

Auf Grund von Einschränkungen in unterschiedlichen Versionen von gas (relocation vs mmx), muss die Kompilierung in zwei Schritten vorgenommen werden: Erst sollte sichergestellt werden, dass das sich nicht-standard as im PATH befindet and gmake -k ausgeführt werden, dann sollte man sich vergewissere, dass die standard Version verwendet wird und gmake ausführen.

Um die Win32 DLLs mit MPlayer benutzen zu können, muss der Kernel mit "option USER_LDT" neu kompiliert werden.

Wenn sich MPlayer darüber beklagt, /dev/cdrom oder /dev/dvd nicht zu finden, dann erstelle einen symbolischen Link (ln -s /dev/rcd0c /dev/cdrom)

Anhang B - Mailing-Listen

Es gibt einige öffentliche Mailinglisten für MPlayer. Anmelden kann man sich unter den folgenden Adressen:

HINWEIS: Sprache der oberen Listen ist ENGLISCH, ausser wenn es extra anders angeben ist. Bitte sende keine Nachrichten in andere Sprache!

HINWEIS: Du kannst das durchsuchbare Mailinglisten-Archiv hier erreichen

Anhang C - Wie man einen Fehler berichtet

Anhang D - Bekannte Probleme

Spezielle System-/CPU-spezifische Bugs/Probleme:

  • Hässlicher MP2/MP3-Ton auf PPC:
    Problem: bekannter gcc Fehlcompilierungs-Bug auf PPC Platformen, es ist noch keine Fehlerbehebung vorhanden.
    Abhilfe: benutze FFmpeg's (langsamen) MP1/MP2/MP3 Decoder (-ac ffmpeg)
  • sig11 in libmpeg2, beim Skalieren und Encodieren:
    Problem: bekannter gcc 2.95.2 MMX Bug, aktualisiere auf 2.95.3.
  • Verschiedene A-V Sync- und andere Audio-Probleme

    Allgemein Audio-Abbruch und ruckartiger Sound (existiert mit allen oder einigen Dateien)

    Audio (verschiebt sich / verliert die Synchronisation / bricht nach einer gewissen Zeit ab) bei einer oder mehreren 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 Bug wenn es nicht funktioniert. Nur einige Treiber unterstützten Scaling/Zooming, erwarte das nicht von x11 oder dga.

    Zucken des OSD/Untertiteln:
    - x11 Treiber: Sorry, es kann zur Zeit nicht gelöst werden (GEFIXT)
    - xv Treiber: verwende die -double Option (GEFIXT)

    Grünes Bild bei der Verwendung von mga_vid (-vo mga / -vo xmga):
    - mga_vid hat die Grösse des RAMs falsch erkannt, lade das Modul neu mit der Option mga_ram_size