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.
-
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.
-
LIVE.COM Streaming Media -
optional, wird für die Wiedergabe von RTSP/RTP-Streams benötigt.
-
directfb - optional, von
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.
|
-
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
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.
|
Es gibt allgemein gesprochen zwei Arten von Grafikkarten. Die eine Art
(die neueren Karten) besitzen Hardware-Skalierung und
YUV-Beschleunigung, die anderen nicht.
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 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.
|
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.
|
|
-
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.
|
|