2.2 Támogatott codec-ek

2.2.1 Video codec-ek

Lásd a codec státusz lapot a teljes, naponta generált listához.

A legfontosabb video codecek:

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 nem Open Source licenszu. :(

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 -vc 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!

A codec az avifile project, vagy a divx.com lapjárol tölthető le. Letöltés után csomagold ki és root-ként futtasd le az install.sh scriptet. Ne felejtsd el hozzáadni az /usr/local/lib útvonalat az /etc/ld.so.conf file végére, majd futtasd az ldconfig-ot.

A RÉGI OpenDivX CVS verzió a következőképp tölthető le:

  1. cvs -d:pserver:anonymous@cvs.projectmayo.com:/cvsroot login
  2. cvs -d:pserver:anonymous@cvs.projectmayo.com:/cvsroot co divxcore
  3. A kód két részre van osztva, decore és encore néven. Ezeket külön-külön kell leforditani. A decore rész forditása így történik:
        cd divxcore/decore/build/linux
        make
        cp libdivxdecore.so /usr/local/lib
        ln -s libdivxdecore.so /usr/local/lib/libdivxdecore.so.0
        cp ../../src/decore.h /usr/local/include
        
  4. Az encore részhez nincs linuxos Makefile, és az MMX optimalizált rész csak Windows-on fordul le. Viszont ezzel a Makefile-lal szépen lefordul Linux alatt is.
        cd ../../../encore/build
        mkdir linux
        cd linux
        cp path/Makefile .
        make
        cp libdivxencore.so /usr/local/lib
        ln -s libdivxencore.so /usr/local/lib/libdivxencore.so.0
        cp ../../src/encore.h /usr/local/include
        

Az MPlayer automatikusan detektálja a helyesen felinstallált DivX4/5-ot, a fordítás a szokásos módon történik. Ha valami folytán mégse jön össze, a configure-nak vannak opciói erre a célra.

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/WMV2/HuffYUV/SVQ1/SVQ3 codec-ekkel enkódolt videok, és WMA-val (Windows Media Audio) kódolt audiok 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 DivX.com-féle DivX4 könyvtár.

A leghasznosabb codecek az MPEG4 variánsok: DivX 3, DivX 4, DivX 5, Windows Media Video 7/8 (WMV1/WMV2). A WMA dekóder is igen figyelemreméltó.

A legutóbbi, elismerést érdemlő codec a Sorenson 3 (SVQ3) dekóder. Ez a világon a legelső, teljesen nyílt forráskódú implementáció. Ráadásul sokkal gyorsabb mint az eredeti. Mindenképpen ezt használd, ne a bináris codec-et!

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:

  1. 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.
  2. a codec csomag letölthető az MPlayer codec-ek lapjáról.
  3. 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.
  4. nevezd át a codeceket, hogy így nézzenek ki: vid_cvid.xa, vid_h263.xa, vid_iv50.xa

Ezek az xanim 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). 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.

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 (Dr. Tim Ferguson munkája) 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:

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 - 4.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, Alpha, és PowerPC platformokon (csak a Linux/Alpha és Linux/PowerPC van tesztelve).

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:

Hátrányai:

Az XViD jelenleg csak CVS-ből érhető el. Ezek a letöltési és installálási utasítások:

  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. Szerkeszd át a Makefile.linux-ot a gépednek megfelelően
  5. make -f Makefile.linux
  6. 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
  7. fordítsd újra az MPlayer-t a következő opcióval: --with-xvidcore=/útvonal/libcore.a

2.2.1.10 Sorenson

A Sorenson egy, a Sorenson Media által kifejlesztett, és az Apple által licenszelt video codec. Jelenleg mindkét verzióját (SVQ1, SVQ3) képesek vagyok dekódolni, az alant felsorolt dekóderekkel:

QuickTime támogatás belefordítása az MPlayer-be

Megjegyzés: jelenleg csak 32bites Intel platformokon használható.

  1. töltsd le az MPlayer-t CVS-ből
  2. töltsd le a QuickTime DLL csomagot a http://www.mplayerhq.hu/MPlayer/releases/codecs/ címről
  3. tömörítsd ki a QuickTime DLL csomagot a Win32 codec-eket tartalmazó könyvtáradba (alapállapotban /usr/lib/win32)
  4. fordítsd le az MPlayer-t

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ő (ú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, SB Live! (csak ALSA-val), és DXR3/Hollywood+ kártyákkal működik!

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:

Az installálási procedúra leírásához lásd a RealVideo codec fejezetet.

2.2.2.6. QDesign

QDesign audioval (fourcc-k: QDMC, QDM2) a MOV/QT file-okat látják el. Ezen codec mindkét verziója dekódolható Linux a QuickTime könyvtár használatával. Ennek installálási útmutatója a Sorenson video codec fejezetben található.

2.2.2.7. Qualcomm

A Qualcomm audio stream-ek (fourcc: Qclp) MOV/QT file-okban találhatóak. A dekódolásuk a QuickTime könyvtárakkal lehetséges. Ezek installálási leírása a Sorenson video codec fejezetben található.

2.2.2.8. AAC codec

Az AAC (Advanced Audio Coding) egy MOV illetve MP4 file-okban előforduló audio codec. A FAAD nevű nyílt forráskódú dekóder az AudioCoding.com címről tölthető le. A második generációs FAAD2 codec a letöltési lapon található. Sajnos a FAAD2 1.1 nem fordul le Linux alatt, így a CVS verziót kell használni. Íme ennek útmutatója:

  1. cvs -d:pserver:anonymous@cvs.audiocoding.com:/cvsroot/faac login
  2. cvs -z3 -d:pserver:anonymous@cvs.audiocoding.com:/cvsroot/faac co faad2
  3. cd faad2/
  4. chmod +x bootstrap
  5. ./bootstrap
  6. ./configure
  7. make
  8. make install

Az audiocoding.com címen nem fogsz találni binárisokat. Debian csomagok Christian Marillat honlapján, Mandrake RPM-ek pedig a P.L.F lapján találhatók.

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/[codecnév]/

Megj.: Windows NT/2000/XP-n keress a registry-ben, példánkban erre: "VIDC.HFYU". Hogy megtudd ez hogy lehetséges, olvasd el a régi fajta DirectShow keresést itt lent.

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

Új módszer: a Microsoft GraphEdit használata (gyors)

  1. Töltsd le a GraphEdit-et vagy a DirectX SDK-ből, vagy a Doom9-ről
  2. Indítsd el a graphedit.exe-t
  3. A menűből válaszd ki a Graph -> Insert Filters menűpontot
  4. Bontsd ki a DirectShow Filters ágat
  5. Válaszd ki a keresett codec-et és bontsd ki
  6. A DisplayName bejegyzésnél nézd meg mi a szöveg a szárnyas zárójelek között a backslash után, és írd le (öt darab, pontokkal elválasztott szám, a GUID)
  7. A codec file az, amit a Filename mező jelez.

Megj.: ha nincs Filename mező, és a DisplayName valami olyat tartalmaz, hogy device:dmo, akkor az a codec egy DMO codec.

Régi módszer: kezdjük átnézni azt az istenverte registry-t...

  1. Indítsd el a 'regedit'-et
  2. ctrl-f, kapcsold ki az első két checkbox-ot, és be a harmadikat. Írd be a codec fourcc-jét. (pl.: TM20)
  3. jó esetben előjön a path és filenév (pl.: C:\WINDOWS\SYSTEM\TM20DEC.AX)
  4. 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)
  5. 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/[codecnév]/