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

## 7.1. Videó codec-ek

A codec státusz táblázat tartalmazza az összes támogatott codec-et, napi frissítéssel. Néhány MPlayerrel használható bináris codec elérhető a weboldalunk letöltési részében.

A legfontosabb dolgok:

- MPEG-1 (VCD) és MPEG-2 (DVD) videó

- natív dekódolók az összes DivX variánshoz, 3ivX-hez, 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. FFmpeg/libavcodec

Az FFmpeg tartalmazza a `libavcodec`-et, a vezető nyílt forráskódú videó és audió codec függvénykönyvtárat. Képes a legtöbb multimédiás formátum dekódolására, általában az alternatíváknál gyorsabban, valamint egyre több formátumot támogat. Ez az alapértelmezett dekódoló az MPlayer által támogatott codec-ek nagy részénél. A kódolás szintén lehetséges pár formátumba, melyeket támogat is a MEncoder.

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

Az MPlayer tartalmazza a `libavcodec`-et. Csak futtasd a `./configure`-t és fordíts.

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

Jegyezd meg, hogy az Xvid nem szükséges az Xvid-es videók dekódolásához. A `libavcodec` az alapértelmezett, mivel jobb a sebessége.

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.3. `x264`

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

- Interlacing

#### 7.1.3.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.3.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.3.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 eleget teszel az `x264` követelményeinek.

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