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

http://www.mplayerhq.hu

[ German/Deutsch ] [ English/Englisch ] [ Hungarian/Ungarisch ] [ French/Französisch ] [ Polish/Polnisch ]


Inhaltsverzeichnis



1. Einleitung

1.1. Übersicht

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, QT/MOV, FLI 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, 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 und 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.

1.2. Geschichte

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

  • mpg12play v0.1-v0.3:
    Der erste Versuch, zuzweit gehackt in einer halben Stunden! Ich verwendete libmpeg3 von www.heroinewarrior.com bis zu Version 0.3, aber es gab Bildqualitäts- und Geschwindigkeitsprobleme.
  • mpg12play v0.5-v0.87:
    MPEG Codec wurde ersetzt durch DVDview von Dirk Farin, es war ein großartiges Programm, aber es war langsam und in C++ geschrieben (ich hasse C++!!!)
  • mpg12play v0.9-v0.95pre5:
    MPEG Codec wurde libmpeg2 (mpeg2dec) von Aaron Holtzman & Michel Lespinasse. Es ist großartig, optimiert und schneller C-Code mit perfekter Bildqualität und 100% MPEG Standard.
  • MPlayer v0.3-v0.9:
    Es war ein Paket aus 2 Programmen: mpg12playv0.95pre6 und mein neuer, einfacher AVI-Player 'avip' basierend auf Avifiles Win32 DLL Loader.
  • MPlayer v0.10:
    Der MPEG und AVI Player in einer einizigen Binary!
  • MPlayer v0.11:
    Einigen neue Entwickler sind beigetreten und seit 0.11 war MPlayer Team-Arbeit! .ASF Datei-Unterstützung hinzugefügt und OpenDivX (siehe www.projectmayo.com) für en-/decoding.
  • MPlayer v0.17 "The IdegCounter"
    Die Release-Version nach 0.11pre nach 4 Monaten schwerer Entwicklung! Probiere es, und sei überrascht! Tausende von neuen Features hinzugefügt ... und natürlich wurde auch der alte Code verbessert, Bugs entfernt usw.
  • MPlayer 0.18 "The BugCounter"
    2 Monate seit 0.17 und hier ist die neue Release.. Komplette ASF-Unterstützung, mehr Untertitel-Formate, libao wurde eingeführt (wie libvo, aber für Audio), stabiler den je, und so weiter. Es ist ein MUSS !
  • MPlayer 0.50 "The Faszom(C)ounter"
    Hmmm. Wieder eine Release. Tonnen von neuen Featues, beta GUI Version, Fehler beseitigt, neue vo und ao Treiber, Ports zu vielen Systemen inklusive OpenSource DivX Codecs und vieles mehr. Probier's!

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 here 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 ermal ein gutes System. 2.4.x Kernel ist bei Linux erforderlich, aber mit 2.4.10 und neuer wirst du möglicherweise Probleme bekommen (Lizenzierung, Kernelbugs, usw), sie sind nicht zu empfehlen.

SOFTWARE VORAUSSETZUNGEN

CODECS

  • Die XAnim Codecs sind die Besten (Vollbild, Hardwaremäßiger YUV Zoom) um alte Videos wie Indeo 3/4/5, Cinepak und einige andere abzuspielen. Und sie sind multiplatform, also sind sie die einzige Möglichkeit um Indeo auf nicht-x86 Platformen zu sehen (nun mal abgesehen von XAnim:).
  • VIDEOKARTEN

    Es gibt allgemein gesprochen zwei Arten von Grafikkarten. Die eine Art (und die neueren Karten) besitzen hardwaremäßige YUV Bescheunigung, 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.

  • S3 Karten : Die Savage Chips besitzen Hardwarebeschleunigung. Verwende die neueste XFree86 Version die möglich ist, ältere Treiber sind fehlerhaft. Savage Chips machen Problem mit YV12 Anzeige, siehe S3 Xv Sektion für Details. Ältere, nicht-Savage Karten haben keine oder langsamen Hardwaresupport.
  • Nvidia Karte : sehr schlecht Wahl für Vidiowiedergabe. Nvidias Karten werden im Fernen Osten erzeugt und haben sehr billige und qulitat minderwertige Chips. Der eingebaute Nvidia Treiber in XFree86 enthält keine Hardwareunterstützung für YUV Beschleunigung! Du musst dir die Closed-Source Treiber von nvidia.com downloaden. Für Details siehe Nvidia Xv Treiber Sektion.
  • andere Karten : keine oben genannte?
    • Schau ob dein XFree86 Treiber (und deine Karte) Hardwarebeschleunigung unterstützt. Siehe Xv Sektion für Details.
    • Wenn es Xv nicht unterstützt ist deine Karte eine von diesen:
  • Nicht-YUV Karten

    Vollbild kann durch Zoomen (per Software, dies ist langsam) erreicht werden oder durch das Wechseln in ein kleineres Videomodus, wie zum Beispiel. Wenn du keine YUV Beschleunigung hast ist das Letztgenannte zu empfehlen. Bei MPlayer kann dieses Verhalten durch das Verwenden der -vm Option und mit den folgenden Treibern beeinflusst werden:

    SOUNDKARTEN

  • Die Features von anderen Karten werden von MPlayer nicht unterstützt. Es ist sehr zu empfehlen die Soundkarten Sektion zu lesen !

    FEATURES

  • Für DVD-Unterstützung musst libdvdcss und libdvdread kompilieren (und in dieser Reichenfolge. Lese dazu die Sektion 4.2.
  • Entscheinde dich, ob du GUI brauchst. Wenn du es braucht, wirf einen Blick auf die Sektion 1.4 vor dem Kompilieren.
  • Wenn du eine V4L-kompatible TV-Tuner Karte hast und du mit MPlayer fernsehen oder encodieren willst, siehe in der TV-Input Sektion.
  • Es gibt 2 Codes für die Zeitmessung in MPlayer. Um die alte Methode zu verwenden musst du nicht weiter machen. Es verwendet 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.

    1.4. Was ist mit dem GUI?

    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

    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.

    1.5. Untertitel und OSD

    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.

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

    # 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.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 das Sehen/Grabben über einen V4L-kompatiblen TV-Tuner ermöglicht.

    Kompilierung

    • Als erstes musst du neu kompilieren. ./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 !).
    • stelle sicher, dass dein Tuner mit anderer TV-Software unter Linux funktioniert, zum Beispiel xawtv.

    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.

    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    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 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 -vo xv

    3. Verwendung

      Datei  mplayer [Optionen] [Pfad/]Dateiname
    VCDmplayer [Optionen] -vcd Tracknr /dev/cdrom
    DVDmplayer [Optionen] -dvd Titelnr [/dev/dvd]
    Netzmplayer [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-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
    / und *vermindere/erhöhe Lautstärke
    owechselt OSD: kein / Suchleiste / Suchleiste und Zeit
    mwechselt zwischen Master/PCM-Channel für Lautstärkenregelung
    z oder xeinstellen des Untertitel-Delays, +/- 0,1 Sekunden

    (die folgende Tasten sind nur gültig, wenn man DirectShow DivX Codecs verwendet)

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

    (die folgende Tasten sind nur gültig bei Verwendung von TV-Input

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

    GUI Keyboard-Tasten

      , und .  verherige / 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 Input Kontroll

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

    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:

    PAUSEPause für die Wiedergabe. Irgendein Tastendruck zum Weiterspielen. QUITBeenden von MPlayer RWND10 Sekunden zurück FRWND60 Sekunden zurück FWDÜberspringt 10 Sekunden FFWDÜberspringt 60 Sekunden INCVOLVerhöht die Lautstärke um 1 Prozent DECVOLVerringert die Lautstärke um 1 Prozent MASTERVerwendung des Haupt-Mixer Kanals PCMVerwendung des PCM-Mixer Kanals

    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

    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 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/ /dev/cdrom

    Es gibt bis jetzte 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 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.

    6.4. StrongARM

    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 ?

    6.6. QNX

    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.

    Anhang A - Autoren [Englisch]

    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:

    • Árpád Gereöffy (A'rpi/ESP-team)
      • player code (mpeg stream demultiplexer and avi/asf parser, A-V sync, seek...)
      • mp3lib, based on mpglib sources [MP3 audio decoder]
      • getch2 [keyboard handler]
      • some changes in libmpeg2 code (progressive frames, bitrate & fps support)
      • libvo improvements: adding OpenGL support, bugfix in mga driver...
      • triple buffering & YUY2 support (for DivX/MPEG4) into mga_vid driver
      • scripts in the TVout directory (TVout on Matrox G400DH, read documentation)
      • hacking DivX/Mpeg4 VfW codecs to get YUV output
      • opendivx decoder speed optimizations (see opendivx/ChangeLog)
      • OSD & SUB display code
      • ffmpeg/libavcodec integration
      • DivX4Linux (ProjectMayo) support (see documentation)
      • New DVD-Support using libdvdread
      • DVB support
      • MPEG PES output
      • anything that isn't mentioned elsewhere
    • Zoltán Ponekker (Pontscho/Fresh!)
      • configure script and Makefiles for easy compile
      • GUI system
      • 3DNow! support into mp3lib
      • 3DNow! support into fastmemcpy.h
      • various X11 driver changes (keyboard handling, fullscreen, bpp detect, etc)
      • libvo: adding xmga driver, and fullscreen support to xv
      • audio mixer (volume) support
    • Gábor Lénárt (LGB)
      • ./configure script improvements
      • Makefile improvements
      • prelimenary DVD support
      • various X11 cleanups and fixes
      • HTMLization of documentation
    • Gábor Bérczi (Gabucino)
      • documentation maintainer
      • hungarian translation of documentation and homepage
      • second webpage design&gfx
      • webpage maintainer
      • testing, codecs quality & speed comparsions
      • IRC channels operator (#MPlayer is user channel)
      • experimental MINIX port :)
      • MPsub subtitle format design
    • Szabolcs Berecz (Szabi)
      • codecs.conf file parser
      • config file and command line parser
      • mga_vid fixes, module option etc.
      • fbdev support in libvo
      • type #7 subtitle support
    • László Megyer (Lez, Laaz)
      • SUB reader
      • screensaver+DPMS disable for libvo
    • Gyula László (Chass, Tégla)
      • first fonts (mp_font1.zip)
      • third (current) homepage design&gfx
    • Zoltán Márk Vicián (Se7en)
      • SVGAlib support in libvo
    • Alex Beregszaszi (Al3x)
      • ALSA output driver in libao2
      • vo_ggi output driver in libvo (www.ggi-project.org)
      • xanim codecs support (incomplete yet!)
      • VIVO files support
      • TV grabbing support
    • Andreas Ackermann (Acki)
      • LIRC support (see documentation)
      • DGA support in libvo
    • Felix Bünemann (Atmos)
      • SDL driver maintainer
      • Additional YUV formats fixes
      • New font (mp_font2.zip)
      • PNG file output support in libvo
      • flipping support (for Indeo 3/4, etc)
      • SDL audio driver in libao2
      • RAW PCM/WAVE file writer for libao2
      • OggVorbis audio support
      • Various aspect code
      • Win32 port
    • TeLeNiEkO
      • spanish translation of documentation
    • Michael Graffam
      • XF86VidMode support to vo_x11 and vo_dga
      • Video mode switching code to vo_dga
    • Jens Hoffmann
      • Additional YUV formats support
      • found the big BITMAPINFOHEADER problem -> solved ASV2 pixelization
    • Nick Kurshev
      • memcpy optimizations for AMD K7 and Intel Pentium III (fastmemcpy.h)
      • CDROM tune info
      • further 3DNow! optimizations into mp3lib and libac3 and ffmpeg
      • russian translation of documentation
      • radeonfb
      • libvo driver: vo_vesa
    • German Gomez Garcia
      • SPDIF AC3 output for SBLive!
    • Dariush Pietrzak (Eyck)
      • debian packaging support (see debian/* and this documentation)
      • support for vplayer subtitle format
      • prelimenary support for .RT subtitle format
    • Marcus Comstedt
      • initial solaris8-x86 support
    • Jürgen Keil and Marcus Comstedt
      • patched MPlayer to work on Solaris 8 x86
      • configure fixes
      • various fixes (win32, configure, etc)
      • SUN audio driver in libao2
      • mediaLib support in libavcodec
    • Vladimir Kushnir
      • patched MPlayer to work on FreeBSD x86
    • Bertrand BAUDET
      • network streaming support
    • Artur Zaprzala
      • Complete font generator prog + OSD font (TOOLS/subfont-c)
    • lanzz@lanzz.org
      • GIMP font generator plugin (TOOLS/subfont-gimp)
    • Adam Tla/lka
      • osd/sub review, fixes, optimization, utf8 support
      • various fixes
    • Folke Ashberg
      • native AAlib driver (-vo aa)
    • Kamil Toman
      • czech fonts
      • interlaced MPEG2 support
    • pl
      • ./configure fixes
    • Michael Niedermayer
      • postprocessing support
      • software scaling C/MMX/MMX2/3DNow support (swscale.c)
    • Sven Goethel
      • libvo driver: vo_gl2
    • joy_ping
      • ao_alsa9 fixes
    • Eric Anholt
      • runtime CPU detection
    • Jiri Svoboda
      • AQT type subtitles support
      • CRTC2 YUV support in mga_vid
      • DirectFB video output driver
    • Oliver Schoenbrunner
      • SGI audio driver
      • MIPS support
    • Jeroen Dobbelaere
    • David Holm
      • DXR3 support
    • Panagiotis Issaris
      • -playlist option
    • Mike Melanson
      • MS Video1 codec open-source implementation
      • FLI demuxer, decoder
    • Tobias Diedrich
      • NAS audio output driver
    • Kilian A. Foth
      • -slave mode
    • Tim Ferguson
      • Opensource Cinepak decoder

    Main testers:

    • Tibor Balázs (Tibcu)
    • Péter Sasi (SaPe)
    • Christoph H. Lampert
    • Attila Kinali
    • Dirk Vornheder
    • Bohdan Horst (Nexus)

    The codecs, libs:

    • Aaron Holtzman: <aholtzma@engr.uvic.ca>
      • ac3dec (and libac3) author [AC3 audio decoder]
      • mga_vid driver [Matrox G200/G400 YUV Back-end Scaler]
      • mpeg2dec [Fast MPEG1/MPEG2 video decoder, currently used in player]
    • Michel Lespinasse: <walken@zoy.org>
      • did large libmpeg2 changes for better speed and mpeg conformance
    • Eugene Kuznetsov: <divx@euro.ru>
      • avifile author [AVI player library for linux, using Win32 VfW/ACM codecs]
      • technical help about AVI and ASF formats, and how to get YUV using VfW...
      • divx4linux techical support
    • Zdenek Kabelac: <kabi@informatics.muni.cz>
      • current avifile maintainer(?)
      • some technical help about the win32 stuff and timers
    • Gerard Lantau: <glantau@yahoo.fr>
      • ffmpeg/libavcodec author,maintainer (opensource mpeg, mjpeg, divx en/decoder)
    • Project Mayo: <http://www.projectmayo.com>
      • the OpenDivX codec authors
    • Michael Hipp:
      • mpglib author [isn't used directly but some parts in mp3lib]
    • Mark Podlipec:
      • xa_gsm.c author [MS-GSM audio codec] [from a GSM library by Jutta Degener and Carsten Bormann]

    Their code is not used in current player version, but I've got some ideas or other technical help from:

    • John F. McGowan http://www.jmcgowan.com/
      • AVI FAQ author/collector. [site with many useful docs on codecs and avi fmt]
    • Dirk Farin: <farin@ti.uni-mannheim.de>
      • dvdview author [MPEG1/MPEG2 video decoder, used in v0.5-v0.8]
    • Adam Williams: <broadcast@earthling.net>
      • libmpeg3 (and xmovie) author [MPEG1/MPEG2 video decoder, used in v0.1-v0.4]

    Anhang A/2. Beteiligte am MPlayer Code und an den DOCS

    Homepage

    • Design: Chass
    • Inhalt: Gabucino

    Englische Dokumentationen

    • tech-*.txt: A'rpi
    • alle anderen: Gabucino
    • HTMLisierung: LGB

    Übersetzungen

    • Ungarisch: Gabucino
    • Deutsch: Johannes Feigl
    • Französisch: Stephane Marteau (veraltet)
    • Spanisch: TeLeNiEkO (veraltet)
    • Russisch: Nick Kurshev (veraltet)
    • Polnisch: Dariush Pietrzak, danach Justyna Biala (veraltet)

    Platformen/Portierungen

    • DEBIAN Paketierung: Dariush Pietrzak
    • FreeBSD Support: Vladimir Kushnir
    • Solaris 8 Support: Jürgen Keil
    • MIPS Support: Oliver Schoenbrunner

    MPlayer Code:

    • Dateiformat-Erkennung, Demuxer: A'rpi
    • DVD-Unterstützung: (Alpha Version: LGB) jetzt: ?
    • Netzwerk-Streaming: Bertrand BAUDET
    • A-V Sychronisations-Code: A'rpi
    • Untertitel Datei-Parser/Reader: Lez (die meinsten davon)
    • Konfigurationsdateien & Kommandozeilen-Parser: Szabi
    • fastmemcpy: Nick Kurshev
    • LIRC Support: Acki
    • SUB/OSD Renderer: Adam Tla/lka

    libvo Treiber:

    • vo_3dfx.c - VERALTET, verwende xv
    • vo_tdfxfb.c - Zeljko Stevanovic
    • vo_aa.c - Folke Ashberg
    • vo_dga.c - Acki
    • vo_fbdev.c - Szabi
    • vo_fsdga.c - VERALTET, verwende dga
    • vo_ggi.c - al3x
    • vo_gl.c - A'rpi
    • vo_gl2.c - Sven Goethel
    • vo_md5.c - A'rpi
    • vo_mga.c - A'rpi
    • vo_mpegpes.c - A'rpi
    • vo_null.c - A'rpi
    • vo_odivx.c - A'rpi
    • vo_pgm.c - A'rpi
    • vo_png.c - Atmos
    • vo_sdl.c - Atmos
    • vo_svga.c - se7en
    • vo_syncfb.c - VERALTET, verwende mga
    • vo_vesa.c - Nick Kurshev
    • vo_x11.c - Pontscho
    • vo_xmga.c - Pontscho
    • vo_xv.c - Pontscho

    libao2 Treiber:

    • ao_alsa5.c - al3x
    • ao_alsa9.c - al3x (gefixt von joy_ping)
    • ao_dxr3.c - David Holm
    • ao_null.c - A'rpi
    • ao_oss.c - A'rpi
    • ao_pcm.c - Atmos
    • ao_sdl.c - Atmos
    • ao_sgi.c - Oliver Schoenbrunner
    • ao_sun.c - Jürgen Keil

    TOOLS:

    • subfont-c - Artur Zaprzala:
    • subfont-GIMP - lanzz@lanzz.org
    • *.pl - Atmos
    • x2mpsub - Gabucino
    • others - A'rpi

    Misc:

    • vbelib.* - Nick Kurshev
    • lrmi.* - copied by Nick Kurshev (originally by Josh Vanderhoof)

    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 Maillinglisten-Archiv hier erreichen

    Anhang C - Wie man einen Fehler berichtet

    Anhang D - Bekannte Probleme

    Spezielle System-/CPU-spezifische Bugs/Probleme:

    • SIGILL (signal 4) in draw_frame, auf einem P3 (meinst mit eine 2.2.x Kernel):
      Problem: movups stützt ab in in libvo/fastmemcpy.h
      Abhilfe: ./configure --disable-fastmemcpy
      Lösung: Ausschalten des SSE-Codes in fastmemcpy.h ;-(
    • Kein Bild (schwarzes Bild) beim Abspielen von MPEG oder OpenDivX-Dateien bei RGB 15/16bpp (x11, dga, fbdev, svga)
      Problem: gcc 2.96 Bug
      Abhilfe: ./configure --disable-mmx oder verwende gcc 2.95.x
      Lösung: Code korrigieren
    • SIGILL (signal 4) oder anderer Fehler beim Laden von l3codeca.acm:
      Problem: die Lib wurde nach 0x00xxxxxx anstatt von 0x40xxxxxx geladen
      Abhilfe: mplayer -afm 1 ...
      Lösung: du verwendest einen Kernel-Patch für die Sicherheit, wie z.B. OpenWall
    • SIGILL (signal 4) auf einem P3 mit 2.2.x Kernel:
      Problem: Kernel 2.2.x hat keinen richtige SSE Unterstützung
      Endlösung: update den Kernel auf 2.4.x
      Abhilfe: ./configure --disable-sse
    • Allgemein SIGILL (signal 4):
      Problem: du hast MPlayer auf einem anderem Computer kompiliert, als auf dem du abspielst (z.B. kompiliert auf einem P3 und wiedergabe auf eine Celeron)
      Endlösung: kompiliere MPlayer auf dem Rechner, wie du abspielst
      Abhilfe: ./configure --disable-sse usw.
    • "Internal buffer inconsistency" wird während der Verwendung von MEncoder:
      Problem: bekannter gcc 2.96 Bug, wurde noch nicht gelöst. Wenn du gcc 2.95 nimmst, hast du eine libmp3lame Bibliothek dir mit gcc 2.96 kompiliert wurde (möglichweise aus einem deb/rpm Paket?). Prüfe welche Bibliothek MEncoder findet: ldd mencoder.

    Verschiedene A-V Sync- und andere Audio-Probleme

    Allgemein Audio-Abbruch und ruckartiger Sound (existiert mit allen oder einigen Dateien)
    • Audio Pufferprobleme (Puffergröße schlecht erkannt)
      Abhilfe: mplayer -abs
    • Langsamer Rechner (CPU oder Grafik)
      versuche es mit -vo null, wenn es gut funktioniert hast du eine langsame VGA-Karte oder einen langsamen Treiber.
      Abhilfe: kaufe eine schneller Karte oder lese die Dokumentationen, wie man die Geschwingkeiten erhöht.
      Lösung: versuche -framedrop

    Audio verschiebt sich / verliert die Synchronisation bei einer oder mehreren Dateien
    • defekte Datei (bitten uploaden, das wir das prüfen und korrigieren können
      Abhilfe:
      • -ni oder -nobps Option (für nicht-interlaced oder defekte Dateien)
      • und/oder
      • -mc 0 (erforderlich bei Dateien mit schlechtem Interleave und VBR-Audio)
      • und/oder
      • -delay Option oder +/- Tasten bei Abspielen
    • deine Soundkarte unterstützt keine 48KHz Wiedergabe
      Abhilfe: kaufe eine bessere Soundkarte... oder versuche die Bilder/Sekunde um 10% zu vermindern (verwende -fps 27 bei 30fps-Filmen)
    • langsamer Rechner
      (wenn A-V nicht etwa 0 ist und die letzte Nummer in der Status-Leiste steigt)
      Abhilfe: -framedrop

    Überhaupt kein Ton:
    • deine Datei verwendet eine nicht unterstützten Codec
      Abhilfe: lese die Dokumentationen und hilf uns, dass wir ihn in Zukunft unterstützen

    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)