2.2. Unterstützte Codecs

2.2.1. Video Codecs

Siehe http://www.mplayerhq.hu/DOCS/codecs-status.html für die komplette, täglich generierte Liste!!!

Die wichtigsten Video-Codecs:

Wenn du einen Codec hast, der nicht gelistet ist, und noch nicht unterstützt ist, lese Sektion 2.2.3 um Infos über den Status zu bekommen und wie du uns helfen kannst, die Unterstützung hinzuzufügen!

2.2.1.1. DivX4/DivX5

Diese Sektion enthält Informationen über den DivX4 Codec von ProjectMayo. Ihre ersten verfügbaren alpha-Versionen waren OpenDivX 4.0 alpha 47 und 48. Unterstützung dafür wurde standardgemäß in MPlayer eingebaut. Wir verwenden seinen Postprocessing-Code um optional die Bildqualität von MPEG1/2 Filmen zu verbessern.

Die neue Version dieses Codecs kann auch Filme dekodieren, die mit diesen relativ unbekannten DivX-Codecs erzeugt wurden! Und das ist noch nicht alles, ist es auch UM EINIGES schneller als die traditionelle Win32 DivX DLL. (libavcodec's Decoder ist sogar NOCH SCHNELLER, so dass der Gebrauch dieses Codecs entmutigend ist - man braucht ihn bloss zur Encodierung). Siehe unten für die Konfiguration. Der einigze Nachteil diese Codecs ist, dass er zur Zeit Closed-Source ist. :(

Der Codec kann unter folgender URL heruntergeladen werden:

    http://avifile.sourceforge.net

Wenn es nicht funktioniert versuche:

    http://divx.com

Entpacke es und starte ./install.sh als Root.

Hinweis: vergiss NICHT /usr/local/lib deiner /etc/ld.so.conf hinzuzufügen!

MPlayer erkennt automatisch, wenn DivX4/DivX5 (korrekt) installiert ist und kompiliert wie gewöhnlich. Wenn nichts erkannt wird, wurde es nicht exakt wie oben installiert und/oder du hast eine schlechte Konfiguration (siehe letzte Frage der 5.1 Sektion).

Bei der Verwendung wurde ein wenig getrickst. Das es einen Konflikt mit dem alten OpenDivX (die API ist sehr ähnlich zu OpenDivXs) verursacht, wird der OpenDivX-Code deaktiviert und der OpenDivX-Treiber verwendet auch diese Bibilioteken.

Wir können diese Tatsache ausnützen um zwei Optionen für den Codec zu verwenden:

  -vc odivx   verwendet den Codec als eine neue Version von OpenDivX. In diesem Fall produziert es YV12 Bilder in seinem eigenen Buffer, und MPlayer (libvo) führt die Colorspace-Konversion durch (EMPFOHLEN).
-vc divx4 verwendet die Colorspace-Konversion des Codecs. In diesem Fall kannst du auch YUY2/UYVY verwenden.

Die 'odivx' Methode ist normalerweise schneller, da es die Daten in einem YV12 (Planar YUV 4:2:0) Format übermittelt, was weniger Bandbreite für den Bus bedeutet. Für gepackte YUV Formate (YUY2, UYVY) verwende die 'divx4'-Methode. Für RGB-Modus kannst du frei wählen, denn die Geschwindigkeit ist die selbe, möglicherweise ist sie jedoch unterschiedlich bei deiner Farbtiefe.

HINWEIS: Wenn der -vo driver "direct rendering" unterstützt, ist -vc divx4 wahrscheinlich die schnellere oder sogar die schnellste Lösung.

Hinweis: Das ALTE OpenDivX unterstützt auch Postprocessing (aktiviert durch die Option -oldpp), aber der Bereich der Werte ist seltsam:

  0   kein Postprocessing
10 .. 20 Postprocessing, normal (wie Level 2 mit DivX-DS)
30 .. 60 starkes Postprocessing, benötigt viel CPU Zeit (wie Level 4 bei DivX-DS)

2.2.1.2. ffmpeg's DivX/libavcodec

Seit Beginn der Version 0.4.2 enthält ffmpeg einen Open-Source DivX-Codec, welcher kompatibel mit dem traditionellen DivX ist. MPlayer unterstützt diesen Codec und er ermöglicht, DivX/DivX4/DivX5 Filme auf nicht-x86 Platformen zu sehen! und es besitzt eine schnellere DivX/DivX4/DivX5 Dekodierung als der Win32 Codec oder die orginale DivX4 Codec.

Es beinhaltet auch viele nette Codecs, wie RealVideo 1.0, MJPEG, h263, h263+, etc.

Wenn du MPlayer benützt

Nun kompiliere. configure erkennt, ob es in Ordnung ist und eingebaut werden kann. Der Codec unterstützt auch Postprocessing!

Um es zu verwenden aktualisiere deine codecs.conf-Datei und verwende es wie in der Manpage beschrieben oder die example.conf-Datei sagt (die -vfm Option).

Um die grösstmögliche Geschwindigkeit auf meinem K6 zu erreichen, habe ich die ffmpeg12 Sektion von codecs.conf entfernt (dieser Codec ist nicht optimiert und libmpeg2 ist doppelt so schnell) und habe vfm=5 in meiner config-Datei hinzugefügt. MPlayer hat nun immer ffdivx/ffodivx zum Dekodieren von DivX Dateien verwendet und libmpeg2 für MPEG1/2. Mit diesen Einstellungen und meiner Matrox G400 kann ich auch DivX/DivX4-Filme mit hoher Auflösung ohne Framedrop sehen.

2.2.1.3. XAnim codecs

Vorwort: Es ist darauf hinzuweisen, dass die XAnim Binary-Codecs mit einem Textstück geliefert werden, dass eine legal bindende Softwarelizenz sein soll, welche (neben einigen anderen Absurditäten) dem Benutzer das Verwenden der Codecs mit anderen Programmen als XAnim verbietet. Da der XAnim Autor noch keine rechtliche Schritte in dieser Richtung gegen irgendjemand unternommen hat, kümmern sich die MPlayer Entwickler nicht alzusehr damit und du solltest das auch nicht.

Also, MPlayer kann XAnims Codecs für das Dekodieren verwenden. Es ist sehr einfach dies einzuschalten:

Diese Codecs sind die Video Codec Familie Nummer 10, also kannst du die -vfm 10 Option verwenden um MPlayer zu sagen, dass er sie verwenden soll, wenn möglich.

Getestete Codecs sind: Indeo 3.2, 4.1, 5.0, CVID, 3ivX, h263.

2.2.1.4. VIVO Video

MPlayer kann VIVO (1.0 und 2.0) Videos abspielen. Der beste Codec für 1.0-Dateien ist FFmpegs H263 Dekoder, du kannst ihn mit der -vc ffh263 Option aufrufen (standard) (du wirdst die neuesten libavcodecs benötigen!). Für 2.0-Dateien verwende die ivvideo.dll DLL-Datei (von hier) und installiere sie unter /usr/lib/win32 oder wo du deine Win32 Codecs speicherst. Der letztgenannte Codec unterstützt weder YV12 noch YUY2, nur BGR-Modie, was normalerweise nur mit X11 oder OpenGL Ausgabe funktioniert. ffh263 wird hoffentlich bald VIVO 2.0 unterstützen.

2.2.1.5. MPEG 1/2 Video

MPEG1 und MPEG2 werden von der eingebauten Bibliothek libmpeg2 dekodiert. Der Sourcecode ist bei MPlayer enthalten und ist natürlich multiplatformfähig. Wir spielen fehlerhafte MPEG1/2 Videos durch das Abfangen des sig11 (segmentation fault) und die anschliessend schnelle neue Initialisierung des Codecs. Dadurch kann exakt an der Stelle des Fehlers fortgefahren werden. Es ist dabei Kein Geschwindigkeitsverlust messbar.

2.2.1.6. MS Video 1

Dies ist dein sehr alter und sehr schlechter Codec von Microsoft. In der Vergangenheit wurde es mit dem msvidc32.dll Win32-Codec dekodiert, aber nun haben wir eine Open-Source-Codec (von Mike Melanson) eingebaut.

2.2.1.7. Cinepak CVID

MPlayer hat nun auch einen eigenen, Open-Source, multiplatformfähigen Dekoder für Cinepak. Er unterstützt YUV Ausgabe, dies ermöglicht Hardwarescaling (wenn es der Videoausgabetreiber unterstützt). Er wird standardgemäß verwendet.

2.2.1.8. RealVideo

Momentan ist NUR der RealVideo 1.0 (fourcc RV10) Codec unterstützt, durch ffmpeg. Dummerweise, kommen keine neuen RealMedia files mit diesem Codec, nur mit den neueren RV20 und RV30 Codecs, welche closed-source sind. Deren zukünftige Unterstützung ist unwahrscheinlich :(

2.2.1.9. XViD

XViD ist eine weitere Entwicklung vom guten alten OpenDivX (die erste Entwicklung war DivX4).

Vorteile :

Nachteile :

Installation : Es ist momentan nur als CVS erhältlich. Hier sind die Download- und Installations-Anweisungen :
  cvs -z3 -d:pserver:anonymous@cvs.xvid.org:/xvid login
  cvs -z3 -d:pserver:anonymous@cvs.xvid.org:/xvid co xvidcore
  cd xvidcore/build/generic
  bearbeite Makefile.linux deinen Bedürfnissen entsprechend
  make -f Makefile.linux
  kompiliere MPlayer neu mit --with-xvidcore=/pfad/zu/libcore.a
  Nimm die encore2.h und decore.h vom Divx4linux-Packet und kopiere diese nach /usr/local/include/

2.2.2. Audiocodecs

Die wichtigsten Audiocodecs als erstes:

2.2.2.1. Software AC3 Dekodierung

Dieser ist der standardgemäße Dekoder für Dateien mit AC3-Audio.

Der AC3 Dekoder kann die Ausgabe für 2, 4 oder 6 Lautsprecher erzeugen. Wenn es für 6 Lautsprecher konfigieriert ist unterstützt dieser Dekoder unterschiedliche Ausgabe für alle AC3-Kanäl an den Soundkartentreiber. Dabei erlaubt es die vollständige "surround Sound" Erfahrung ohne einen externen AC3 Dekoder und ohne Verwendung des hwac3-Codes.

Verwende die -channels Option um die Anzahl der Aufgabekanäle zu wählen. Verwende -channels 2 für Downmix auf Stereo. Für Downmix auf 4 Kanäle (links vorne, rechts vorne, links Surround und rechts Surround) verwende -channels 4. In diesem Fall werden alle Center-Känale gleich den Front-Kanälen sein. "-channels 6" gibt alle AC3-Kanäle wie Aufgezeichnet aus - in der Reihenfolge links, rechts, links Surround, rechts Surround, Centre und LFE.

Die Standardanzahl der Ausgabekanäle ist 2.

Um mehr als 2 Kanäle zu verwenden musst du OSS verwenden und du musst eine Soundkarte besitzen, die die Anzahl der Ausgabekanäle via SNDCTL_DSP_CHANNELS ioctl unterstützt. Eine Treiberversion von August 2001 oder neuer vom emu10k1 Treiber (verwendet bei SB Live Karten) sollte das unterstützen.

2.2.2.2. Hardware AC3 Dekodierung

Du wird eine AC3-fähige Soundkarte brauchen mit Digital-Out (SP/DIF). Der Treiber muss das AFMT_AC3 Format richtig unterstützen (wie z.B. C-Media). Verbinde deinen AC3 Decoder am SP/DIF Ausgang und verwende die '-ac hwac3' Option. Es funktioniert möglichweise oder auch nicht (experimentel). Es läuft mit C-Media Karten und SB Live! + ALSA Treiber, jedoch nicht mit den OSS-Treibern von SB Live!

2.2.2.3. libmad Unterstützung

libmad ist eine multiplatform Bibliothek für die Dekodierung von MPEG-Audio. Wenn du nicht weißt warum es so gut ist wirdst du es möglicherweise auch nicht brauchen.

Sie verarbeitet kaputte Dateien nicht so gut und hat teilweise Probleme mit dem Suchen

Um die Unterstützung zu aktivieren, verwende configure mit der Option --enable-mad.

2.2.2.4. VIVO Audio

Der verwendete Audiocodec in VIVO-Dateien hängt davon ab, ob es eine VIVO/1.0 oder VIVO/2.0 Datei ist. VIVO/1.0 Dateien verwenden g.723 Audio und VIVO/2.0 Dateien Vivo Siren. Beide werden unterstützt. Du kannst dir den g.723 Codec von hier downloaden und in in das /usr/lib/win32 Verzeichnis (oder wo deine Win32-Codecs sich befinden) kopieren.

2.2.2.5. RealAudio

Momentan ist der DNET Codec der einzige unterstützte Codec. Eigentlich ist er eine Version mit tiefer Bitrate des bekannten AC3 Codec. Er kann in alten und neuen RealMedia Filmen gefunden werden.

2.2.3. Win32 Codec Einbindungs-Howto

2.2.3.1. VFW Codecs

VfW (Video für Windows) ist die alte Video-Schnittstelle von Windows. Die Codecs haben die .DLL oder (eher selten) die .DRV Erweiterung. Wenn MPlayer mit deinem AVI fehlschlägt:

    UNKNOWN video codec: HFYU (0x55594648)

Dies bedeutet, dass dein AVI mit einem Codec kodiert wurde, der den fourcc HFYU besitzt (HFYU = HuffYUV Codec, DIV3 = DivX Low Motion, usw...). Jetzt, wo wir das wissen, müssen wir herausfinden, welche DLL Windows lädt, um diese Datei abzuspielen. In unserem Fall enthält die System.ini (unter anderem):

    VIDC.HFYU=huffyuv.dll

Also brauchen wir die Datei huffyuv.dll. Hinweis: die Audio-Codecs werde mit dem MSACM-Prefix angegeben:

    msacm.l3acm=L3codeca.acm

Dies ist ein MP3 Codec. So, nun haben wir alles was wir benötigen (fourcc, Codec Datei, Beispiel AVI). Sende deine Anfrage auf Unterstützung als Mail und lade die Dateien auf diesen FTP herauf:

    ftp://ftp.mplayerhq.hu/MPlayer/incoming/[codecname]/

2.2.3.2. DirectShow Codecs

DirectShow ist die neuere Video-Programmierschnittstelle, welche noch schlimmer als ihr Vorgänger ist. Es ist schwieriger mit DirectShow, denn

Also durchsuchen wir die verdammte Registrierung..

HINWEIS : Wenn die Suche fehlschlägt, versuche alle Auswahlfelder zu aktivieren... du hast möglicherweise falsche Ergebnisse, aber vielleicht auch die richtigen...

HINWEIS : Vergiss diesen M$ Scheiß.

So, nun haben wir alle Informationen die wir benötigen (fourcc, GUID, Codec Datei, Beispiel AVI). Sende deine Anfrage auf Unterstützung als Mail und lade die Dateien auf den FTP:
ftp://ftp.mplayerhq.hu/MPlayer/incoming/[codecname]/