view DOCS/xml/de/codecs.xml @ 23066:9fa58c749c03

include inttypes.h in the check for dvdnav
author nicodvb
date Sun, 22 Apr 2007 20:03:09 +0000
parents e4cd9d683286
children 156068fd461b
line wrap: on
line source

<?xml version="1.0" encoding="utf-8"?>
<!-- synced with r21168 -->
<chapter id="codecs">
  <title>Codecs</title>

  <sect1 id="video-codecs">
    <title>Videocodecs</title>

    <para>
      Die <ulink url="../../codecs-status.html">Codecstatustabelle</ulink> ist eine vollständige
      Liste aller unterstützten Codecs, die täglich neu erstellt wird.
      Einige Binärcodecs zum Gebrauch mit MPlayer sind im
      <ulink url="http://www.mplayerhq.hu/design7/dload.html#binary_codecs">Downloadbereich</ulink>
      unserer Homepage verfügbar.
    </para>

    <para>
      Die Allerwichtigsten:
    </para>

    <itemizedlist>
      <listitem><para>
          <emphasis role="bold">MPEG-1</emphasis> (<emphasis role="bold">VCD</emphasis>) und
          <emphasis role="bold">MPEG-2</emphasis> (<emphasis role="bold">DVD</emphasis>) Video
        </para></listitem>
      <listitem><para>
          Native Decoder für
          <emphasis role="bold">alle DivX-Varianten, 3ivX, M$ MPEG-4</emphasis>
          v1, v2 und andere MPEG-4 Varianten
        </para></listitem>
      <listitem><para>
          Nativer Decoder für <emphasis role="bold">Windows Media Video 7/8</emphasis>
          (<emphasis role="bold">WMV1/WMV2</emphasis>) und Win32 DLL Decoder
          für <emphasis role="bold">Windows Media Video 9</emphasis>
          (<emphasis role="bold">WMV3</emphasis>), beide in Gebrauch in <filename>.wmv</filename>-Dateien
        </para></listitem>
      <listitem><para>
          Nativer <emphasis role="bold">Sorenson 1 (SVQ1)</emphasis> Decoder
        </para></listitem>
      <listitem><para>
          Nativer <emphasis role="bold">Sorenson 3 (SVQ3)</emphasis> Decoder
        </para></listitem>
      <listitem><para>
          <emphasis role="bold">3ivx</emphasis> v1, v2 Decoder
        </para></listitem>
      <listitem><para>
          Cinepak und <emphasis role="bold">Intel Indeo</emphasis> Codecs (3.1,3.2,4.1,5.0)
        </para></listitem>
      <listitem><para>
          <emphasis role="bold">MJPEG</emphasis>, AVID, VCR2, ASV2 und andere Hardwareformate
        </para></listitem>
      <listitem><para>
          VIVO 1.0, 2.0, I263 und andere <emphasis role="bold">H.263(+)</emphasis>-Varianten
        </para></listitem>
      <listitem><para>
          FLI/FLC
        </para></listitem>
      <listitem><para>
          <emphasis role="bold">RealVideo 1.0 &amp; 2.0</emphasis> von
          <systemitem class="library">libavcodec</systemitem> und
          <emphasis role="bold">RealVideo 3.0 &amp; 4.0</emphasis> Codecs mittels der RealPlayer Bibliotheken
        </para></listitem>
      <listitem><para>
          Native Decoder für HuffYUV
        </para></listitem>
      <listitem><para>
          Verschiedene alte und simple RLE-ähnliche Formate
        </para></listitem>
    </itemizedlist>

    <para>
      Falls du einen Win32 Codec hast, der hier nicht aufgeführt ist und noch nicht unterstützt wird, lies bitte die
      <link linkend="codec-importing">Codec Importing HOWTO</link>
      und hilf uns, Unterstützung hinzuzufügen.
    </para>


    <sect2 id="ffmpeg" xreflabel="FFmpeg/libavcodec">
      <title>FFmpeg/libavcodec</title>

      <para>
        <ulink url="http://ffmpeg.org">FFmpeg</ulink> enthält <systemitem class="library">libavcodec</systemitem>,
        die führende Open-Source-Bibliothek für Video und Audio. Sie ist in der Lage, die meisten
        Multimedia-Formate zu decodieren, normalerweise schneller als die Alternativen;
        möglicherweise wird auch noch Unterstützung für die anderen Formate hinzugefügt.
        Es ist der Standarddecoder für den Großteil der Codecs, die <application>MPlayer</application>
        unterstützt. Für manche Formate ist außerdem auch Encodierung mit Hilfe von
        <application>MEncoder</application> möglich.
      </para>

    <para>
      Für eine vollständige Liste unterstützter 
      <ulink url="http://ffmpeg.org/ffmpeg-doc.html#SEC19">Video-</ulink>
      und <ulink url="http://ffmpeg.org/ffmpeg-doc.html#SEC20">Audio</ulink>codecs
      besuche bitte die FFmpeg-Homepage.
    </para>

    <para>
      <application>MPlayer</application> enthält <systemitem class="library">libavcodec</systemitem>.
      Es genügt, <filename>./configure</filename> laufen zu lassen und zu compilieren.
    </para>

  </sect2>


  <sect2 id="xvid">
    <title>Xvid</title>

    <para>
      <ulink url="http://www.xvid.org">Xvid</ulink> ist ein freier MPEG-4 ASP konformer
      Videocodec, der Encodierung in zwei Durchläufen und das ganze MPEG-4 ASP Spektrum
      unterstützt, was ihn wesentlich effizienter als den gut bekannten DivX-Codec macht.
      Er erreicht sehr gute Qualität und dank CPU-Optimierungen für die meisten modernen
      Prozessoren gute Performance.
    </para>
    <para>
      Es begann als Fork der Entwicklung des OpenDivX-Codecs.
      Dies geschah, als ProjectMayo OpenDivX zu Closed Source DivX4
      machte und die Leute, die an OpenDivX arbeiteten aber nicht zu ProjectMayo gehörten,
      verärgerte. Diese riefen dann Xvid ins Leben. Beide Projekte haben daher denselben Ursprung.
    </para>

    <para>
      Beachte, dass Xvid nicht benötigt wird, um mit Xvid encodiertes Video zu decodieren.
      In der Standardkonfiguration wird dafür <systemitem class="library">libavcodec</systemitem>
      benutzt, da er höhere Geschwindigkeit bietet.
    </para>

    <procedure>
      <title>Installation von <systemitem class="library">Xvid</systemitem></title>
      <para>
        Wie die meiste Open-Source-Software gibt es zwei verfügbare Varianten:
        <ulink url="http://www.xvid.org/downloads.html">offizielle Releases</ulink>
        und die CVS-Version.
        Die CVS-Version ist für die Benutzung normalerweise stabil genug, da es meistens
        Fehlerbehebungen für Bugs enthält, die im Release vorhanden sind.
        Hier also, was du zu tun hast, um <systemitem class="library">Xvid</systemitem>
        vom CVS mit <application>MEncoder</application> ans Laufen zu bringen
        (du benötigst mindestens <application>autoconf</application> 2.50,
        <application>automake</application> und <application>libtool</application>):
      </para>
      <step><para>
          <screen>cvs -z3 -d:pserver:anonymous@cvs.xvid.org:/xvid login</screen>
        </para></step>
      <step><para>
          <screen>cvs -z3 -d:pserver:anonymous@cvs.xvid.org:/xvid co xvidcore</screen>
        </para></step>
      <step><para>
          <screen>cd xvidcore/build/generic</screen>
        </para></step>
      <step><para>
          <screen>./bootstrap.sh</screen>
        </para></step>
      <step><para>
          <screen>./configure</screen>
          Du musst möglicherweise ein paar Optionen hinzuzufügen (schaue dir
          die Ausgabe von <command>./configure --help</command> an).
        </para></step>
      <step><para>
          <screen>make &amp;&amp; make install</screen>
        </para></step>
      <step><para>
          Wenn du <option>--enable-divxcompat</option> angegeben hast,
          kopiere <filename>../../src/divx4.h</filename> nach
          <filename class="directory">/usr/local/include/</filename>.
        </para></step>
      <step><para>
          Compiliere <application>MPlayer</application> erneut mit
          <option>--with-xvidlibdir=<replaceable>/Pfad/zu/</replaceable>libxvidcore.a</option>
          <option>--with-xvidincdir=<replaceable>/Pfad/zu/</replaceable>xvid.h</option>.
        </para></step>
    </procedure>
  </sect2>


  <sect2 id="codec-x264">
    <title><systemitem class="library">x264</systemitem></title>

    <sect3 id="codec-x264-whatis">
      <title>Was ist <systemitem class="library">x264?</systemitem></title>
      <para>
        <ulink url="http://developers.videolan.org/x264.html"><systemitem class="library">x264</systemitem></ulink>
        ist eine Bibliothek für die
        Erstellung von H.264-Videostreams.
        Es ist nicht 100% vollständig, hat momentan aber zumindest eine Art
        Unterstützung für die meisten H.264-Features, die Einfluß auf die Qualität haben.
        Es gibt außerdem viele fortgeschrittene Features in der H.264-Spezifikation,
        die mit Videoqualität per se nichts zu tun haben; viele davon sind in
        <systemitem class="library">x264</systemitem> nicht implementiert.
      </para>

      <itemizedlist>
        <title>Encoder-Features</title>
        <listitem><para>CAVLC/CABAC</para></listitem>
        <listitem><para>mehrere Referenzen</para></listitem>
        <listitem><para>
            Intra: alle Macroblock-Typen (16x16, 8x8, and 4x4 mit allen Vorhersagen)
          </para></listitem>
        <listitem><para>
            Inter P: Alle Partitionen (von 16x16 bis runter zu 4x4)
          </para></listitem>
        <listitem><para>
            Inter B: Partitionen von 16x16 runter zu 8x8 (inklusive SKIP/DIRECT)
          </para></listitem>
        <listitem><para>
            Bitratenkontrolle: konstanter Quantisierungsparameter, konstante Bitrate,
            einer oder mehrere Durchläufe mit durchschnittlicher Bitrate (optional VBV)
          </para></listitem>
        <listitem><para>Szenenwechselerkennung</para></listitem>
        <listitem><para>Adaptive Platzierung von B-Frames</para></listitem>
        <listitem><para>B-Frames als Referenzen / bieliebige Framereihenfolge</para></listitem>
        <listitem><para>8x8 und 4x4 adaptive räumliche Transformierung</para></listitem>
        <listitem><para>Verlustfreier Modus</para></listitem>
        <listitem><para>Benutzerdefinierte Quantisierungsmatrizen</para></listitem>
        <listitem><para>Parallele Encodierung mehrerer Scheiben</para></listitem>
        <listitem><para>Interlacing</para></listitem>
      </itemizedlist>

    </sect3>

    <sect3 id="codec-h264-whatis">
      <title>Was ist H.264?</title>
      <para>
        H.264 ist ein Name für einen neuen digitalen Videocodec, der von
        der ITU und MPEG zusammen entwickelt wurde.
        Etwas umständlicher kann man ihn auch "ISO/IEC 14496-10" oder "MPEG-4 Part 10"
        nennen. Häufiger wird er als "MPEG-4 AVC" oder einfach "AVC" bezeichnet.
      </para>
      <para>
        Wie auch immer du ihn nennst, H.264 ist es eventuell wert, ausprobiert
        zu werden, da er typischerweise die Qualität von MPEG-4 ASP bei 5%-30%
        Einsparung der Bitrate erreicht.
        Tatsächliche Ergebnisse werden sowohl vom Quellmaterial als auch dem
        Encoder abhängen.
        Die Gewinne durch die Benutzung von H.264 kommen nicht umsonst: Decodierung
        von H.264-Streams hat anscheinend heftige CPU- und Speicheranforderungen.
        Beispielsweise benötigt ein Athlon mit 1733 MHz für ein 1500kbps-H.264-Video
        in DVD-Auflösung um die 35% CPU-Leistung für die Decodierung.
        Im Vergleich dazu wird für einen 1500kbps MPEG-4 ASP Stream um die 10% CPU-Leistung gebraucht.
        Dies bedeutet, dass Decodierung von High-Definition-Streams für die
        meisten Benutzer außer Frage steht.
        Es bedeutet auch, dass sogar ein ordentlicher DVD-Rip auf Prozessoren
        langsamer als 2.0 GHz oder so ins Stocken geraten kann.
      </para>
      <para>
        Zumindest bei <systemitem class="library">x264</systemitem> sind die Anforderungen
        für die Encodierung nicht so viel schlimmer als das, was du von 
        MPEG-4 ASP bereits kennst.
        Beispielsweise läuft eine DVD-Encodierung auf einem 1733 MHz Athlon bei
        etwa 5-15 fps.
      </para>
      <para>
        Dieses Dokument hat nicht die Absicht, die Details von H.264 zu erklären,
        wenn du aber an einer ausführlichen Übersicht interessiert bist, kannst du dir
        <ulink url="http://www.cdt.luth.se/~peppar/kurs/smd151/spie04-h264OverviewPaper.pdf">The H.264/AVC Advanced Video Coding Standard: Overview and Introduction to the Fidelity Range Extensions</ulink>
        durchlesen.
      </para>
    </sect3>

    <sect3 id="codec-x264-playback">
      <title>Wie kann ich H.264-Videos mit <application>MPlayer</application> abspielen?</title>
      <para>
        <application>MPlayer</application> benutzt den H.264-Decoder von 
        <systemitem class="library">libavcodec</systemitem>.
        <systemitem class="library">libavcodec</systemitem> hat minimal nutzbare
        H.264-Decodierung seit etwa Juli 2004, seitdem wurden jedoch große Änderungen
        und Verbesserungen implementiert, sowohl hinsichtlich mehr unterstützten Funktionen
        als auch CPU-Last.
        Um einfach sicher zu sein, ist es immer eine gute Idee, einen aktuellen
        Subversion-Checkout zu verwenden.
      </para>
      <para>
        Eine schnelle und einfache Methode, festzustellen, ob kürzlich Änderungen am
        H.264-Decoder von <systemitem class="library">libavcodec</systemitem> gemacht
        wurden, wirf einen Blick auf
        <ulink url="http://svn.mplayerhq.hu/ffmpeg/trunk/libavcodec/h264.c?view=log">das Web-Interface des Subversion-Repository von FFmpeg</ulink>.
      </para>
    </sect3>

    <sect3 id="codec-x264-encode">
      <title>Wie kann ich Videos mit <application>MEncoder</application> und <systemitem class="library">x264</systemitem> encodieren?</title>
      <para>
        Wenn du den Subversion-Client installiert hast, erhältst du die aktuellen
        Sourcen mit folgendem Befehl:
        <screen>svn co svn://svn.videolan.org/x264/trunk x264</screen>
        <application>MPlayer</application>-Sourcen werden immer aktualisiert, wenn sich
        die API von <systemitem class="library">x264</systemitem> ändert, daher ist
        es immer gut, auch <application>MPlayer</application> von Subversion zu benutzen.
        Möglicherweise ändert sich das, wenn und falls es ein
        <systemitem class="library">x264</systemitem>-"Release" gibt.
        Bis dahin sollte <systemitem class="library">x264</systemitem>
        hinsichtlich der Programmierschnittstelle als sehr unstabil betrachtet werden.
      </para>
      <para>
        <systemitem class="library">x264</systemitem> wird gebaut und installiert
        nach Standardmethode:
        <screen>./configure &amp;&amp; make &amp;&amp; sudo make install</screen>
        Dies installiert libx264.a nach /usr/local/lib, und x264.h landet in
        /usr/local/include.

        Mit der <systemitem class="library">x264</systemitem>-Bibliothek und dem Header
        in den Standardverzeichnissen ist es leicht, <application>MPlayer</application>
        mit <systemitem class="library">x264</systemitem>-Unterstützung zu bauen.
        Führe die Standardformel aus:
        <screen>./configure &amp;&amp; make &amp;&amp; sudo make install</screen>
        Das <filename>./configure</filename>-Script wird automatisch erkennen, dass du die Bedingungen
        für <systemitem class="library">x264</systemitem> erfüllst.
      </para>
    </sect3>
  </sect2>
</sect1>

<!-- ********** -->

<sect1 id="audio-codecs">

  <title>Audiocodecs</title>
  <itemizedlist>
    <title>Die allerwichtigsten Audiocodecs:</title>
    <listitem><para>
        MPEG layer 1/2/3 (MP1/2/3) Audio (<emphasis role="bold">nativer</emphasis>
        Decoder, mit MMX/SSE/3DNow! Optimierung)
      </para></listitem>
    <listitem><para>
        Windows Media Audio 7 und 8 (alias WMAv1 und WMAv2) (<emphasis role="bold">nativer</emphasis> Decoder, mit
        <link linkend="ffmpeg"><systemitem class="library">libavcodec</systemitem></link>)
      </para></listitem>
    <listitem><para>
        Windows Media Audio 9 (WMAv3) (unter Verwendung der DMO-DLL)
      </para></listitem>
    <listitem><para>
        AC3 Dolby Audio (<emphasis role="bold">nativer</emphasis> Decoder, mit
        MMX/SSE/3DNow! Optimierung)
      </para></listitem>
    <listitem><para>
        AC3-Passthrough unter Verwendung der Soundkartenhardware
      </para></listitem>
    <listitem><para>
        AAC
      </para></listitem>
    <listitem><para>
        Ogg Vorbis Audiocodec (<emphasis role="bold">native</emphasis> Bibliothek)
      </para></listitem>
    <listitem><para>
        RealAudio: DNET (AC3 mit niedriger Bitrate), Cook, Sipro and ATRAC3
      </para></listitem>
    <listitem><para>
        QuickTime: Qualcomm und QDesign Audio Decoder
      </para></listitem>
    <listitem><para>
        VIVO Audio (g723, Vivo Siren)
      </para></listitem>
    <listitem><para>
        Voxware Audio (unter Verwendung der DirectShow-DLL)
      </para></listitem>
    <listitem><para>
        alaw und ulaw, verschiedene gsm, adpcm und pcm Formate und andere einfache alte
        Audiocodecs
      </para></listitem>
    <listitem><para>
        Adaptive Multi-Rate (AMR) Sprachcodecs
      </para></listitem>
  </itemizedlist>


  <sect2 id="swac3">
    <title>Software-AC3-Decoder</title>

    <para>
      Das ist der Standarddecoder für Dateien, die AC3-Audio enthalten.
    </para>

    <para>
      Der AC3-Decoder kann Audio für zwei, vier oder sechs Lautsprecher ausgeben.
      Wenn er für sechs Lautsprecher konfiguriert wurde, stellt der Decoder dem
      Audiotreiber alle Kanäle separat zur Verfügung und erlaubt so volle
      "Surround"-Erfahrung ohne einen externen AC3 Decoder, der gebraucht wird,
      um hwac3 zu benutzen.
    </para>

    <para>
      Benutze die Option <option>-channels</option>, um die Anzahl der Kanäle
      anzugeben. Mit <option>-channels 2</option> wird Stereo-Klang erzeugt.
      Für eine 4-Kanal-Ausgabe (links vorne, rechts vorne, links Surround und
      rechts Surround) verwende <option>-channels 4</option>. In diesem
      Fall wird der Kanal Center gleichmäßig auf die vorderen Kanäle verteilt.
      <option>-channels 6</option> gibt alle AC3-Kanäle aus, wie sie codiert
      wurden - in der Reihenfolge links vorne, rechts vorne, links Surround, rechts
      Surround, Center und LFE.
    </para>

    <para>
      Standard sind zwei Ausgabekanäle.
    </para>

    <para>
      Um mehr als zwei Ausgabekanäle verwenden zu können, muss OSS verwendet werden,
      und die Soundkarte muss die entsprechende Anzahl an Kanälen mittels ioctl
      SNDCTL_DSP_CHANNELS unterstützen. Ein funktionierender Treiber ist emu10k1
      (wird für Soundblaster Live! Karten benutzt) seit August 2001
      (Neuere ALSA-Versionen sollten auch funktionieren).
    </para>
  </sect2>


  <sect2 id="hwac3">
    <title>Hardware-AC3-Decoder</title>
    <para>
      Benötigt wird eine AC3 fähige Soundkarte mit einem Digitalausgang (S/PDIF).
      Der Treiber der Karte muss das AFMT_AC3 Format korrekt unterstützen (wie
      z.B. C-Media). Verbinde dann den Hardware AC3 Decoder mit dem S/PDIF Ausgang
      und benutze <option>-ac hwac3</option>. Die Unterstützung ist experimentell,
      funktioniert aber z.B. mit C-Media Karten und Soundblaster Live! mit ALSA
      (aber nicht OSS) Treibern, sowie mit DXR3/Hollywood+ MPEG Decoder Karten.
    </para>
  </sect2>


  <sect2 id="libmad">
    <title>Unterstützung für <systemitem class="library">libmad</systemitem></title>

    <para>
      <ulink url="http://www.underbit.com/products/mad/"><systemitem class="library">libmad</systemitem></ulink> ist
      eine Integer-MPEG-Audiodecoder-Bibliothek für mehrere Plattformen, die intern mit
      24-bittigem PCM arbeitet. Sie funktioniert nicht sehr gut mit beschädigten
      Dateien und hat manchmal Probleme mit Sprüngen (seeks), kann aber auf
      Platformen ohne FPU (z.B. <link linkend="arm">ARM</link>) schneller
      sein als <systemitem class="library">mp3lib</systemitem>.
    </para>

    <para>
      Wenn <systemitem class="library">libmad</systemitem> bei dir korrekt installiert ist, wird
      <filename>./configure</filename>
      dies bemerken, und Unterstützung für MPEG-Audiodecodierung via
      <systemitem class="library">libmad</systemitem> wird automatisch eingebaut.
    </para>
  </sect2>

  <sect2 id="hwmpa">
    <title>Hardware-MPEG-Audiodecoder</title>

    <para>
      Dieser Codec (ausgewählt durch <option>-ac hwmpa</option>) reicht
      MPEG-Audiopakete an Hardwaredecoder durch, wie sie z.B. auf
      voll ausgestatteten DVB-Karten und DXR2-Adaptern existieren.
      Es bringt nichts, ihn mit einem anderen Gerät (wie z.B. OSS und ALSA)
      zu verwenden - das führt lediglich zu Rauschen.
    </para>
  </sect2>


  <sect2 id="aac">
    <title>AAC Codec</title>
    <para>
      AAC (Advanced Audio Coding) ist ein Audiocodec, der vorwiegend
      in MOV- und MP4-Dateien vorkommt. Ein Open-Source-Decoder namens
      FAAD ist auf <ulink url="http://www.audiocoding.com"/>
      verfügbar. <application>MPlayer</application> enthält
      eine CVS Version von libfaad 2.1 beta, so dass es nicht extra
      installiert werden muss.
    </para>

    <para>
      Um die externe FAAD-Bibliothek verwenden zu können (z.B. um mit gcc 3.2
      compilieren zu können, der die interne Version nicht übersetzt), muss
      die Bibliothek von der
      <ulink url="http://www.audiocoding.com/modules/mydownloads/">Download Seite</ulink>
      heruntergeladen und installiert werden. Anschließend muss die Option
      <option>--enable-faad-external</option> an <filename>./configure</filename>
      übergeben werden, damit die externe Bibliothek erkannt wird.
      Es ist lediglich erforderlich, vorher libfaad zu installieren, und zwar so:
      <screen>
cd faad2/
sh bootstrap
./configure
cd libfaad
make
make install<!--
      --></screen>
      Binärpakete sind auf audiocoding.com nicht erhältlich, Debian-Pakete
      können aber mit (apt-)get von
      <ulink url="http://www.debian-multimedia.org/">Christian Marillat's Homepage</ulink>, Mandrake/Mandriva RPMs von
      <ulink url="http://plf.zarb.org">P.L.F</ulink> und RedHat RPMs
      von <ulink url="http://greysector.rangers.eu.org/">Grey Sector</ulink>
      heruntergeladen werden.
    </para>
  </sect2>

  <sect2 id="amr">
    <title>AMR Codecs</title>
    <para>
      Adaptive Multi-Rate Sprachcodec, wird in 3G (UMTS) Mobiltelephonen verwendet.
      Die Referenzimplementierung ist auf
      <ulink url="http://www.3gpp.org">The 3rd Generation Partnership Project</ulink>
      erhältlich (frei - wie in Freibier - für private Benutzung).
    </para>
    <para>
      Für Unterstützung müssen die Codecs
      <ulink url="http://www.3gpp.org/ftp/Specs/latest/Rel-6/26_series/26104-610.zip">AMR-NB</ulink>
      und
      <ulink url="http://www.3gpp.org/ftp/Specs/latest/Rel-6/26_series/26204-600.zip">AMR-WB</ulink>
      heruntergeladen und in dasselbe Verzeichnis wie
      <application>MPlayer</application> verschoben werden.
      Anschließend folgende Befehle ausführen:
      <screen>
unzip 26104-610.zip
unzip 26104-610_ANSI_C_source_code.zip
mv c-code libavcodec/amr_float
unzip 26204-600.zip
unzip 26204-600_ANSI-C_source_code.zip
mv c-code libavcodec/amrwb_float<!--
      --></screen>
      Befolge danach einfach das <link linkend="features">Standardvorgehen für die Compilierung</link> von
      <application>MPlayer</application>.
    </para>
  </sect2>

</sect1>

<!-- ********** -->

<sect1 id="codec-importing">
  <title>HOWTO Win32-Codecs-Importierung</title>

  <!-- TODO: a short paragraph of text would be nice here... -->

  <sect2 id="vfw-codecs">
    <title>VFW-Codecs</title>

    <para>
      VFW (Video for Windows) ist die alte Video-API von Windows. Deren Codecs hat die
      Dateinamenerweiterung <filename>.DLL</filename> oder (selten) <filename>.DRV</filename>.
      Wenn <application>MPlayer</application> bei der Wiedergabe deines AVIs fehlschlägt
      mit einer Meldung wie:
      <screen>UNKNOWN video codec: HFYU (0x55594648)</screen>
      ..bedeutet dies, dass dein AVI mit einem Codec encodiert ist, der den fourcc HFYU
      (HFYU = HuffYUV-Codec, DIV3 = DivX Low Motion, etc.) hat. Da du dies jetzt weißt,
      musst du herausfinden, welche DLL Windows lädt, um diese Datei abzuspielen. In
      unserem Fall enthält die <filename>system.ini</filename> diese Information in einer
      Zeile, die so aussieht:
      <programlisting>VIDC.HFYU=huffyuv.dll</programlisting>
    </para>

    <para>
      Du benötigst also die Datei <filename>huffyuv.dll</filename>. Beachte, dass
      Audiocodecs mit dem MSACM-Präfix angegeben werden:
      <programlisting>msacm.l3acm=L3codeca.acm</programlisting>
    </para>

    <para>
      Dies ist der MP3-Codec. Da du nun alle nötigen Informationen hast
      (fourcc, Codecdatei, Beispiel-AVI), gib eine Anfrage für Codecunterstützung per
      Mail auf, und lade diese Dateien auf den FTP-Server hoch:
      <systemitem role="url">
        ftp://upload.mplayerhq.hu/MPlayer/incoming/<replaceable>&lt;Codecname&gt;</replaceable>/
      </systemitem>
    </para>

    <note><para>
        Suche nach dieser Information unter Windows NT/2000/XP in der Registry,
        suche also z.B. nach &quot;VIDC.HFYU&quot;. Um herauszufinden, wie man das
        macht, schaue dir die folgende Methode zu DirectShow an.
      </para></note>
  </sect2>


  <sect2 id="dshow-codecs">
    <title>DirectShow-Codecs</title>

    <para>
      DirectShow ist die neuere Video-API, die noch schlechter ist als ihr Vorgänger.
      Dinge sind schwieriger geworden mit DirectShow, da
      <itemizedlist>
        <listitem><para>
            <filename>system.ini</filename> nicht die benötigten Informationen enthält,
            die statt dessen in der Registry gespeichert ist.
          </para></listitem>
        <listitem><para>
            wir die GUID des Codecs benötigen.
          </para></listitem>
      </itemizedlist>
    </para>

    <procedure>
      <title>Neue Methode:</title>
      <para>
        Benutzung von <application>Microsoft GraphEdit</application> (schnell)
      </para>
      <step><para>
          Beziehe <application>GraphEdit</application> entweder aus dem DirectX-SDK
          oder von <ulink url="http://doom9.net">doom9</ulink>.
        </para></step>
      <step><para>
          Starte <command>graphedit.exe</command>.
        </para></step>
      <step><para>
          Wähle aus dem Menü Graph -> Insert Filters.
        </para></step>
      <step><para>
          Klappe den Eintrag <systemitem>DirectShow Filters</systemitem> aus.
        </para></step>
      <step><para>
          Wähle den richtigen Codecnamen und klappe den Eintrag aus.
        </para></step>
      <step><para>
          Schaue im Eintrag <systemitem>DisplayName</systemitem> nach dem Text in den
          geschweiften Klammern hinter dem Backslash und notiere ihn
          (fünf mit Bindestrich getrennte Blöcke, die GUID).
        </para></step>
      <step><para>
          Die Codecbinärdatei ist die Datei, die im Eintrag
          <systemitem>Filename</systemitem> angegeben wird.
        </para></step>
    </procedure>

    <note>
      <para>
        Wenn dort kein <systemitem>Filename</systemitem> ist und
        <systemitem>DisplayName</systemitem> etwas wie 
        <systemitem>device:dmo</systemitem> enthält, handelt es sich um einen DMO-Codec.
      </para>
    </note>

    <procedure>
      <title>Alte Methode:</title>
      <para>
        Nimm einen tiefen Atemzug und beginne die Suche in der Registry...
      </para>
      <step><para>
          Starte <command>regedit</command>.
        </para></step>
      <step><para>
          Drücke <keycap>Strg</keycap>+<keycap>F</keycap>, deaktiviere die ersten beiden
          Checkboxen und aktiviere die dritte. Gib den fourcc des Codecs ein (z.B.
          <userinput>TM20</userinput>).
        </para></step>
      <step><para>
          Du solltest ein Feld sehen, das den Pfad und den Dateinamen (z.B.
          <filename>C:\WINDOWS\SYSTEM\TM20DEC.AX</filename>) enthält.
        </para></step>
      <step><para>
          Da du jetzt die Datei hast, benötigen wir die GUID. Probiere erneut die
          Suche, nun aber nach dem Codecnamen, nicht dem fourcc. Dessen Name kann man
          herausfinden, indem man während der Wiedergabe mit Media Player den Eintrag von
          <guimenu>Datei</guimenu> -&gt; <guisubmenu>Eigenschaften</guisubmenu> -&gt;
          <guimenuitem>Erweitert</guimenuitem> überprüft.
          Wenn dies nicht klappt, hast du Pech. Versuche raten (suche z.B. nach TrueMotion).
        </para></step>
      <step><para>
          Wenn die GUID gefunden wurde, solltest du das Feld <guilabel>FriendlyName</guilabel>
          und <guilabel>CLSID</guilabel> sehen. Notiere die 16-Byte-CLSID, das ist die
          GUID, die wir brauchen.
        </para></step>
    </procedure>

    <note>
      <para>
        Wenn die Suche fehlschlägt, probiere die Aktivierung aller Checkboxen. Es kann sein,
        dass du falsche Treffer erhältst, aber vielleicht hast du Glück...
      </para>
    </note>

    <para>
      Da du nun alle nötigen Informationen hast (fourcc, Codecdatei, Beispiel-AVI),
      gib eine Anfrage für Codecunterstützung per Mail auf, und lade diese Dateien
      auf den FTP-Server hoch:
      <systemitem role="url">
        ftp://upload.mplayerhq.hu/MPlayer/incoming/<replaceable>&gt;Codecname&gt;</replaceable>/
      </systemitem>
    </para>

    <para>
      Wenn du einen Codec selbst hinzufügen möchtest, lies
      <ulink url="http://www.mplayerhq.hu/MPlayer/DOCS/tech/codecs.conf.txt">DOCS/tech/codecs.conf.txt</ulink>.
    </para>

  </sect2>
</sect1>

</chapter>