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

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

Jak ostré verze MPlayeru, tak MPlayer ze Subversion obsahují `libavcodec`, takže jej nemusíte stahovat zvlášť. Jen spusťte `configure` a kompilujte.

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.

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

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

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

### 7.1.5. 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`.

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

### 7.1.7. 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 (nyní DivX5) a lidé mimo ProjectMayo pracující na kodeku se naštvali a založili XviD. Oba projekty tedy mají stejný základ.

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=`/path/to/`libxvidcore.a` `--with-xvidincdir=`/path/to/`xvid.h`

### 7.1.8. 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 ze Subversion

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

### 7.1.9. x264

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

#### 7.1.9.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.9.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.9.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