Inhaltsverzeichnis
MPlayer ist einen 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, VIVO, ASF/WMF, 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, aber du kannst SDL (und dadurch alle SDL-Treiber) verwenden und auch einigen Low-Level grafikkartenabhängige Treiber (für Matrox, 3Dfx und Radeon). 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 and DXR3/Hollywood+ ! Und was meinst du zu den großen, antialiase schattierten Untertiteln (8 unterstützte Typen!!!) mit europäischen/ISO 8859-1,2 (ungarische, englische, tschechische, usw.), kyrillischen und koreanischen Schriften und das OSD?
MPlayer ist grundsätzlich GNU GPL, enthält jedoch auch einige Nicht-GPL-Teile die das Verbeiten in binärer Form nicht erlauben. Es enthält ausserdem die OpenDivX-Bibliotek, die eine spezielle Lizenz besitzt. Wir entwickeln aber immer noch in Richung der GPL.
Ich habe keine Codecs geschrieben, nur einen Player. Stattdessen verbringe ich eine Menge Zeit mit dem Finden des besten Weges um zerstörte Input-Files (MPEG und AVI) zu spielen und um perfekte A-V Sync mit Suchfunktion zu erreichen. Mein Player spielt felsenfest zerstörte MPEG Dateien (nützlich für einige VCDs) und spielt schlechte AVI-Dateien, welche auch mit dem bekannten Windows Media Player nicht mehr spielbar sind. Auch AVI-Dateien ohne Index-Chuck sind spielbar und du kannst ihr Index mit der -idx Option wiederherstellen, dies ermöglicht die Suchfunktion! Also du siehst, Stabilität und Qualität sind die wichtigsten Dinge für mich, aber die Geschwindigkeit ist auch überraschend.
Es begann vor einem Jahr... Ich 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, meinst 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...
Du wirdst die folgende Pakete und Versionen benötigen, wenn du keine Probleme
erleben willst:
Lese folgendes, bevor du versuchst MPlayer zu kompilieren:
usleep()
um die A/V Sync einzustellen, mit +/- 10ms Abweichung. Wie auch immer, machmal
ist muss der Sync einfach feiner eingestellt sein. Der neue Timer-Coder werdet die
RTC (Real Time Clock [Echtzeituhr]) für diese Aufgabe, da es Timer mit genau 1ms
erzeugen kann. Dies erfordert Root-Privilegien oder setuid root-Binary von
MPlayer (oder ein wenig Kernel-Hacking). Du kannst die Effizienz des neuen
Timers in der Status Leiste sehen. Hinweis: Installiere NIE eine setuid-Binary
von MPlayer auf einem Multiuser-System!. Es wäre für jeden ein einfacher Weg
Root zu werden.Nun kompiliere MPlayer:
./configure make make install
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 auch unwichtig sollten trotzdem die Schiften 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-*.zip
Jetzt bleibt nur mehr eins übrig: kopiere die codecs.conf-Datei vom
etc
Verzeichnis (im MPlayer-Hauptstamm) nach $HOME/.mplayer/codecs.conf
.
Du solltest auch die Manpage und die example.conf
für die verfügbaren Optionen
durchsehen und sie in deine Config-Datei, $HOME/.mplayer/config
, hinzufügen.
Das GUI basiert auf GTK, also muss gtk (und die devel-Sachen) installiert sein.
Du kannst es durch den Parameter --enable-gui
bei ./configure einbauen.
Um MPlayer im GUI-Modus zu betreiben kannst du entweder
-gui
Option verwendengui=yes
in deine Config-File eintragenln -s /usr/local/bin/mplayer /usr/local/bin/gmplayer
ausführen
und gmplayer
aufrufen.
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 neuerskin oder dem Eintrag skin=neuerskin in
der Konfigurationsdatei den Skin */Skin/neuerskin
auswählen.
MPlayer unterstützt mehrere Arten von Untertiteln. Zur Zeit können vom Subreader-Code 8 Arten von Untertitel verarbeitet werden. Um zu sehen welche diese Untertitelformate sind, siehe subreader.c, etwa Zeile 30.
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) :
# first number : wait this much after previous subtitle disappeared
# second number : display the current subtitle for this many seconds
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/Joining/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 source.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/font/ . Nun musst du die Zeit im oberen, linken Eck 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.3. Video & Audio Ausgabegeräte
2.4. MEncoder - Ein vielseitiger Encoder
Dieser Teil der Docs zeigt wie man das Sehen/Grabben über einen V4L-kompatiblen TV-Tuner ermöglicht.
Kompilierung
--enable-tv
Option bei ./configure
eingaben und MPlayer neu kompilieren.Verfügbare Optionen
on | verwenden des TV-Inputs | ||
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) Die folgende Option muss die selbe Einstellung sein ! |
||
width | VERWENDEN! - die Breite des Ausgabe-Fensters, in Pixel | ||
height | VERWENDEN! - die Höhe des Ausgabe-Fensters, in Pixel | ||
norm | verfügbare Normen: PAL, SECAM, NTSC | ||
channel | Tuner auf eingestellen Kanal setzen | ||
chanlist |
verfügbar: us-bcast, us-cable, europe-west, europe-east, usw |
Keyboard-Tasten
h oder l | wählt vorherigen/nächsten Kanal | ||
n | ändern der Norm | ||
b | ändern der Kanalliste | ||
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=800:height=600:device=/dev/video0:input=television:outfmt=yv12 -vc rawyv12 -vo xv
Datei | mplayer [Optionen] [Pfad/]Dateiname | ||
VCD | mplayer [Optionen] -vcd Tracknr /dev/cdrom | ||
DVD | mplayer [Optionen] -dvd Titelnr [/dev/dvd] | ||
Netz | mplayer [Optionen] http://site.com/datei.[mpg|avi] | ||
mplayer -vo x11 /mnt/Filme/Contact/contact2.mpg mplayer -vcd 2 /dev/cdrom mplayer -afm 3 /mnt/DVDtrailers/alien4.vob mplayer -dvd /dev/dvd /mnt/dvd/matrix.vob mplayer -abs 65536 -delay -0.4 -nobps ~/movies/test.avi
3.1. Steuerung mit der Tastatur
<- oder -> | Suche zurück/vorwärts 10 Sekunden | ||
nach-oben und nach-unten | suche zurück/vorwärts 1 Minute | ||
Bild-nach-oben und Bild-nach-unten | suche zurück/vorwärts 10 Minute | ||
p oder Leertaste | Pause (drücke irgendeine Taste um weiterzumachen) | ||
q oder STRG-C | stoppe die Wiedergabe und beende Programm | ||
+ oder - | einstellen des Audio-Delays, +/- 0,1 Sekunden | ||
/ und * | vermindere/erhöhe Lautstärke | ||
o | wechselt OSD: kein / Suchleiste / Suchleiste und Zeit | ||
m | wechselt zwischen Master/PCM-Channel für Lautstärkenregelung | ||
f | wechselt zwischen Vollbild-Modus (nur mit -vo sdl) | ||
z oder x | einstellen des Untertitel-Delays, +/- 0,1 Sekunden | ||
(die folgende Tasten sind nur gültig, wenn man DirectShow DivX Codecs verwendet) | |||
1 oder 2 | Kontrast-Einstellung | ||
3 oder 4 | Helligkeits-Einstellung | ||
5 oder 6 | Farbton-Einstellung | ||
7 oder 8 | Sättigungs-Einstellung | ||
(die folgende Tasten sind nur gültig, wenn man TV-Input verwendet
GUI Keyboard-Tasten
, und . | verherige / nächste Datei | ||
graues - und + | verringere / erhöhe Lautstärke | ||
Enter | startet Wiedergabe | ||
Leertaste | Pause | ||
s | Stop | ||
a | über | ||
l | lädt Datei | ||
b | Skin-Browser | ||
e | zeigt Equalizer | ||
p | zeigt Playliste | ||
f | wechselt zu/von Vollbild | ||
m | aktiviert/deaktiviert Mute | ||
3.2. Steuerung mit LIRC (Linux Infrared Remote Control)
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, 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_lirc. Es versteht die folgenden Befehle:
Vergiss nicht den Wiederholungsparameter [repeat] zu setzten für RWND/FWD in .lircrc . Hier ist ein Auszug aus meiner .lircrc:
begin remote = CU-SX070 prog = mplayer_lirc button = Tape_Play repeat = 1 config = FFWD end begin remote = CU-SX070 prog = mplayer_lirc button = Tape_Stop config = QUIT end
Wenn du die Standard-Position der LIRC-Konfigurationsdatei (~/.lircrc) nicht magst, verwende den -lircconf <Dateiname> Parameter um eine andere Datei anzugeben.
3.3. Streaming von Netzwerk oder Pipes
MPlayer kann Videos über Netzwerke, unter Verwendung des HTTP Protokoll. Die Konfigurierung ist einfach, kompiliere MPlayer neu mit
./configure --enable-streaming
MPlayer kann KEINE ASF-Dateien vom Netzwerk via MMS spielen, jedoch via HTTP.
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/something.avi -O - | m
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) ...
Um das Packet zu kompiliern brauchst du GNU make (gmake, /usr/ports/devel/gmake), orginal 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/
Es gibt bis jetzte keine DVD-Unterstützung unter FreeBSD.
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 Platform zu verwenden oder du kannst auch die MMX/MMX2/3DNow/usw Befehlssätzte für MP3/DivX/DVD/was-auch-immer verwenden. Unter Solaris SPARC wirst du bestimmt noch einige AVI-Dateien mit nicht funktionierenen Video und/oder Audiowiedergabe, 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), orginal 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 x86 brauchst du den GNU C/C++ Compiler, welcher konfiguriert
sein muss, um den GNU Assembler zu verwenden! Der MPlayer Code erzeugt
auf x86 Platformen eine Binäry mit Verwendungen von MMX, SSE und 3DNOW Befehlen,
dies kann mit dem Sun Assembler /usr/ccs/bin/as
nicht assembliert werden.
Der configure Script 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 an, und sage damit dem Script, 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 gepatchten 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 kannt 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-Dekodierung und für Color Space Konversationen im Videoausgabetreiber verwendet.
Es wurde berichtet, dass man MPlayer auf einem StrongARM kompilieren kann. Verwende die folgende Commandline:
./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 ?
Funktioniert. Es hat nur -vo x11
-Ausgabe, was jedoch viel langsamer
als unter Linux ist, denn QNX emuliert nur X, was sehr langsam ist.
Bisher keine weiteren Infos.
HINWEIS: Sende *KEINE* Fehlerberichte, Hilfe- & Feature-Wünsche direkt an die Autoren!
Lese Anhang C und trette oder MPlayer-users-Mailing-Liste bei.
The MPlayer project:
Main testers:
The codecs, libs:
Their code is not used in current player version, but I've got some ideas or other technical help from:
Anhang A/2. Beteiligte am MPlayer Code und an den DOCS
Homepage
Englische Dokumentationen
Übersetzungen
Platformen/Portierungen
MPlayer Code:
libvo Treiber:
libao2 Treiber:
TOOLS:
Misc:
Es gibt einige öffentliche Mailinglisten für MPlayer. Anmelden kann man sich unter den folgenden Adressen:
Diese Liste ist über MPlayer Entwicklung! Es wird geprochen über Interface/API Änderungen, neue Librarys, Code-Optimierungencode, ./configure Änderungen und du kannst eine Patches hier herschicken. Sende KEINE Fehlerberichte, Anwenderfragen, Featurewünsche hierher! Diese Liste sollte wenig verwendet werden.
Sende hierher Matrox-betreffende Fragen
Dinge im Bezug auf DVB-Hardwaredecoder Karten.
Send hier nur Fragen über CVS-Änderungen. (wenn du nicht verstehst, warum eine Änderung erforderlich ist, oder du einen bessern Fix hast) Sei dir aber siche, dass der Ziel-Entwickler diese Liste liest!
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 Maillinglisten-Archiv hier erreichen
Anhang C - Wie man einen Fehler berichtet
Spezielle System-/CPU-spezifische Bugs/Probleme:
Verschiedene A-V Sync- und andere Audio-Probleme
Allgemein Audio-Abbruch und ruckartiger Sound (existiert mit allen oder einigen Dateien)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
- xv Treiber: verwende die -double Option