mpv/DOCS/German/codecs.html

331 lines
16 KiB
HTML

<HTML>
<BODY BGCOLOR=WHITE>
<FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>
<P><B><A NAME=2.2>2.2. Unterstützte Codecs</A></B></P>
<P><B><A NAME=2.2.1>2.2.1. Video Codecs</A></B></P>
<P>Siehe <A HREF="http://www.mplayerhq.hu/DOCS/codecs-status.html">http://www.mplayerhq.hu/DOCS/codecs-status.html</A> für die komplette,
täglich generierte Liste!!!</P>
<P>Die wichtigsten Video-Codecs:<BR>
<UL>
<LI>MPEG1 (VCD) und MPEG2 (DVD) video</LI>
<LI>DivX ;-), OpenDivX (DivX4), 3ivx und andere MPEG4 Varianten</LI>
<LI>Windows Media Video 7 (WMV1) und 8 (WMV2), verwendet in .wmv-Dateien</LI>
<LI>Intel Indeo Codecs (3.1, 3.2, 4.1, 5.0)</LI>
<LI>MJPEG, ASV2 und andere Hardwareformate</LI>
<LI>XAnim Codecs</LI>
<LI>VIVO</LI>
<LI>FLI</LI>
</UL></P>
<P>Wenn du einen Codec hast, der nicht gelistet ist, und noch nicht unterstützt
ist, lese <A HREF="#2.2.3">Sektion 2.2.3</A> um Infos über den Status zu bekommen
und wie du uns helfen kannst, die Unterstützung hinzuzufügen!</P>
<P><B><A NAME=2.2.1.1>2.2.1.1. DivX4</A></B></P>
<P>Diese Sektion enthält Informationen über den DivX4 Codec von
<A HREF="http://www.projectmayo.com">ProjectMayo</A>. Ihre ersten verfügbaren alpha-Versionen
waren OpenDivX 4.0 alpha 47 und 48. Unterstützung dafür wurde standardgemäß in
<B>MPlayer</B> eingebaut. Wir verwenden seinen Postprocessing-Code um optional
die Bildqualität von MPEG1/2 Filmen zu verbessern.</P>
<P>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. :(</P>
<P>Der Codec kann unter folgender URL heruntergeladen werden:</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;<A HREF="http://avifile.sourceforge.net">http://avifile.sourceforge.net</A></P>
<P>Wenn es nicht funktioniert versuche:</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;<A HREF="http://divx.com">http://divx.com</A></P>
<P>Entpacke es und starte <CODE>./install.sh</CODE> als Root.</P>
<P>Hinweis: vergiss NICHT /usr/local/lib deiner /etc/ld.so.conf hinzuzufügen!</P>
<P><B>MPlayer</B> erkennt automatisch, wenn DivX4 installiert ist, und kompiliert
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).</P>
<P>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.</P>
<P>Wir können diese Tatsache ausnützen um zwei Optionen für den Codec zu verwenden:</P>
<P><TABLE BORDER=0>
<TD>&nbsp;&nbsp;</TD><TD VALIGN=top><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>-vc&nbsp;odivx</TD><TD>&nbsp;&nbsp;</TD>
<TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>verwendet den DivX4 Codec als eine
neue Version von OpenDivX. In diesem Fall produziert es YV12 Bilder in seinem eigenen Buffer, und
<B>MPlayer</B> (libvo) führt die Colorspace-Konversion durch (<B>EMPFOHLEN</B>).</TD><TR>
<TD></TD><TD VALIGN=top><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>-vc&nbsp;divx4</TD><TD></TD>
<TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>verwendet die Colorspace-Konversion
des DivX4 Codecs. In diesem Fall kannst du auch YUY2/UYVY verwenden.</TD><TR>
</TABLE></P>
<P>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.</P>
<P>Hinweis: Es unterstützt auch Postprocessing und die Reichweite der Einstellungen
ist groß:</P>
<P><TABLE BORDER=0>
<TD>&nbsp;&nbsp;</TD><TD>0</TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>&nbsp;&nbsp;</TD>
<TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>kein Postprocessing</TD><TR>
<TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>10 .. 20</TD>
<TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>Postprocessing, normal (wie Level 2 mit DivX-DS)</TD><TR>
<TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>30 .. 60</TD>
<TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>starkes Postprocessing, benötigt viel CPU Zeit (wie Level 4 bei DivX-DS)</TD><TR>
</TABLE></P>
<P><B><A NAME=2.1.2.2>2.1.2.2. ffmpegs DivX/libavcodec</A></B></P>
<P>Seit Beginn der Version 0.4.2 enthält <A HREF="http://ffmpeg.sourceforge.net">ffmpeg</A> einen <B>Open-Source</B>
DivX-Codec, welcher kompatibel mit dem traditionellen DivX ist. <B>MPlayer</B>
unterstützt diesen Codec und er ermöglicht, <B>DivX/DivX4 Filme auf nicht-x86
Platformen zu sehen!</B> und es besitzt eine schnelle <B>DivX/DivX4</B> Dekodierung
als der Win32 Codec oder die orginal DivX4 Codec. Es wurde von <B>MPlayer</B>s
CVS-Tree entfernt, du musst es manuel direkt von <B>FFmpeg</B>s Tree beziehen:</P>
<P><CODE>
cvs -d:pserver:anonymous@cvs.ffmpeg.sourceforge.net:/cvsroot/ffmpeg login<BR>
cvs -d:pserver:anonymous@cvs.ffmpeg.sourceforge.net:/cvsroot/ffmpeg co ffmpeg
</CODE></P>
<P>Hinweis: <I>Wenn du es mit den CVS Unterordner kopierst, genügt es das nächste Mal 'cvs update' auszuführen.</I></P>
<P>Verschiebe nun das neu geladene <B>libavcodec</B> Verzeichnis (in den
ffmpeg-Quellen) in das <B>MPlayer</B> Verzeichnise, das es so aussieht:</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;<CODE>main/libavcodec</CODE></P>
<P>Symbolische Links sind NICHT genug, du musst es kopieren oder verschieben!!!</P>
<P>Nun kompiliere. configure erkennt, ob es in Ordnung ist und eingebaut werden
kann. Der Codec <B>unterstützt auch Postprocessing</B>!</P>
<P>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).</P>
<P>Um die <B>größtmögliche Geschwindigkeit</B> auf meinem K6 zu erreichen, habe ich
die <CODE>ffmpeg12</CODE> Sektion von codecs.conf entfernt (dieser Codec ist
nicht optimiert und libmpeg2 ist doppelt so schnell) und habe <CODE>vfm=5</CODE>
in meiner config-Datei hinzugefügt. <B>MPlayer</B> hat nun immer <B>ffdivx/ffodivx</B>
zum Dekodieren von <B>DivX/DivX4</B> 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.</P>
<P><B><A NAME=2.2.1.3>2.2.1.3. XAnim codecs</A></B></P>
<P>Vorwort: das Verwenden von (einigen) XAnim-Codecs mit anderen Programmen als
XAnim ist <B><I>ILLEGAL</I></B>. Es ist <B>DEINE</B> Verantwortung die Lizenzbestimmungen
zu lesen und danach zu handeln. Die Autoren von <B>MPlayer</B> kann nicht für die
illegalen Handlungen des Anwenders verantwortlich gemacht werden,</P>
<P>Also, <B>MPlayer</B> kann XAnims Codecs für das Dekodieren verwenden. Es
ist sehr einfach dies einzuschalten:</P>
<P>
<UL>
<LI>Lade dir die Codecs dir dir will von der <A HREF="http://xanim.va.pubnix.com">XAnim Seite</A>
herunter. Den <B>3ivx</B> Codec kann man dort nicht finden, also lade ihn von der
<A HREF="http://www.3ivx.com">3ivx Seite</A>.</LI>
<LI>verwende die <CODE>--with-xanimlibdir</CODE> Option um configure zu sagen, wo
es die XAnim-Codecs finden kann. Standardgemäß prüft es in <CODE>/</CODE> (...) .</LI>
<LI>Entferne das Architur-Zeug auf dem Dateinamen, dass die so aussehen:
<CODE>vid_cvid.xa, vid_h263.xa, vid_iv50.xa</CODE>.
</UL>
</P>
<P>Diese Codecs sind die Video Codec Family Nummer 10, also kannst du die <CODE>-vfm 10</CODE>
Option verwenden um <B>MPlayer</B> zu sagen, dass er sie verwenden soll, wenn möglich.</P>
<P>Getestete Codecs sind: <B>Indeo 3.2</B>, <B>4.1</B>, <B>5.0</B>, <B>CVID</B>, <B>3ivX</B>, <B>h263</B>.</P>
<P><B><A NAME=2.2.1.4>2.2.1.4. VIVO Video</A></B></P>
<P><B>MPlayer</B> 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 <CODE>-vc ffh263</CODE>
Option aufrufen (standard) (du wirdst die neuesten libavcodecs benötigen!). Für 2.0-Dateien verwende
die <CODE>ivvideo.dll</CODE> DLL-Datei (von <A HREF="http://www.mplayerhq.hu/MPlayer/samples/drivers32/ivvideo.dll">
hier</A>) und installiere sie unter <CODE>/usr/lib/win32</CODE> 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.</P>
<P><B><A NAME=2.2.1.5>2.2.1.5. MPEG 1/2 Video</A></B></P>
<P>MPEG1 und MPEG2 werden von der eingebauten Bibliothek <B>libmpeg2</B> dekodiert.
Der Sourcecode ist bei <B>MPlayer</B> 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.</P>
<P><B><A NAME=2.2.1.6>2.2.1.6. MS Video 1</A></B></P>
<P>Dies ist dein sehr alter und sehr schlechter Codec von Microsoft. In der Vergangenheit
wurde es mit dem <CODE>msvidc32.dll</CODE> Win32-Codec dekodiert, aber nun haben wir eine
Open-Source-Codec (von <A HREF="mailto:melanson@pcisys.net">Mike Melanson</A>) eingebaut.</P>
<P><B><A NAME=2.2.1.7>2.2.1.7. Cinepak CVID</A></B></P>
<P><B>MPlayer</B> 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.</P>
<P><B><A NAME=2.2.2>2.2.2. Audiocodecs</A></B></P>
<P>Die wichtigsten Audiocodecs als erstes:<BR>
<UL>
<LI>MPEG layer 2 und layer 3 (MP3) Audio (<B>eingebauter</B> Code, mit MMX/SSE/3DNow! Optimierungen)</LI>
<LI>MPEG layer 1 Audio (<B>eingebauter</B> Code, mit libavcodec)</LI>
<LI>AC3 Dolby Audio (<B>eingebauter</B> Code, mit SSE/3DNow! Optimierungen)</LI>
<LI>Ogg Vorbis Audiocodec (<B>eingebaute</B> lib)</LI>
<LI>Voxware Audio (Verwendung der DirectShow DLL)</LI>
<LI>alaw, MSGSM, PCM und andere einfache, alte Audioformate</LI>
<LI>VIVO Audio (G723, Vivo Siren)</LI>
</UL></P>
<P><B><A NAME=2.2.2.1>2.2.2.1. Softwaremäßige AC3 Dekodierung</A></B></P>
<P>Dieser ist der standardgemäße Dekoder für Dateien mit AC3-Audio.</P>
<P>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.</P>
<P>Verwende die <CODE>-channels</CODE> Option um die Anzahl der Aufgabekanäle zu wählen.
Verwende <CODE>-channels 2</CODE> für Downmix auf Stereo. Für Downmix auf 4 Kanäle (links vorne,
rechts vorne, links Surround und rechts Surround) verwende <CODE>-channels 4</CODE>.
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.</P>
<P>Die Standardanzahl der Ausgabekanäle ist 2.</P>
<P>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.</P>
<P>Ausgabe mit mehr als 2 Kanälen sollte als expermentel betrachtet werden.</P>
<P><B><A NAME=2.2.2.2>2.2.2.2. Hardwaremäßige AC3 Dekodierung</A></B></P>
<P>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).</P>
<P><B><A NAME=2.2.2.3>2.2.2.3. libmad Unterstützung</A></B></P>
<P><A HREF="http://mad.sourceforge.net">libmad</A> 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.</P>
<P>Um die Unterstützung zu aktivieren, verwende configure mit der Option <CODE>--enable-mad</CODE>.</P>
<P><B><A NAME=2.2.2.4>2.2.2.4. VIVO Audio</A></B></P>
<P>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 <B>g.723</B> Audio und VIVO/2.0 Dateien <B>Vivo Siren</B>. Beide werden
<U>unterstützt</U>. Du kannst dir den g.723 Codec von
<A HREF="http://www.mplayerhq.hu/MPlayer/samples/drivers32/vivog723.acm">hier</A>
downloaden und in in das <CODE>/usr/lib/win32</CODE> Verzeichnis (oder wo deine Win32-Codecs sich befinden)
kopieren.</P>
<P><B><A NAME=2.1.4>2.1.4. Codec Einbindungs-Howto</A></B></P>
<P><B><A NAME=2.1.4.1>2.1.4.1. VFW Codecs</A></B></P>
<P>VfW (Video für Windows) ist die alte Video-Schnittstelle von Windows.
Die Codecs haben die .DLL oder (eher selten) die .DRV Erweiterung.
Wenn <B>MPlayer</B> mit deinem AVI fehlschlägt:</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;<CODE>UNKNOWN video codec: HFYU (0x55594648)</CODE></P>
<P>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):</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;<CODE>VIDC.HFYU=huffyuv.dll</CODE></P>
<P>Also brauchen wir die Datei huffyuv.dll. Hinweis: die Audio-Codecs werde mit dem
MSACM-Prefix angegeben:</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;<CODE>msacm.l3acm=L3codeca.acm</CODE></P>
<P>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:</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;<CODE>ftp://ftp.mplayerhq.hu/MPlayer/incoming/[codecname]/</CODE></P>
<P><B><A NAME=2.1.4.2>2.1.4.2. DirectShow Codecs</A></B></P>
<P>DirectShow ist die neuere Video-Programmierschnittstelle, welche noch
schlimmer als ihr Vorgänger ist. Es ist schwieriger mit DirectShow, denn
<UL>
<LI>die system.ini enthält nicht die Informationen die man braucht, stattdessen
sind diese in der Registrierungsdatenbank gespeichert :(
<LI>man braucht die GUID des Codecs.
</UL></P>
<P>Also durchsuchen wir die verdammte Registrierung..
<UL>
<LI>Starte 'regedit'
<LI>Drücke STRG-F, deaktiviere die ersten beiden Auswahlfelder und aktiviere das
dritte. Nun gib den fourcc des Codecs ein (z.B.: TM20).
<LI>Du solltest ein Feld sehen, welches den Pfad und Dateinamen enthält
(z.B.: C:\WINDOWS\SYSTEM\TM20DEC.AX)
<LI>Jetzt da wir die Datei haben, brauchen wir die GUID. Versuche erneut zu
suchen, aber nun nach dem Codec-Namen, nicht nach der fourcc. Der Codec-Name
kann bei der Wiedergabe mit dem Windows Media Player herausgefunden werden,
indem man unter Datei/Eigenschaften/Erweitert nachschaut.
Falls du dabei kein Glück hast musst du raten :(
(suche zum Beispiel nach: TrueMotion)
<LI>wenn du es (in der Registrierung) gefunden hast, sollte ein FriendlyName
Feld und ein CLSID Feld auftauchen. Schreibe 16 Byte der CLSID auf, dies ist
die von uns benötigte GUID.</UL></P>
<P>HINWEIS : Wenn die Suche fehlschlägt, versuche alle Auswahlfelder zu aktivieren...
du hast möglicherweise falsche Ergebnisse, aber vielleicht auch die
richtigen...</P>
<P>HINWEIS : Vergiss diesen M$ Scheiß.</P>
<P>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:<BR>
ftp://ftp.mplayerhq.hu/MPlayer/incoming/[codecname]/</P>
</BODY>
</HTML>