2.2. Támogatott codec-ek

2.2.1. Video codec-ek

Lásd http://www.mplayerhq.hu/DOCS/codecs-status.html a teljes, naponta generált listához!!!

A legfontosabb video codecek:

- MPEG1 (VCD) és MPEG2 (DVD) video
- natív dekóderek DivX ;-), OpenDivX, DivX4, DivX5, M$ MPEG4 v1, v2 és más MPEG4 variánsokhoz
- natív dekóder Windows Media Video 7-hez (WMV1), és Win32 dekóder a Windows Media Video 8-hoz (WMV2), amik .wmv file-okban találhatóak
- natív Sorenson dekóder
- 3ivx dekóder
- Cinepak és Intel Indeo codecek (3.1, 3.2, 4.1, 5.0)
- MJPEG, AVID, VCR2, ASV2 és más hardware formátumok
- VIVO 1.0, 2.0, I263 és más h263+ variánsok
- FLI/FLC
- RealVideo 1.0 codec a libavcodec-ből, és RealVideo 2.0 és 3.0 codec a RealPlayer könyvtárainak használatával
- natív HuffYUV dekóder
- egyéb régi RLE-szerű formátumok

Ha van olyan Win32 codeced, ami nincs felsorolva vagy támogatva, olvasd el a codec importálás fejezetet, amiben le van írva mit kell tenned, hogy támogassuk a codeced!

2.2.1.1. DivX4/DivX5

Ez a fejezet a ProjectMayo DivX4 és DivX5 codec-eiről tartalmaz információkat. Az első hozzáférhető alfa verzió az OpenDivX alpha 47 és 48 volt. A támogatás ezekhez benne volt/van az MPlayer-ben, és alapállapotban bele is fordul. Régebben a postprocessing kódját használjuk, hogy javítsunk az MPEG1/2 filmek képminőségén. Most már saját minőségjavító kódunk van.

Ezen codec új generációja le tudja játszani a hírhedt DivX codec-kel készült filmeket is! És ez még nem minden, SOKKAL gyorsabb mint a Win32-es DivX DLL (viszont a libavcodec még ENNÉL IS gyorsabb, így eme codec használata NEM AJÁNLOTT - kivéve enkódoláshoz). A beállítást lásd lent. A codec egyetlen hátránya, hogy jelenleg zárt forráskódú. :(

A következő URL-ről lehet letölteni:

http://avifile.sourceforge.net
http://divx.com

Tömörítsd ki, és futtasd a `./install.sh` scriptet.

Megj: NE felejtsd el hozzáadni az `/usr/local/lib`-et az `/etc/ld.so.conf` file végére, és futtatni az `ldconfig`-ot!

Az MPlayer automatikusan detektálja, ha a DivX4 (helyesen) van installálva, fordítsd le a szokott módon. Ha nem veszi észre, akkor nem követted pontosan a fent leírtakat és/vagy elcseszett konfigod van (lásd az 5.1-es fejezet utolsó kérdését).

Két lehetőség van a használatára:

| -vc odivx |  | a codec használata, mint az OpenDivX új verziója. Ebben az esetben YV12 képeket produkál a saját bufferében, és az MPlayer (libvo) konverziót végez.
| -vc divx4 |  | a codec csinál konverziót. Ebben az esetben használhatsz YUY2/UYVY módokat is (LASSÚ).

Az 'odivx' módszer általában gyorsabb, amiatt hogy a képadatokat YV12 (planar YUV 4:2:0) formátumban kezeli, így sokkal kevesebb sávszélességet igényel a buszon. Packed YUV módokhoz (YUY2, UYVY) használd a 'divx4' módszert. RGB módoknál szabadonválasztott, a sebességük megegyezik, talán a használt bpp-tol függően változhat.

Megj: ha a -vo meghajtód támogat direct renderinget, a `-vc divx4` gyorsabb lehet !

Megj: a RÉGI OpenDivX támogat postprocessinget is (ez a módszer az `-oldpp` opcióval kapcsolható be), de az értékei furcsák :

| 0 |  | nincs
| 10 .. 20 |  | postprocessing, normal (mint a 2-es szint a DirectShow-os DivX codeccel)
| 30 .. 60 |  | hard prostprocessing, sok CPU-t eszik (mint a 4-es)

2.2.1.2. ffmpeg DivX/libavcodec

Az ffmpeg tartalmaz egy nyitott forráskódú codec csomagot, amely képes H263/MJPEG/RV10/DivX3/DivX4/DivX5/MP41/MP42/WMV1 codec-ekkel enkódolt videok lejátszására. Továbbá nemcsakhogy néhányukkal még enkódolni is lehet, de ezek sokkal szebbek és gyorsabbak mint a Win32-es codec-ek, vagy a DivX4 codec.

A leghasznosabb codecek az MPEG4 variánsok: DivX 3, DivX 4, DivX 5, Windows Media Video 7 (WMV1)

Ha egy MPlayer release-t használsz nem kell semmit tenned, a libavcodec már a csomagban van, csak fordítsd le az MPlayer-t ahogy szoktad. Ha CVS-ből szerezted az MPlayer-t, le kell töltened az ffmpeg CVS fáját is, mivel az ffmpeg release-k nem kompatibilisek a legújabb MPlayer-rel. A kiadandó parancsok:

1. `cvs -d:pserver:anonymous@cvs.ffmpeg.sourceforge.net:/cvsroot/ffmpeg login`
2. `cvs -d:pserver:anonymous@cvs.ffmpeg.sourceforge.net:/cvsroot/ffmpeg co ffmpeg`
3. Mozgasd át a `libavcodec` könyvtárat az FFmpeg forrásból az MPlayer CVS fába. Így:

   `main/libavcodec`

   A symlinkelés nem elég, át kell másolni/mozgatni!!!
4. Fordíts. A configure fordítás előtt kiírja a hibákat, ha vannak.

Megj.: bár az MPlayer CVS tartalmaz egy libavcodec könyvtárat, NEM tartalmazza a libavcodec-et!

Ezzel és egy Matrox G400-zal még a legnagyobb felbontású DivX filmeket is meg lehet nézni képkockavesztés nélkül, egy régi K6/2 500-ason.

2.2.1.3. XAnim codec-ek

Előszó:
A bináris XAnim codec-ek mellé van csomagolva egy-egy kis szöveges file ami legális licensznek vallja magát, és többek között tiltja a codec-ek XAnim-on kívüli bármilyen más programmal történő felhasználását. Szerencsére az XAnim szerzője úgy tűnik nem törődik a codec-eivel.

Nos igen, az MPlayer tudja használni az XAnim codec-eit dekódolásra. Nagyon könnyű bekapcsolni őket:

- töltsd le a használni kívánt codec-eket az XAnim honlapjáról. A 3ivx codec-et nem találod meg ott, így azt töltsd le a 3ivx honlapjáról.
- a `--with-xanimlibdir` opcióval mondd meg a configure-nak hogy hol vannak az xanim codec-ek. Magától az `/usr/local/lib/xanim/mods, /usr/lib/xanim/mods, /usr/lib/xanim` könyvtárban keresi őket. Egy másik megoldás ha a XANIM_MOD_DIR környezeti változót beállítod arra a könyvtárra ahol az XAnime codec-ek találhatók.
- nevezd át a codeceket, hogy így nézzenek ki : `vid_cvid.xa, vid_h263.xa, vid_iv50.xa`

Ezek a 10-es video codec családba tartoznak, így a `-vfm 10` opcióval megadhatod az MPlayer-nek, hogy ezeket használja, ha lehetséges.

Az eddig tesztelt codec-ek a következők: Indeo 3.2, 4.1, 5.0, CVID, 3ivX, h263.

2.2.1.4. VIVO video

Az MPlayer képes lejátszani Vivo (1.0 és 2.0) file-okat. Az 1.0-ás fileokra a legmegfelelőbb az FFmpeg-beli H263 codec, amit a `-vc ffh263` opcióval lehet használni (alapértelmezett) (új libavcodec szükséges !). A 2.0-ás fileokhoz szedd le az `ivvideo.dll` Win32 DLL file-t innen), és installáld a `/usr/lib/win32` könyvtárba, vagy ahol tárolod a Win32-es codeceket. Ezutóbbi codec nem támogat se YV12 se YUY2 kimenetet, csak BGR-t, ezért kizárólag X11 és OpenGL kimenetekkel működik. Remélhetőleg hamarosan az ffh263 is tud VIVO 2.0-ás file-okat dekódolni.

Olvasd el a VIVO audio codec fejezetet is!

2.2.1.5. MPEG 1/2 video

Az MPEG1 és MPEG2 a natív libmpeg2-vel dekódoljuk. A forrása benne van az MPlayer-ben, és természetesen több platformon is használható. A hibás MPEG1/2 fileokat úgy játszuk le hogy sig11 után gyorsan újrainicializáljuk a libmpeg2-őt és folytatjuk a lejátszást pontosan onnan ahol a hiba volt. Nincs sebességvesztés.

2.2.1.6. MS Video1

Ez egy nagyon régi és nagyon rossz codec a Microsoft-tól. Régebben ennek dekódolásához az `msvidc32.dll` nevű Win32-es codecet használtuk, de mostmár van nyitott forrású implementációnk, Mike Melanson-tól.

2.2.1.7. Cinepak CVID

Az MPlayer a saját nyílt forrású, többplatformos Cinepak dekóderét használja Cinepak filmekhez. Ez a dekóder támogatja a YUV kimenetet, így a hardveres gyorsítást is ha az adott video kimeneti meghajtó lehetővé teszi azt.

2.2.1.8. RealVideo

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

- RealVideo 1.0 (fourcc RV10) - en/dekódolás libavcodec-kel
- RealVideo 2.0 (fourcc RV20) - dekódolás RealPlayer könyvtárakkal
- RealVideo 3.0 (fourcc RV30) - dekódolás RealPlayer könyvtárakkal

Nagyon ajánlott a RealPlayer8 vagy RealONE letöltése, mert az MPlayer képes ezek könyvtárainak használatával dekódolni a RealVideo 2.0 vagy 3.0 videókat. Az MPlayer configure script detektálja a felinstallált RealPlayert. Ha nem sikerül, mondd meg a configure-nak a helyet a `--with-reallibdir` opcióval.

Megj.: a RealPlayer könyvtárak jelenleg csak Linux, FreeBSD, NetBSD és Cygwin rendszereken működnek, x86 platformon.

Megj2.: mi nem tudjuk terjeszteni a RealPlayer könyvtárakat, mivel a licenszük megtiltja.

2.2.1.9. XViD

Az XViD az OpenDivX kód továbbfejlesztése. 2001 áprilisában az OpenDivX-et fejlesztő ProjectMayo úgy döntött hogy zárt forrásúvá teszi a codec-et, és DivX4 néven készíti tovább. A nekik "bedolgozók" erre a lépésre úgy döntöttek, hogy majd ők folytatják (nyitottan) az OpenDivX fejlesztését. Ebből lett az XViD.

Előnyei :

- nyitott forrás
- az API-ja kompatibilis a DivX4-gyel így könnyen irható hozzá támogatás
- 2 menetes enkódolás
- jó minőség, ezzel egyidejűleg a DivX4-nél magasabb sebesség (fordításnál a gépedre optimalizálhatod)

Hátrányai:

- jelenleg nem minden DivX/DivX4 file-t dekódol helyesen (de kit érdekel. A libavcodec kenterbe ver mindent.)
- nem lehet egyszerre DivX4 ÉS XViD támogatással fordítani az MPlayer-t. Ezt fordításkor kell eldönteni.
- fejlesztés alatt

Installálás : jelenleg csak CVS-ből elérhető. Ezek a letöltési utasítások :
`cvs -z3 -d:pserver:anonymous@cvs.xvid.org:/xvid login`
`cvs -z3 -d:pserver:anonymous@cvs.xvid.org:/xvid co xvidcore`
`cd xvidcore/build/generic`
`Szerkeszd át a Makefile.linux-ot a gépednek megfelelően`
`make -f Makefile.linux`
`fogod a DivX4linux csomagot és az encore2.h illetve decore.h file-okat átmásolod belőlük a `/usr/local/include/` könyvtárba
`fordítsd újra az MPlayer-t a következő opcióval : --with-xvidcore=/útvonal/libcore.a`
`

2.2.1.10. Sorenson

A Sorenson egy, az Apple által kifejlesztett video codec. Jelenleg az első verzióját (SVQ1) tudjuk dekódolni, egy natív dekóderrel.

Előnyei:

- gyors, még a régi Macintosh gépek is dekódolni tudták

Hátrányai:

- Az SVQ3 még nincs reverse engineer-elve.

Installálás: alapállapotban lefordul.

2.2.2. Audio codec-ek

A legfontosabb audio codecek:

- MPEG layer 2, és layer 3 (MP3) audio (nativ kód, MMX/SSE/3DNow! optimalizációval)
- MPEG layer 1 audio (natív codec, libavcodec-kel)
- AC3 dolby audio (natív kód, MMX/SSE/3DNow! optimalizációval)
- Ogg Vorbis audio codec (natív)
- VoxWare audio (DirectShow-os DLL használatával)
- alaw, msgsm, pcm és más régi formátumok
- VIVO audio (g723, Vivo Siren)
- RealAudio: DNET (alacsony bitrátájú AC3), Cook

2.2.2.1. Szoftveres AC3 dekódolás

Ez az alapértelmezett AC3 audio dekóder.

Az AC3 dekóder 2, 4 vagy 6 hangszórós mixelési képességgel van ellátva. Ha 6 csatornára van állítva, a dekóder külön-külön adja a hangkártyának a csatornákat, ami teljes térhatást eredményez, külső - hwac3 codec-kel használható - AC3 dekóder nélkül.

A `-channels` opcióval adható meg a kimeneti csatornák száma. A `-channels 2` stereo mixet eredményez. 4 csatornás mixhez (bal első, jobb első, bal térhatás és jobb térhatás) a `-channels 4` opció használható. Ebben az esetben minden "középső" csatorna egyenlő mértékben kerül az elülső csatornákra. Végül, a `-channels 6` opció ugyanúgy adja ki a csatornákat, ahogy azokat enkódolták - sorrendben : bal, jobb, bal térhatás, jobb térhatás, közép és LFE.

Az alapértelmezett kimenet a 2 csatornás.

Több mint két csatorna használatához OSS meghajtó kell, és egy olyan hangkártya (illetve meghajtó), ami támogatja is az adott mennyiségű csatornát a SNDCTL_DSP_CHANNELS ioctl-en keresztül. Például a 2001 augusztusinál újabb emu10k1 meghajtó (SB Live kártyákhoz) megfelelő (úgy hallottam hogy a legújabb ALSA CVS-ben is van hozzá támogatás).

2.2.2.2. Hardveres AC3 dekódolás

Kell egy AC3 képes hangkártya, digitális kimenettel (SP/DIF). A kártya meghajtójának megfelelően támogatnia kell az AFMT_AC3 formátumot (ilyenek például az SB Live! és a C-Media kártyák). Kapcsold rá a hardveres AC3 dekódered az SP/DIF kimenetre, és használd az -ac hwac3 opciót. Jelenleg a C-Media kártyákkal és az SB Live! kártyákkal működik, utóbbinál csak az ALSA meghajtóval!

2.2.2.3. libmad támogatás

A libmad egy többplatformos MPEG audio dekóder. Ha nem tudod miért lenne szükséged rá, nincs szükséged rá.

Nem kezeli jól a hibás file-okat, és a tekeréssel is problémái vannak.

A támogatást az `--enable-mad` configure opcióval lehet bekapcsolni.

2.2.2.4. VIVO audio

A VIVO file-okban használt audio codec milyensége attól függ hogy VIVO/1.0 avagy VIVO/2.0 fileról beszélünk. Az 1.0-ás fileokban g.723 audio van, a 2.0-ásokban pedig Vivo Siren. Mindkettő támogatott. A g.723/Siren codec innen letölthető.

2.2.2.5. RealAudio

Az MPlayer majdnem az összes RealAudio codec-et támogatja:

- RealAudio DNET - dekódolás liba52-vel
- RealAudio Cook - dekódolás RealPlayer könyvtárakkal
- RealAudio Sipro - még nem támogatott

Az installálási procedúra leírásához lásd a RealMedia file formátum fejezetet.

2.2.3. Hogyan használj ismeretlen Win32 codec-et

2.2.3.1. VfW

VfW (Video for Windows) a régi Video API Windowshoz. A codec-jei .DLL vagy (ritkábban) .DRV kiterjesztést kapnak. Ha az MPlayer ezt írja ki az AVI-dra:

`UNKNOWN video codec: HFYU (0x55594648)`

Ez azt jelenti, hogy az AVI-d egy olyan codec-kel van tömörítve, aminek a fourcc-je HFYU (HFYU = HuffYUV codec, DIV3 = DivX Low Motion, stb...). Most, hogy ezt már tudod, azt kell kitalálni, hogy a Windows melyik DLL-lel játssza le a file-t. Esetünkben a system.ini ezt tartalmazza (többek között):

`VIDC.HFYU=huffyuv.dll`

Azaz a huffyuv.dll file-ra lesz szükség. Észrevehető, hogy az audio codecek az MSACM előtagot használják :

`msacm.l3acm=L3codeca.acm`

Ez az MP3 codec. Most, hogy tudod az összes szükséges infót (fourcc, codec file, minta AVI), küldd el kérésed levélben, és töltsd fel eme file-okat FTP-re:

`ftp://ftp.mplayerhq.hu/MPlayer/incoming/[codecname]/`

2.2.3.2. DirectShow

DirectShow az újabb Video API, ami történetesen sokkal rosszabb, mint az elődje. Nehezebb dolgod lesz a DirectShow-val, mivel

- a system.ini nem tartalmazza a szükséges információt, ehelyett az egész a registryben van :(
- szükség lesz a codec GUID-jára is.

Na kezdjük átnézni azt az istenverte registry-t...

- Indítsd el a 'regedit'-et
- ctrl-f, kapcsold ki az első két checkbox-ot, és be a harmadikat. Írd be a codec fourcc-jét. (pl.: TM20)
- jó esetben előjön a path és filenév (pl. : C:\WINDOWS\SYSTEM\TM20DEC.AX)
- most hogy ez megvolt, szükség lesz a GUID-ra. Keress újra, de most a codec nevére, ne a fourcc-re. A név megnézhető pl. a Media Playerrel, a File/Properties/Advanced menüpont alatt. Ha nem, ígyjárás ;) Találd ki. (itt : TrueMotion)
- ha megvan, lesz ott egy FriendlyName, és egy CLSID mező. Írd le azt a 16 byte-nyi CLSID-et, ez a GUID.

MEGJ. : ha semmiképp nem találod, próbáld meg úgy, hogy bekapcsolod az összes checkboxot... Lesz egy rakás hamis találat, de talán meglesz az igazi is...

MEGJ. : dobd ki azt az M$ szart.

Most, hogy tudod az összes szükséges infót (fourcc, GUID, codec file, minta AVI), küldd el kérésed levélben, és töltsd fel eme file-okat FTP-re: ftp://ftp.mplayerhq.hu/MPlayer/incoming/[codecname]/