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!
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:
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
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 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.
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:
--with-xanimlibdir
Option um configure zu sagen, wo
es die XAnim-Codecs finden kann. Normalerweise werden diese in
/usr/local/lib/xanim/mods, /usr/lib/xanim/mods/ und /usr/lib/xanim
gesucht.
Ansonsten kannst du auch die Umgebungsvariable XANIM_MOD_DIR zum Verzeichnis
der XAnim Codecs setzen.vid_cvid.xa, vid_h263.xa, vid_iv50.xa
.
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.
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.
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.
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.
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.
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 :(
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-Paket und kopiere diese nach
/usr/local/include/
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!
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
.
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.
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
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]/
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]/