2.2. Podporované kodeky
Předcházející | Kapitola 2. Vlastnosti | Další

## 2.2. Podporované kodeky

### 2.2.1. Video kodeky

Kompletní denně aktualizovaný seznam naleznete v naší stránce tabulce statutu kodeku. Docela dost kodeků si můžete stáhnout z naší domovské stránky. Odkaz najdete na stránce kodeků.

Nejdůležitější ze všech jsou:

- MPEG-1 (VCD) a MPEG-2 (DVD) video
- nativní dekodéry pro DivX ;-), OpenDivX (DivX4), DivX 5 (Pro), 3ivX, MS MPEG-4 v1, v2 a ostatní MPEG-4 varianty
- nativní dekodér pro Windows Media Video 7/8 (WMV1/WMV2), a Win32 DLL dekodér pro Windows Media Video 9 (WMV3), obojí používané ve `.wmv` souborech
- nativní Sorenson 1 (SVQ1) dekodér
- nativní Sorenson 3 (SVQ3) dekodér
- 3ivx v1, v2 dekodér
- Cinepak a Intel Indeo kodeky (3.1,3.2,4.1,5.0)
- MJPEG, AVID, VCR2, ASV2 a další hardwarové formáty
- VIVO 1.0, 2.0, I263 a další H.263(+) varianty
- FLI/FLC
- RealVideo 1.0 & 2.0 z `libavcodec`, a RealVideo 3.0 & 4.0 kodeky používající knihovny z RealPlayeru
- nativní dekodér pro HuffYUV
- Různé staré a jednoduché formáty podobné RLE

Pokud máte Win32 kodek, který zde není uveden a který není zatím podporován, přečtěte si codec importing HOWTO a pomozte nám přidat pro něj podporu.

#### 2.2.1.1. DivX4/DivX5

Tato sekce obsahuje informace o kodecích DivX4 a DivX5 z Projektu Mayo. Jejich první dostupná alfa verze byl OpenDivX 4.0 alpha 47 a 48. Jejich podpora byla v minulosti přidána do MPlayeru a zakompilovává se automaticky. Rovněž jsme používali jejich postprocesní kód pro volitelné vylepšování kvality MPEG-1/2 filmů. Nyní již používáme naše vlastní pro všechny typy souborů.

Nová generace tohoto kodeku se nazývala DivX4 a byla schopna dokonce dekódovat filmy vytvořené pomocí nechvalně známého DivX kodeku! Navíc je mnohem rychlejší než nativní Win32 DivX DLL, ale pomalejší než `libavcodec`. Proto jeho použití jako dekodéru nedoporučujeme. Nicméně jej lze s úspěchem používat pro enkódování. Jediná nevýhoda tohoto kodeku je, že není k dispozici pod Open Source licencí.

DivX4 pracuje ve dvou režimech:

`-vc odivx`
  Používá kodek ve stylu OpenDivX. V tomto režimu vytváří kodek YV12 obrázky ve vlastní vyrovnávací paměti a MPlayer provádí konverzi barevného prostoru přes libvo. (Rychlé, doporučujeme!)
`-vc divx4`
  Používá konverzi barevného prostoru zabudovanou v kodeku. V tomto režimu můžete rovněž použít YUY2/UYVY. (POMALÉ)

Režim `-vc odivx` bývá rychlejší, protože přenáší obrazová data ve formátu YV12 (rovinný YUV 4:2:0), který vyžaduje mnohem menší propustnost sběrnice. Pro režimy zhuštěného YUV (YUY2, UYVY) použijte režim `-vc divx4`. Rychlost RGB režimů je stejná, mírně se odlišuje v závislosti na vaší akuální barevné hloubce.

### Poznámka

Pokud vaše `-vo` rozhraní podporuje direct rendering, pak může být `-vc divx4` rychlejší, nebo dokonce nejrychlejší volbou.

Binární knihovny kodeků DivX4/5 si můžete stáhnout z avifile nebo divx.com Rozbalte je, spusťte `./install.sh` jako root a nezapomeňte přidat `/usr/local/lib` do svého `/etc/ld.so.conf` a spušťte ldconfig.

CVS verzi STARÉ core OpenDivX knihovny získáte následovně:

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

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

3. Tato core knihovna je rozdělena na decore a encore knihovnu, které by se měly kompilovat odděleně. Pro kompilaci decore knihovny zadejte

       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. Bohužel encore knihovna neobsahuje Makefile pro Linux a MMX optimalizovaný kód pracuje pouze ve Windows. I přesto ji můžete skompilovat pomocí tohoto 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 automaticky detekuje DivX4/DivX5, pokud jsou zprávně nainstalovány, stačí jej jen zkompilovat jako obvykle. Pokud je nedetekuje, pak jste je nenainstalovali nebo nenakonfigurovali správně.

#### 2.2.1.2. FFmpeg/libavcodec

FFmpeg obsahuje balík open source kodeků, které jsou schopny dekódovat datové proudy enkódované různými audio a video kodeky. Rovněž nabízí úctyhodný enkódovací potenciál a vyšší rychlost než Win32 kodeky nebo DivX.com DivX4/5 knihovny!

Obsahuje mnoho hezkých kodeků, zvláště důležité jsou MPEG-4 varianty: DivX3, DivX4, DivX5, Windows Media Video 7/8 (WMV1/WMV2). Rovněž velmi zajímavý je WMA dekodér.

Nejnovějším kodekem zasluhujícím uznání je kodek Sorenson 3 (SVQ3). Toto je jeho první, plně Open Source implementace. Je dokonce rychlejší než originál. Ujistěte se že preferujete tuto verzi před binárním kodekem!

Úplný seznam podporovaných kodeků naleznete na domácí stránce FFmpeg. Podporované video a audio kodeky.

Pokud používáte MPlayer z balíčku, máte již `libavcodec` zahrnutý, stačí provést kompilaci jako obvykle. Pokud používáte CVS verzi MPlayeru, vyextrahujte si `libavcodec` z CVS stromu FFmpegu, jelikož nová verze FFmpeg je vydávána jen zřídka. Verze z CVS je většinou stabilní a nabízí nejvíce vlastností. Pro její získání proveďte:

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. Přesuňte adresář `libavcodec` z FFmpeg do kořenového adresáře MPlayerova CVS stromu. Mělo by to vypadat asi takto: `main/libavcodec`

   Symbolický link nestačí, musíte jej zkopírovat/přesunout!

4. Pokud chcete mít `libavcodec` aktualizován vždy když aktualizujete MPlayer z CVS, vložte do souboru `main/CVS/Entries` následující řádek:

       D/libavcodec////

5. Kompilujte. Skript `configure` by měl zjistit problémy před kompilací.

### Poznámka

MPlayer z CVS obsahuje podadresář `libavcodec`, ten ale neobsahuje zdrojové kódy `libavcodec`u! Musíte následovat výše uvedený postup, abyste získali zdrojové hódy knihovny.

S pomocí FFmpeg a mé Matrox G400, mohu sledovat DivX dokonce i v tom nejvyšším rozlišení bez zahazování snímků na své K6-2 500.

#### 2.2.1.3. XAnim kodeky

### Poznámka

Upozorňujeme, že binární XAnim kodeky jsou baleny spolu s textem, který se tváří jako softwarová licence, která, kromě jiného, zakazuje uživateli použití kodeků ve spojení s jiným programem než XAnim. Nicméně autor XAnim dosud nepodnikl žádné právní kroky proti komukoli v souvislosti s kodeky.

INSTALACE A POUŽITÍ. MPlayer je schopen používat XAnim kodeky pro dekódování. Následující postup vám to umožní:

1. Stáhněte si kodeky, které chcete použít, ze stránek XAnim. Kodek 3ivx není zde, ale na stránce 3ivx.

2. NEBO si stáhněte balík kodeků z naší kodekové stránky.

3. Použijte volbu `--with-xanimlibdir` pro oznámení `configure` kde může nalézt XAnim kodeky. Ve výchozím stavu je hledá v `/usr/local/lib/codecs`, `/usr/local/lib/xanim/mods`, `/usr/lib/xanim/mods` and `/usr/lib/xanim`. Alternativně můžete nastavit systémovou proměnnou `XANIM_MOD_DIR` na adresář s XAnim kodeky.

4. Přejmenujte/nalinkujte soubory tak, abyste odstranili část názvu s architekturou, takže dostanet názvy podobné těmto: `vid_cvid.xa`, `vid_h263.xa`, `vid_iv50.xa`

XAnim tvoří rodinu video kodeků `xanim`, takže byste měli použít volbu `-vfm xanim`, aby je MPlayer použil kdykoli je to možné.

Mezi testované kodeky patří: Indeo 3.2, 4.1, 5.0, CVID, 3ivX, H.263.

#### 2.2.1.4. VIVO video

MPlayer umí přehrávat Vivo (1.0 a 2.0) videa. Nejpoužitelnějším kodekem pro soubory verze 1.0 je H.263 dekodér z FFmpegu. Můžete jej použít pomocí volby `-vc ffh263`. Soubory verze 2.0 přehrávejte pomocí Win32 DLL, pomocí volby `-vc vivo`. Pokud nezadáte volby na příkazovém řádku, MPlayer zvolí nejlepší kodek automaticky.

#### 2.2.1.5. MPEG-1/2 video

MPEG-1 a MPEG-2 jsou dekódovány multiplatformní nativní knihovnou `libmpeg2`, jejíž zdrojový kód je zahrnut v MPlayeru. Chyby v MPEG-1/2 video souborech řešíme odchytáváním `Signal 11` (`segmentation fault`), a rychlou reinicializací kodeku tak, aby pokračoval tam, kde skončil. Tato opravná technika nemá měřitelný vliv na rychlost.

#### 2.2.1.6. MS Video1, Cinepak CVID a jiné starší kodeky

MPlayer umí přehrát většinu starších kodeků používaných v AVI a MOV souborech. V minulosti byly dekódovány binárními Win32 kodeky, nyní však máme pro většinu z nich nativní kodeky zahrnuté v kolekci `libavcodec`.

#### 2.2.1.7. RealVideo

MPlayer podporuje dekódování všech verzí RealVidea:

- RealVideo 1.0, 2.0 (fourcc RV10, RV20) - en/dekódování je podporováno `libavcodec` kodeky
- RealVideo 3.0, 4.0 (fourcc RV30, RV40) - dekódování je podporováno RealPlayer knihovnami

Stáhněte si Real kodeky z http://www.mplayerhq.hu/MPlayer/releases/codecs/ a rozbalte je do adrsáře `/usr/local/lib/codecs`. Pokud je chcete mít na jiném místě, zadejte skriptu configure volbu `--with-reallibdir`.

### Poznámka

RealPlayer knihovny v současnosti pracují pouze v Linuxu, FreeBSD, NetBSD a Cygwin na platformách x86, Alpha a PowerPC (Linux/Alpha a Linux/PowerPC byly testovány) a v Mac OS X.

#### 2.2.1.8. XviD

XviD je oddělená vývojová větev OpenDivX kodeku. To se stalo poté co ProjectMayo uzavřel zdrojový kód kodeku, vydal jej jako DivX4 (nyní DivX5) a lidé mimo ProjectMayo pracující na kodeku se naštvali a založili XviD. Oba projekty tedy mají stejný základ.

VÝHODY

- open source
- API kompatibilní s DivX4, takže přidat jeho podporu je snadné
- podporuje dvouprůchodové enkódování
- dobrá kvalita enkódování, je rychlejší než DivX4 (můžete si jej optimalizovat pro svůj počítač při kompilaci)

NEVÝHODY

- v současnosti neumí zprávně dekódovat všechny DivX/DivX4 soubory (žádný problém, `libavcodec` je přehraje)
- stále ve vývoji

INSTALACE XVID Z CVS

Kodek je v současnosti k dispozici pouze z CVS. Zde máte návod ke stažení a instalaci (potřebujete alespoň autoconf 2.50, automake a 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

   Zde můžete přidat nějaké volby (prostudujte si výstup příkazu ./configure --help).

6.     make && make install

7. Pokud jste zadali `--enable-divxcompat`, zkopírujte `../../src/divx4.h` do adresáře `/usr/local/include/`.

8. Znovu zkompilujte MPlayer s volbami `--with-xvidlibdir=`/path/to/`libxvidcore.a` `--with-xvidincdir=`/path/to/`xvid.h`

#### 2.2.1.9. Sorenson

Sorenson je video kodek vyvinutý firmou Sorenson Media a licencovaný Aplu, který jej distribuuje se svým QuickTime Playerem. V současnosti jsme schopni dekódovat všechny verze Sorenson video souborů pomocí následujících dekodérů:

- Sorenson Video v1 (fourcc SVQ1) - dekódování podporováno nativním kodekem (`libavcodec`)
- Sorenson Video v3 (fourcc SVQ3) - dekódování podporováno nativním kodekem (`libavcodec`)

KOMPILACE MPLAYERU S PODPOROU QUICKTIME KNIHOVEN

### Poznámka

V současnosti jsou podporovány pouze 32-bitové Intel kompatibilní platformy.

1. stáhněte si MPlayer z CVS

2. stáhněte si balíček QuickTime DLL z http://www.mplayerhq.hu/MPlayer/releases/codecs/

3. rozbalte QuickTime DLL do adresáře s Win32 kodeky (výchozí: `/usr/local/lib/codecs/`)

4. zkomilujte MPlayer

### 2.2.2. Audio kodeky

Nejdůležitější ze všech jsou audio kodeky:

- MPEG layer 1/2/3 (MP1/2/3) audio (nativní kód, s MMX/SSE/3DNow! optimalizací)
- Windows Media Audio 7 a 8 (ALIAS WMAv1 a WMAv2) (nativní kód, podpora v `libavcodec`)
- Windows Media Audio 9 (WMAv3) (používá DMO DLL)
- AC3 Dolby audio (nativní kód, s MMX/SSE/3DNow! optimalizací)
- AC3 tunelování přes hardware zvukové karty
- AAC
- Ogg Vorbis audio kodek (nativní knihovna)
- RealAudio: DNET (AC3 s nízkým datovým tokem), Cook, Sipro a ATRAC3
- QuickTime: Qualcomm a QDesign audio kodeky
- VIVO audio (g723, Vivo Siren)
- Voxware audio (používá DirectShow DLL)
- alaw a ulaw, různé gsm, adpcm a pcm formáty a ostatní jednoduché starší audio kodeky

#### 2.2.2.1. Softwarové dekódování AC3

Toto je výchozí dekodér používaný pro soubory s AC3 zvukem.

AC3 dekodér umí vytvořit zvukový výstup pro 2, 4, nebo 6 reproduktorů. Pokud je nakonfigurován na 6 kanálů, pak tento dekodér posílá všechny AC3 kanály odděleně na rozhraní ovladače zvukové karty, což umožňuje vychutnávat plně prostorový zvuk bez nutnosti mít externí AC3 dekodér nutný k použití hwac3 kodeku.

Použijte volbu `-channels` pro výběr počtu výstupních kanálů. Zadejte volbu `-channels 2` pro mixování na stereo. Chcete-li čtyřkanálový zvuk (Levý Čelní, Pravý Čelní, Levý Surround a Pravý Surround výstup), zadejte volbu `-channels 4`. V tom případě bude jakýkoli středový kanál odpovídajícím způsobem namixován do čelních kanálů. Volbou `-channels 6` dostanete plný počet AC3 kanálů tak jak jsou enkódovány - v pořadí Levý, Pravý, Levý Surround, Pravý Surround, Střed a LFE.

Výchozí počet výstupních kanálů jsou 2.

Chcete-li více než 2 výstupní kanály, budete potřebovat OSS, a zvukovou kartu, která podporuje požadovaný počet výstupních kanálů přes SNDCTL_DSP_CHANNELS ioctl. Příkladem použitelného ovladače je emu10k1 (používaný kartami Soundblaster Live!) ze Srpna 2001 nebo novější (ALSA z CVS bude rovněž fungovat).

#### 2.2.2.2. Hardwarové dekódování AC3

Potřebujete zvukovou kartu schopnou AC3, s digitálním výstupem(S/PDIF). Ovladač karty musí správně podporovat formát AFMT_AC3 (C-Media ano). Připojte svůj AC3 dekodér na výstup S/PDIF a zadejte volbu `-ac hwac3`. Je to experimentální, ale víme že pracuje s C-Media kartami a Soundblaster Live! + ALSA (ale ne OSS) ovladači a dekodérovými kartami DXR3/Hollywood+ MPEG.

#### 2.2.2.3. podpora libmad

libmad je multiplatformní, pouze celočíselná (interně 24bitový PCM) MPEG audio dekódovací knihovna. Neumí si dobře poradit s poškozenými soubory a občas má problémy s převíjením, ale může být výkonnější na platformách bez FPU (jako je ARM) než mp3lib.

Pokud pro ni chcete podporu, předejte před kompilací skriptu configure volbu `--enable-mad`.

#### 2.2.2.4. VIVO audio

The audio kodek používaný ve VIVO souborech závisí na tom, jestli je to soubor VIVO/1.0 nebo VIVO/2.0. Soubory VIVO/1.0 mají g.723 audio, zatímco soubory VIVO/2.0 mají Vivo Siren audio. Obojí je podporováno.

#### 2.2.2.5. RealAudio

MPlayer podporuje dekódování téměř všech verzí RealAudio:

- RealAudio DNET - dekódování podporováno pomocí `liba52`
- RealAudio Cook/Sipro/ATRAC3 - dekódování podporováno pomocí RealPlayer knihoven

Návod k instalaci knihoven RealPlayeru naleznete v sekci RealVideo.

#### 2.2.2.6. Kodeky QDesign

Audio proudy QDesign (fourcc:QDMC, QDM2) lze nalézt v MOV/QT souborech. Obě verze tohoto kodeku mohou být dekódovány pomocí QuickTime knihoven. Návod k instalaci naleznete v sekci Sorenson video kodek.

#### 2.2.2.7. Kodeky Qualcomm

Audio proudy Qualcomm (fourcc:Qclp) lze nalézt v MOV/QT souborech. Mohou být dekódovány pomocí QuickTime knihoven. Návod k instalaci naleznete v sekci Sorenson video kodek.

#### 2.2.2.8. Kodek AAC

AAC (Advanced Audio Coding) je audio kodek, který lze občas nalézt v MOV a MP4 souborech. Open source dekodér jménem FAAD je k dispozici na http://www.audiocoding.com. MPlayer obsahuje CVS obraz libfaad 2.1 beta, takže jej nemusíte stahovat dodatečně.

Pokud používáte gcc 3.2 které nedokáže zkompilovat naši zabudovanou FAAD, nebo chcete použít externí knihovnu z jiných důvodů, stáhněte si ji z download stránky a předejte volbu `--enable-external-faad` skriptu `configure`. Pro dekódování AAC souborů nepotřebujete celou faad2, libfaad stačí. Zkompilujete ji takto:

    cd faad2/
    sh bootstrap
    ./configure
    cd libfaad
    make
    make install

Binárky na audiocoding.com nenajdete, ale můžete si je opatřit v balíčcích pro Debian z domácí stránky Christiana Marillata, Mandrake RPM z P.L.F a RedHat RPM ze stránek Grey Sector.

### 2.2.3. HOWTO: Import Win32 kodeků

#### 2.2.3.1. Kodeky VFW

VFW (Video for Windows) je staré Video API pro Windows. Jeho kodeky mají příponu `.DLL` nebo (zřídka) `.DRV`. Pokud MPlayer selže při přehrávání vašeho AVI s hláškou typu:

    UNKNOWN video codec: HFYU (0x55594648)

nebo česky

    NEZNÁMÝ video kodek: HFYU (0x55594648)

Pak to znamená, že máte AVI enkódované kodekem, který má HFYU fourcc (HFYU = HuffYUV kodek, DIV3 = DivX Low Motion, atd). Teď když to víte, měli byste zjistit kterou DLL Windows nahrává pro přehrávání tohoto souboru. V našem případě soubor `system.ini` obsahuje řádek s touto informací:

    VIDC.HFYU=huffyuv.dll

Potřebujete tedy soubor `huffyuv.dll`. Poznamenejme, že audio kodeky jsou odlišeny předponou MSACM:

    msacm.l3acm=L3codeca.acm

To je kodek MP3. Nyní již máte všechny potřebné informace (fourcc, soubor kodeku, vzorek AVI). Pošlete požadavek na podporu vašeho kodeku mailem a nahrajte tyto soubory na FTP server: `ftp://ftp.mplayerhq.hu/MPlayer/incoming/[codecname]/`

### Poznámka

Ve Windows NT/2000/XP hledejte tyto informace v registrech, zde hledáte "VIDC.HFYU". Jak to udělat se dozvíte níže v sekci DirectShow Stará metoda.

#### 2.2.3.2. Kodeky DirectShow

DirectShow je novější Video API, které je ještě horší než jeho předchůdce. Pracuje se s ním hůře, protože

- `system.ini` neobsahuje potřebné údaje, místo toho jsou uloženy v registrech a
- potřebujeme GUID kodeku.

Nová Metoda:

Using Microsoft GraphEdit (rychlý)

1. Opatřete si GraphEdit buď z DirectX SDK nebo doom9

2. Spusťte graphedit.exe.

3. V menu vyberte Graph -> Insert Filters.

4. Vyrolujte položku `DirectShow Filters`

5. Vyberte správný název kodeku a vyrolujte položku.

6. Ve vstupu `DisplayName` pohlédněte na text ve dvojitých uvozovkách za zpětným lomítkem a opište si ho (pět lomítkem oddělených bloků, GUID).

7. Binárka kodeku je uvedena ve vstupu `Filename`.

### Poznámka

Pokud zde není `Filename` a `DisplayName` obsahuje něco jako `device:dmo`, pak se jedná o DMO-Kodek.

Stará Metoda:

Zhluboka se nadechněte a začněte prohledávat registry...

1. Spusťte regedit.

2. Stiskněte Ctrl+F, vypněte první dvě zaškrtávací políčka a zapněte to třetí. Napište fourcc kodeku (např. `TM20`).

3. Měli byste uvidět pole obsahující cestu a jméno souboru (např. `C:\WINDOWS\SYSTEM\TM20DEC.AX`).

4. Teď když máme soubor, potřebujeme GUID. Zkuste hledat znovu, ale tentokrát hledáme jméno kodeku, ne fourcc. Jeho jméno můžete zjistit během přehrávání Media Playerem v menu File -> Properties -> Advanced (Soubor -> Vlastnosti -> Pokročilé). Pokud ne, máte smůlu. Zkoušejte to dál (např. hledejte text TrueMotion).

5. Pokud naleznete GUID, měli byste vidět pole FriendlyName a CLSID. Opište si 16 bajtové CLSID, to je ono GUID, které potřebujeme.

### Poznámka

Pokud vyhledávání selže, zkuste zapnout všechny zaškrtávátka. Nejspíš dostanete nesprávné výsledky, ale můžete mít štěstí...

Nyní když máte všechny potřebné informace (fourcc, GUID, soubor kodeku, vzorek AVI), pošlete požadavek na podporu svého kodeku mailem a nahrajte tyto soubory na FTP server: `ftp://ftp.mplayerhq.hu/MPlayer/incoming/[codecname]/`

Pokud chcete přidat kodek sami, přečtěte si DOCS/tech/codecs.conf.txt.

Předcházející | Nahoru | Další
2.1. Podporované formáty | Domů | 2.3. Video output devices