7.3. Importowanie kodeków Win32-HOWTO

7.3.1. Kodeki VFW

VFW (Video for Windows) jest starym API Video pod Windows. Jego kodeki mają rozszerzenie .DLL albo (rzadziej) .DRV. Jeżeli MPlayer odmawia odtwarzania plików AVI z komunikatem typu

UNKNOWN video codec: HFYU (0x55594648)

oznacza to, że twój plik AVI jest zakodowany z użyciem kodeka, który korzysta z fourcc HFYU (HFYU = kodek HuffYUV, DIV3 = DivX Low Motion, itd.; fourcc-unikalny, czteroliterowy identyfikator kodeka znajdujący się najczęściej w nagłówkach plików AVI-przyp. tłumacz). Kiedy już to wiesz, musisz odzukać DLL'a, który jest ładowany przez Windows w celu odtworzenia tego pliku. W naszym przypadku plik system.ini zawiera tę informację w następującej linii:

VIDC.HFYU=huffyuv.dll

Zatem potrzebujesz pliku huffyuv.dll. Zauważ, że kodeki audio są oznaczane za pomocą prefiksu MSACM:

msacm.l3acm=L3codeca.acm

Jest to kodek MP3. Teraz powinieneś mieć wszystkie niezbędne informacje (fourcc, plik z kodekiem, przykładowy plik AVI). Umieść swoją prośbę o obsługę kodeka za pomocą poczty elektronicznej i wyślij ww. pliki na poniższy serwer FTP: ftp://upload.mplayerhq.hu/MPlayer/incoming/<nazwakodeka>/

Informacja

W systemach Windows NT/2000/XP szukaj powyższych informacji w rejestrze, np. szukaj wyrażenia "VIDC.HFYU". Aby dowiedzieć się jak to zrobić, spójrz niżej na starą metodę DirectShow.

7.3.2. Kodeki DirectShow

DirectShow jest nowszym API Video, które jest nawet gorsze od swojego poprzednika. Sprawa ma się gorzej z DirectShow, ponieważ:

  • system.ini nie zawiera wymaganych informacji, zamiast tego są one przechowywane w rejestrze.

  • Z tego powodu wymagane jest GUID kodeka.

Nowa metoda:

Używając Microsoft GraphEdit (szybki sposób)

  1. Pobierz GraphEdit z dowolnego DirectX SDK, albo z doom9

  2. Uruchom graphedit.exe.

  3. Z menu wybierz GraphInsert Filters.

  4. Rozwiń listę DirectShow Filters

  5. Wybierz właściwy kodek i rozwiń go.

  6. We wpisie DisplayName spójrz na tekst w nawiasach klamrowych po znaku "backslash" i zapisz go (pięć bloków oddzielonych kreskami, GUID).

  7. Binariami kodeka jest plik określony w polu Filename.

Informacja

Jeżeli nie ma pola Filename, a DisplayName zawiera coś w stylu device:dmo, to jest to kodek DMO.

Stara Metoda:

Weź głęboki oddech i zacznij przeszukiwanie rejestru...

  1. Uruchom regedit.

  2. Naciśnij Ctrl-F, odznacz dwa pierwsze pola (checkboxes) i zaznacz trzecie. Wpisz fourcc kodeka (np. TM20).

  3. Powinieneś zobaczyć pole zawierające ścieżkę i nazwę pliku (np. C:\WINDOWS\SYSTEM\TM20DEC.AX).

  4. Gdy odnalazłeś już plik, potrzebny będzie GUID. Spróbuj ponownego wyszukiwania, ale tym razem wpisz nazwę kodeka, a nie jego fourcc. Jego nazwę można sprawdzić, kiedy Media Player odtwarza plik, odszukując ją w PlikOpcjeZaawansowane. Jeżeli jej tam nie będzie, to masz pecha. Spróbuj odgadnąć nazwę (np. spróbuj wyszukać "TrueMotion").

  5. Jeżeli GUID został odnaleziony, powinieneś ujrzeć pola FriendlyName i CLSID. Zapisz szesnastobajtowy CLSID będący GUIDem, którego potrzebujemy.

Informacja

Jeżeli wyszukiwanie się nie powiedzie, spróbuj zaznaczyć wszystkie pola (checkboxes). Prawdopodobnie dostaniesz fałszywe trafienia, ale być może będziesz miał szczęście...

Teraz, kiedy masz już wszystkie niezbędne informacje (fourcc, GUID, plik z kodekiem, przykładowy plik AVI), umieść swoją prośbę o obsługę kodeka za pomocą poczty elektronicznej i wyślij ww. pliki na poniższy serwer FTP: ftp://upload.mplayerhq.hu/MPlayer/incoming/<nazwakodeka>/

Jeżeli chcesz samodzielnie dodać obsługę kodeka, przeczytaj DOCS/tech/codecs.conf.txt (tylko po angielsku - przyp. tłum.).