# MPlayer - The Movie Player for LINUX

## © 2000-2003 Arpad Gereoffy (A'rpi/ESP-team)
http://www.mplayerhq.hu

[ Deutsch ] [ Englisch ] [ Ungarisch ] [ Französisch ] [ Polnisch ] [ Italienisch ] [ Chinesisch ]

## Inhaltsverzeichnis

- 0. Wie diese Dokumentation zu lesen ist
- 1. Einleitung
  - 1.1 Geschichte
  - 1.2 Installation
  - 1.3 Was ist mit dem GUI?
  - 1.4 Untertitel und OSD
    - 1.4.1 Das MPlayer eigene Untertitelformat (MPsub)
    - 1.4.2 Installation des OSD und der Untertitel
    - 1.4.3 Das OSD-Menü
  - 1.5 RTC
- 2. Features
  - 2.1 Unterstützte Formate
    - 2.1.1 Videoformate
      - 2.1.1.1 MPEG-Dateien
      - 2.1.1.2 AVI-Dateien
      - 2.1.1.3 ASF/WMV-Dateien
      - 2.1.1.4 QickTime/MOV-Dateien
      - 2.1.1.5 VIVO-Dateien
      - 2.1.1.6 FLI-Dateien
      - 2.1.1.7 RealMedia-(RM)-Dateien
      - 2.1.1.8 NuppelVideo-Dateien
      - 2.1.1.9 yuv4mpeg-Dateien
      - 2.1.1.10 FILM-Dateien
      - 2.1.1.11 RoQ-Dateien
      - 2.1.1.12 OGG-Dateien
      - 2.1.1.13 SDP-Dateien
      - 2.1.1.14 PVA-Dateien
      - 2.1.1.15 GIF-Dateien
    - 2.1.2 Audioformate
      - 2.1.2.1 MP3-Dateien
      - 2.1.2.2 WAV-Dateien
      - 2.1.2.3 OGG/OGM-Dateien (Vorbis)
      - 2.1.2.4 WMA/ASF-Dateien
      - 2.1.2.5 MP4-Dateien
      - 2.1.2.6 CD-Audio
      - 2.1.2.7 XMMS
  - 2.2 Unterstützte Codecs
    - 2.2.1 Videocodecs
      - 2.2.1.1 DivX4/DivX5
      - 2.2.1.2 FFmpegs DivX/libavcodec
      - 2.2.1.3 XAnim-Codecs
      - 2.2.1.4 VIVO-Video
      - 2.2.1.5 MPEG 1/2-Video
      - 2.2.1.6 MS Video1
      - 2.2.1.7 Cinepak CVID
      - 2.2.1.8 RealVideo
      - 2.2.1.9 XviD
      - 2.2.1.10 Sorenson
    - 2.2.2 Audiocodecs
      - 2.2.2.1 AC3-Decodierung in Software
      - 2.2.2.2 AC3-Decodierung in Hardware
      - 2.2.2.3 libmad-Unterstützung
      - 2.2.2.4 VIVO-Audio
      - 2.2.2.5 RealAudio
      - 2.2.2.6 QDesign codecs
      - 2.2.2.7 Qualcomm codec
    - 2.2.3 Win32 Codec Einbindungs-HOWTO
      - 2.2.3.1 VfW-Codecs
      - 2.2.3.2 DirectShow-Codecs
  - 2.3 Ausgabegeräte
    - 2.3.1 Video-Ausgabegeräte
      - 2.3.1.1 Einrichten von MTRR
      - 2.3.1.2 Ausgabetreiber für traditionelle Grafikkarten
        - 2.3.1.2.1 Xv
          - 2.3.1.2.1.1 3dfx-Karten
          - 2.3.1.2.1.2 S3-Karten
          - 2.3.1.2.1.3 nVidia-Karten
          - 2.3.1.2.1.4 ATI-Karten
          - 2.3.1.2.1.5 NeoMagic-Karten/A>
          - 2.3.1.2.1.6 Trident-Karten
          - 2.3.1.2.1.7 Kyro/PowerVR-Karten
        - 2.3.1.2.2 DGA
        - 2.3.1.2.3 SDL
        - 2.3.1.2.4 SVGAlib
        - 2.3.1.2.5 Framebuffer-Ausgabe (FBdev)
        - 2.3.1.2.6 Matrox-Framebuffer (mga_vid)
        - 2.3.1.2.7 3dfx-YUV-Unterstützung (tdfxfb)
        - 2.3.1.2.8 OpenGL-Ausgabe
        - 2.3.1.2.9 AAlib - Ausgabe im Textmodus
        - 2.3.1.2.10 VESA - Ausgabe über ein VESA-BIOS
        - 2.3.1.2.11 X11
        - 2.3.1.2.12 VIDIX
          - 2.3.1.2.12.1 ATI-Karten
          - 2.3.1.2.12.2 Matrox-Karten
          - 2.3.1.2.12.3 Trident-Karten
          - 2.3.1.2.12.4 3DLabs-Karten
        - 2.3.1.2.13 DirectFB
        - 2.3.1.2.14 DirectFB/Matrox (dfbmga)
      - 2.3.1.3 MPEG-Decoderkarten
        - 2.3.1.3.1 DVB
        - 2.3.1.3.2 DXR2
        - 2.3.1.3.3 DXR3/Hollywood+
      - 2.3.1.4 Andere Hardwareausgabegeräte
        - 2.3.1.4.1 Zoran JPEG-Decoder
        - 2.3.1.4.2 Blinkenlights
      - 2.3.1.5 TV-out-Unterstützung
        - 2.3.1.5.1 Matrox G400-Karten
        - 2.3.1.5.2 Matrox G450/G550-Karten
        - 2.3.1.5.3 ATI-Karten
        - 2.3.1.5.4 Voodoo 3
        - 2.3.1.5.5 nVidia
    - 2.3.2 Audio-Ausgabegeräte
      - 2.3.2.1 Audio/Video-Synchronisation
      - 2.3.2.2 Erfahrungen mit und Empfehlungen für Soundkarten
      - 2.3.2.3 Audio filters
        - 2.3.2.3.1 Up/Downsampling
        - 2.3.2.3.2 Ändern der Anzahol der Kanäle
        - 2.3.2.3.3 Formatkonvertierung
        - 2.3.2.3.4 Verzögerung
        - 2.3.2.3.5 Lautstärkeregelung per Software
        - 2.3.2.3.6 Equalizer
        - 2.3.2.3.7 Panning-Filter
        - 2.3.2.3.8 Sub-woofer
        - 2.3.2.3.9 Surround-sound decoder
      - 2.3.2.4 Audio plugins (veraltet)
        - 2.3.2.4.1 Up/Downsampling
        - 2.3.2.4.2 Surround Sound-Decodierung
        - 2.3.2.4.3 Formatkonvertierung
        - 2.3.2.4.4 Verzögerung
        - 2.3.2.4.5 Lautstärkeregelung per Software
        - 2.3.2.4.6 Extrastereo
        - 2.3.2.4.7 Lautstärkenormalisierung
  - 2.4 TV-Eingang
    - 2.4.1 Compilierung
    - 2.4.2 Tipps zur Benutzung
    - 2.4.3 Beispiele
  - 2.5 Edit Decision Lists (EDL)
    - 2.5.1 Benutzung einer EDL-Datei
    - 2.5.2 Erstellen einer EDL-Datei
- 3. Benutzung
  - 3.1 Kommandozeile
  - 3.2 Steuerung
    - 3.2.1 Konfiguration der Steuerung
      - 3.2.1.1 Tastennamen
      - 3.2.1.2 Befehle
    - 3.2.2 Steuerung mittels LIRC
    - 3.2.3 Der "slave"-Modus
  - 3.3 Streaming über das Netzwerk oder pipes
- 4. CD/DVD-Sektion
  - 4.1 CD-ROM- und DVD-ROM-Laufwerke
  - 4.2 DVD-Wiedergabe
  - 4.3 VCD-Wiedergabe
- 5. FAQ - die häufigsten Fragen und Antworten
  - 5.1 Compilierung
  - 5.2 Allgemeine Fragen
  - 5.3 Probleme bei der Wiedergabe
  - 5.4 Probleme mit den Video-/Audio-Treibern (vo/ao)
  - 5.5 DVD-Wiedergabe
  - 5.6 Feature-Wünsche
  - 5.7 Encodieren
- 6. Portierungen
  - 6.1 Linux
    - 6.1.1 Debian-Pakete
    - 6.1.2 RPM-Pakete
    - 6.1.3 ARM
  - 6.2 *BSD
    - 6.2.1 FreeBSD
    - 6.2.2 OpenBSD
  - 6.3 Solaris
  - 6.4 Silicon Graphics / Irix
  - 6.5 QNX
  - 6.6 Cygwin
- 7. Encodieren mit MEncoder
  - 7.1 2- oder 3-pass-Encodierung mit MPEG4 ("DivX")
  - 7.2 In das MPEG-Format encodieren
  - 7.3 Bildgröße skalieren
  - 7.4 Kopieren einzelner Streams
  - 7.5 AVIs mit defektem Index reparieren
  - 7.5.1 Aneinanderhängen mehrerer AVI-Dateien
  - 7.6 Encodierung mit der libavcodec-Familie
  - 7.7 Encodieren einer Menge einzelner Bildern (PNGs oder JPGs)
  - 7.8 DVD-Untertitel in eine Vobsub-Datei extrahieren
  - 7.9 Höhen-Seitenverhältnis beibehalten
- Anhang A - Mail-Listen
- Anhang B - Wie man einen Fehler berichtet
- Anhang C - Bekannte Fehler
- Anhang D - Skin file format (Englisch)

- D.1 Overview
  - D.1.1 Directories
  - D.1.2 Images
  - D.1.3 Skin components
  - D.1.4 Files
- D.2 The skin file
  - D.2.1 Main window and playbar
  - D.2.2 Subwindow
  - D.2.3 Skin menu
- D.3 Fonts
  - D.3.1 Symbols
- D.4 GUI messages

- Anhang E - Aufschrei der Entwickler
  - E.1 GCC 2.96
  - E.2 Distribution in compilierter Form
  - E.3 nVidia
  - E.4 Joe Barr
- Anhang F - Wie man Patches erstellt (englisch)

# 0. Wie diese Dokumentation zu lesen ist

Wenn du die Installation zum ersten Mal durchführst: Pass auf, dass du alles von hier bis zum Ende der Installationsanleitung durchliest, und folge den entsprechenden Links. Wenn du immer noch Fragen hast, kehre zum Inhaltsverzeichnis zurück und suche nach dem Begriff, lies die FAQ oder versuche, mit Hilfe von grep die Dateien zu durchsuchen.

Die Hauptregel dieser Dokumentation: Wenn es nicht dokumentiert ist, existiert es nicht. Wenn nichts von einer Möglichkeit der Audioencodierung von TV-Karten steht, kann man dies auch nicht tun. Wenn du gut kombinieren kannst, dann ist das hier wirklich gut für dich. Viel Glück. Du wirst es brauchen :) Ein weiterer guter Ratschlag ist folgendes Zitat von Chris Phillips, der auf der mplayer-users Mail-Liste folgendes schrieb:

> Vor einiger Zeit habe ich gesagt, dass es einen Unterschied zwischen einem Neuling und einem Idioten gibt. Egal, wieviel du von einer Sache wirklich weißt (sei es Linux, Autos, Frauen :D), du solltest IMMER dazu fähig sein, einen Schritt zurück zu machen und objektiv die Lage zu betrachten. Andernfalls bist du meiner bescheidenen Meinung nach einfach nur dumm. Eine Frau, mit der ich zusammen wohne, nahm einmal an, dass der Staubsauger defekt war, nur weil er nichts mehr aufgesaugt hat. Sie hat nie daran gedacht, den Staubbeutel zu wechseln, weil sie das nie vorher gemacht hatte. Und das ist einfach nur doof und kein Fall von 'ich weiß nicht, was ich tun soll'. Mit etwas nicht vertraut zu sein ist absolut keine Entschuldigung für a) Faulheit und b) Unwissenheit. Es gibt so viele Menschen, die das Wort "Fehler" sehen und dann einfach aufhören zu denken. Tatsächlich scheinen nur wenige auch die Wörter hinter dem Punkt zu lesen.

# 1. Einleitung

MPlayer ist ein 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, OGG/OGM, VIVO, ASF/WMA/WMV, QT/MOV/MP4, FLI, RM, NuppelVideo, yuv4mpeg, FILM, RoQ und PVA-Dateien ab. Dabei kommen viele eingebaute Codecs, Xanim-, RealPlayer und Win32-DLL-Codecs zum Einsatz. Du kannst dir VideoCDs, SVCDs, DVDs, 3ivx-, RealMedia- und auch DivX-Filme sehen (und dafür wird nicht einmal die avifile-Bibliotek benötigt). Ein weiteres großes Feature von MPlayer ist die große Bandbreite unterstützter Ausgabetreiber. MPlayer funktioniert mit X11, Xv, DGA, OpenGL, SVGAlib, fbdev, AAlib und DirectFB. Du kannst aber auch GGI und SDL (und dadurch alle deren Treiber) und einige grafikkartenspezifische Low-Level-Treiber verwenden - z.B. für Matrox, 3Dfx und Radeon, Mach64 oder Permedia3. Die meinsten von ihnen unterstützen Software- oder Hardware-Skalierung, sodass du deine Videos im Vollbild genießen kannst. MPlayer unterstützt auch die Wiedergabe mit einigen Hardware-MPEG-Decoder-Karten wie der DVB und der DXR3/Hollywood+! Und was meinst du zu den schönen, großen, antialiasten und schattierten Untertiteln (10 unterstützte Typen) mit europäischen (ISO 8859-1,2, Ungarisch, Englisch, Tschechisch, usw.), kyrillischen und koreanischen Schriften? Und das onscreen display (OSD)?

Der Player spielt felsenfest beschädigte MPEG-Dateien (nützlich für einige VCDs) und schlechte AVI-Dateien, welche auch mit dem bekannten Windows Media Player nicht mehr abspielbar sind. Auch AVI-Dateien ohne Index sind abspielbar, und du kannst den Index entweder temporär mit der `-idx`-Option oder permanent mit MEncoder wiederherstellen. Beides ermöglicht wieder die Suchfunktion! Du siehst also, Stabilität und Qualität sind die wichtigsten Dinge für mich, aber die Geschwindigkeit ist genauso beeindruckend.

MEncoder (der Filme encodierende Partner von MPlayer) ist ein einfacher Filmencodierer, der dazu bestimmt ist, von MPlayer abspielbare Filme (AVI/ASF/OGG/DVD/VCD/VOB/MPG/MOV/VIV/FLI/RM/NUV/NET/PVA) in andere von MPlayer abspielbare Formate umzuwandeln (siehe unten). Er kann verschiedene Codecs zum Encodieren benutzen (DivX4 (mit 1 oder 2 Durchgängen), libavcodec, PCM/MP3/VBR MP3-Audio). Er verfügt weiterhin über ein mächtiges Pluginsystem für die Manipulation des Videos.

#### Features von MEncoder

- verfügt über die gleiche große Bandbreite von Eingangsformaten wie MPlayer
- kann alle von FFmpegs libavcodec zur Verfügung gestellten Codecs benutzen
- Videoencodierung direkt von einem V4L-kompatiblen TV-Gerät
- Encodieren/Multiplexen in ein verschachteltes (interleaved) AVI mit einem korrekten Index am Ende
- Erstellen des Audio-Streams von externen Audiodateien
- Encodieren mit einem, zwei oder drei Durchgängen
- VBR MP3-Audio - WICHTIGER HINWEIS: VBR-MP3-Audio wird eventuell nicht immer korrekt von Windows-Playern wiedergegeben!
- PCM-Audio
- 1:1-Streamkopien
- Audio-/Videosynchronisation basierend auf den PTS (kann mit der Option `-mc 0` deaktiviert werden)
- Anpassund der Framerate mit der `-ofps`-Option (kann z.B. dazu benutzt werden, 29.95fps-VOBs in 24fps-AVIs umzuwandeln)
- benutzt unser äußerst mächtiges Pluginsystem (beschneiden (crop), erweitern (expand), spiegeln (flip), Nachbearbeitung (postprocess), drehen (rotate), skalieren (scale), RGB/YUV-Konvertierung etc.)
- kann DVD/Vobsub-Untertitel UND Textuntertitel direkt in das Bild einbetten
- kann DVD-Untertitel in das Vobsub-Untertitel extrahieren

#### Geplante Features

- noch größere Bandbreite von verfügbaren En-/Decodier-Formate/-Codecs (z.B. die Erstellung von VOB-Dateien mit DivX4/Indeo5/VIVO-Streams ;))

MPlayer und MEncoder können unter den Bedingungen der GNU General Public License Version 2 vertrieben werden.

## 1.1 Geschichte

Es begann vor einem Jahr... Ich (A'rpi) hatte eine eine Menge von Playern unter Linux ausprobiert (mtv, xmps, dvdview, livid/oms, videolan, xine, xanim, avifile, xmmp), aber sie hatten alle ihre Probleme. Meist mit speziellen Dateien oder mit der Audio-Video-Synchronisation. Die meisten waren unfähig, alle drei - MPEG1, MPEG2 und AVI (DivX) - abzuspielen. 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: Sep 22-25, 2000
  Der erste Versuch, innerhalb von nur 30 Minuten zusammengehackt! Ich verwendete libmpeg3 von www.heroinewarrior.com bis zu Version 0.3, aber es gab Bildqualitäts- und Geschwindigkeitsprobleme.
- mpg12play v0.5-v0.87: Sep 28-Oct 20, 2000
  Der MPEG-Codec wurde durch DVDview von Dirk Farin ersetzt. Es war ein großartiges Programm, aber es war langsam und in C++ geschrieben (ich hasse C++!).
- mpg12play v0.9-v0.95pre5: Oct 21-Nov 2, 2000
  Als MPEG-Codec wurde libmpeg2 (mpeg2dec) von Aaron Holtzman & Michel Lespinasse verwendet. Es ist großartiger, optimierter und schneller C-Code mit perfekter Bildqualität und 100%ig zum MPEG-Standard kompatibel.
- MPlayer v0.01: Nov 11, 2000
  Der erste MPlayer.
- MPlayer v0.3-v0.9: Nov 18-Dec 4, 2000
  Diese Version war ein Paket aus 2 Programmen: mpg12play v0.95pre6 und mein neuer, einfacher AVI-Player 'avip', der auf dem Win32-DLL-Loader von avifile basierte.
- MPlayer v0.10: Jan 1, 2001
  Der MPEG- und AVI-Player in einem einizigen Binary!
- MPlayer v0.11pre Serien:
  Einigen neue Entwickler sind beigetreten, und seit 0.11 war MPlayer Teamarbeit. .ASF-Datei- und OpenDivX-Unterstützung (siehe www.projectmayo.com) für en-/decoding hinzugefügt.
- MPlayer v0.17 "The IdegCounter" Apr 27, 2001
  Die Release-Version nach 0.11pre nach 4 Monaten schwerer Entwicklung. Probiere es und sei beeindruckt! Tausende von neuen Features hinzugefügt... Und natürlich wurde auch der alte Code verbessert, Fehler entfernt usw.
- MPlayer 0.18 "The BugCounter" Jul 9, 2001
  2 Monate seit 0.17, und hier ist das neue Release. Komplette ASF-Unterstützung, mehr Untertitel-Formate, libao wurde eingeführt (wie libvo, aber für Audio), stabiler denn je, und so weiter. Es ist ein muss!
- MPlayer 0.50 "The Faszom(C)ounter" Oct 8, 2001
  Hmmm. Wieder ein Release. Tonnen von neuen Featues, Beta-Version vom GUI, Fehler beseitigt, neue vo- und ao-Treiber, Ports auf viele Systeme inklusive OpenSource-DivX-Codecs und vieles mehr. Probier's!
- MPlayer 0.60 "The RTFMCounter" Jan 3, 2002
  MOV/VIVO/RM/FLI/NUV-Dateiformat-Unterstützung, native CRAM-, Cinepak-, ADPCM-Codecs und Support für die Binary-Codecs von XAnim; DVD-Untertitel-Unterstützung, erstes Release des MEncoders, TV-Grabbing, Cache, liba52, unzählbare Fehlerbehebungen.
- MPlayer 0.90pre10 "The BirthdayCounter" Nov 11, 2002
  Obwohl diese Version kein Release ist werde ich sie hier erwähnen, da sie genau zwei Jahre nach MPlayer v0.01 herauskam. Herzlichen Glückwunsch, MPlayer!
- MPlayer 0.90 "?"Datum noch unbekannt
- MPlayer 0.90rc1 "The CodecCounter" Dec 7, 2002
  Schon wieder kein Release, aber MPlayer ist nach den neuen Features (Unterestützung für Sorenson 3 (QuickTime) und Windows Media 9) der einzige Player, der alle bekannten Videoformate unterstützt!

## 1.2 Installation

In diesem Kapitel versuche ich, dich auf dem Weg der Konfiguration und Compilierung 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.

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

#### 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 als 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 desshalb 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 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: Informationen zu diesem Codec sind in der Sektion 2.2.1.1 erhältlich. 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 verschiedenen 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 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.

#### Grafikkarten

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

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. Näheres zur Installation und dem Gebrauch findest du 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 2.3.1.9 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 eincompiliert 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). Du solltest auch die Vidix-Sektion lesen.
- Andere Karten: Du hast keine oben genannte?
  - Schau, ob dein XFree86-Treiber (und deine Karte) Hardwarebeschleunigung unterstützt. Siehe Xv-Sektion für Details.
  - 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. Lies die dazu unten 'Nicht-YUV Karten'

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

#### 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; siehe AC3-Decodierung in Hardware.
- Die Features von anderen Karten werden von MPlayer nicht unterstützt. Es ist empfehlenswert, die Soundkarten-Sektion zu lesen!

#### Features

- Entscheide dich, ob du das GUI brauchst. Wenn du es braucht, wirf einen Blick auf die GUI-Sektion vor dem Kompilieren.
- Wenn du MEncoder (unsen grossartigen Encoder-für-Alles) installieren willst, dann lies die MEncoder-Sektion .
- Wenn du eine V4L-kompatible TV-Tuner-Karte hast und du mit MPlayer fernsehen oder encodieren willst, dann lies die TV-Input-Sektion.
- Inzwischen gibt es ein hübsches OSD-Menü, das nur darauf wartet, ausprobiert zu werden. Schau dazu in der OSD-Menü-Sektion nach.

Nun kompiliere MPlayer:

        ./configure
        make
        make install

Ab diesem Zeitpunkt ist MPlayer zur Benutzung bereit. Das Verzeichnis `$PREFIX/etc/mplayer` enthält die Datei `codecs.conf`, welche benutzt wird, um dem Programm alle Codecs und deren unterstütze Features mitzuteilen. Diese Datei sollte zusammen mit dem Hauptprogramm immer aktuell gehalten werden!
Du solltest außerdem überprüfen, ob eine `codecs.conf` deinem Home-Verzeichnis (`~/.mplayer/codecs.conf`) von einer alten MPlayer-Version vorhanden ist. Diese solltest du unbedingt löschen!

Debian-Benutzer können ein `.deb`-Paket für sich compilieren, was sehr einfach ist. Du musst bloß `fakeroot debian/rules binary` in MPlayer's Sourceverzeichnis ausführen. Genauere Anleitungen können in der Debian-Sektion gefunden werden.

Schau dir immer die Ausgabe von `./configure` und die `configure.log`-Datei an. Beide enthalten Infos darüber, welche Features eincompiliert werden, und welche nicht. Du kannst dir auch die Dateien `config.h` und `config.mak` ansehen.
Wenn einige Bibliotheken installiert sind, diese aber nicht von `./configure` erkannt werden, dann solltest du überprüfen, ob auch die dazugehärigen Header-Dateien installiert sind (welche sich meist in -dev-Paketen befinden), und ob die Versionsnummern übereinstimmen. Das `configure.log` sagt dir normalerweise, was fehlt.

Auch wenn sie nicht zwingend erforderlich sind, solltest du doch Schriften installieren, um das OSD und Untertitel benutzen zu können. Die empfohlene Methode ist, eine TrueType-Schrift zu installieren und MPlayer anzuweisen, diese zu benutzen. Wie das funktioniert, kannst du in der Sektion über Untertitel und das OSDnachlesen.

## 1.3 Was ist mit dem GUI?

Das GUI basiert auf GTK 1.2.x (nicht das ganze GUI benutzt GTK, sondern nur die Dialoge). Die Skins sind als PNG-Grafiken gespeichern, so dass du also auch gtk und die libpng (und deren devel-Pakete) installieren musst. Du kannst das GUI durch den Parameter `--enable-gui` bei `./configure` anschalten. Um MPlayer im GUI-Modus zu betreiben, kannst du entweder

- `gui=yes` in deine Config-File eintragen oder
- `ln -s $PREFIX/bin/mplayer $PREFIX/bin/gmplayer` ausführen und `gmplayer` aufrufen.

Im Moment kannst du die `-gui`-Kommandozeilenoption nicht verwenden.

Da MPlayer keine Skins enthält, musst du dir welche herunterladen, wenn du das GUI verwenden willst. Schau dazu auf die Download-Seite. Diese sollten in das normale, systemweite Verzeichnis (`$PREFIX/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 (neuer Skin)` oder dem Eintrag `skin=(neuer Skin)` in der Konfigurationsdatei den Skin `*/Skin/(neuer Skin)` auswählen.

## 1.4 Untertitel und das OSD

MPlayer kann Untertitel zu Filmen darstellen. Momentan werden folgende Formate unterstützt:

- VobSub
- OGM
- CC (closed caption)
- Microdvd
- SubRip
- SubViewer
- Sami
- VPlayer
- RT
- SSA
- MPsub
- AQTitle
- JACOsub

MPlayer kann die oben aufgeführten Formate (bis auf die ersten drei) in die folgenden Formate konvertieren, wenn du die jeweils dahinter angegebene Option benutzt:

- MPsub: `-dumpmpsub`
- SubRip: `-dumpsrtsub`
- Microdvd: `-dumpmicrodvdsub`
- JACOsub: `-dumpjacosub`
- Sami: `-dumpsami`

Die Kommandozeilenoptionen unterscheidet sich leicht für die unterschiedlichen Formate:

VobSub-Untertitel bestehen aus einer mehreren MB großen .SUB-Datei und optionalen .IDX- und/oder .IFO-Dateien.
Benutzung: wenn du Dateien wie `beispiel.sub`, `beispiel.ifo` (optional) und `beispiel.idx` hast, dann musst du die Optionen `-vobsub beispiel [-vobsubid <id>]` angeben (optional mit Pfadangabe natürlich). Die `-vobsubid`-Option funktioniert wie `-sid` bei DVDs. Du kannst mit ihr zwischen Untertitel-Sprache wählen. Falls keine `-vobsubid` angegeben wird, versucht MPlayer, die mit `-slang` angegebene Sprache zu benutzen und zur Not die durch `langidx` in der .IDX-Datei angegebene Sprache wählen. Wenn das ebenfalls fehlschlägt, werden keine Untertitel angezeigt.

#### Andere Untertitelformate

Die anderen Formate bestehen aus einer einzigen Textdatei, welche das Timing, die Platzierung und die Texte selber enthält.
Verwendung: Wenn man eine Datei wie `beispiel.txt` hat, übergibt man einfach die Option `-sub beispiel.txt` (natürlich optional mit Pfadname).

#### Angleichung der Untertitel-Anzeigezeit und der Platzierung

`-subdelay <sec>`
  Verzögert die Untertitel um <sec> Sekunden. Der Wert kann negativ sein.
`-subfps <rate>`
  Gibt die Bildrate in Bildern pro Sekunde für die Datei an (Fließkommazahl).
`-subpos <0 - 100>`
  Legt die Position für die Untertitel fest.

Wenn du feststellst, dass bei Verwendung einer MicroDVD-Untertiteldatei die Verzögerung im Laufe der Zeit immer größer wird, dann liegt das wahrscheinlich daran, dass die Bildraten für den Film und die Untertitel unterschiedlich sind.
Es sei gesagt, dass das MicroDVD-Format absolute Bildnummern verwendet, um anzugeben, wann Text anzuzeigen ist. Deswegen funktioniert die `-subfps`-Option mit diesem Format nicht. Da MPlayer natürlich nicht in der Lage ist, die richtige Bildrate zu erraten, musst du die Bildrate manuell konvertieren. Auf dem MPlayer-FTP-Server liegt im `contrib`-Verzeichnis ein kleines Perl-Skript, das diese Konvertierung für dich vornehmen kann.

MPlayer wird versuchen, die Untertiteldatei zu erraten, wenn er einen Film abspielt. Wenn, wie das meistens der Fall ist, der Film und die Untertiteldatei den gleichen Namen haben und am gleichen Ort liegen, dann musst du nicht die Untertiteloption benutzen. Spiel einfach den Film ab, und MPlayer wird automatisch die Untertitel finden.

Für DVD Untertitel lies die DVD-Sektion.

### 1.4.1 MPlayers eigenes Untertitelformat (MPsub)

MPlayer hat ein neues Untertitelformat eingeführt, das MPsub genannt wird. Es wurde von Gabucino entwickelt. Das Haupt-Feature ist, dass es dynamische Zeitabhängigkeiten benutzt (obwohl es auch einen Frame-basierende Modus besitzt). Ein Beispiel (aus mpsub.sub):

`# erste Nummer : warte so lange nach dem Verschwinden des vorherigen Untertitels
# zweite Nummer : zeige den momentanen Untertitel für so viele Sekunden
15 3
A long time ago...
0 3
in a galaxy far, far away...
0 3
Naboo was under attack.
`

Wie man erkennen kann, ist das Hauptziel, das Bearbeiten/Timing/ Zusammenfügen/Schneiden von Untertiteln einfach zu machen. Und wenn du mal angenommen einen SSA-Untertitel bekommst und er zeitlich schlecht zu deinem Video abgestimmt ist, kannst du einfach `mplayer dummy.avi -sub quelle.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 etc. anzuzeigen.

### 1.4.2 Installation des OSD und der Untertitel

Du brauchst ein MPlayer-Schriftenpaket, um das OSD oder Untertitel anzeigen zu können. Es gibt mehrere Möglichkeiten, eines zu bekommen:

- Lade die fertigen Schiftpakete von der MPlayer-Seite. Hinweis: Momentan sind nur Schriftarten verfügbaren, die den ISO 8859-1/2-Zeichensätzen entsprechen, aber es gibt auch ein paar von Benutzern erstellte Font-Pakete für andere Zeichnsätze (einschließlich Koreanisch, Russisch, 8859-8 etc.). Diese kannst du im contrib/font-Verzeichnis auf dem FTP-Server finden.
  Zu jeder Schrift muss eine passende font.desc-Datei existieren, die festlegt, wo im Zeichensatz die einzelnen Unicode-Zeichen zu finden sind. Eine andere Möglichkeit besteht darin, dass man bei in UTF8 kodierten Untertiteln die Option `-utf8` verwendet oder die Datei in <video_name>.utf umgebennt und im gleichen Verzeichnis liegen hat. Die Umwandlung zwischen verschiedenen Zeichnsätzen und UTF8 kann mit den Programmen konwert (unter Debian) oder iconv (unter RedHat) vorgenommen werden.
  Einige URLs:
  - ftp://ftp.mplayerhq.hu/MPlayer/releases/fonts/ - ISO Schiften
  - ftp://ftp.mplayerhq.hu/MPlayer/contrib/fonts - verschiedene Schriften von Anwendern
  - http://realtime.ssu.ac.kr/~lethean/mplayer - koreanische Schrift und RAW-Plugin
- Verwende das Schrift-Erzeugungs-Tool, das in TOOLS/subfont-c liegt. Es ist ein komplettes Tool, um TTF/Type1/usw.-Schriften in ein MPlayer-Schriftpaket zu konvertieren (lies TOOLS/subfont-c/README für Details).
- Verwende das GIMP-Plugin für Schrift-Erzeugung unter TOOLS/subfont-GIMP (Hinweis: Du musst auch das HSI-RAW-Plugin haben; siehe URL unten).
- Mit Hilfe der freetype-Bibliothek kannst du auch TrueType-Schriften verwenden. Dafür wird mindestens Version 2.0.9 benötigt, und du musst configure die Option `--enable-freetype` mitgeben. Danach hast du zwei Möglichkeiten:
  - Gib bei jedem Aufruf mit dem Parameter `-font /pfad/zu/arial.ttf` eine TrueType-Schrift an.
  - Erstelle einen Symlink wie folgt: `ln -s /pfad/zu/arial.ttf ~/.mplayer/subfont.ttf`

Wenn du eine Nicht-TrueType-Schrift benutzt, dann entpacke die Dateien nach den Download nach `~/.mplayer` oder `$PREFIX/share/mplayer`. Danach benennst du eine davon um oder erstellst einen symbolischen Links zu `font` (wie z.B.: `ln -s ~/.mplayer/arial-24 ~/.mplayer/font`). Nun solltest du die Zeit in oberen linken Ecke des Films sehen (kann man mit der Taste "o" ausschalten).

Das OSD hat 4 Anzeigearten, zwischen denen du mit 'o' umschalten kannst:

(Untertitel werden immer angezeigt. Wie du sie deaktivierst, findest du in der man-Page.)

- Lautstärken- + Suchleiste (Standard)
- Lautstärken- + Suchleiste + und prozentuale Dateiposition beim Spulen
- Lautstärken- + Suchleiste + die totale Länge der Datei
- nur Untertitel

Du kannst das Standard-Verhalten mit der `osdlevel=`-Variable in der Konfigurationsdatei oder der Kommandozeilenoption `-osdlevel` ändern.

### 1.4.3 Das OSD-Menü

MPlayer besitzt nun ein komplett vom Benutzer definierbares OSD-Menü.

ANMERKUNG: das Optionsmenü ist momentan NICHT IMPLEMENTIERT!

#### Installation

1. Gib vor der Compilierung `./configure` die Option `--enable-menu` mit.
2. Überzeuge dich, dass du auch wirklich eine Schrift für das OSD installiert hast (siehe oben).
3. Kopiere die Datei `etc/menu.conf` in dein `~/.mplayer`-Verzeichnis.
4. Kopiere die Datei `etc/input.conf` in dein `~/.mplayer`-Verzeichnis oder in MPlayers systemweites Konfigurationsverzeichnis (standardmäßig `/usr/local/etc/mplayer`).
5. Überprüfe den Inhalt der Datei `input.conf` und passe ihn nach deinen Wünschen an, um die Navigationstasten des Menüs zu aktivieren. Wie das geht, steht unten.
6. Starte MPlayer analog zu diesem Beispiel:
   `$ mplayer -menu file.avi`
7. Drücke die Tasten, die du vorher für die Navigation festgelegt hast.

## 1.5 RTC

Es gibt drei Methoden der Zeitmessung in MPlayer.

- Um die alte Methode zu verwenden, musst du nichts tun. MPlayer verwendet `usleep()`, um Audio und Video synchron zu halten, und erreicht dabei eine Genauigkeit bis zu +/- 10ms. Manchmal muss die Synchronisation aber einfach feiner eingestellt werden können.
- Der neue Timercode verwendet die RTC (Real Time Clock [Echtzeituhr]) für diese Aufgabe, da sie Timer mit genauen 1ms-Intervallen erzeugen kann. Dies wird automatisch aktiviert, falls verfügbar, erfordert jedoch Root-Privilegien, ein setuid root MPlayer-Binary oder einen passend eingerichteten Kernel.
  Wenn der Kernel 2.4.19pre8 oder später verwendet wird, kannst du die maximale RTC-Frequenz für normale Benutzer über das `/proc`-Dateisystem anpassen. Du kannst folgenden Befehl verwenden, um die RTC für alle normalen Benutzer zu aktivieren:

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

  Wenn du einen älteren Kernel verwendest, dann kannst du auch eine Zeile in der Datei `drivers/char/rtc.c` des Kernelquelltextes verändern und den Kernel neu compilieren. Dazu musst du folgenden Abschnitt finden:

        * We don't really want Joe User enabling more
        * than 64Hz of interrupts on a multi-user machine.
        */
       if ((rtc_freq > 64) && (!capable(CAP_SYS_RESOURCE)))

  Hier änderst du die 64 in 1024. Du solltest dabei aber wirklich wissen, was du tust.
  Du kannst die Effizienz des neuen Timers in der Statusleiste sehen.
  Die Energieverwaltungs-Funktionen einiger Notebook-BIOSse mit Speedstep-CPUs haben Probleme mit der RTC. Audio und Video können dadurch aus der Synchronisation fallen. Das einstecken des externen Stromsteckers vor dem Booten soll scheinbar helfen. Du kannst die Verwendung der RTC kann jedoch jederzeit mit der Option `-nortc` deaktivieren. In einigen Hardwarekombinationen (bestätigt durch die Verwendung eines nicht-DMA-DVD-Laufwerkes auf einem ALi1541-Board) verursacht der RTC-Timer eine rucklige Wiedergabe. Du solltest in solchen Fällen die folgende Methode verwenden.
- Der dritte Timercode wird mit der Option `-softsleep` aktiviert. Er besitzt dieselbe Effizienz wie die RTC, braucht jedoch kein RTC. Er braucht jedoch auch mehr CPU-Leistung.

Warnung: Installiere NIEMALS MPlayer mit setuid root auf einem Mehrbenutzersystem! Das wär ein simpler Weg, um Root-Rechte zu bekommen.

# 2. Features

## 2.1. Unterstützte Formate

## 2.2. Unterstützte Codecs

## 2.3. Video & Audio-Ausgabegeräte

## 2.4 TV input

Dieser Teil der Docs zeigt, wie man mit einem V4L-kompatiblen Gerät (z.B. einer TV-Karte) fernsehen oder Sendungen aufnehmen kann. In der man-page findest du eine Beschreibung aller TV-Optionen sowie die Belegung der Tastatur für's Fernsehen.

### 2.4.1 Compilierung

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

### 2.4.2 Tipps zur Benutzung

Die vollständige Auflistung der vorhandenen Optionen ist in der man-page verfügbar. Hier nur ein paar Tipps:

- Benutze die Option `channels`. Ein Beispiel:
  `-tv on:channels=26-MTV1,23-TV2`
  Erklärung: Mit dieser Option sind nur die Kanäle 26 und 23 anwählbar, und das OSD zeigt eine nette Meldung beim Kanalwechsel an, nämlich den Namen des Kanals. Leerzeichen im Namen müssen durch "_" ersetzt werden.
- Wähle vernänftige Bildabmessungen. Höhe und Breite des resultierenden Bildes (nach Anwendungen aller Filter) sollten durch 16 teilbar sein.
- Wenn du Video mit einer Höhe aufnimmst, die mehr als die Hälfte der Fernsehauflösung beträgt (z.B. 288 für PAL oder 240 für NTSC), dann schalte Deinterlacing an. Andernfalls wirst du Video bekommen, das bei Szenen mit viel vertikaler Bewegung sehr viele Artefakte aufweist. Zusätzlich wird der zur gerechten Verteilung der Bitrate verwendete Algorithmus damit warhscheinlich nicht zurecht kommen, da Interlacing-Artefakte sehr viele Details erzeugen und der Codec somit eine Unmenge an Bandbreite für die Encodierung benötigt. Du kannst Deinterlacing mit der Option `-vop pp=DEINT_TYPE` anschalten. Normalerweise funktioniert `pp=lb` sehr gut, aber das hängt auch vom persönlichen Geschmack ab. Schau in der man-page nach. Dort findest du eine Beschreibung der einzelnen Deinterlacing-Algorithmen. Probier sie einfach aus.
- Schneide nicht benutze Bildteile weg. Wenn du Video aufnimmst, dann hast du an den Rändern oftmals schwarze Bereiche oder Bereiche, in denen viele Bildstörungen auftreten. Diese benötigen wiederum eine sehr große Bandbreite. Genauer gesagt sind es nicht die schwarzen Bereiche, die soviel Bandbreite benötigen, sondern der Übergang zwischen Bild und schwarzem Bereich, sprich die Kanten. Bevor du also mit der Aufnahme anfängst, solltest du die Argumente des `crop`-Filters so anpassen, dass all der Müll an den Rändern weggeschnitten wird. Vergiss aber wiederum nicht, die Bildabmessungen sinnvoll zu wählen.
- Achte auf die CPU-Auslastung. Sie sollte die 90%-Barriere die meiste Zeit über nicht überschreiten. Wenn du große Aufnahmepuffer verwendest, dann kann MEncoder auch ein paar Sekunden mit höherer Auslastung überleben, aber auch nicht mehr. Somit solltest du besser deine 3D-OpenGL-Bildschirmschoner und allgemein alles andere, was viel Performance kostet, vor der Aufnahme ausschalten.
- Spiel nicht mit der Systemuhr herum. MEncoder benutzt die Systemuhr, um Audio und Video synchron zu halten. Wenn du die Uhrzeit veränderst (besonders, wenn du sie zurücksetzt), dann wird das MEncoder verwirren, und er wird Bilder wegwerfen. Das ist besonders dann wichtig, wenn dein Rechner die Systemzeit automatisch über das Netzwerk anpasst, z.B. mit einer Software wie NTP. Schalte also NTP während der Aufnahme aus, wenn du verlässliche Resultate erzielen willst.
- Ändere das `outfmt` nicht, es sei denn, du weißt wirklich, was du da tust, oder wenn deine Karte/dein Treiber wirklich das Standardausgabeformat nicht beherrscht (YV12-Farbraum). In älteren Versionen von MPlayer/MEncoder musste das `outfmt` immer mit angegeben werden, aber heute nicht mehr, und die Standardwerte passen eh in den meisten Fällen. Wenn du z.B. nach mit DivX aufnehmen willst, dafür die libavcodec benutzt und `outfmt=RGB24` angibst, um die Bildqualität zu verbessern, so wird das aufgenommene Bild eh später wieder in den YV12-Farbraum zurückkonvertiert. Das einzige, was du somit erreichst, ist die Verschwendung von CPU-Zeit.
- Wenn du den I420-Farbraum verwenden möchtest (`outfmt=i420`), dann musst du auch die Option `-vc rawi420` angeben, weil es ansonsten einen Konflikt mit der FourCC des Intel Indeo-Videocodecs gibt.
- Es gibt mehrere Möglichkeiten, den Ton aufzunehmen. Zum einen kannst du den Ton mit der Soundkarte aufnehmen und die TV-Karte mit einem Kabel an die Soundkarte anschließen. Zum anderen kannst du den im bt878-Chip eingebauten ADC verwenden. Im zweiten Fall musst du das btaudio-Kernelmodul verwenden. Lies die Datei `linux/Documentation/sound/btaudio`, die in den Kernelquellen zu finden ist. Sie enthält Informationen darüber, wie du diesen Treiber benutzt.
- Falls MEncoder das Audiogerät nicht öffnen kann, dann geh sicher, dass es auch wirklich verfügbar ist. Probleme machen vor allem die Soundserver wie z.B. arts vom KDE oder esd vom GNOME. Wenn du eine Full-Duplex-Soundkarte hast (und das ist heutzutage praktisch jede Karte) und KDE verwendest, dann versuche, die Option "full duplex" im Optionsmenü des KDE-Soundservers zu aktivieren.

### 2.4.3 Beispiele

Dummy-Ausgabe mittels AAlib ;)
`mplayer -tv on:driver=dummy:width=640:height=480 -vo aa`
Standard-V4L-Gerät als Quelle
`mplayer -tv on:driver=v4l:width=640:height=480 -vo xv`
Hier ein sinnvolleres und umfassenderes Beispiel. MEncoder wird mit voller PAL-Größe aufnehmen, das Bild an den Rändern beschneiden und mit einem linear-blend-Algorithmus ein Deinterlacing vornehmen. Audio wird mit einer Bitrate von 64kbps mit dem LAME-Codec in MP3 comprimiert. Diese Einstellungen sind dazu geeignet, um Filme aufzunehmen.
`mencoder -tv on:driver=v4l:width=768:height=576 \
-ovc lavc -lavcopts vcodec=mpeg4:vbitrate=900 \
-oac mp3lame -lameopts cbr:br=64 \
-vop pp=lb,crop=720:544:24:18 -o output.avi`
In diesem Beispiel wird das Bild noch auf 384x288 verkleinert und mit einer Bitrate von nur 350kbps im Qualitätsmodus comprimiert. Die `vqmax`-Option lockert die Beschränkungen der Quantizer und erlaubt es dem Codec erst, wirklich so eine niedrige Bitrate zu erreichen, was natürlich auf Kosten der Bildqualität geschieht. Dieses Beispiel kann verwendet werden, um z.B. lange TV-Serien aufzuzeichnen, wobei es auf die Qualität nicht so sehr wie auf den Platzbedarf ankommt.
`mencoder -tv on:driver=v4l:width=768:height=576 \
-ovc lavc -lavcopts vcodec=mpeg4:vbitrate=350:vhq:vqmax=31:keyint=300 \
-oac mp3lame -lameopts cbr:br=48 \
-vop scale=384:288,pp=tn/lb,crop=720:540:24:18 -sws 1 -o output.avi`
Du könntest auch in der `-tv`-Option eine kleinere Bildgröße angeben und dafür auf die Softwareskalierung verzichten. Aber der oben gewählte Ansatz gibt MEncoder die maximal zur verfügung stehende Information zur Verarbeitung und ist ein bischen resistenter gegen Bildrauschen. Dazu kommt, dass der bt8x8-Chip wegen einer Hardwarebeschränkung nur in der Horizontale zwischen Pixeln interpolieren kann.

## 2.5 Edit Decision Lists (EDL)

Die Edit Decision Lists (EDL) erlauben es, bestimmte Stellen bei der Wiedergabe automatisch zu überspringen oder stummzuschalten. Dabei werden EDL-Konfigurationsdateien ausgewertet.

Das ist dann ganz nützlich, wenn du einen Film in einer "familienfreundlichen" Version sehen möchtest. Du kannst damit Gewalt, Obszönitäten oder Jar-Jar Binks rausschneiden, ganz so, wie du's willst. Davon abgesehen kannst du z.B. auch automatisch Werbung überspringen.

Das EDL-Dateiformat ist ziemlich simpel gestrickt. Wenn das EDL erst einmal einen gewissen Reifegrad erreicht hat, wird wahrscheinlich ein auf XML basierendes Dateiformat eingeführt (aber die Kompatibilität zu alten EDL-Formaten trotzdem gewahrt) werden.

Die maximale Anzahl von EDL-Einträgen beträgt momentan 1000. Falls du mehr davon brauchst, dann ändern einfach `#define MAX_EDL_ENTRIES` in der Datei `edl.h`.

### 2.5.1 Benutzung von EDL-Dateien

Gib mit der Option `-edl <Dateiname>` die EDL-Datei an, die du auf dein Video angewandt haben möchtest.

### 2.5.2 Erstellen von EDL-Dateien

Das aktuelle EDL-Dateiformat sieht so aus:

`[Start in Sekunden] [Ende in Sekunden] [Aktion]`

Die Sekundenangaben sind Fließkommazahlen, und die Aktion ist entweder `0` (überspringen) oder `1` (stummschalten). Beispiel:

    5.3   7.1    0
    15    16.7   1
    420   422    0

Hier wird von Sekunde 5.3 bis Sekunde 7.1 ausgelassen. Von Sekunde 15 bis Sekunde 16.7 wird stummgeschaltet, bei 16.7 wieder lautgestellt, und von Sekunde 420 bis Sekunde 422 wird das Video übersprungen. Diese Aktionen werden ausgeführt, sobald der Abspieltimer die angegebenen Werte erreicht.

Wenn du eine EDL-Datei erstellen möchtest, dann benutze `-edlout <filename>`. Während der Wiedergabe kannst du `i` drücken. Es wird dann ein Eintrag erstellt, der an dieser Stelle 2 Sekunden überspringt. Du kannst dann mit einem Editor deiner Wahl die generierte EDL-Datei verfeinern.

# 3. Verwendung

## 3.1 Kommandozeile

MPlayer benützt einen komplexen Abspielbaum. Er besteht aus globalen Optionen am Anfang (z.B. `mplayer -vfm 5`) und Optionen nach dem Dateinamen, welche nur für die jeweilige Datei/URL/etc gelten (z.B. `mplayer -vfm 5 movie1.avi movie2.avi -vfm 4`).
Mit { und } können Dateinamen/URL-Grupen gebildet werden. Dies ist mit der Option `-loop` nützlich: `mplayer { 1.avi -loop 2 2.avi } -loop 3` spielt die Dateien in dieser Reihenfolge: 1 1 2 1 1 2 1 1 2

| Datei |  | `mplayer [Optionen] [Pfad/]Dateiname`
| Datei |  | `mplayer [standard Optionen] [Pfad/]Dateiname [Optionen für datei1] datei2 datei3 [Optionen für datei3]`
| VCD |  | `mplayer [Optionen] -vcd Tracknr [-cdrom-device /dev/cdrom]`
| DVD |  | `mplayer [Optionen] -dvd Titelnr [-dvd-device /dev/dvd]`
| Netz |  | `mplayer [Optionen] http://site.com/datei.asf (playlist kann auch benutzt werden)`

Die neusten Versionen von MPlayer akkzeptieren auch VCD- und DVD-Tracks im URL-Format, so wie z.B. auch Xine: `mplayer dvd://1` oder `mplayer vcd://1`

      mplayer -vo x11 /mnt/Filme/Contact/contact2.mpg
      mplayer -vcd 2
      mplayer -afm 3 /mnt/DVDtrailers/alien4.vob
      mplayer -dvd 1
      mplayer -abs 65536 -delay -0.4 -nobps ~/movies/test.avi

## 3.2 Steuerung

MPlayer besitzt eine vollständig konfigurierbare, durch Befehle angesteuerte Steuerungsschicht (control layer), der es erlaubt, MPlayer mit Tastatur, Maus, Joystick oder Fernbedienung (unter Verwendung von LIRC) zu steuern. Schau in die man-page. Dort steht eine vollständige Liste aller Tastaturkommandos.

### 3.2.1 Konfiguration der Steuerung

MPlayer ermöglicht es, dass du jede Taste/jeden Button mit einem MPlayer-Befehl verbindest. Dieses wird in einer simplen Konfigurationsdatei festgelegt. Die Syntax besteht einfach aus einem Tastennamen gefolgt vom auszuführenden Befehl. Die Standardkonfigurationsdatei ist `$HOME/.mplayer/input.conf`, aber diese Position kann auch mit der Option `-input` geändert werden. Pfadangaben beziehen sich hier relativ zu `$HOME/.mplayer`).

Beispiel:

    ##
    ## MPlayer input control file
    ##

    RIGHT seek +10
    LEFT seek -10
    - audio_delay 0.100
    + audio_delay -0.100
    q quit
    > pt_step 1
    < pt_step -1
    ENTER pt_step 1 1

#### 3.2.2.1 Tastennamen

Mit folgendem Befehl erhälst du eine vollständige Liste: `mplayer -input keylist`

#### Tastatur

- Irgendein druckbares Zeichen
- SPACE
- ENTER
- TAB
- CTRL
- BS
- DEL
- INS
- HOME
- END
- PGUP
- PGDWN
- ESC
- RIGHT
- LEFT
- UP
- DOWN

#### Maus (wird nur unter X unterstützt)

- MOUSE_BTN0 (Linke Taste)
- MOUSE_BTN1 (Rechte Taste)
- MOUSE_BTN2 (Mittlere Taste)
- MOUSE_BTN3 (Mausrad)
- MOUSE_BTN4 (Mausrad)
- ...
- MOUSE_BTN9

#### Joystick (Joystick-Unterstützung muss bei der Kompilierung aktiviert sein)

- JOY_RIGHT oder JOY_AXIS0_PLUS
- JOY_LEFT oder JOY_AXIS0_MINUS
- JOY_UP oder JOY_AXIS1_MINUS
- JOY_DOWN oder JOY_AXIS1_PLUS
- JOY_AXIS2_PLUS
- JOY_AXIS2_MINUS
- ....
- JOY_AXIS9_PLUS
- JOY_AXIS9_MINUS

#### 3.2.2.2 Befehle

Mit folgendem Befehl erhälst du eine vollständige Liste: `mplayer -input cmdlist`

- seek (int) Wert [(int) type=0]

  Sucht bis zu einer gewissen Stelle im Film.
  Type 0 ist eine relative Suche von +/- Wert Sekunden.
  Type 1 sucht bis Wert % im Film.

- audio_delay (float) Wert

  Korrigiert die Audioverzögerung um Wert Sekunden

- quit

  Beendet MPlayer

- pause

  Wechselt zwischen Pause und Weiterspielen

- grap_frames

  Weiß das jemand?

- pt_step (int) Wert [(int) force=0]

  Springt zum nächsten/vorherigen Eintrag im playtree. Das Vorzeichen von Wert bestimmt die Richtung.
  Wenn kein neuer Eintrag mehr vorhanden ist, geschieht gar nichts, es sei denn, force ist nicht 0.

- pt_up_step (int) Wert [(int) force=0]

  Wie pt_step, springt jedoch zum nächsten/vorherigen Eintrag in der übergeordneten Liste. Dies ist nützlich, um eine innere Schleife im playtree zu unterbrechen.

- alt_src_step (int) Wert

  Wenn mehr als eine Quelle vorhanden ist, wählt dies die nächste/vorherige (nur unterstützt für asx Wiedergabelisten).

- sub_delay (float) Wert [(int) abs=0]

  Korrigiert die Untertitel-Verzögerung um +/- Wert Sekunden oder setzt sie auf Wert Sekunden, wenn abs nicht null ist.

- osd [(int) level=-1]

  Wechselt den OSD-Modus oder setzt in auf level, wenn level > 0.

- volume (int) dir

  Erhöht/erniedrigt die Lautstärke

- contrast (int) Wert [(int) abs=0]
- brightness (int) Wert [(int) abs=0]
- hue (int) Wert [(int) abs=0]
- saturation (int) Wert [(int) abs=0]

  Setzt/korrigiert die Video-Parameter. Die Wertreichweite reicht von -100 bis 100.

- frame_drop [(int) type=-1]

  Wechselt den Framedrop-Modus.

- sub_pos (int) Wert

  Korrigiert die Untertitel-Position.

- vobsub_lang

  Ändert die Sprache der VobSub-Untertitel.

- vo_fullscreen

  Wechselt den Vollbildschirm-Modus.

- tv_step_channel (int) dir

  Wählt nächsten/vorherigen Tv-Kanal.

- tv_step_norm

  Ändert TV-Norm.

- tv_step_chanlist

  Ändert Kanalliste.

- gui_loadfile
- gui_loadsubtitle
- gui_about
- gui_play
- gui_stop
- gui_playlist
- gui_preferences
- gui_skinbrowser

  GUI-Aktionen

### 3.2.3 Steuerung mittels LIRC

Linux Infrared Remote Control - verwende einen einfach zu bauenden, selbstgebauten IR-Empfänger, (fast) jede beliebige Fernbedienung und steuere deinen Linux-Rechner damit. Mehr dazu auf www.lirc.org.

Wenn du das lirc-Paket installiert hast, erkennt es `configure` automatisch. Wenn alles gut geht, gibt MPlayer während des Starts eine Nachricht wie etwa "Setting up lirc support..." aus. Wenn ein Fehler auftritt, wird dies auch gemeldet. Wenn gar nichts gesagt wird, ist auch keine LIRC-Unterstützung eincompiliert. Das ist alles :-)

Der Anwendungsname für MPlayer ist - oh, ein Wunder - `mplayer`. Du kannst jeden beliebigen MPlayer-Befehl benutzen und sogar mehrere nacheinander ausführen lassen, indem du sie durch \n voneinander trennst. Vergiss nicht, die `repeat`-Option in der .lircrc zu benutzen, wenn es Sinn macht (beim Suchen, bei der Lautstärke etc.). Hier ist ein Auszug aus meiner .lircrc:

    begin
         button = VOLUME_PLUS
         prog = mplayer
         config = volume 1
         repeat = 1
    end

    begin
        button = VOLUME_MINUS
        prog = mplayer
        config = volume -1
        repeat = 1
    end

    begin
        button = CD_PLAY
        prog = mplayer
        config = pause
    end

    begin
        button = CD_STOP
        prog = mplayer
        config = seek 0 1\npause
    end

Wenn du die Standard-Position der LIRC-Konfigurationsdatei (~/.lircrc) nicht magst, verwende die Option `-lircconf <Dateiname>`, um eine andere Datei anzugeben.

### 3.2.4 Der "Slave"-Modus

Der Slave-Modus erlaubt es dir, ein einfaches Frontend für MPlayer zu erstellen. Wenn er mit der Option `-slave` aktiviert wurde, dann liest MPlayer durch neue Zeilen unterbrochene Befehle (\n) von der Standardeingabe.

## 3.3 Streaming über das Netzwerk oder Pipes

MPlayer kann Videos über Netzwerke unter Verwendung des HTTP- MMS- oder RTSP/RTP-Protokolls abspielen.

Abspielen geht einfach durch das Hinzufügung der URL zu der Kommandozeile. MPlayer berücksichtigt auch die http_proxy-Umgebungsvariable und benutzt einen Proxy, falls vorhanden. Der Proxygebrauch kann auch erzwungen werden:

`mplayer http_proxy://proxy.micorsops.com:3128/http://micorsops.com:80/stream.asf`

MPlayer kann auch von stdin lesen (nicht von benannte Pipes). Dies ist ein Beispiel für die Verwendung, um von FTP abzuspielen:

`wget ftp://micorsops.com/etwas.avi -O - | mplayer -`

Hinweis: Bei der Wiedergabe übers Netzwerk empfiehlt sich, den Cache zu aktivieren:

`wget ftp://micorsops.com/etwas.avi -O - | mplayer -cache 8192 -`

# 4. CD/DVD-Sektion

# 5. FAQs - Die häufisten Fragen und Antworten

# 6. Portierungen

## 6.1 Linux

Die hauptsächliche Entwicklungsplattform ist Linux auf x86, obwohl MPlayer auch auf anderen Linuxportierungen läuft. Binärpakete von MPlayer gibt es aus verschiedenen Quellen. Allerdings unterstützen wir keines dieser Pakete. Wende dich bei Fehlern in diesen Paketen also an den Autor des Paketes und nicht an uns.

### 6.1.1 Debian-Pakete

Um selber ein Debianpaket zu erstellen, starte den folgenden Befehl im Source-Verzeichnis:

        fakeroot debian/rules binary

Und nun einfach root werden und:

    	dpkg -i ../mplayer_0.90-1_i386.deb als root.

Christian Marillat hat seit einiger Zeit unoffizielle Debianpakete von MPlayer, MEncoder und den Schriften erstellt. Du kannst sie (per apt-get) von seiner Homepage herunterladen.

### 6.1.2 RPM-Pakete

Dominik Mierzejewski erstellt und wartet die offiziellen RedHat RPM-Pakete für MPlayer. Er erstellt einzelne Pakete für den Player, das GUI, Schriftarten, Skins, verschiedene Treiber und die Codecs. All diese Pakete können von seiner Homepage heruntergeladen werden.

RPM-Pakete für Mandrake gibt's bei der P.L.F. SuSE liefert ihr Linux mit einer stark verstümmelten Version von MPlayer aus. Wenn du alle Features haben willst, dann musst du MPlayer selber compilieren.

### 6.1.3 ARM

MPlayer läuft auf Linux-PDAs mit einer ARM-CPU, z.B. dem Sharp Zaurus oder dem Compaq Ipaq. Am einfachsten ist es, sich MPlayer von Openzaurus runterzuladen. Wenn du MPlayer selber compilieren möchtest, dann schau dir dir Verzeichnisse für mplayer und libavcodec bei der OpenZaurus-Distribution an. Sie enthalten immer die aktuellen Makefiles und Patches, die benutzt werden können, um die CVS-Version von MPlayer mit libavcodec zu compilieren.
Wenn du das GUI brauchst, dann kannst du `xmms-embedded` benutzen.

## 6.2 *BSD

MPlayer läuft auf FreeBSD, OpenBSD, NetBSDO, BSD/OS und Darwin. Es sind ports/pkgsrc/fink/etc-Versionen verfügbar, die sich wahrscheinlich leichter als die normalen Quelltexte installieren lassen.

Um das Paket zu compilieren, brauchst du GNU make (gmake, /usr/ports/devel/gmake), das originale BSD make wird nicht funktionieren. Außerdem ist eine relativ neue Version der binutils nötig.

Wenn MPlayer meldet "CD-ROM Device '/dev/cdrom' not found!" musst du einen symbolischen Link setzen: `ln -s /dev/(dein CD-ROM Device) /dev/cdrom`

Wenn du die Win32-DLLs mit MPlayer benuzen willst, dann musst du deinen Kernel mit "`option USER_LDT`" neu compilieren (es sei denn, bei dir läuft FreeBSD-CURRENT, in dem der Kernel bereits damit compiliert wurde).

### 6.2.1 FreeBSD

Falls deine CPU SSE unterstützt, musst du den Kernel mit "`options CPU_ENABLE_SSE`" übersetzen, um diese nutzen zu können (FreeBSD-STABLE oder ein Kernel-Patch werden dafür benötigt).

### 6.2.2 OpenBSD

Aufgrund der Beschränkungen in verschiedenen Versionen von gas (Relokation vs. MMX), musst du den Kernel in zwei Schritten neu compilieren. Stell zuerst sicher, dass das nicht mitgelierferte "as" über deinen `$PATH` erreichbar ist. Danach rufe `gmake -k` auf und stell sicher, dass die mitgelieferte Version benutzt wird. Schließlich wird mit `gmake` der Kernel übersetzt.

## 6.3 Solaris

MPlayer sollte auf Solaris 2.6 oder neuer funktionieren.

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 compilieren, brauchst du GNU Make (gmake, /opt/sfw/gmake). Das originale Solaris Make wird nicht funktionieren. Dies ist ein typischer Fehler, den 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 SPARC brauchst du den GNU C/C++ Compiler. Es spielt keine Rolle, ob der GNU C/C++-Compiler mit oder ohne GNU Assembler konfiguriert ist.

Unter Solaris x86 brauchst du den GNU C/C++-Compiler, welcher konfiguriert sein muss, den GNU Assembler zu verwenden! Der MPlayer-Code erzeugt auf x86 Plattformen eine Binary mit Verwendungen von MMX-, SSE- und 3DNOW-Befehlen. Dies kann mit dem Sun Assembler `/usr/ccs/bin/as` nicht assembliert werden.

Das `configure` Skript versucht herauszufinden, welches Assemblerprogramm von deinem "gcc" Befehl ausgeführt wird (für den Fall, dass es fehlschlägt, verwende die Option "--as=/woimmer/du/es/installiert/hast/gnu-as" und sage damit dem Skript, 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 ...

Aufgrund von Fehlern in Solaris 8 x86 ist es nicht möglich, DVDs mit einer Speicherkapazität von mehr als 4GB zu verwenden:

- Der sd(7D)-Treiber von Solaris 8 x86 hat eine Fehler beim Zugriff auf einen Dateiblock >4GB auf einem Gerät, dass eine logische Blockgröße != DEV_BSIZE (z.B. CD-ROM und DVD Medien) aufweist. Beim Zugriff auf eine Adresse >4 GB gibt es also einen 32Bit Int Overflow. ( http://groups.yahoo.com/group/solarisonintel/message/22516)
  Die SPARC-Version von Solaris 8 kennt dieses Problem nicht.
- Ein ähnlicher Fehler existiert im hsfs(7FS) Dateisystem-Code (ISO9660): hsfs unterstützt eventuell keine Partitions/Disks >4GB. ( http://groups.yahoo.com/group/solarisonintel/message/22592)
  Das hsfs-Problem kann durch die Installation des Patches 109764-04 (auf SPARC) / 109765-04 (auf x86) behoben werden.

Bei Solaris mit einer UltraSPARC CPU kannst du zusätzliche Geschwindigkeit gewinnen, indem du die VIS-Befehle für rechenintensive Operationen verwendest. VIS-Beschleunigungen können von MPlayer durch das Aufrufen von Funktionen in Suns mediaLib verwendet werden.

VIS-Beschleunigungen von mediaLib werden für MPEG2 Video-Decodierung und für Farbraumkonvertierung im Videoausgabetreiber verwendet.

## 6.4 Silicon Graphics / IRIX

Du hast zwei Möglichkeiten. Die eine besteht darin, das GNU install-Programm zu installieren und `./configure` mitzuteilen, wo es liegt (sofern du es nicht in deinen `$PATH` installiert hast):

      ./configure --install-path=PATH

Die zweite Möglichkeit besteht darin, das bei IRIX 6.5 mitgelieferte "install" zu benutzen. Dazu musst du aber das Makefile ein wenig von Hand anpassen. Ändere die folgenden beiden Zeilen

      $(INSTALL) -c -m 644 DOCS/mplayer.1 $(MANDIR)/man1/mplayer.1

      $(INSTALL) -c -m 644 etc/codecs.conf $(CONFDIR)/codecs.conf

in:

      $(INSTALL) -m 644 mplayer.1 $(MANDIR)/man1/

      $(INSTALL) -m 644 codecs.conf $(CONFDIR)/

Führ danach noch die beiden Befehle aus dem MPlayer-Quellcodeverzeichnis heraus auf:

      cp DOCS/mplayer.1 . ; cp etc/codecs.conf .

Nun mache ganz normal mit dem Compilierungs- und Installationsprozess weiter.

## 6.5 QNX

Funktioniert. Du musst SDL für QNX herunterladen, installieren und dann MPlayer mit den Optionen `-vo sdl:photon` und `-ao sdl:nto` starten. Es sollte schnell sein.

Die `-vo x11`-Ausgabe ist sogar noch langsamer als unter Linux, da QNX nur eine sehr langsame X-Emulation hat. Benutze SDL.

## 6.6 Cygwin

Die Portierung auf Cygwin, eine Unix-Tool-Umgebung unter Windows, steckt noch in ihren Kinderschuhen. Momentan werden die folgenden Punkte nicht unterstützt: Win32-DLLs oder OpenGL. Von SDL ist bekannt, dass sie Audio- und Videoverzerrung hervorruft oder sogar das System zum Absturz bringt. Patches sind natürlich jederzeit willkommen. Die besten Resultate erhälst du mit der windowseigenen DirectX-Videoausgabe (`-vo directx`) und dem windowseigenenen waveout-Audiotreiber (`-ao win32`). Du solltest auf jeden Fall einen Blick auf die mplayer-cygwin Mailingliste werfen, um Hilfe zu bekommen und die neuesten Informationen zu finden.

Du wirst die Datei `etc/cygwin_inttypes.h` aus den MPlayer-Quellen nach `/usr/include/inttypes.h` kopieren und erst danach MPlayer compilieren müssen, da der Compiler sich sonst über eine fehlende `intypes.h` beschwert..

Wenn du Unterstützung für DirectX-Videoausgabe (`-vo directx`) haben willst, dann installier die DirectX 7 Header Files und compiliere MPlayer erneut. Du solltest mit `-vo directx -ao win32` die besten Ergebnisse erzielen. Falls das Bild gestört ist, so versuche es ohne die Hardwarebeschleunigung erneut: `-vo directx:noaccel`.

Anweisungen, wie du SDL unter Cygwin zum Laufen bringst, findest du auf der libsdl-Seite.

Du kannst VCDs einfach abspielen, indem du die `.DAT`-Datei oder die `.MPG`-Datei abspielst, die Windows auf einer VCD anzeigt. So funktioniert es (pass bei Bedarf den Laufwerksbuchstaben an):

`mplayer d:/mpegav/avseq01.dat`

`mplayer /cygdrive/d/MPEG2/AVSEQ01.MPG`

DVDs funktionieren ebenfalls. Setze dafür einfach dsa DVD-Gerät korrekt:

`mplayer -dvd <Titel> -dvd-device '\\.\d:'`

Die QuickTime-DLLs sollen angeblich ebenfalls funktionieren. Compiliere MPlayer mit `--enable-qtx-codecs` und kopiere die Codecs an den Standardort für Windows-DLLs, `C:\WINNT\system32` oder `C:\Windows\system`, abängig von deiner Windowsversion.

# 7.Encodierung mit MEncoder

# Anhang A - Mailing-Listen

Es stehen einige öffentliche Mailinglisten für MPlayer zur Verfügung. Wenn nichts anderes angegeben wird, dann ist die auf der Liste zu verwendende Sprache Englisch. Bitte schreibe nicht in anderen Sprachen, und schick niemals HTML-Mails! Es gibt eine Größenbeschränkung auf 80k. Wenn du etwas größeres hast, dann lade es irgendwo hoch und gib in der Mail nur die URL an. Klick auf die Links, um dich bei den Listen anzumelden. Auf diesen Mailinglisten gelten die gleichen Regeln bezüglich Schreibstil und Antworten wie im Usenet. Bitte befolge diese Regeln, da es das Leben für diejenigen, die deine Mails lesen, deutlich vereinfacht. Wenn du diese Regeln nicht kennst, dann lies bitte die HOWTO über's Schreiben von Mails (Englisch) durch. Wenn du gerade keine Zeit hast, dann lies alternativ die Quoting-HOWTO (Englisch).

- MPlayer Ankündigungsliste: http://mplayerhq.hu/mailman/listinfo/mplayer-announce
  Liste mit Ankündigungen rund um MPlayer. Melde dich hier an, wenn du Ankündigungen über z.B. neue Versionen oder neue Features mitbekommen möchtest.
- MPlayer Entwickler-Liste: http://mplayerhq.hu/mailman/listinfo/mplayer-dev-eng
  Diese Liste ist über MPlayer Entwicklung. Es wird über Interface-/API-Änderungen, neue Librarys, Code-Optimierungencode und `./configure`-Änderungen diskuttiert. Du kannst auch deine Patches hier herschicken. Sende keine Fehlerberichte, Anwenderfragen, Featurewünsche oder Beschwerden hierher! Diese Liste sollte wenig verwendet werden.
- MPlayer Anwender-(Users)-Liste: http://mplayerhq.hu/mailman/listinfo/mplayer-users
  - Sende hier Fehlerberichte (nach lesen von DOCS/BUGS, wie man Fehler berichtet).
  - Sende hier Featurewünsche (nach lesen von DOCS/TODO).
  - Sende hier Anwenderfragen (nach lesen von DOCS/TODO).
- MPlayer Anwender-(Users)-Liste-(ungarisch): http://mplayerhq.hu/mailman/listinfo/mplayer-felhasznalok
  - Liste mit ungarischer Sprache
  - Inhalt? Wir werden sehen... hauptsächlich Beschwerden und RTFM-Fragen :(
- MPlayer & Matrox G200/G400/G450/G550 Anwender: http://mplayerhq.hu/mailman/listinfo/mplayer-matrox
  Sende hierher Matrox-betreffende Fragen
  - Sachen über mga_vid
  - Matroxs offizielle Beta Treiber (für X 4.x.x)
  - und über matroxfb-TVout.
- MPlayer & DVB-Karten Anwender: http://mplayerhq.hu/mailman/listinfo/mplayer-dvb
  Dinge im Bezug auf DVB-Hardwaredecoder Karten. (nicht DXR3!)
- MPlayer CVS-log: http://mplayerhq.hu/mailman/listinfo/mplayer-cvslog
  Alle Änderungen am Quellcode werden hier automatisch mitgeteilt. Sende hier nur Fragen über CVS-Änderungen (wenn du nicht verstehst, warum eine Änderung erforderlich ist, du eine bessere Lösung hast oder einen möblichen Fehler/Problem im Patch gefunden hast).
- MPlayer Cygwin-Portierungsliste: http://mplayerhq.hu/mailman/listinfo/mplayer-cygwin
  Diskussionen über die Portierung auf Cygwin.
- MPlayer OS/2-Portierungsliste: http://mplayerhq.hu/mailman/listinfo/mplayer-os2
  Liste für Diskussionen über die OS/2-Portierung von MPlayer.
- MPlayer Weekly News' Liste: http://mplayerhq.hu/mailman/listinfo/mplayer-mwn
  Liste für Diskussionen über die Wöchentlichen Neuigkeiten (MPlayer Weekly News).

Hinweis: Du kannst das durchsuchbare Mailinglisten-Archiv an folgender Stelle finden: http://www.mplayerhq.hu/cgi-bin/htsearch

# Anhang B - Wie man einen Fehler berichtet

# Anhang C - Bekannte Probleme

Spezielle System-/CPU-spezifische Fehler/Probleme:

- SIGILL (signal 4) auf einem P3 mit 2.2.x Kernel:
  Problem: Kernel 2.2.x hat keine richtige SSE-Unterstützung
  Lösung: update den Kernel auf 2.4.x
  Abhilfe: `./configure --disable-sse`
- Allgemein SIGILL (signal 4):
  Problem: du hast MPlayer auf einem anderem Computer compiliert, als auf dem du abspielst (z.B. compiliert auf einem P3 und Wiedergabe auf einem Celeron)
  Lösung: kompiliere MPlayer auf dem Rechner, auf dem du abspielst.
  Abhilfe: `./configure --disable-sse` usw.
- "Internal buffer inconsistency" wird während der Verwendung von MEncoder:
  Problem: bekanntes Problem, wenn lame < 3.90 mit gcc 2.96 oder 3.x.x compiliert wurde.
  Lösung: Es sollte lame >=3.90 verwendet werden.
  Abhilfe: Compiliere lame mit gcc 2.95.x und deinstalliere alle installierten lame-Pakete, welche mit gcc 2.96 kompiliert worden sein könnten.
- Hässlicher MP2/MP3-Ton auf PPC:
  Problem: bekannter gcc-Fehlcompilierungsfehler auf PPC-Platformen, es ist noch keine Fehlerbehebung vorhanden.
  Abhilfe: benutze FFmpeg's (langsamen) MP1/MP2/MP3-Decoder (`-ac ffmpeg`)
- sig11 in libmpeg2 beim Skalieren und Encodieren:
  Problem: bekannter gcc 2.95.2 MMX-Fehler, aktualisiere auf 2.95.3.

Verschiedene A-V Sync- und andere Audio-Probleme

Allgemein Audio-Verzögerung und ruckartiger Sound (kommt bei allen oder einigen Dateien vor):

- am häufigsten: fehlerhafte Audio-Treiber! Probiere verschiedene Audio-Treiber aus; probiere ALSA 0.9 OSS-Emulation mit `-ao oss` . Manchmal hilft auch `-ao sdl`. Wenn die Datei mit `-nosound` ohne Probleme wiedergegeben wird, dann liegt höchstwahrscheinlich ein Soundkartentreiber-Problem vor.
- Audio-Pufferprobleme (Puffergröße schlecht erkannt)
  Abhilfe: `mplayer -abs`
- Samplerate Probleme - vielleicht wird die Samplerate in den benutzten Dateien von der Karte nicht unterstützt. Hier sollte das Resampling-Plugin (`-aop`) getestet werden
- 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 lies die Dokumentationen, wie man die Geschwingkeiten erhöht.
  Versuche auch `-framedrop`

Audio (verschiebt sich / verliert die Synchronisation / bricht nach einer gewissen Zeit ab) bei einer oder nur einigen wenigen Dateien:

- defekte Datei
  Abhilfe:
  - `-ni` oder `-nobps` (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 beim Abspielen
  Wenn keine dieser Optionen hilft, kann die Datei auf den Server geladen werden. Wir werden sie untersuchen (und das Problem lösen).
- deine Soundkarte unterstützt keine 48KHz-Wiedergabe
  Abhilfe: kaufe eine bessere Soundkarte... versuche die Bilder/Sekunde um 10% zu vermindern (verwende `-fps 27` bei 30fps-Filmen) oder verwende das Resampler-Plugin.
- langsamer Rechner
  (wenn A-V nicht ungefähr 0 ist und die letzte Nummer in der Status-Leiste steigt)
  Abhilfe: `-framedrop`

Überhaupt kein Ton:

- deine Datei verwendet eine nicht unterstützten Audio-Codec
  Abhilfe: lese die Dokumentationen und hilf uns, dass wir ihn in Zukunft unterstützen.

Überhaupt kein Bild (nur ein graues/grünes Fenster):

- deine Datei verwendet einen nicht unterstützten Videocodec
  Abhilfe: lies die Dokumentation und hilf uns, den Codec zu unterstützen
- der automatisch gewählte Codec kann die Datei nicht decodieren, versuche, einen anderen mit den `-vc` oder `-vfm` Optionen zu wählen.
- Es wird versuchst eine DivX 3.x Datei mit dem OpenDivX- oder XviD-Decoder (`-vc odivx`) abzuspielen - installiere Divx4Linux und compiliere MPlayer neu.

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 Fehler (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

Grünes Bild bei der Verwendung von mga_vid (`-vo mga / -vo xmga`):

- `mga_vid` hat die Grösse des RAMs falsch erkannt. Lade das Modul neu mit der Option `mga_ram_size`.

# Anhang D - MPlayer skin format (Englisch)

# Anhang E - Aufschrei der Entwickler

# Anhang F - Wie man Patches erstellt