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:

Ha van olyan 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

Ez a fejezet a ProjectMayo DivX4 codec-érő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. 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://download2.projectmayo.com/dnload/divx4linux/divx4linux-20010718.zip

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!

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

A használata kicsit trükkös. Mivel ütközik a régi OpenDivX-szel (az API-ja nagyon hasonlít az OpenDivX-éhez), az OpenDivX kód kikapcsolásra kerül, és annak drivere is ezt használja.

Ez az egész tulajdonképpen annyit takar, hogy két lehetőséget van a használatára:

  -vc odivx   a DivX4 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 DivX4 codec csinál konverziót. Ebben az esetben használhatsz YUY2/UYVY módokat is.

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: támogat postprocessinget is, de az értékei furcsák: (TODO UPDATE)

  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

A 0.4.2-es verzióval kezdve az ffmpeg tartalmaz egy nyitott forráskódú DivX codec-et, amely kompatibilis a hagyományossal. Az MPlayer támogatja ezt a codec-et, lehetővé téve hogy DivX/DivX4 filmeket nézzünk nem-x86 platformokon, méghozzá sokkal gyorsabb dekódolással mint amit a Win32 codec-ek, és az eredeti DivX4 lehetővé tesz!
Az MPlayer fa nem tartalmazza, le kell töltened az FFmpeg fát:

cvs -d:pserver:anonymous@cvs.ffmpeg.sourceforge.net:/cvsroot/ffmpeg login
cvs -d:pserver:anonymous@cvs.ffmpeg.sourceforge.net:/cvsroot/ffmpeg co ffmpeg

Megj: legközelebb elég ha belépsz a könyvtárába és 'cvs update'-t írsz.

Most mozgasd át az újonnan letöltött forrás libavcodec könyvtárát az MPlayer fába, hogy így nézzen ki :

    main/libavcodec

Link létrehozása NEM elég, másolni vagy mozgatni kell.

Ezután fordítsd le az MPlayer-t. A configure detektálja, ha minden rendben. Támogat postprocess-t!

A használatához frissítsd a codecs.conf file-odat, és tégy úgy ahogy a manpage vagy az example.conf mondja (a -vfm opció).

A legnagyobb sebesség eléréséhez ajánlott kivenni az ffmpeg12 részt a codecs.conf file-ból (a libmpeg2 kétszer gyorsabb ennél a codecnél), és betenni a konfigurációs file-ba a vfm=5 opciót. Ekkor az MPlayer az ffdivx/ffodivx codec-eket használja a DivX/DivX4 file-ok, és a libmpeg2-t az MPEG1/2 file-ok dekódolásához. Ezzel és egy Matrox G400-zal még a legnagyobb felbontású DivX/DivX4 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ó: (néhány) XAnim codec nem XAnim-mal történő használata ILLEGÁLIS. A TE felelősséged a licensz elolvasása, és betartása. Az MPlayer szerzői nem tehetők felelőssé a felhasználó hibái miatt.

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

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 (ú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 figyeljük a libmpeg2 mit ad vissza, és hiba esetén gyorsan ujraindítjuk a codecet 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

A CVID-del enkódolt filmek lejátszására a vid_cvid.xa nevű XAnim codec ajánlott, mivel támogat YV12 és YUY2 kimeneteket is, ellenben a Win32 codeccel ami csak RGB-t tud.

2.2.2. Audio codec-ek

A legfontosabb audio codecek:

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

A több mint két csatornás mixelés kísérleti stádiumú.

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 támogatnia kell az AFMT_AC3 formátumot (ilyen például az SB Live!). Kapcsold rá a hardveres AC3 dekódered az SP/DIF kimenetre, és használd az -ac hwac3 opciót. Akár működhet is. De nem fog. Tényleg. :)

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

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. Jelenleg egyikük se támogatott, de a g.723 codec innen letölthető.

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

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

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]/