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

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

4 MPlayer Installation

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

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


4.1 Voraussetzungen an die Software

  • binutils - vorgeschlagene Version ist 2.11.x. Diese Programme sind für das Erzeugen von MMX/3DNow!/usw-Befehlen verantwortlich und deshalb sehr wichtig.
  • gcc - vorgeschlagene Version ist von 2.95.3, (eventuell 2.95.4) und 3.3. Verwende NIEMALS 2.96 oder 3.0.x! Sie erzeugen für MPlayer fehlerhaften Code. Wenn du dich dazu entscheidest, den 2.96 über Bord zu werfen, dann nimm nicht einfach den 3.0.x, nur weil er neuer ist! Frühe Versionen von 3.0.x waren sogar schlechter als 2.96, downgrade also zu 2.95.x (downgrade auch die libstdc++, sie wird vielleicht von anderen Programmen benötigt) oder up-/downgrade überhaupt nicht (sei aber in diesem Falle auf Laufzeitfehler vorbereitet). Wenn du 3.x,x verwenden willst, dann solltest du die neuste Version ausprobieren. Ältere hatten verschiedene Fehler. Es sollte also darauf geachtet werden, dass wenigstens 3.1 verwendet wird, da diese Version getestet wurde und funktionieren sollte. Detaillierte Information dazu (die Fehler von gcc 2.96 sind immer noch nicht behoben, sondern wurden nur in MPlayer umgangen) können in der gcc  2.96-Sektion und in den  FAQs gefunden werden.
  • XFree86 - vorgeschlagene Version ist immer die neueste (4.2.1. Normalerweise will das jeder, da XFree86 seit Version 4.0.2 die  XVideo -Erweiterung enthält (auch bezeichnet als Xv), die benötigt wird, um Hardware-YUV-Beschleunigung (schnelle Bildanzeige) auf Karten zu benutzen, die es unterstützen. Stelle sicher, dass die Development-Pakete installiert sind, sonst wird es nicht funktionieren. Bei einigen Grafikkarten wird XFree86 noch nicht einmal benötigt. Für eine Liste siehe unten.
  • make - vorgeschlagene Version ist immer die neueste (mindestens 3.79.x). Dies ist normalerweise nicht so wichtig.
  • SDL - SDL ist nicht vorgeschrieben, aber es ist in einigen Fällen hilfreich (bei schlechtem Ton oder Videokarten, welche Probleme mit dem Xv-Treiber haben). Verwende immer die aktuellste Version, mindestens aber 1.2.x).
  • libjpeg - optionaler (M)JPEG-Decoder, der bei -mf und einigen QT/MOV-Dateien benutzt wird. Sowohl für MPlayer als auch für MEncoder nützlich.
  • libpng - empfohlen und Standard-(M)PNG-Decoder. Wird für das GUI benötigt. Sowohl für MPlayer als auch für MEncoder nützlich.
  • lame - empfohlen, wird benötigt, um mit MEncoder MP3-Audio zu encodieren. Die empfohlene Version ist immer die neuste (wenigstens 3.90).
  • libogg - optional, wird für das OGG-Dateiformat benötigt.
  • libvorbis - optional, wird für Vorbis-Audio benötigt.
  • en LIVE.COM Streaming Media - optional, wird für die Wiedergabe von RTSP/RTP-Streams benötigt.
  • directfb - optional, von en http://www.directfb.org
  • cdparanoia - optional, für CDDA-Unterstützung
  • libfreetype - optional, für die Unterstützung von TrueType-Schriften. Mindestens Version 2.0.9 wird benötigt.
  • libxmms - optional, für Unterstützung von XMMS-Inputplugins. Mindestens Version 1.2.7 oder neuer wird benötigt.


4.2 Codecs

  • libavcodec: Dieses Codec-Paket kann mit H263/MJPEG/RV10/DivX3/DivX4/DivX5/MP41/MP42/WMV1 codierte Filme und mit WMA (Windows Media AUdio) v1/v2 codierte Audiostreams auf mehreren Plattformen decodieren. Es ist bekanntermaßen auch die schnellste Variante für diese Aufgaben. Details können in der  libavcodec-Sektion gefunden werden.
    Features:
    • Decodierung der genannten Codecs auf nicht-x86 Maschinen
    • Encodierung mit den meisten der genannten Codecs
    • Dies ist der schnellste verfügbare Codec für DivX/3/4/5 und andere MPEG4-Typen und wird deshalb sehr empfohlen!
  • Win32-Codecs: Wenn du planst, MPlayer auf einer x86 Architektur zu verwenden, wirst du sie möglicherweise brauchen. Lade dir dazu die w32codecs.zip herunter und entpacke sie nach /usr/lib/win32.
    Hinweis: Das Avifile-Projekt hat ein ähnliches Codecs-Paket, aber es unterscheidet sich von unserem. Wenn du also alle unterstützten Codecs verwenden willst, dann benutze unser Paket. Du kannst aber auch problemlos unserer Paket für avifile nutzen.
    Features:
    • Du wirst sie möglicherweise brauchen, um ein Video abzuspielen oder zu encodieren, das mit verschiedenen Hardware-Kompressoren wie Tuner-Karten und digitalen Kameras (z.B. DV, ATI VCR, MJPEG) aufgenommen wurde.
    • Erforderlich, wenn du WMV8- oder WMV9/WMA9-Filme abspielen willst. Es wird nicht für alte ASFs mit MP41- oder MP42-Video benötigt (auch wenn VoxWare Audio für diese Dateien häufig anzutreffen ist und dieses von den Win32-Codecs behandelt wird), genausowenig für WMV7. Nicht einmal für WMA (Windows Media Audio) werden sie benötigt - libavcodec hat einen OpenSource-Decoder dafür.
  • QuickTime-Codecs: Auf der x86-Plattform können diese Codecs benutzt werden, um Sorenson v1/v3, RPZA und andere QuickTime-Videoformate sowie QDesign Audiostreams zu decodieren. Installationsanweisungen finden sich in der Sektion über den  Sorenson Videocodec.
  • DivX4/DivX5: Wenn du MEncoder verwendest, solltest du auch libavcodec (siehe oben) verwenden, was schneller ist und eine bessere Qualität bietet.
    Features:
    • 1-Pass- oder 2-Pass-Encodierung mit  MEncoder
    • Du kannst alte DivX3-Film schneller als mit Win32-DLL-Codecs aber langsamer als mit libavcodec ansehen.
    • Es ist Closed-Source und nur in einer x86-Version verfügbar.
  • XviD: Open Source-Encodierungs-Alternative zu Divx4Linux
    Features:
    • 1-Pass- oder 2-Pass-Encodierung mit  MEncoder
    • Es ist Open-Source und nicht nur als x86 Version verfügbar.
    • Es ist ungefähr zwei mal schneller als DivX4 bei der Encodierung - und das bei gleicher oder sogar besserer Qualität.
  • Die  XAnim-Codecs sind die besten Codecs (Vollbild, hardwareseitig unterstützter YUV-Zoom), um 3ivx- und Indeo 3/4/5-Filme sowie einige alte Formate abzuspielen. Und sie sind für verschiedene Plattformen verfügbar, sodass sie die einzige Möglichkeit sind, wenn du Indeo-Video auf nicht-x86-Plattformen abspielen möchtest (nun mal abgesehen von XAnim :). Andere Codecs wie z.B. der Cinepak-Codec werden am besten mit dem MPlayer eigenen Cinepak-Decoder wiedergegeben.
  • Für Ogg Vorbis-Audiodecodierung wird eine korrekte Installation von libvorbis benötigt. Es sollten, falls vorhanden, deb/rpm-Pakete werden oder diese Sourcen en http://ogg.org/ogg/vorbis/download/vorbis_nightly_cvs.tgz kompiliert werden (dies ist eine täglich erneuerter tarball des Vorbis CVS).
  • MPlayer kann die Libraries von RealPlayer 8 oder RealONE verwenden, um Dateien mit RealVideo 2.0 bis 4.0 und Sipro/Cook-Audio wiederzugeben. Eine Installationsanleitung und weitere Informationen finden sich in der Sektion  RealMedia-Dateiformat.


4.3 Grafikkarten

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


4.3.1 YUV-Karten

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

  • Matrox G200/G400/G450/G550-Karten: Obwohl ein  Vidix Treiber zur Verfügung gestellt wird, wird empfohlen, stattdessen die alten mga_vid-Kernelmodule zu verwenden, da diese viel besser funktionieren. in der  mga_vid Sektion. Es ist wichtig, diese Schritte vor der Kompilierung von MPlayer vorzunehmen, da ansonsten keine mga_vid-Unterstützung einkompiliert wird. Du solltest auch die  Matrox TV-out-Sektion lesen. Nicht-Linux-Benutzer können nur die Vidix-Treiber verwenden. Lies dazu die  Vidix-Sektion.
  • 3Dfx Voodoo3/Banshee-Karten: Du solltest die  Sektion lesen, um eine möglichst hohe Geschwindigkeit zu erzielen. Es ist wichtig, diese Schritte vor der Kompilierung von MPlayer vorzunehmen, da ansonsten keine 3Dfx-Unterstützung einkompiliert wird. Du solltest auch die  3dfx TV-out-Sektion lesen. Wenn X verwendet wird, solltest du mindestens Version 4.2.0 installiert haben, da die 3dfx Xv-Treiber in 4.1.0 und den früheren Versionen kaputt waren!
  • ATI-Karten: Der  Vidix-Treiber wird für folgende Karten zur Verfügung gestellt: Radeon, Rage128, Mach64 (Rage XL/Mobility, Xpert98). Du solltest auch die Sektion über  ATI-Karten TV-out-Dokumentation lesen, um herauszufinden, ob der jeweilige TV-out der Karte unter Linux/MPlayer unterstützt wird.
  • S3-Karten: Die Savage und Virge/DX Chips besitzen Hardwarebeschleunigung. Verwende die neueste XFree86 Version, ältere Treiber sind fehlerhaft. Savage-Chips machen Problem mit YV12-Anzeige, siehe  S3-Xv-Sektion für Details. ältere, Trio-Karten haben keinen oder nur langsamen Hardwaresupport.
  • nVidia-Karten: Solche können eventuell eine gute Wahl für Videowiedergabe sein. Wenn du weder eine GeForce2 noch eine neuere Karte hast, dann wird es wahrscheinlich nicht fehlerfrei funktionieren. Der in XFree86 eingebaute nVidia-Treiber stellt bei manchen Karten keine YUV-Beschleunigung zur Verfügung! Du musst dir also eventuell die Closed-Source-Treiber von en nvidia.com herunterladen. Nähere Details findest du in der  nVidia-Xv-Treiber-Sektion. Wenn du den TV-Ausgang der Karte benutzen willst, dann schau auch in der  nVidia-TV-Out-Sektion nach.
  • 3DLabs GLINT R3 und Permedia3: Ein  Vidix-Treiber steht zur Verfügung (pm3_vid).
  • Andere Karten: Du hast keine der oben genannten?
    • Schau, ob dein XFree86-Treiber (und deine Karte) Hardwarebeschleunigung unterstützt.
    • Wenn nicht, werden die Features deiner Karte unter deinem Betriebssystem nicht unterstützt :( Wenn die Hardware-Skalierung unter Windows läuft, bedeutet dies nicht, dass das auch unter Linux oder anderen Betriebssysten funktioniert. Es hängt von den Treibern ab! Die meisten Hersteller erstellen weder Linux-Treiber, noch geben sie die Chipspezifikationen frei - du bist also der Unglückliche, wenn du diese Karten verwendest.


4.3.2 Nicht-YUV-Karten

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

  • Verwendung von XFree86: siehe Details in der  DGA-Treiber und der  X11-Treiber. DGA ist empfohlen! Versuche auch, DGA via SDL zu verwenden. Manchmal funktioniert das besser.
  • Ohne XFree86: versuche die Treiber in folgender Reihenfolge:
     vesa,  fbdev,  svgalib,  aalib.

Einige Karten:

  • Cirrus-Logic-Karten:
    • GD 7548: In Compaq Armada 41xx-Notebook-Serien eingebaut und getestet.
      • XFree86 3: Funktioniert im 8/16bpp-Modus. Der Treiber ist aber in 800x600@16bpp zu langsam und fehlerbehaftet.
        Empfohlen: 640x480@16bpp
      • XFree86 4: Der Xserver friert bald nach dem Start ein, es sei denn, die Beschleunigung ist deaktiviert. Dann wird jedoch alles langsamer als XFree86 3. Kein XVideo.
      • FBdev: Der Framebuffer kann mit dem clgenfb-Kerneltreiber aktiviert werden, obwohl er bei mir nur im 8bpp-Modus funktioniert hat und somit für Videowiedergabe unbenutzbar ist. Ich musste vor der Kompilierung den Sourcen des clgenfb die ID des 7548-Chips hinzufügen.
      • VESA: Die Karte kann bloss VBE 1.2, sodass der VESA-Framebuffer nicht verwendet werden kann. Dieses Problem kann nicht mit UniVBE umgangen werden.
      • SVGAlib: Erkennt ältere Cirrus Chips. Es funktioniert mit mit -bpp 8, ist aber ziemlich langsam.



4.4 Soundkarten

  • Soundblaster Live!: Diese Karte kann 4 oder 6 (5.1) Kanäle (von AC3) anstelle von 2 verwenden. Lies die Sektion über  AC3-Decodierung in Software. Für die unveränderte Ausgabe der AC3-Daten an den Ausgang musst du ALSA 0.9 mit der OSS-Emulation verwenden!
  • C-Media mit SP/DIF Ausgang: Hardware-AC3-Durchgabe ist mit diesen Karten möglich.
  • Die Features von anderen Karten werden von MPlayer nicht unterstützt.



zurück   Seitenanfang Startseite Kapitelanfang Inhaltsverzeichnis GPL   weiter