2.2. Wspierane kodeki
Poprzedni | Rozdział 2. Możliwości | Następny

## 2.2. Wspierane kodeki

### 2.2.1. Kodeki Video

Zajrzyj do tabeli statusu kodeków, żeby zobaczyć kompletną, codziennie generowaną listę. Niektóre kodeki są dostępne do pobrania z naszej strony domowej. Ściągniesz je ze strony z kodekami.

Najważniejsze ze wszystkich:

- MPEG1 (VCD) i MPEG2 (DVD) video
- natywne dekodery dla DivX ;-), OpenDivX (DivX4), DivX 5.01, 3ivX, M$ MPEG4 v1, v2 i dla innych rodzajów MPEG4
- natywne dekodery dla Windows Media Video 7/8 (WMV1/WMV2) i dekodery Win32 DLL dla Windows Media Video 9 (WMV3). Oba używane w plikach `.wmv`
- natywny dekoder Sorenson 1 (SVQ1)
- natywny dekoder Sorenson 3 (SVQ3)
- dekoder 3ivX w wersji 1 i 2
- Kodeki Cinepak i Intel Indeo (3.1,3.2,4.1,5.0)
- MJPEG, AVID, VCR2, ASV2 i inne formaty sprzętowe
- VIVO 1.0, 2.0, I263 i inne rodzaje h263(+)
- FLI/FLC
- RealVideo 1.0 & 2.0 z użyciem `libavcodec` i kodeki RealVideo 3.0 & 4.0 używające bibliotek RealPlayer
- natywny dekoder HuffYUV
- Różne stare proste formaty podobne do RLE

Jeżeli posiadasz kodeki Win32 niewymienione tutaj, które nie są jeszcze wspierane, zajrzyj do działuimportowanie kodeków Win32-HOWTO i pomóż nam dodać dla nich wsparcie.

#### 2.2.1.1. DivX4/DivX5

Ta sekcja zawiera informacje o kodekach DivX4 i DivX5 z Project Mayo. Ich pierwszą dostępną wersją był OpenDivX 4.0 alpha 47 i 48. Wsparcie dla nich zostało włączone do MPlayera w przeszłości i było domyślnie budowane podczas kompilacji. Używaliśmy także ich kodu postprocessingu do opcjonalnego polepszenia jakości filmów zakodowanych w MPEG1/2. Teraz używamy już naszego własnego kodu dla wszystkich typów plików.

Nowa generacja tych kodeków nazywana jest DivX4 i może nawet dekodować filmy zakodowane przy pomocy niesławnych kodeków DivX! Na dodatek są one znacznie szybsze od natywnych kodeków Win32 DivX DLLs, ale wolniejsze od `libavcodec`. W związku z tym ich używanie do dekodowania jest odradzane. Jednakże przydają się one do kodowania. Ich wadą jest fakt, iż nie są udostępnione na wolnej licencji.

DivX4 pracuje w dwóch trybach:

`-vc odivx`
  Używa kodeka w stylu OpenDivX. W tym przypadku wytwarza obraz YV12 w swoim własnym buforze, a MPlayer dokonuje konwersji przestrzeni kolorów poprzez libvo. (Szybkie, zalecane!)
`-vc divx4`
  Używa konwersji przestrzeni kolorów kodeka. W tym trybie można używać także YUY2/UYVY. (POWOLNE)

Metoda `-vc odivx` jest zazwyczaj szybsza, ponieważ dokonuje ona transferu danych obrazu w formacie YV12 (planar YUV 4:2:0), który wymaga znacznie mniejszej przepustowości szyny. Dla pakowanych trybów YUV (YUY2, UYVY) użyj opcji `-vc divx4`. Dla trybów RGB prędkość jest właściwie taka sama, różniąca się od najlepszej tylko przy zmianie głębi kolorów.

### Notatka

Jeżeli twój sterownik `-vo` wspiera direct rendering, wydajniejszym albo nawet najbardziej wydajnym rozwiązaniem może być użycie `-vc divx4`.

Binarną bibliotekę kodeków DivX4/5 można ściągnąć z avifile albo z divx.com Należy ją rozpakować, uruchomić jako root `./install.sh` i pamiętać o dodaniu `/usr/local/lib` do twojego `/etc/ld.so.conf` i uruchomieniu ldconfig.

Możesz zdobyć CVSową wersję STAREJ biblioteki OpenDivX (core library) w następujący sposób:

1.     cvs -d:pserver:anonymous@cvs.projectmayo.com:/cvsroot login

2.     cvs -d:pserver:anonymous@cvs.projectmayo.com:/cvsroot co divxcore

3. Biblioteka ta jest podzielona na biblioteki dekodujące i kodujące, które muszą być kompilowane osobno. Dla biblioteki dekodującej wpisz po prostu

       cd divxcore/decore/build/linux
       make
       cp libdivxdecore.so /usr/local/lib
       ln -s libdivxdecore.so /usr/local/lib/libdivxdecore.so.0
       cp ../../src/decore.h /usr/local/include

4. Niestety dla biblioteki kodującej, Makefile dla Linuksa nie jest dostępny i optymalizacja dla MMX działa tylko pod Windows. Pomimo tych niedogodności, możesz ją ciągle skompilować używając tego Makefile.

       cd ../../../encore/build
       mkdir linux
       cd linux
       cp path/Makefile .
       make
       cp libdivxencore.so /usr/local/lib
       ln -s libdivxencore.so /usr/local/lib/libdivxencore.so.0
       cp ../../src/encore.h /usr/local/include

MPlayer automatycznie wykrywa DivX4/DivX5, jeżeli jest on prawidłowo zainstalowany. Po prostu kompiluj tak jak robisz to zwykle. Jeżeli nie zostanie wykryty, znaczy to, że nie zainstalowałeś/skonfigurowałeś go w prawidłowy sposób.

#### 2.2.1.2. FFmpeg/libavcodec

FFmpeg zawiera pakiet otwartoźródłowych kodeków, które potrafią dekodować strumienie z różnymi kodekami audio i video. Oferują one także imponujące funkcję kodowania i szybszą bibliotekę DivX4/5 niż w przypadku kodeków Win32, albo tych z DivX.com!

W skład pakietu wchodzi wiele dobrych kodeków, szczególnie tych związanych z MPEG4: DivX3, DivX4, DivX5, Windows Media Video 7/8 (WMV1/WMV2). Zawiera również warty uwagi dekoder WMA.

Jednym z ostatnich (w sensie najnowszych) kodeków, który warto wymienić jest kodek Sorenson 3 (SVQ3). Jest to pierwsza, całkowicie otwartoźródłowa implementacja tego kodeka. Jest on nawet szybszy od oryginału. Zaleca się wybór tej wersji zamiast kodeków binarnych!

Pełną listę wspieranych kodeków (video i audio) znajdziesz na stronie FFmpeg.

Jeżeli używasz, któreś z wydań MPlayera `libavcodec` znajduje się już w paczce. Po prostu kompiluj tak jak zazwyczaj. Jeżeli używasz MPlayera z CVSu musisz wyciągnąć `libavcodec` z drzewa CVS FFmpega, ponieważ jego wydania ukazują się bardzo rzadko. Wersja z CVSa jest w większości przypadków stabilna i oferuje większość funkcji. W celu zdobycia libavcodec wykonaj następujące czynności:

1.     cvs -d:pserver:anonymous@mplayerhq.hu:/cvsroot/ffmpeg login

2.     cvs -z3 -d:pserver:anonymous@mplayerhq.hu:/cvsroot/ffmpeg co -P ffmpeg/libavcodec

3. Przenieś katalog `libavcodec` ze źródeł FFmpega do katalogu głównego drzewa CVS MPlayera. Powinno to wyglądać w ten sposób: `main/libavcodec`

   Utworzenie dowiązań symbolicznych (symlinków) nie wystarcza. Konieczne jest skopiowowanie/przeniesienie!

4. Jeżeli chcesz uaktualniać `libavcodec` razem z aktualizacją CVSowej wersji MPlayera, dodaj następujące linie do pliku `main/CVS/Entries`:

       D/libavcodec////

5. Przejdź do kompilowania. `configure` powinien wykryć problemy przed kompilacją.

### Notatka

MPlayer z CVSu zawiera podkatalog `libavcodec`, ale nie zawiera źródeł `libavcodec`! Żeby uzyskać źródła tej biblioteki musisz wykonać powyższe czynności.

Wykorzystując FFmpega i mojego Matroksa G400, mogę oglądać na moim K6-2 500 filmy DivX najwyższej rozdzielczości bez gubienia klatek.

#### 2.2.1.3. kodeki XAnim

### Notatka

Wiedz, że binarne kodeki Xanim wydane są na licencji, która, oprócz innych ograniczeń, zabrania użytkownikowi korzystać z nich w zestawieniu z innym programem niż XAnim. Jednakże do tej pory autor nie podejmował jeszcze żadnych kroków prawnych w sprawie związanej z kodekami.

INSTALACJA I UŻYTKOWANIE. MPlayer potrafi zaprzęgnąć do dekodowania kodeki Xanim. Aby je uaktywnić postępuj zgodnie z instrukcją:

1. Ściągnij kodeki, których chcesz użyć ze strony XAnim. Nie ma tam kodeka 3ivX, ale można go znaleźć na stronie 3ivX.

2. ALBO ściągnij zestaw kodeków z naszej strony z kodekami

3. Użyj opcji `--with-xanimlibdir` żeby wskazać skryptowi `configure` gdzie ma szukać kodeków Xanim. Domyślnie szuka ich w katalogach `/usr/local/lib/codecs`, `/usr/local/lib/xanim/mods`, `/usr/lib/xanim/mods` i `/usr/lib/xanim`. Drugą możliwością jest ustawienie zmiennej środowiskowej `XANIM_MOD_DIR` na katalog z kodekami XAnim.

4. Zmień nazwę/utwórz dowiązanie symboliczne (symlink) plików, usuwając z nazwy rzeczy związane z architekturą komputera, tak żeby miały nazwy tego typu: `vid_cvid.xa`, `vid_h263.xa`, `vid_iv50.xa`

XAnim jest kodekiem z rodziny `xanim`, możesz więc użyć opcji `-vfm xanim` żeby kazać MPlayerowi używać go w przypadku, gdy jest to możliwe.

Przetestowane kodeki to: Indeo 3.2, 4.1, 5.0, CVID, 3ivX, h263.

#### 2.2.1.4. VIVO video

MPlayer potrafi odtwarzać pliki video zakodowane przy pomocy Vivo (1.0 i 2.0). Najodpowiedniejszym kodekiem dla plików w wersji 1.0 jest dekoder H263 FFmpega, którego możesz użyć za pomocą opcji `-vc ffh263`. Dla plików w wersji 2.0, użyj Win32 DLL korzystając z opcji `-vc vivo`. Jeżeli nie wybierzesz żadnej opcji MPlayer automatycznie wybierze najlepszy kodek.

#### 2.2.1.5. MPEG 1/2 video

MPEG1 i MPEG2 są dekodowane przez natywną, wieloplatformową bibliotekę `libmpeg2`, której kod źródłowy wchodzi w skład MPlayera. Z uszkodzonymi plikami MPEG 1/2 radzimy sobie przechwytując `Signal 11` (`segmentation fault -błąd segmentacji -przyp tłumacz`) i szybko reinicjując kodek, kontynuując odtwarzanie dokładnie w miejscu gdzie wystąpił błąd. Ta technika nie ma widocznego wpływu na szybkość działania.

#### 2.2.1.6. MS Video1

To bardzo stary i kiepski kodek napisany przez Microsoft. W przeszłości był on dekodowany poprzez kodek Win32 `msvidc32.dll`. W tej chwili mamy naszą własną, otwartą implementację. (napisaną przez Mike'a Melansona).

#### 2.2.1.7. Cinepak CVID

MPlayer używa domyślnie swojego własnego, otwartoźródłowego i wieloplatformowego dekodera Cinepack (napisanego przez Dr Tima Fergusona). Wspiera on wyjście YUV dzięki czemu możliwe jest sprzętowe skalowanie (jeżeli umożliwia to wyjściowy sterownik video).

#### 2.2.1.8. RealVideo

MPlayer wpiera dekodowanie wszystkich wersji RealVideo:

- RealVideo 1.0, 2.0 (fourcc RV10, RV20) - kodowanie/dekodowanie realizowane przez `libavcodec`
- RealVideo 3.0, 4.0 (fourcc RV30, RV40) - dekodowanie za pomocą bibliotek RealPlayer

Zalecane jest ściągnąć i zainstalować RealPlayer8, albo RealONE, ponieważ MPlayer może używać tych bibliotek do dekodowania plików ze strumieniem video w formacie RealVideo 2.0 - 4.0. Znajdujący się w MPlayerze skrypt `configure` powinien wykryć biblioteki w domyślnym katalogu pełnej instalacji RealPlayera Jeżeli tak się nie stanie, przekaż `configure` katalog w którym znajdują się kodeki za pomoca opcji `--with-reallibdir`.

Kodeki te możesz również ściągnąć z http://www.mplayerhq.hu/MPlayer/releases/codecs/. Po ściągnięciu kodeków, możesz je rozpakować do katalogu `/usr/local/lib/codecs`, albo określić ścieżke do katalogu w którym się znajdują za pomocą opcji `--with-reallibdir`.

### Notatka

Aktualnie biblioteki RealPlayer działają tylko pod Linuksem, FreeBSD, NetBSD i Cygwinem na platformach x86, Alpha i PowerPC (Sprawdzone zostały Linux/Alpha i Linux/PowerPC).

#### 2.2.1.9. XviD

XviD wydzielił się z projektu OpenDivX. Stało się to, gdy ProjectMayo zamknął kod OpenDivX i przemianował go na DivX4 (a teraz DivX5). W rezultacie tej decyzji, rozeźleni ludzie spoza ProjectMayo, którzy pracowali nad OpenDivX, rozpoczęli projekt XViD. Tak więc oba projekty mają to samo pochodzenie.

ZALETY

- otwarty kod źródłowy
- API kodeka jest kompatybilne z DivX4, więc dodanie dla niego wsparcia jest proste
- wsparcie dla 2-przebiegowego kodowania
- dobra jakość kodowania, większa prędkość od DivX4 (możesz go zoptymalizować dla twojej maszyny podczas kompilacji)

WADY

- na dzień dzisiejszy ma kłopoty z dekodowaniem niektórych plików DivX/DivX4 (nie stanowi to problemu, ponieważ potrafi je odtwarzać `libavcodec`).
- w trakcie rozwoju

INSTALACJA XVID CVS

Aktualnie jest dostępny tylko poprzez CVS. Poniżej znajdują się instrukcje pobierania i instalacji (będziesz potrzebował autoconf przynajmniej w wersji 2.50, automake i libtool):

1.     cvs -z3 -d:pserver:anonymous@cvs.xvid.org:/xvid login

2.     cvs -z3 -d:pserver:anonymous@cvs.xvid.org:/xvid co xvidcore

3.     cd xvidcore/build/generic

4.     ./bootstrap.sh

5.     ./configure

   Możesz potrzebować dodać jakieś opcje (przejrzyj wyjście poniższej komendy).

       ./configure --help

6.     make && make install

7. Jeżeli użyłeś opcji `--enable-divxcompat`, skopiuj `../../src/divx4.h` do `/usr/local/include/`.

8. Przekompiluj MPlayera z opcjami `--with-xvidcore=`/ścieżka/do/`libxvidcore.a` `--with-xvidincdir=`/ścieżka/do/`xvid.h`.

#### 2.2.1.10. Sorenson

Sorenson jest kodekiem video rozwijanym przez Sorenson Media i licencjonowanym dla Apple, która rozprowadza go wraz ze swoim Odtwarzaczem QuickTime. Aktualnie Mplayer jest w stanie odtwarzać wszystkie wersje plików video Sorensona z użyciem następujących dekoderów:

- Sorenson Video v1 (fourcc SVQ1) - dekodowanie za pomocą natywnego kodeka video (`libavcodec`)
- Sorenson Video v3 (fourcc SVQ3) - dekodowanie za pomocą natywnego kodeka video (`libavcodec`)

KOMPILOWANIE MPLAYERA ZE WSPARCIEM DLA BIBLIOTEK QUICKTIME

### Notatka

Aktualnie wspierane są tylko 32bitowe platformy Intela.

1. ściągnij MPlayera z CVSu

2. pobierz pakiet QuickTime DLL z http://www.mplayerhq.hu/MPlayer/releases/codecs/

3. rozpakuj pakiet QuickTime DLL do twojego katalogu z kodekami Win32 (domyślnie: `/usr/local/lib/codecs/`)

4. skompiluj MPlayera

### 2.2.2. Kodeki audio

Najważniejsze ze wszystkich kodeków audio:

- MPEG layer 1/2/3 (MP1/2/3) audio (natywny kod, z optymalizacją dla MMX/SSE/3DNow!)
- Windows Media Audio 7 i 8 (aka WMAv1 i WMAv2) (natywny kod, z `libavcodec`)
- Windows Media Audio 9 (WMAv3) (poprzez DMO DLL)
- AC3 Dolby audio (natywny kod, z optymalizacją MMX/SSE/3DNow!)
- przetwarzanie AC3 przez kartę dźwiękową
- AAC
- kodek Ogg Vorbis audio (natywna biblioteka)
- RealAudio: DNET (AC3 z niskim bitratem), Cook, Sipro i ATRAC3
- QuickTime: kodeki Qualcomm i QDesign
- VIVO audio (g723, Vivo Siren)
- Voxware audio (poprzez DirectShow DLL)
- formaty alaw i ulaw, różne gsm, adpcm i pcm i inne stare, proste kodeki audio

#### 2.2.2.1. Programowe dekodowanie AC3

To jest domyślny dekoder używany przez pliki z dźwiękiem AC3.

Dekoder AC3 może wytworzyć wyjście audio zmiksowane dla 2,4 lub 6 głośników. Kiedy skonfigurowany jest dla 6 głośników, dekoder dostarcza do sterownika karty dźwiękowej osobne wyjście dla każdego kanału AC3, pozwalając doświadczyć "dźwięk surround" bez potrzeby użycia zewnętrznego dekodera AC3 do kodeka hwac3.

Użyj opcji `-channels` aby wybrać liczbę wyjściowych kanałów. Użyj `-channels 2` do uzyskania dźwięku stereo. Dla czterokanałowego dźwięku (wyjścia Lewe Przednie, Prawe Przednie, Lewe Surround i Prawe Surround), użyj `-channels 4`. W tym przypadku, wszystkie centralne kanały zostaną zmiksowane do odpowiadających im przednich kanałów. Natomiast `-channels 6` wyprodukuje wszystkie kanały AC3 tak jak zostały zakodowane - w kolejności Lewy, Prawy, Lewy Surround, Prawy Surround, Centralny i LFE.

Domyślną liczbą wyjściowych kanałów jest 2.

Aby użyć więcej niż dwóch wyjściowych kanałów, będziesz potrzebował skorzystać z OSS i mieć kartę dźwiękową ze wsparciem dla odpowiedniej liczby wyjściowych kanałów poprzez SNDCTL_DSP_CHANNELS ioctl. Przykładem odpowiedniego sterownika jest emu10k1 (używany przez karty Soundblaster Live!) z sierpnia 2001 roku, albo nowszy (przypuszczalnie działa także ALSA CVS).

#### 2.2.2.2. Sprzętowe dekodowanie AC3

Potrzebna jest karta obsługująca AC3, z cyfrowym wyjściem (S/PDIF). Sterownik musi prawidłowo obsługiwać format AFMT_AC3 (robi to C-Media). Podłącz swój dekoder AC3 do wyjścia S/PDIF i użyj opcji `-ac hwac3`. Rozwiązanie to jest ciągle w fazie testów, ale wiadomo, że działa z kartami C-Media i Soundblaster Live! + sterowniki ALSA (ale nie z OSS) i kartami dekodującymi DXR3/Hollywood+ MPEG.

#### 2.2.2.3. wsparcie dla libmad

libmad jest wieloplatformową, stałoprzecinkową (wewnętrznie 24-bitowe PCM) biblioteką dekodującą dźwięk MPEG. Nie odtwarza zbyt dobrze uszkodzonych plików i czasami ma problemy z przewijaniem, ale może mieć lepszą wydajność niż mp3lib na platformach ze słabszymi FPU (jednostka do wykonywania obliczeń zmiennoprzecinkowych-przyp.tłumacz) (jak np. ARM).

Aby włączyć wsparcie dla biblioteki, podczas kompilacji użyj opcji `--enable-mad` przy wywoływaniu configure.

#### 2.2.2.4. VIVO audio

Rodzaj kodeka audio używanego w plikach VIVO zależy od tego, czy jest to plik VIVO/1.0, czy VIVO/2.0. Pliki VIVO/1.0 mają dźwięk w formacie g.723, a pliki VIVO/2.0 w formacie Vivo Siren. Wspierane są oba typy.

#### 2.2.2.5. RealAudio

MPlayer potrafi dekodować prawie wszystkie wersje RealAudio:

- RealAudio DNET - dekodowanie poprzez `liba52`
- RealAudio Cook/Sipro/ATRAC3 - dekodowanie z użyciem bibliotek RealPlayer

W celu poznania sposobu instalacji bibiliotek RealPlayer, zajrzyj do działu pliki RealMedia.

#### 2.2.2.6. kodeki QDesign

Format dźwięku QDesign (fourcc:QDMC, QDM2) wykorzystywany jest w plikach MOV/QT. Obie wersje tych kodeków mogą być odtwarzane za pomocą bibliotek QuickTime. Instrukcje instalacji znajdują się w dziale kodek Sorenson video.

#### 2.2.2.7. kodeki Qualcomm

Dźwięk w formacie Qualcomm (fourcc:Qclp) używany jest w plikach MOV/QT. Może być dekodowany z użyciem bibliotek QuickTime. Instrukcje instalacji znajdują się w dziale kodeka video Sorenson.

#### 2.2.2.8. AAC codec

AAC (Advanced Audio Coding) jest kodekiem audio spotykanym czasami w plikach MOV i MP4. Otwarty dekoder nazywany FAAD dostępny jest na stronie http://www.audiocoding.com. MPlayer zawiera libfaad 2.0RC1, więc nie musisz ściągać go oddzielnie.

Jeżeli używasz gcc 3.2, który ma kłopoty z kompilacją wbudowanej wersji FAAD lub chcesz z jakichś powodów użyć zewnętrznej biblioteki, ściągnij ją z tej strony i dodaj opcję `--with-externalfaad` do `configure`. Nie potrzebujesz całego faad2 do dekodowanie plików AAC. Wystarczy użyć samej biblioteki libfaad. Zbudujesz ją w następujący sposób

    cd faad2/
    chmod +x bootstrap
    ./bootstrap
    ./configure
    cd libfaad
    make
    make install

Wersje binarne nie są dostępne na stronie audiocoding.com, ale możesz ściągnąć (apt-getem) Debianowe paczki z domowej strony Christiana Marillata, RPMy dla Mandrake RPMs ze strony P.L.F i RedHatowe RPMy ze strony Dominika Mierzejewskiego.

### 2.2.3. importowanie kodeków Win32-HOWTO

#### 2.2.3.1. kodeki VFW

VFW (Video for Windows) jest starym Video API pod Windows. Jego kodeki mają rozszerzenie `.DLL` albo (rzadziej) `.DRV`. Jeżeli MPlayer odmawia odtwarzania plików AVI z komunikatem tego 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 wsparcie dla kodeka za pomocą poczty elektronicznej i wyślij ww. pliki na poniższy serwer FTP: `ftp://ftp.mplayerhq.hu/MPlayer/incoming/[codecname]/`

### Notatka

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.

#### 2.2.3.2. Kodeki DirectShow

DirectShow jest nowszym Video API, 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 Graph -> Insert 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`.

### Notatka

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

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 zwierają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 Plik -> Opcje -> Zaawansowane. 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.

### Notatka

Jeżeli wyszukiwanie się nie powiedzie, spróbuj zaznaczyć wszystkie pola (checkboxes). Prawdopodobnie dostaniesz niepasujące wyniki, 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 wsparcie dla kodeka za pomocą poczty elektronicznej i wyślij ww. pliki na poniższy serwer FTP: `ftp://ftp.mplayerhq.hu/MPlayer/incoming/[codecname]/`

Poprzedni | Początek rozdziału | Następny
2.1. Obsługiwane formaty | Spis treści | 2.3. Urządzenia wyjściowe