7.1. Video kodeky
Předcházející | Kapitola 7. Kodeky | Další

## 7.1. Video kodeky

Kompletní denně aktualizovaný seznam naleznete v naší tabulce statusů kodeků. Některé binární kodeky pro použití MPlayerem jsou dostupné sekci download naší domácí stránky.

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

- MPEG-1 (VCD) a MPEG-2 (DVD) video

- nativní dekodéry pro všechny DivX varianty, 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.

### 7.1.1. FFmpeg/libavcodec

FFmpeg obsahuje `libavcodec`, vedoucí open source video a audio kodekovou knihovnu. Ta je schopna dekódovat většinu formátů multimédií, obvykle vyšší rychlostí než alternativy a plánuje se nakonec přidat podporu všech. Je to výchozí dekodér pro většinu kodeků, které MPlayer podporuje. Pro některé formáty je k dispozici také enkódování podporované v MEncoderu.

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

MPlayer obsahuje `libavcodec`. Jen spusťte `./configure` a kompilujte.

### 7.1.2. Xvid

Xvid je free software MPEG-4 ASP kompatibilní video kodec, jenž má podporu pro dvouprůchodové enkódování a plně podporuje MPEG-4 ASP, což jej činí mnohem efektivnějším, než je dobře známý DivX kodek. Dosahuje velmi dobré kvality videa a dobrý vákon díky CPU optimalizacím pro většinu moderních procesorů.

Jeho vývoj je odvozen od OpenDivX kodeku. To se stalo poté co ProjectMayo uzavřel zdrojový kód kodeku, vydal jej jako DivX4 a lidé mimo ProjectMayo pracující na kodeku OpenDivX se naštvali a založili Xvid. Oba projekty tedy mají stejný základ.

Poznamenejme, že Xvid není nutný pro dekódování Xvidem enkódovaného videa. Jako výchozí je používán `libavcodec`, jelikož poskytuje vyšší rychlost.

Instalace `Xvid`

Stejně jako většina svobodného software je dostupný ve dvou verzích: oficiálně uvolněné verzi a verzi CVS. V současnosti je CVS verze obvykle dostatečně stabilní pro použití, jelikož většinou obsahuje opravy chyb, které zůstaly po vydání. Zde uvádíme postup pro zprovoznění `Xvid` CVS v MEncoderu (budete potřebovat 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=`/cesta/k/`libxvidcore.a` `--with-xvidincdir=`/cesta/k/`xvid.h`.

### 7.1.3. `x264`

#### 7.1.3.1. Co je `x264`?

`x264` je knihovna pro tvorbu H.264 video proudů. Není 100% dokončena, ale již má alespoň určitou podporu většiny H.264 vlastností ovlivňujících kvalitu. Ve specifikaci H.264 je ovšem mnoho pokročilých funkcí, které nemají přímo co do činění s kvalitou videa. Mnoho z těchto vlastností zatím není v `x264` implementováno.

Vlastnosti enkodéru

- CAVLC/CABAC

- Multi-reference

- Intra: všechny typy makrobloků (16x16, 8x8 a 4x4 se všemi predikcemi)

- Inter P: všechna rozdělení (partitiony) (od 16x16 níže až do 4x4)

- Inter B: rozdělení od 16x16 níže až do 8x8 (včetně SKIP/DIRECT)

- Řízení datového toku: konstantní kvantizér, konstantní datový tok nebo jedno či víceprůchodový ABR

- Detekce změny scény

- Adaptivní umísťování B-snímků

- B-snímky jako referenční / libovolné řazení snímků

- 8x8 a 4x4 adaptivní prostorová transformace

- Bezstrátový režim

- Uživatelské kvantizační matice

- Paralelní enkódování několika políček

- Prokládání (Interlacing)

#### 7.1.3.2. Co je H.264?

H.264 je jeden z názvů nového kodeku digitálního videa vyvíjeného společně skupinami ITU a MPEG. Rovněž může být zprávně nazýván těžkopádně jako "ISO/IEC 14496-10" nebo "MPEG-4 Part 10". Častěji je nazýván jako "MPEG-4 AVC" nebo jen "AVC".

Ať už mu říkáte jakkoli, H.264 stojí za vyzkoušení, protože obvykle dosahuje kvality MPEG-4 ASP při datovém toku o 5%-30% nižším. Konkrétní výsledky závisí jak na zdrojovém videu, tak na enkodéru. Prospěch z použití H.264 není zadarmo: Zdá se, že dekódování H.264 datových proudů má přemrštěné nároky na CPU a paměť. Například na 1733 MHz Athlonu využije dekódování 1500kbps H.264 videa v DVD rozlišení kolem 35% CPU. Pro porovnání, dekódování 1500kbps MPEG-4 ASP proudu ve stejném rozlišení vyžaduje okolo 10% CPU. To znamená, že dekódování datových proudů je pro většinu uživatelů téměř nemožné. Rovněž to znamená, že dokonce i rozumný DVD rip se může občas zakousnout na procesorech slabších než cca 2.0 GHz.

Alespoň s `x264`, nejsou požadavky ne enkódování o mnoho větší než ty, které vyžaduje MPEG-4 ASP. Například na 1733 MHz Athlonu poběží typické DVD enkódování při 5-15 snímků za sekundu.

Tento dokument se nesnaží vysvětlit detaily H.264, ale pokud máte zájem o stručný přehled, přečtěte si The H.264/AVC Advanced Video Coding Standard: Overview and Introduction to the Fidelity Range Extensions.

#### 7.1.3.3. Jak mohu přehrávat H.264 videa MPlayerem?

MPlayer používá H.264 dekodér z `libavcodec`u. `libavcodec` má alespoň minimálně použitelný H.264 dekodér již asi od července 2004, od té doby však byly provedeny velké změny a vylepšení jak v počtu funkčností, tak ve vylepšení použití CPU. Pro jistotu je vždy nejlepší používat aktuální Subversion verzi.

Chcete-li se snadno a rychle dozvědět o změnách v H.264 dekódování `libavcodec`u, sledujte webové FFmpeg Subversion rozhraní.

#### 7.1.3.4. Jak mohu enkódovat video pomocí MEncoder a `x264`?

Pokud máte nainstalován klient subversion, můžete si poslední x264 zdrojové kódy x264 opatřit tímto příkazem:

    svn co svn://svn.videolan.org/x264/trunk x264

Zdrojové kódy MPlayeru jsou aktualizovány, kdykoli nastane změna API v `x264`, takže vždy doporučujeme používat také Subversion verzi MPlayeru. Tato situace se snad změní, až `x264` dospěje k "vydání". Mezi tím by měla být `x264` považována za velmi nestabilní v tom smyslu, že se její programové rozhraní neustále mění.

`x264` je setavována a instalována standardním postupem:

    ./configure && make && sudo make install

To nainstaluje libx264.a do /usr/local/lib a x264.h je umístěn do /usr/local/include. S knihovnou `x264` a jejím hlavičkovým souborem umístěnými na standardních místech je sestavení MPlayeru s podporou `x264` snadné. Stačí spustir standardní:

    ./configure && make && sudo make install

Skript `./configure` automaticky detekuje, že jste splnili požadavky pro `x264`.

Předcházející | Nahoru | Další
Kapitola 7. Kodeky | Domů | 7.2. Audio kodeky