# Installation

Eine Anleitung für eine schnelle Installation steht in der Datei `README`. Bitte lies diese zuerst und komm erst dann für den Rest der mörderischen Details zurück.

In diesem Abschnitt werde ich versuchen, dich durch den Vorgang des Compilierens und Konfigurierens von MPlayer zu leiten. Es ist nicht leicht, muss aber nicht unbedingt schwierig sein. Wenn du andere Erfahrungen machst als das, was ich erkläre, durchsuche bitte die Dokumentation, und du wirst deine Antworten finden. Wenn du Links siehst, folge ihnen und lies ihren Inhalt sorgfältig. Das wird etwas Zeit in Anspruch nehmen, aber das IST es wert.

Du brauchst ein ziemlich aktuelles System. Unter Linux werden die Kernel der Version 2.4.x empfohlen.

## Softwareanforderungen

- binutils - Empfohlene Version ist 2.11.x. Dieses Programm ist verantwortlich für die Generierung von Instruktionen für MMX/3DNow!/usw. und daher sehr wichtig.

- gcc - Empfohlene Versionen sind 2.95 und 3.3+. 2.96 und 3.0.x generieren bekannterweise fehlerhaften Code, 3.1 und 3.2 hatten auch Probleme. Benutze auf PowerPC-Architektur 4.x+.

- XFree86 - Empfohlene Version ist immer die neueste (4.3). Normalerweise möchte das jeder. Mit XFree86 4.0.2 beginnend enthält es die XVideo-Erweiterung (irgendwo als Xv bezeichnet), die bei Karten, die dies unterstützen, für die YUV-Hardwarebeschleunigung (schnelle Bilddarstellung) benötigt wird. Stelle auch sicher, dass das Entwicklerpaket installiert ist, sonst wird es nicht funktionieren. Bei manchen Grafikkarten benötigst du kein XFree86. Siehe Liste unten.

- make - Empfohlene Version ist immer die neueste (mindestens 3.79.x). Dies ist normalerweise nicht so wichtig.

- FreeType in der Version 2.0.9 oder neuer wird benötigt, um Schriften für OSD und Untertitel zu erhalten.

- SDL - ist nicht zwingend notwendig, kann in manchen Fällen aber helfen (schlechter Klang, Grafikkarten, die zusammen mit dem xv-Treiber komischerweise hinterherhingen). Benutze immer die neueste Version (beginnend bei 1.2.x).

- libjpeg - optionaler JPEG-Decoder, der von der Option `-mf` und für mache QT MOV-Dateien verwendet wird. Nützlich sowohl für MPlayer als auch MEncoder, wenn du vorhast, mit JPEG-Dateien zu arbeiten.

- libpng - empfohlen und Standard-(M)PNG-Decoder. Wird für die GUI benötigt. Nützlich sowohl für MPlayer als auch MEncoder.

- lame - empfohlen, erforderlich für Audioencodierung in das MP3-Format mit MEncoder, empfohlene Version ist immer die neueste (mindestens 3.90).

- zlib - empfohlen, benötigt für die Unterstützung komprimierter MOV-Headern und PNG.

- libogg - optional, erforderlich für die Wiedergabe von Dateien im OGG-Format.

- libvorbis - optional, benötigt für die Audiowiedergabe von OGG Vorbis.

- LIVE555 Streaming Media - optional, benötigt für die Wiedergabe von RTSP/RTP-Streams.

- directfb - optional, von . Version 0.9.13 ist mindestens erforderlich.

- cdparanoia - optional, für CDDA-Unterstützung

- libxmms - optional, für Unterstützung des XMMS-Input-Plugins. Version 1.2.7 ist mindestens erforderlich.

- libsmb - optional, für Samba-Unterstützung

- ALSA - optional, für Unterstützung der Audioausgabe mit ALSA. Version 0.9.0rc4 ist mindestens erforderlich.

- bio2jack - optional, für Unterstützung der Audioausgabe mit JACK, wird nur zur Compilezeit benötigt. Du kannst es von http://bio2jack.sf.net beziehen. Da es keine Installationsoptionen hat, musst du die Datei `libbio2jack.a` manuell in deinen Bibliothekspfad kopieren, oder benutze die Option `--with-bio2jack=DIR`, damit `./configure` weiß, wo sich die Datei befindet.

## Grafikkarten

Es gibt allgemein zwei Arten Grafikkarten. Die eine (die neueren Karten) unterstützen Hardware-Skalierung und YUV-Beschleunigung, die anderen nicht.

### YUV-Karten

Diese können das Bild in jeder Größe darstellen und auf jede Größe skalieren (zoomen), die in ihren Speicher passt, und das mit geringer CPU-Last (sogar beim Zoom), daher ist die Vollbildwiedergabe nett und sehr schnell.

- Matrox G200/G400/G450/G550-Karten: Obwohl ein Vidix-Treiber zur Verfügung steht, wird empfohlen, statt dessen das mga_vid-Modul zu verwenden, da es wesentlich besser funktioniert. Siehe bitte den Abschnitt mga_vid für dessen Installation und den Umgang damit. Es ist wichtig, diese Schritte vor der Compilierung von MPlayer durchzuführen, da sonst keine Unterstützung für mga_vid eingebaut wird. Schaue dir auch den Abschnitt Matrox TV-out an. Wenn du nicht Linux benutzt, ist deine einzige Möglichkeit der VIDIX-Treiber: Lies den Abschnitt VIDIX.

- 3Dfx Voodoo3/Banshee-Karten: Bitte siehe den Abschnitt tdfxfb, um große Geschwindigkeitsvorteile zu nutzen. Es ist wichtig, diese Schritte vor der Compilierung von MPlayer durchzuführen, da sonst keine Unterstützung für 3Dfx eingebaut wird. Wenn du X benutzt, verwende mindestens 4.2.0, da der 3dfx Xv-Treiber in der Version 4.1.0 und davor nicht funktioniert.

- ATI-Karten: Der VIDIX-Treiber wird für folgende Karten bereitgestellt: Radeon, Rage128, Mach64 (Rage XL/Mobility, Xpert98). Siehe auch die Dokumentation des TV-out im Abschnitt ATI-Karten, damit du weißt, ob das TV-out deiner Karte unter Linux mit MPlayer unterstützt wird.

- S3-Karten: Die Savage- und Virge/DX-Chips verfügen über Hardwarebeschleunigung. Benutze eine XFree86-Version, die so neu wir möglich ist, ältere Treiber sind buggy. Savage-Chips haben Probleme mit YV12-Darstellung, siehe Abschnitt S3 Xv für Details. Ältere Trio-Karten haben keine oder nur langsame Hardwareunterstützung.

- nVidia-Karten: Können oder können keine gute Wahl sein für die Videowiedergabe. Wenn du eine GeForce2-Karte hast (oder neuer), ist es nicht wahrscheinlich, dass sie ohne Fehler funktioniert. Der in XFree86 eingebaute nVidia-Treiber unterstützt nicht auf allen Karten YUV-Hardwarebeschleunigung. Du musst die Closed-Source-Treiber von nVidia.com herunterladen. Siehe Abschnitt nVidia Xv-Treiber für Details. Bitte siehe auch Abschnitt nVidia TV-out, wenn du einen Fernseher verwenden möchtest.

- 3DLabs GLINT R3 und Permedia3: Ein VIDIX-Treiber wird bereitgestellt (pm3_vid). Bitte siehe Abschnitt VIDIX für Details.

- Andere Karten: keine der oben genannten?

  - Probiere, ob der XFree86-Treiber (und deine Karte) Hardwarebeschleunigung unterstützen. Siehe Abschnitt Xv für Details.

  - Sollten sie dies nicht tun, werden die Features unter deinem Betriebssystem nicht unterstützt :( Wenn Hardwarebeschleunigung unter Windows funktioniert, bedeutet dies nicht, dass sie unter Linux oder anderen Betriebssystemen funktioniert, das hängt von den Treibern ab. Die meisten Hersteller stellen weder Linuxtreiber her, noch veröffentlichen sie die Spezifikationen ihrer Chips - daher hast du Pech, wenn du ihre Karten benutzt. Siehe .

### Nicht-YUV-Karten

Vollbildwiedergabe kann erreicht werden, indem entweder Softwareskalierung aktiviert wird (benutz die Option `-zoom` oder `-vf`, aber ich warne dich, die ist langsam), oder durch den Wechsel zu einem kleineren Videomodus wie zum Beispiel 352x288. Hast du keine YUV-Beschleunigung, wird letztere Methode empfohlen. Der Wechsel des Videomodus kann durch die Option `-vm` aktiviert werden und funktioniert mit folgenden Treibern:

- Benutzung von XFree86: Siehe Details in den Abschnitten DGA-Treiber und X11-Treiber. DGA wird empfohlen! Probiere auch DGA via SDL, das funktioniert manchmal besser.

- Nicht-Benutzung von XFree86: Probiere die Treiber in folgender Reihenfolge: vesa, fbdev, svgalib, aalib.

### Cirrus-Logic-Karten

- GD 7548: verfügbar on-board und getestet in der Compaq Armada 41xx Notebook-Serie.

  - XFree86 3: Funktioniert in 8/16bpp-Modi. Trotzdem, der Treiber ist übel langsam in 800x600@16bpp. Empfohlen: 640x480@16bpp

  - XFree86 4: Der Xserver friert kurz nach dem Start ein, wenn Beschleunigung nicht aktiviert ist, dann jedoch laufen die Dinge noch langsamer als mit XFree86 3. Kein XVideo.

  - FBdev: Framebuffer kann mit dem clgenfb-Treiber im Kernel aktiviert werden, auch wenn er bei mir nur mit 8bpp funktioniert hat, daher unbrauchbar. Die clgenfb-Source musste um die 7548-ID vor der Compilierung erweitert werden.

  - VESA: Die Karte ist nur VBE 1.2-fähig, daher kann VESA-Ausgabe nicht benutzt werden. Kann mit UniVBE nicht umgangen werden.

  - SVGAlib: erkennt einen älteren Cirrus-Chip. Langsam, aber nutzbar mit der Option `-bpp 8`.

## Soundkarten

- Soundblaster Live!: Mit dieser Karte kannst du AC3-Decodierung mit 4 oder 6 (5.1) anstatt 2 Kanälen verwenden. Lies den Abschnitt Software-AC3-Decodierung. Für Hardware-AC3-Passthrough musst du ALSA 0.9 mit OSS-Emulation verwenden!

- C-Media mit S/PDIF out: Hardware-AC3-Passthrough ist mit diesen Karten möglich, siehe Abschnitt Hardware-AC3-Decodierung.

- Features anderer Karten werden von MPlayer nicht unterstützt. Es wird dringend empfohlen, die Sektion Soundkarte zu lesen!

## Features

- Entscheide, ob du eine GUI benötigst. Ist dies der Fall, schau in Abschnitt GUI, bevor du compilierst.

- Wenn Du MEncoder (unseren super Allzweck-Encoder) installieren möchtest, siehe Abschnitt MEncoder.

- Wenn du eine V4L-kompatible TV-Tuner-Karte hast und Filme mit MPlayer anschauen/grabben und encodieren möchtest, lies den Abschnitt TV-Input.

- Wenn du eine V4L-kompatible Radioempfängerkarte hast und mit MPlayer Radio hören oder aufnehmen möchtest, lies den Abschnitt radio.

- Es gibt Unterstützung für ein schickes OSD-Menü, das benutzt werden kann. Siehe Abschnitt OSD-Menü.

Baue dann MPlayer:

    ./configure
    make
    make install

Zu diesem Zeitpunkt ist MPlayer benutzbar. Das Verzeichnis `$PREFIX/share/mplayer` enthält die Datei `codecs.conf`, die dem Programm mitteilt, welche Codecs verfügbar sind und was diese können. Du brauchst die Datei nur, wenn du Eigenschaften ändern möchtest, da die ausführbare Datei intern eine eigene Kopie enthält. Überprüfe, ob du eine Kopie von `codecs.conf` einer älteren MPlayer-Version in deinem Home-Verzeichnis (`~/.mplayer/codecs.conf`) hast, und entferne diese.

Beachte, dass die eingebaute und vom System bereitgestellte `codecs.conf` ignoriert wird, wenn du eine `codecs.conf` im Verzeichnis `~/.mplayer/`, hast. Benutze diese nicht, wenn du nicht an den Interna von MPlayer herumbasteln möchtest, da dies viele Probleme hervorrufen kann. Wenn du die Reihenfolge der Suche nach Codecs ändern möchtest, benutze die Optionen `-vc`, `-ac`, `-vfm`, oder `-afm` auf der Kommandozeile oder in deiner Konfigurationsdatei (siehe Manpage).

Debian-Nutzer können ihr eigenes .deb-Paket bauen, das ist sehr leicht. Führe nur

    fakeroot debian/rules binary

in MPlayers Wurzelverzeichnis aus. Siehe Debian-Packaging für detaillierte Informationen.

Überprüfe immer die Ausgabe von `./configure` und die Datei `configure.log`, sie enthalten Informationen darüber, was eingebaut wird und was nicht. Du möchtest dir vielleicht auch die Dateien `config.h` und `config.mak` anschauen. Wenn du manche Bibliotheken installiert hast, die von `./configure` aber nicht erkannt werden, überprüfe auch die entsprechenden Header-Dateien (normalerweise die -dev-Pakete) und ob deren Versionen passen. Die Datei `configure.log` gibt normalerweise Auskunft darüber, was fehlt.

Obwohl sie nicht notwendig sind, sollten die Fonts installiert werden, um die Funktionalität von OSD- und Untertiteldarstellung nutzen zu können. Die empfohlene Methode dazu ist, eine TTF-Fontdatei zu installieren und MPlayer anzuweisen, diese zu benutzen. Siehe Abschnitt Untertitel und OSD für Details.

## Was ist mit der GUI?

Die GUI benötigt GTK 1.2.x oder GTK 2.0 (sie ist nicht vollständig GTK, aber die Panels). Die Skins werden im PNG-Format gespeichert, daher müssen GTK, libpng (und deren Entwicklungskram, normalerweise gtk-dev genannt), installiert sein. Du kannst die GUI durch Angabe von `--enable-gui` während `./configure` aktivieren. Dann musst du, um den GUI-Modus zu aktivieren, die Binärdatei `gmplayer` starten.

Aus technischen Gründen kannst du die Option `-gui` nicht auf der Kommandozeile verwenden.

Da MPlayer kein Skin enthält, musst du eins herunterladen, um die GUI benutzen zu können. Siehe Download-Seite. Sie sollten in das normale systemweite Verzeichnis (`$PREFIX/share/mplayer/skins`) oder nach `$HOME/.mplayer/skins` installiert werden. MPlayer schaut nach Voreinstellung in diesen Verzeichnissen nach einem Verzeichnis mit dem Namen `default`, du kannst aber die Option `-skin newskin` oder die Konfigurationsdateianweisung `skin=newskin` nutzen, um ein Skin im Verzeichnis `*/skins/newskin` zu benutzen.

## Schriften und OSD

Du musst MPlayer mitteilen, welche Schriftart verwendet werden soll, um in den Genuß von OSD und Untertiteln zu kommen. Jede TrueType-Schriftart oder spezielle Bitmap-Schriftarten werden funktionieren. TrueType-Schriftarten werden jedoch empfohlen, da sie weit besser aussehen, entsprechend der Filmgröße skaliert werden können und mit verschiedenen Zeichensätzen besser umgehen.

### TrueType-Schriften

Es gibt zwei Möglichkeiten, TrueType-Schriften ans Laufen zu bekommen. Die erste besteht darin, die Option `-font` auf der Kommandozeile anzugeben. Diese Option ist vermutlich ein guter Kandidat für die Aufnahme in deine Konfigurationsdatei (siehe Manpage für Details). Die zweite besteht darin, einen `subfont.ttf` genannten Symlink zu der Schriftart deiner Wahl zu erstellen. Führe entweder

    ln -s /Pfad/zur/Schrift.ttf ~/.mplayer/subfont.ttf

für jeden User durch, oder erstelle einen systemweiten Symlink:

    ln -s /Pfad/zur/Schrift.ttf $PREFIX/share/mplayer/subfont.ttf

Wenn MPlayer mit fontconfig-Unterstützung compiliert wurde, werden die oben genannten Methoden nicht funktionieren; statt dessen erwartet `-font` einen fontconfig-Schriftnamen, und der Standard ist die Schriftart Sans-serif. Um eine Liste der fontconfig bekannten Dateien zu erhalten, benutze `fc-list`. Beispiel:

    mplayer -font 'Bitstream Vera Sans' anime.mkv

### Bitmap-Schriften

Wenn du aus einem bestimmten Grund Bitmap-Schriftwarten verwenden möchtest, lade dir einen Satz von unserer Homepage herunter. Du kannst zwischen verschiedenen ISO-Schriftarten und ein paar Sätzen von Schriftarten, die von Benutzern beigetragen wurden, in verschiedenen Zeichensätzen wählen.

Entpacke die Datei, die du heruntergeladen hast nach `~/.mplayer` oder `$PREFIX/share/mplayer`. Benenne dann eins der extrahierten Verzeichnisse um zu `font`, oder erstelle einen Symlink dorthin, zum Beispiel:

    ln -s ~/.mplayer/arial-24 ~/.mplayer/font

    ln -s $PREFIX/share/mplayer/arial-24 $PREFIX/share/mplayer/font

Schriftarten sollten eine entsprechende `font.desc`-Datei haben, die Positionen von Unicode-Schriften auf die aktuelle Codeseite des Untertiteltexts abbildet. Eine andere Möglichkeit besteht darin, in UTF-8 codierte Untertitel zu verwenden und die Option `-utf8` zu verwenden. Noch eine Möglichkeit besteht darin, die Untertiteldatei umzubenennen zu `<video_name>.utf` und sie im selben Verzeichnis wie die Videodatei abzulegen.

### OSD-Menü

MPlayer hat eine komplett benutzerdefinierbare OSD-Menü-Schnittstelle.

Das Menü Einstellungen ist momentan NICHT IMPLEMENTIERT!

Installation

1. compiliere MPlayer mit Übergabe von `--enable-menu` an `./configure`

2. stelle sicher, dass du ein OSD-Font installiert hast

3. kopiere `etc/menu.conf` in dein `.mplayer`-Verzeichnis

4. kopiere `etc/input.conf` in dein `.mplayer`-Verzeichnis oder in das systemweite MPlayer-Konfigurationsverzeichnis (Standard: `/usr/local/etc/mplayer`)

5. überprüfe und editiere `input.conf`, um Menüsteuerungstasten zu aktivieren (das ist dort beschrieben).

6. starte MPlayer mit folgendem Beispiel:

       $ mplayer -menu datei.avi

7. drücke irgendeine von dir definierte Menütaste

## RTC

Es gibt drei Zeitgebermethoden in MPlayer.

- Um die alte Methode zu verwenden, musst du gar nichts machen. Diese benutzt usleep(), um A/V-Synchronisation abzustimmen, mit +/- 10ms Genauigkeit. Trotzdem muss manchmal die Synchronisation noch feiner abgestimmt werden.

- Der neue Zeitgeber-Code benutzt RTC (RealTime Clock, Echtzeituhr) für diese Aufgabe, da dieser präzise 1ms-Timer besitzt. Die Option `-rtc` aktivert diesen, es ist jedoch ein hierfür speziell konfigurierter Kernel erforderlich. Wenn du Kernel 2.4.19pre8 oder neuer laufen hast, kannst du die maximale RTC-Frequenz für normale Benutzer durch das /proc-Dateisystem festlegen. Benutze einen der folgenden Befehle, um RTC für normale Benutzer zu aktivieren:

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

      sysctl dev/rtc/max-user-freq=1024

  Die kannst diese Einstellung permanent machen, indem du letzteren Befehl der Datei `/etc/sysctl.conf` hinzufügst.

  Du kannst die Effizienz des neuen Zeitgebers in der Statuszeile sehen. Die Power Management-Funktionen der BIOSse mancher Notebooks mit speedstep-CPUs vertragen sich nicht gut mit RTC. Audio und Video könnten Synchronisation verlieren. Die externe Stromversorgung anzuschließen, bevor du dein Notebook einschaltest, scheint zu helfen. Bei manchen Hardwarekombinationen (bestätigt während des Gebrauchs eines Nicht-DMA-DVD-Laufwerks auf einem ALi1541-Board) führt der Gebrauch des RTC-Zeitgebers zu sprunghafter Wiedergabe. Es wird empfohlen, in solchen Fällen die dritte Methode zu verwenden.

- Der Code des dritten Zeitgebers wird mit der Option `-softsleep` aktiviert. Der hat die Effizienz von RTC, benutzt RTC aber nicht. Auf der anderen Seite benötigt er mehr CPU.