Mercurial > mplayer.hg
view DOCS/German/codecs.html @ 3421:3478654d2230
cleanup? libs reordered. some more bugs. 10l won't be enough...
author | arpi |
---|---|
date | Mon, 10 Dec 2001 00:54:25 +0000 |
parents | 931b9b0c1070 |
children | 454dfb7787d7 |
line wrap: on
line source
<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> </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> <A HREF="http://download2.projectmayo.com/dnload/divx4linux/divx4linux-20010718.zip">http://download2.projectmayo.com/dnload/divx4linux/divx4linux-20010718.zip</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, 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).</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> </TD><TD VALIGN=top><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>-vc odivx</TD><TD> </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 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> </TD><TD>0</TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2> </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> <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 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 (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>Die beste Möglichkeit zum sehen von Cinepak-Videos mit <B>MPlayer</B> ist das Verwenden des XAnim-Codecs <CODE>vid_cvid.xa</CODE>. Es unterstützt YV12 und YUY2 Ausgabe, im Gegenteil zum Win32-Codec, der mit RGB unterstützt.</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> </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>. Zur Zeit werden keine der beider unterstützt, aber 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> <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> <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> <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> <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>