7.1. Videó codec-ek
Előző | 7. fejezet - Codec-ek | Következő

## 7.1. Videó codec-ek

Nézd meg a codec státusz táblázatot a teljes, naponta generált listáért. Elég sok codec elérhető letöltésként a weboldalunkon. Szedd le őket a codec oldalról.

A legfontosabb dolgok:

- MPEG-1 (VCD) és MPEG-2 (DVD) videó
- natív dekódolók DivX ;-), OpenDivX (DivX4), DivX 5 (Pro), 3ivX, M$ MPEG-4 v1, v2 és más MPEG4 variánsokhoz
- natív dekódoló Windows Media Video 7/8 (WMV1/WMV2), és Win32 DLL dekódoló a Windows Media Video 9 formátumhoz (WMV3), mindkettőt a `.wmv` fájloknál használjuk
- natív Sorenson 1 (SVQ1) dekódoló
- natív Sorenson 3 (SVQ3) dekódoló
- 3ivx v1, v2 dekódoló
- Cinepak és Intel Indeo codec (3.1,3.2,4.1,5.0)
- MJPEG, AVID, VCR2, ASV2 és más hardveres formátumok
- VIVO 1.0, 2.0, I263 és egyéb H.263(+) variánsok
- FLI/FLC
- RealVideo 1.0 & 2.0 a `libavcodec`-ből és RealVideo 3.0 & 4.0 codec a RealPlayer könyvtárak felhasználásával
- natív dekódoló HuffYUV-hoz
- különböző régi, egyszerű, RLE-szerű formátum

Ha van olyan Win32 codec-ed, ami nincs a listában és még nem támogatott, olvasd el a codec importálás HOGYAN-t és segítsd a munkánkat.

### 7.1.1. DivX4/DivX5

Ez a rész a Project Mayo DivX4 és DivX5 codec-jeiről tartalmaz információkat. AZ első elérhető alpha verziójuk az OpenDivX 4.0 alpha 47 és 48 volt. Ezek támogatása be volt építve az MPlayerbe régen, és alapértelmezésként be is lett forgatva. Használtuk az utófeldolgozó kódjukat is az MPEG-1/2 filmek képminőségének opcionális javításához. Most már a sajátunkat használjuk, minden típushoz.

Ennek a codec-nek az új generációját DivX4-nek hívják és még a hírhedt DivX codec-kel készített filmek dekódolására is képes! Ráadásként sokkal gyorsabb, mint a natív Win32 DivX DLL, de lassabb, mint a `libavcodec`. Ezért ellenezzük a dekóderként történő használatát. Kódoláshoz viszont hasznos. Az egyetlen hátránya ennek a codec-nek, hogy nem elérhető Nyílt Forráskódú licensszel.

A DivX4 két módban működik:

`-vc odivx`
  A codec-et OpenDivX formában használja. Ebben az esetben YV12 képeket készít a saját bufferében, és az MPlayer színtér konverziót végez a libvo-n keresztül. (Gyors, javasolt!)
`-vc divx4`
  A codec színtér konverzióját használja. Ebben a módban használhatod a YUY2/UYVY-t is. (LASSÚ)

A `-vc odivx` módszer általában gyorsabb, amiatt, hogy a kép adatait YU12 (planar YUV 4:2:0) formátumban viszi át, így sokkal kisebb sávszélesség kell neki az adatbuszon. A csomagolt YUV módok (YUY2, UYVY) a `-vc divx4` módszert használják. Az RGB módoknál a sebesség ugyan akkora, csak az aktuális színmélységedhez történő alkalmazkodásukban különböznek. Ha a `-vo` vezérlőd támogatja a direkt renderelést, akkor a `-vc divx4` gyorsabb lehet vagy akár a leggyorsabb is.

A DivX4/5 bináris codec könyvtár letölthető az avifile-ról vagy a divx.com címről. Csomagold ki, futtasd az `./install.sh` fájlt root-ként és ne felejtsd el beírni a `/usr/local/lib` könyvtárat az `/etc/ld.so.conf` fájlba, majd futtatni az ldconfig parancsot.

Az MPlayer automatikusan megtalálja a DivX4/DivX5-öt ha az megfelelően van telepítve, csak fordítsd le úgy, mint máskor. Ha nem találja meg, nem telepítetted vagy nem állítottad be megfelelően.

### 7.1.2. FFmpeg/libavcodec

Az FFmpeg egy nyílt forráskódú codec csomagot tartamaz, ami képes számos audió és videó codec-et tartalmazó folyam dekódolására. Lenyűgöző kódolási képességei is vannak, és gyorsabb mint a Win32 codec-ek a DivX.com DivX4/5 könyvtáraiban!

Rengeteg szép codec-et tartalmaz, különösen fontosak az MPEG-4 variánsok: DivX3, DivX4, DivX5, Windows Media Video 7/8 (WMV1/WMV2). Nagyon érdekes még a WMA dekódoló.

A legújabb említésre méltó codec a Sorenson 3 (SVQ3) codec. Ez az első, teljesen nyílt forráskódú implementáció. És még gyorsabb is, mint az eredeti. Győződj meg róla, hogy ezt használod a bináris codec helyett!

Az összes támogatott codec listájáért látogasd meg az FFmpeg weboldalát. Támogatott videó és audió codec-ek.

Mind az MPlayer kiadások, mind az MPlayer Subversionből származó verziói tartalmazzák a `libavcodec`-et, így nem kell azzal foglalkoznod, hogy legyen egy külön `libavcodec` checkout-od. Csak futtasd a `configure`-t és fordíts.

Az FFmpeg-gel és a Matrox G400-as kártyámmal még a legnagyobb felbontású DivX filmeket is képkockák eldobása nélkül tudom nézni a K6-2 500 gépemen.

### 7.1.3. XAnim codec-ek

### Megjegyzés

Hadd figyelmeztessünk, hogy az XAnim bináris codec-jeit egy kis szöveggel együtt csomagolják, amely egy legális szoftver licensz, és amely más megszorítások mellett megtiltja a a felhasználónak, hogy a codec-eket az XAnim-on kívül más programmal használja. Ennek ellenére az XAnim szerzői még senki ellen sem tettek jogi lépéseket codec-használat ügyben.

TELEPÍTÉS ÉS HASZNÁLAT. Az MPlayer képes az XAnim codec-ek dekódoláshoz történő felhasználására. Kövesd az utasításokat a bekapcsolásukhoz:

1. Töltsd le a kívánt codec-eket az XAnim oldaláról. A 3ivx codec nincs ott, az a 3ivx oldalon van.

2. VAGY töltsd le a codec csomagot a codec oldalunkról

3. Használd a `--with-xanimlibdir` kapcsolót, amivel megmondhatod a `configure`-nak, hogy hol találhatóak az XAnim codec-ek. Alapértelmezésben a `/usr/local/lib/codecs`, `/usr/local/lib/xanim/mods`, `/usr/lib/xanim/mods` és `/usr/lib/xanim` könyvtárakban keresi. Alternatívaként az `XANIM_MOD_DIR` környezeti változó beállításával is megadhatod az XAnim codec-ek könyvtárát.

4. Nevezd át/szimlinkelt a fájlokat, szedd ki az architektúra részeket, így ilyen fájlneveket kapsz, mint ezek: `vid_cvid.xa`, `vid_h263.xa`, `vid_iv50.xa`

Az XAnim egy videó codec család, amelynek a használatát, ha az lehetséges, a `-vfm xanim` kapcsolóval írhatod elő az MPlayernek.

Letesztelt codec-ek: Indeo 3.2, 4.1, 5.0, CVID, 3ivX, H.263.

### 7.1.4. VIVO videó

Az MPlayer le tudja játszani a Vivo (1.0 és 2.0) videókat. Az 1.0-ás fájlokhoz leginkább az FFmpeg H.263 dekódere illik, ezt a `-vc ffh263` kapcsolóval tudod használni. A 2.0-ás fájlokhoz használd a Win32 DLL-t a `-vc vivo` kapcsoló segítségével. Ha nem adsz meg kapcsolót a parancsorban, az MPlayer automatikusan kiválasztja a legjobb codec-et.

### 7.1.5. MPEG-1/2 videó

Az MPEG-1 és MPEG-2 a `libmpeg2` többplatformos, natív függvénykönyvtár segítségével kerülnek dekódolásra, aminek a forrása benne van az MPlayerben. Le tudjuk kezelni a hibás MPEG-1/2 videó fájlokat is a `Signal 11` elkapásával (`szegmentálási hiba`), és a codec gyors újrainicializálásával, pontosan onnan folytatva, ahol a hiba keletkezett. Ennek a javító technikának nincs mérhető sebességvesztesége.

### 7.1.6. MS Video1, Cinepak CVID, és egyéb régi codec-ek

Az MPlayer a legtöbb régi codec-kel készült AVI és MOV fájlt le tudja játszani. Régen bináris Win32 codec-ekkel voltak dekódolva, de most már natív codec-jeink vannak a legtöbbhöz a `libavcodec`-nek hála.

### 7.1.7. RealVideo

Az MPlayer támogatja a RealVideo összes verziójának dekódolását:

- RealVideo 1.0, 2.0 (fourcc RV10, RV20) - kódolás/dekódolás támogatása `libavcodec`-kel
- RealVideo 3.0, 4.0 (fourcc RV30, RV40) - dekódolás támogatása RealPlayer könyvtárakkal

Töltsd le a Real codec-eket a http://www.mplayerhq.hu/MPlayer/releases/codecs/ könyvtárból és csomagold ki a `/usr/local/lib/codecs` könyvtárba. Ha máshol akarod tárolni őket, add meg a `--with-reallibdir` kapcsolót a configure-nak.

### Megjegyzés

A RealPlayer könyvtárak jelenleg csak Linux, FreeBSD, NetBSD és Cygwin alatt működnek x86-on, Alpha-n és PowerPC-n (a Linux/Alpha és Linux/PowerPC tesztelve lett) és Mac OS X-szel.

### 7.1.8. XviD

Az XviD egy szabad szoftveres MPEG-4 ASP kompatibilis videó codec, ami tud két lépésben kódolni és teljes MPEG-4 ASP támogatás van benne, ezáltal sokkal hatékonyabb, mint a jólismert DivX codec. Nagyon jó videó minőséget kínál és a CPU optimalizációknak hála a legtöbb modern processzoron a teljesítménye is jó.

Az OpenDivX codec forkolt fejlesztésként indult annak idején. A fork akkor történt, amikor a ProjectMayo az OpenDivX-et zárt forráskódúvá tette DivX4 (most DivX5) néven, felbosszantva így a nem-ProjectMayo-s fejlesztőket, akik az OpenDivX-en dolgoztak, s akik így elindították az XviD-et. Így mindkét projektnek azonosak a gyökereik.

Az `XviD` telepítése

Mint a legtöbb nyílt forráskódú program, ez is két formában érhető el: hivatalos kiadás és a CVS verzió. A CVS verzió általában elég stabil a használathoz, mivel legtöbbször csak a kiadásokban benne lévő hibák javításait tartalmazza. Itt van lépésről lépésre, hogy mit kell tenned, ha az `XviD` CVS-t használni akarod a MEncoderrel (szükséged lesz az autoconf 2.50-re, az automake-re és a libtool-ra):

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

   Meg kell adnod pár kapcsolót (tanulmányozd a ./configure --help kimenetét).

6.     make && make install

7. Ha megadtad a `--enable-divxcompat` kapcsolót, másold át a `../../src/divx4.h` fájlt a `/usr/local/include/`könyvtárba.

8. Fordítsd újra az MPlayert a `--with-xvidlibdir=`/eleresi/ut/`libxvidcore.a` `--with-xvidincdir=`/eleresi/ut/`xvid.h` kapcsolókkal.

### 7.1.9. Sorenson

A Sorenson egy Sorenson Media által kifejlesztett videó codec, amit az Apple-nek licenszelnek, aki a QuickTime Player-ével terjeszti. Képesek vagyunk a Sorenson videó fájlok összes verziójának dekódolására a következő dekódolókkal:

- Sorenson Video v1 (fourcc SVQ1) - a dekódolást natív codec biztosítja (`libavcodec`)
- Sorenson Video v3 (fourcc SVQ3) - a dekódolást natív codec biztosítja (`libavcodec`)

MPLAYER FORDÍTÁSA QUICKTIME KÖNYVTÁRAK TÁMOGATÁSÁVAL

### Megjegyzés

Jelenleg csak a 32-bit-es Intel platformok támogatottak.

1. Töltsd le az MPlayer Subversion-t

2. Töltsd le a QuickTime DLL csomagot: http://www.mplayerhq.hu/MPlayer/releases/codecs/

3. Csomagold ki a QuickTime DLL-eket a Win32 codec könyvtáradba (alapértelmezett: `/usr/local/lib/codecs/`)

4. fordítsd le az MPlayert

### 7.1.10. x264

#### 7.1.10.1. Mi az az x264?

Az `x264` egy függvénykönyvtár a H.264 videó folyamok létrehozásához. Még nincs kész 100%-ig, de valamilyen szinten már támogatja a H.264 legtöbb minőségjavító tulajdonságát. Van számos fejlett tulajdonság a H.264 specifikációjában, aminek semmi köze a videó minőségéhez; ezek többsége még nincs implementálva az `x264`-ben.

Kódoló tulajdonságai

- CAVLC/CABAC

- Többszörös hivatkozás

- Intra: az összes makroblokk típus (16x16, 8x8 és 4x4 az összes előrejelzéssel)

- Inter P: az összes elosztás (16x16-tól le 4x4-ig)

- Inter B: elosztás 16x16-tól le 8x8-ig (beleértve a SKIP/DIRECT-et)

- Rátavezérlés: konstans kvantáló, konstans bitráta, egy vagy többlépéses ABR, opcionális VBV

- Jelenet vágás detektálása

- Adaptív B-kocka elhelyezés

- B-kocka mint referencia / önkényes képkocka sorrend

- 8x8 és 4x4 adaptív térbeli transzformáció

- Veszteségmentes mód

- Egyedi kvantálási matricák

- Több szelet párhuzamos kódolása

#### 7.1.10.2. Mi az a H.264?

A H.264 az ITU és az MPEG által közösen fejlesztett új digitális videó codec egyik neve. Hivatkoznak rá még olyan kellemetlen neveken is, mint "ISO/IEC 14496-10" vagy "MPEG-4 Part 10". Legtöbbször "MPEG-4 AVC" vagy csak "AVC" néven szerepel.

Bárhogy is nevezed, a H.264 megéri, hogy kipróbáld, mert általában eléri az MPEG-4 ASP minőségét 5%-30%-kal kisebb bitrátával. A valódi eredmények mind a forrás anyagtól, mind a kódolótól függnek. A H.264 előnyei nem jönnek ingyen: a H.264 folyamok dekódolásának elég meredek a CPU és memória igénye. Például egy 1733 Mhz-es Athlon-on egy DVD felbontású 1500kbps-es H.264 videó kb. 35% CPU-t használ a dekódoláshoz. Összehasonlításként egy DVD felbontású 1500kbps-es MPEG-4 ASP folyamnak 10% körüli CPU kell. Ez azt jelenti, hogy a nagy-felbontású folyamok dekódolása szinte szóba se jön a legtöbb felhasználónál. Azt is jelenti, hogy egy tisztességes DVD rip néha akadhat a 2.0 Ghz-nél lassabb processzorokon, és így tovább.

Az `x264`-mal a kódolási szükségletek nem sokkal rosszabbak, mint amit az MPEG-4 ASP-nél megszoktál. Például egy 1733 Mhz-es Athlon-on egy tipikus DVD kódolás 5-15 fps-sel fut.

Ennek a dokumentumnak nem célja a H.264 részletes leírása, ha érdekel egy rövid áttekintés, akkor olvasd el a The H.264/AVC Advanced Video Coding Standard: Overview and Introduction to the Fidelity Range Extensions című írást.

#### 7.1.10.3. Hogyan tudok lejátszani H.264 videókat az MPlayerrel?

Az MPlayer a `libavcodec` H.264 dekódolóját használja. A `libavcodec` már 2004. júliusa óta tartalmaz egy minimálisan használható H.264 dekódolást, de azóta több fontos változás és fejlesztés történt, mind a támogatott funkcionalitások, mind a CPU felhasználás szempontjából. Csak a biztonság kedvéért érdemes mindig a legfrissebb Subversion kódot használni.

Ha gyors és könnyen emészthető formában szeretnél információkat arról, hogy milyen új változások történtek a `libavcodec` H.264 dekódolójában, tartsd figyelemmel az FFmpeg Subversion fájának web-es felületét.

#### 7.1.10.4. Hogyan tudok a MEncoderrel és az `x264`-gyel videót kódolni?

Ha van feltelepítve subversion kliensed, a legújabb x264 forrást letöltheted ezzel a paranccsal:

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

Az MPlayer forrás mindig frissül, ha egy `x264` API változás jelenik meg, így javasolt az MPlayer Subversion verziójának használata. Talán ez a szituáció változni fog ha egy `x264` "kiadás" megjelenik. Addig az `x264` nagyon instabilként kezelendő, figyelembe véve, hogy a programozási felülete is változik.

Az `x264` a szabványos módon fordítható le és telepíthető:

        ./configure && make && sudo make install

Ez telepíti a libx264.a-t a /usr/local/lib könyvtárba és az x264.h-t beleteszi a /usr/local/include-ba. Miután az `x264` függvénykönyvtár és a fejléc fájl a megfelelő helyre került, az MPlayer fordítása `x264` támogatással már egyszerű. csak futtasd a szabványos parancsokat:

    ./configure && make && sudo make install

A configure script automatikusan detektálja, hogy elget teszel az `x264` követelményeinek.

Előző | Fel | Következő
7. fejezet - Codec-ek | Tartalom | 7.2. Audió codec-ek