7.3. HOWTO Win32-Codecs-Importierung

7.3.1. VFW-Codecs

VFW (Video for Windows) ist die alte Video-API von Windows. Deren Codecs hat die Dateinamenerweiterung .DLL oder (selten) .DRV. Wenn MPlayer bei der Wiedergabe deines AVIs fehlschlägt mit einer Meldung wie:

UNKNOWN video codec: HFYU (0x55594648)

..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 system.ini diese Information in einer Zeile, die so aussieht:

VIDC.HFYU=huffyuv.dll

Du benötigst also die Datei huffyuv.dll. Beachte, dass Audiocodecs mit dem MSACM-Präfix angegeben werden:

msacm.l3acm=L3codeca.acm

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: ftp://upload.mplayerhq.hu/MPlayer/incoming/<Codecname>/

Anmerkung

Suche nach dieser Information unter Windows NT/2000/XP in der Registry, suche also z.B. nach "VIDC.HFYU". Um herauszufinden, wie man das macht, schaue dir die folgende Methode zu DirectShow an.

7.3.2. DirectShow-Codecs

DirectShow ist die neuere Video-API, die noch schlechter ist als ihr Vorgänger. Dinge sind schwieriger geworden mit DirectShow, da

  • system.ini nicht die benötigten Informationen enthält, die statt dessen in der Registry gespeichert ist.

  • wir die GUID des Codecs benötigen.

Neue Methode:

Benutzung von Microsoft GraphEdit (schnell)

  1. Beziehe GraphEdit entweder aus dem DirectX-SDK oder von doom9.

  2. Starte graphedit.exe.

  3. Wähle aus dem Menü GraphInsert Filters.

  4. Klappe den Eintrag DirectShow Filters aus.

  5. Wähle den richtigen Codecnamen und klappe den Eintrag aus.

  6. Schaue im Eintrag DisplayName nach dem Text in den geschweiften Klammern hinter dem Backslash und notiere ihn (fünf mit Bindestrich getrennte Blöcke, die GUID).

  7. Die Codecbinärdatei ist die Datei, die im Eintrag Filename angegeben wird.

Anmerkung

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

Alte Methode:

Nimm einen tiefen Atemzug und beginne die Suche in der Registry...

  1. Starte regedit.

  2. Drücke Strg-F, deaktiviere die ersten beiden Checkboxen und aktiviere die dritte. Gib den fourcc des Codecs ein (z.B. TM20).

  3. Du solltest ein Feld sehen, das den Pfad und den Dateinamen (z.B. C:\WINDOWS\SYSTEM\TM20DEC.AX) enthält.

  4. 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 FilePropertiesAdvanced überprüft. Wenn dies nicht klappt, hast du Pech. Versuche raten (suche z.B. nach TrueMotion).

  5. Wenn die GUID gefunden wurde, solltest du das Feld FriendlyName und CLSID sehen. Notiere die 16-Byte-CLSID, das ist die GUID, die wir brauchen.

Anmerkung

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...

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: ftp://upload.mplayerhq.hu/MPlayer/incoming/>Codecname>/

Wenn du einen Codec selbst hinzufügen möchtest, lies DOCS/tech/codecs.conf.txt.