» SelfLinux » Multimedia » MPlayer - The Movie Player for Linux » Abschnitt 5 SelfLinux-0.10.0
zurück   Startseite Kapitelanfang Inhaltsverzeichnis GPL   weiter

SelfLinux-Logo
Dokument MPlayer - The Movie Player for Linux - Abschnitt 5 Revision: 1.1.2.19
Autor:  Moritz Bunkus
Formatierung:  Matthias Hagedorn
Lizenz:  GPL
 

5 Features von MPlayer

  • Entscheide dich, ob du das GUI brauchst. Wenn du es braucht, wirf einen Blick auf die  GUI-Sektion vor dem Kompilieren.
  • Wenn du MEncoder (unsen grossartigen Encoder-für-Alles) installieren willst, dann lies die  MEncoder-Sektion.
  • Wenn du eine V4L-kompatible TV-Tuner-Karte hast und du mit MPlayer fernsehen oder encodieren willst, dann lies die  TV-Input-Sektion.
  • Inzwischen gibt es ein hübsches OSD-Menü, das nur darauf wartet, ausprobiert zu werden. Schau dazu in der  OSD-Menü-Sektion nach.

Nun kompiliere MPlayer:

user@linux ~$ ./configure
user@linux ~$ su
Password:
root@linux ~# make
root@linux ~# 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 kompilieren, 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 einkompiliert 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 OSD nachlesen.


5.1 Was ist mit dem GUI?

Das GUI basiert auf GTK 1.2.x (nicht das ganze GUI benutzt GTK, 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

  • gui=yes in deine Config-File eintragen oder
  • ln -s $PREFIX/bin/mplayer $PREFIX/bin/gmplayer ausführen und gmplayer aufrufen.

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 en  http://www.mplayerhq.hu/homepage/dload.html. 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.



5.2 Untertitel und das OSD

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

  • VobSub
  • OGM
  • CC (closed caption)
  • Microdvd
  • SubRip
  • SubViewer
  • Sami
  • VPlayer
  • RT
  • SSA
  • MPsub
  • AQTitle
  • JACOsub

MPlayer kann die oben aufgeführten Formate (bis auf die ersten drei) in die folgenden Formate konvertieren, wenn du die jeweils dahinter angegebene Option benutzt:

  • MPsub: -dumpmpsub
  • SubRip: -dumpsrtsub
  • Microdvd: -dumpmicrodvdsub
  • JACOsub: -dumpjacosub
  • Sami: -dumpsami

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.


5.2.1 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).



5.2.2 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 Micro DVD 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.




5.3 MPlayers eigenes Untertitelformat (MPsub)

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

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.



5.4 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:

  • Lade die fertigen Schiftpakete von der MPlayer-Seite. Hinweis: Momentan sind nur Schriftarten verfügbaren, die den ISO 8859-1/2-Zeichensätzen entsprechen, aber es gibt auch ein paar von Benutzern erstellte Font-Pakete für andere Zeichensätze (einschließlich Koreanisch, Russisch, 8859-8 etc.). Diese kannst du im contrib/font-Verzeichnis auf dem FTP-Server finden.

Zu jeder Schrift muss eine passende font.desc-Datei existieren, die festlegt, wo im Zeichensatz die einzelnen Unicode-Zeichen zu finden sind. Eine andere Möglichkeit besteht darin, dass man bei in UTF8 kodierten Untertiteln die Option -utf8 verwendet oder die Datei in <video_name>.utf umbenennt und im gleichen Verzeichnis liegen hat. Die Umwandlung zwischen verschiedenen Zeichnsätzen und UTF8 kann mit den Programmen konwert (unter Debian) oder iconv (unter RedHat) vorgenommen werden. Einige URLs:

  • ftp://ftp.mplayerhq.hu/MPlayer/releases/fonts/ - ISO Schiften
  • ftp://ftp.mplayerhq.hu/MPlayer/contrib/fonts - verschiedene Schriften von Anwendern
  • en http://realtime.ssu.ac.kr/~lethean/mplayer - koreanische Schrift und RAW-Plugin
  • Verwende das Schrift-Erzeugungs-Tool, das in TOOLS/subfont-c liegt. Es ist ein komplettes Tool, um TTF/Type1/usw.-Schriften in ein MPlayer-Schriftpaket zu konvertieren (lies TOOLS/subfont-c/README für Details).
  • Verwende das GIMP-Plugin für Schrift-Erzeugung unter TOOLS/subfont-GIMP (Hinweis: Du musst auch das HSI-RAW-Plugin haben; siehe URL unten).
  • Mit Hilfe der freetype-Bibliothek kannst du auch TrueType-Schriften verwenden. Dafür wird mindestens Version 2.0.9 benötigt, und du musst configure die Option --enable-freetype mitgeben. Danach hast du zwei Möglichkeiten:
    • Gib bei jedem Aufruf mit dem Parameter -font /pfad/zu/arial.ttf eine TrueType-Schrift an.
    • Erstelle einen Symlink wie folgt: ln -s /pfad/zu/arial.ttf ~/.mplayer/subfont.ttf

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

  • Lautstärken- + Suchleiste (Standard)
  • Lautstärken- + Suchleiste + und prozentuale Dateiposition beim Spulen
  • Lautstärken- + Suchleiste + die totale Länge der Datei
  • nur Untertitel

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



5.5 Das OSD-Menü

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

ANMERKUNG:

das Optionsmenü ist momentan NICHT IMPLEMENTIERT!

5.5.1 Installation

  1. Gib vor der Kompilierung ./configure die Option --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.



5.6 RTC

Es gibt drei Methoden der Zeitmessung in MPlayer.

  • Um die alte Methode zu verwenden, musst du nichts tun. MPlayer verwendet usleep(), um Audio und Video synchron zu halten, und erreicht dabei eine Genauigkeit bis zu +/- 10ms. Manchmal muss die Synchronisation aber einfach feiner eingestellt werden können.
  • Der neue Timercode verwendet die RTC (Real Time Clock [Echtzeituhr]) für diese Aufgabe, da sie Timer mit genauen 1ms-Intervallen erzeugen kann. Dies wird automatisch aktiviert, falls verfügbar, erfordert jedoch Root-Privilegien, ein setuid root MPlayer-Binary oder einen passend eingerichteten Kernel. Wenn der Kernel 2.4.19pre8 oder später verwendet wird, kannst du die maximale RTC-Frequenz für normale Benutzer über das /proc-Dateisystem anpassen. Du kannst folgenden Befehl verwenden, um die RTC für alle normalen Benutzer zu aktivieren:

    echo 1024 > /proc/sys/dev/rtc/max-user-freq

    Wenn du einen älteren Kernel verwendest, dann kannst du auch eine Zeile in der Datei drivers/char/rtc.c des Kernelquelltextes verändern und den Kernel neu kompilieren. Dazu musst du folgenden Abschnitt finden:
    Kernelquelltexte drivers/char/rtc.c
    We don't really want Joe User enabling more
    
    
    than 64Hz of interrupts on a multi-user machine.
    /
    if ((rtc_freq > 64) && (!capable(CAP_SYS_RESOURCE)))
          

    Hier änderst du die 64 in 1024. Du solltest dabei aber wirklich wissen, was du tust. Du kannst die Effizienz des neuen Timers in der Statusleiste sehen. Die Energieverwaltungs-Funktionen einiger Notebook-BIOSse mit Speedstep-CPUs haben Probleme mit der RTC. Audio und Video können dadurch aus der Synchronisation fallen. Das einstecken des externen Stromsteckers vor dem Booten soll scheinbar helfen. Du kannst die Verwendung der RTC kann jedoch jederzeit mit der Option -nortc deaktivieren. In einigen Hardwarekombinationen (bestätigt durch die Verwendung eines nicht-DMA-DVD-Laufwerkes auf einem ALi1541-Board) verursacht der RTC-Timer eine rucklige Wiedergabe. Du solltest in solchen Fällen die folgende Methode verwenden.
  • Der dritte Timercode wird mit der Option -softsleep aktiviert. Er besitzt dieselbe Effizienz wie die RTC, braucht jedoch kein RTC. Er braucht jedoch auch mehr CPU-Leistung.

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




zurück   Seitenanfang Startseite Kapitelanfang Inhaltsverzeichnis GPL   weiter