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 noch nicht aufgelistet und unterstützt ist, lies Win32 Codec-Importierungs HOWTO und hilf uns, die Unterstützung hinzuzufügen!
Diese Sektion enthält Informationen über den DivX4 Codec von Project Mayo. Ihre ersten verfügbaren alpha-Versionen waren OpenDivX 4.0 alpha 47 und 48. Unterstützung dafür wurde standardgemäß in MPlayer eingebaut. Früher verwendeten wir deren postprocessing Code, um optional die Bildqualität von MPEG1/2-Filmen zu verbessern. Nun benutzen wir unseren eigenen.
Die neue Version dieses Codecs heisst DivX4Linux und kann sogar Filme decodieren, die mit diesen relativ unbekannten DivX-Codecs erzeugt wurden! Dazu ist er noch um einiges schneller als die traditionelle Win32 DivX DLL aber immer noch langsamer als libavcodec. Der Gebrauch dieses Codecs ist desshalb ENTMUTIGEND. Er lässt sich jedoch trotzdem zur Encodierung verwenden. Ein Nachteil diese Codecs ist, dass er zur Zeit Closed-Source ist.
Der Codec kann von einer der folgenden URLs heruntergeladen werden:
http://avifile.sourceforge.net
http://divx.comEntpacke 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 korrekt installiert oder konfiguriert.
DivX4Linux steht in Konflikt mit derm alten OpenDivX, da die APIs von beiden sich ähnlich aber inkompatibel sind. Desshalb kann nur einer davon zur gleichen Zeit in MPlayer einkompiliert werden.
DivX4Linux bietet einen OpenDivX-Kompatibilitäts Modus, so dass man bei der Verwendung des Codecs folgende Optionen auswählen kann:
-vc odivx | Verwendet den Codec nach OpenDivX-Art. In diesem Fall produziert es YV12 Bilder in seinem eigenen Buffer, und MPlayer führt die Colorspace-Konversion via libvo durch (EMPFOHLEN). | ||
-vc divx4 | verwendet die Colorspace-Konversion des Codecs. In diesem Fall kannst du auch YUY2/UYVY verwenden. | ||
Die -vc 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 -vc divx4
Methode.
Für RGB-Modus ist die Geschwindigkeit gleich, am esten hängt sie noch
von deiner momentanen Farbtiefe ab.
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 via die
Option -oldpp
. Der Bereich der Werte ist jedoch 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 ermöglicht es, DivX/DivX4/DivX5/MP42-Filme auf nicht-x86 Platformen zu sehen!. Des weiteren besitzt er eine schnellere Decodierungs-Geschwindigkeit als der Win32-Codec oder die orginale DivX4-Library!
Er beinhaltet auch viele nette Codecs, wie RealVideo 1.0, MJPEG, h263, h263+, etc.
Wenn ein MPlayer Release verwendet wird, befindet sich libavcodec bereits im Paket, welches normal kompiliert werden kann. Wenn MPlayer über CVS verwendet wird, muss die libavcodec vom FFmpeg CVS-Server verwendet werden, das FFmpeg 0.4.5 nicht mit Mplayer zusammen läuft. Um dies zu erreichen, sollten folgende Schritte vollzogen werden:
cvs -d:pserver:anonymous@cvs.ffmpeg.sourceforge.net:/cvsroot/ffmpeg login
cvs -d:pserver:anonymous@cvs.ffmpeg.sourceforge.net:/cvsroot/ffmpeg co ffmpeg
libavcodec
Verzeichnis von den FFmpeg-Sourcen muss ins
Hauptverzeichnis des MPlayer CVS-Baums bewegt werden. Es sollte etwa
so aussehen:
main/libavcodec
Der Codec unterstützt auch Postprocessing!
Mit FFmpeg und meiner Matrox G400 kann ich sogar DivX-Filme in hoher Auflösung auf meinem K6/2 500 ohne Framedrops betrachten.
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 Einschränkungen) dem Benutzer das Verwenden der Codecs mit
anderen Programmen als XAnim verbietet. Der XAnim-Autor hat jedoch noch keine
rechtliche Schritte gegen irgendjemanden wegen Codec bezogenen Fragen unternommen.
MPlayer kann XAnims Codecs für das Decodieren verwenden. Um diese zu aktivieren sollte folgende Anleitung befolgt werden:
--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
.
XAnim ist die Videocodec-Familie Nummer 10. Es kann also die -vfm 10
Option verwendet werden, um MPlayer zu sagen, dass er sie, wenn möglich, verwenden soll.
Die getesteten Codecs beinhalten: 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) (benötigt die neuesten libavcodecs). 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 die Ausgabe auf X11 und OpenGL beschränkt. ffh263 wird in Zukunft
hoffentlich VIVO 2.0 unterstützen.
MPEG1 und MPEG2 werden von der eingebauten multiplatform Bibliothek libmpeg2 decodiert, deren Source in MPlayer enthalten ist. 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 decodiert, aber nun haben wir eine
Open-Source-Codec (von Mike Melanson) eingebaut.
MPlayer verwendet normalerweise einen eigenen, Open-Source, multiplatformfähigen Cinepak-Decoder. Er unterstützt YUV Ausgabe, dies ermöglicht Hardwarescaling, wenn dies vom Videoausgabetreiber unterstützt wird.
Momentan ist nur der RealVideo 1.0 (fourcc RV10) Codec unterstützt, durch FFmpeg. Dummerweise, kommen die neuen RealMedia-Dateien mit dem neueren und closed source RV20- und RV30-Codecs. Deren zukünftige Unterstützung ist unwahrscheinlich :(
XViD ist eine weitere Entwicklung von der OpenDivX-Gruppe (deren 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
Makefile.linux
deinen Bedürfnissen entsprechendmake -f Makefile.linux
encore2.h
und decore.h
vom
Divx4linux-Paket und kopiere diese nach /usr/local/include/
.--with-xvidcore=/pfad/zu/libcore.a
.Die wichtigsten Audiocodecs als erstes:
2.2.2.1. Software AC3 Decodierung
Dieser ist der standardgemäße Dekoder für Dateien mit AC3-Audio.
Der AC3 Dekoder kann die Audio-Ausgabe für 2, 4 oder 6 Lautsprecher erzeugen. Wenn er für 6 Lautsprecher konfigieriert ist unterstützt dieser Dekoder unterschiedliche Ausgabe für alle AC3-Kanäl an den Soundtreiber. 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, Center und LFE.
Die Standardanzahl der Ausgabekanäle ist 2.
Um mehr als 2 Kanäle zu verwenden musst du OSS verwenden und eine Soundkarte besitzen, die die Anzahl der Ausgabekanäle via SNDCTL_DSP_CHANNELS ioctl unterstützt. Ein Beispiel eines passenden Treibers ist emu10k1 (verwendet bei SB Live! Karten) vom August 2001 oder neuer (ALSA CVS sollte auch funktionieren).
2.2.2.2. Hardware AC3 Decodierung
Man braucht eine AC3-fähige Soundkarte mit Digital-Out (SP/DIF). Der
Treiber muss das AFMT_AC3 Format richtig unterstützen (wie C-Media).
Der AC3-Decoder sollte mit dem SP/DIF Ausgang verbunden werden und die Option
-ac hwac3
verwendet werden. Es ist experimentell, sollte aber mit
C-Media Karten und SB Live! + ALSA (nicht OSS) Treiber funktionieren.
libmad ist eine multiplatform Bibliothek für die Decodierung von MPEG-Audio. 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 Audio.
Beide werden unterstützt. Man kann dazu g.723/Siren Win32 DLL von
hier
herunterladen und dann in in das /usr/lib/win32
Verzeichnis
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-Importierungs HOWTO
VFW (Video für Windows) ist die alte Video-Schnittstelle für Windows. Deie Codecs haben die Erweiterung .DLL oder (eher selten) .DRV. Wenn MPlayer mit folgender Meldung fehlschlägt, ein AVI abzuspielen:
UNKNOWN video codec: HFYU (0x55594648)
...bedeutet es, dass das AVI mit einem Codec erstellt wurde, der den fourcc
HFYU besitzt (HFYU = HuffYUV Codec, DIV3 = DivX Low Motion, usw...). Jetzt, wo es
bekannt ist, muss herausgefunden werden, welche DLL Windows lädt, um diese Datei
abzuspielen. In diesem Fall enthält die System.ini
diese Information
in solch einer Zeile:
VIDC.HFYU=huffyuv.dll
Also braucht man die Datei huffyuv.dll. Hinweis: die Audio-Codecs werden durch das MSACM-Prefix angegeben:
msacm.l3acm=L3codeca.acm
Dies ist ein MP3 Codec. Da nun alle nötigen Informationen vorhanden sind (fourcc, Codec-Datei, Beispiel AVI), sollte die Codec-Unterstützungs Anfrage durch ein Mail vorgelegt und die Dateien auf folgende FTP-Seite geladen werden:
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
system.ini
enthält nicht die Informationen die man braucht, stattdessen
sind diese in der Registrierungsdatenbank gespeichert und Atme tief durch und beginne mit der Durchsuchung der Registrierung...
regedit
Strg-f
, deaktiviere die ersten beiden Auswahlfelder und
aktiviere das dritte. Nun gib den fourcc des Codecs ein (z.B.: TM20).
C:\WINDOWS\SYSTEM\TM20DEC.AX
).
HINWEIS : Wenn die Suche fehlschlägt, versuche alle Auswahlfelder zu aktivieren... du hast möglicherweise falsche Ergebnisse, aber vielleicht hast du auch Glück...
Da nun alle nötigen Informationen vorhanden sind (fourcc, GUID, Codec-Datei, Beispiel AVI), sollte die Codec-Unterstützungs Anfrage durch ein Mail vorgelegt und die Dateien auf folgende FTP-Seite geladen werden:
ftp://ftp.mplayerhq.hu/MPlayer/incoming/[codecname]/