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

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. 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://download2.projectmayo.com/dnload/divx4linux/divx4linux-20010718.zip

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 installiert ist, kompiliere es wie gewöhnlich. Wenn es nicht erkannt wird, wurde es nicht exakt wir 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 DivX4 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 DivX4 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: Es unterstützt auch Postprocessing und die Reichweite der Einstellungen ist groß:

  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.1.2.2. ffmpegs 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 Filme auf nicht-x86 Platformen zu sehen! und es besitzt eine schnelle DivX/DivX4 Dekodierung als der Win32 Codec oder die orginal DivX4 Codec. Es wurde von MPlayers CVS-Tree entfernt, du musst es manuel direkt von FFmpegs Tree beziehen:

cvs -d:pserver:anonymous@cvs.ffmpeg.sourceforge.net:/cvsroot/ffmpeg login
cvs -d:pserver:anonymous@cvs.ffmpeg.sourceforge.net:/cvsroot/ffmpeg co ffmpeg

Hinweis: Wenn du es mit den CVS Unterordner kopierst, genügt es das nächste Mal 'cvs update' auszuführen.

Verschiebe nun das neu geladene libavcodec Verzeichnis (in den ffmpeg-Quellen) in das MPlayer Verzeichnise, das es so aussieht:

    main/libavcodec

Symbolische Links sind NICHT genug, du musst es kopieren oder verschieben!!!

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

Um die größtmö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/DivX4 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: das Verwenden von (einigen) XAnim-Codecs mit anderen Programmen als XAnim ist ILLEGAL. Es ist DEINE Verantwortung die Lizenzbestimmungen zu lesen und danach zu handeln. Die Autoren von MPlayer kann nicht für die illegalen Handlungen des Anwenders verantwortlich gemacht werden,

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

Diese Codecs sind die Video Codec Family 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 (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 Checken der Signaturen die libmpeg2 zurückgibt und wenn es mit sig11 (segmentation fault) abstützt initialisieren wir den Codec wieder schnell und setzen die Wiedergabe dort fort, wo der Fehler war. Kein Geschwindigkeitsverlust ist dabei 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

Die beste Möglichkeit zum sehen von Cinepak-Videos mit MPlayer ist das Verwenden des XAnim-Codecs vid_cvid.xa. Es unterstützt YV12 und YUY2 Ausgabe, im Gegenteil zum Win32-Codec, der mit RGB unterstützt.

2.2.2. Audiocodecs

Die wichtigsten Audiocodecs als erstes:

2.2.2.1. Softwaremäßige 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.

Ausgabe mit mehr als 2 Kanälen sollte als expermentel betrachtet werden.

2.2.2.2. Hardwaremäßige AC3 Dekodierung

Du wird eine AC3-fähige Soundkarte brauchen mit Digital-Out (SP/DIF). Der Treiber muss das AFMT_AC3 Format unterstützen (wie die SB Live!). Verbinde deinen AC3 Decoder am SP/DIF Ausgang und verwende die '-ac hwac3' Option. Es funktioniert möglichweise oder auch nicht (experimentel).

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.

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. Zur Zeit werden keine der beider unterstützt, aber 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.1.4. Codec Einbindungs-Howto

2.1.4.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.1.4.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]/