Codec-ek 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. 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 codec listájáért látogasd meg az FFmpeg weboldalát. Támogatott videó és audió codec-ek. Az MPlayer tartalmazza a libavcodec-et. Csak futtasd a configure-t és fordíts. 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 <systemitem class="library">XviD</systemitem> 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): 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 ./bootstrap.sh ./configure Meg kell adnod pár kapcsolót (tanulmányozd a ./configure --help kimenetét). make && make install Ha megadtad a kapcsolót, másold át a ../../src/divx4.h fájlt a /usr/local/include/könyvtárba. Fordítsd újra az MPlayert a kapcsolókkal. x264 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 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. Hogyan tudok lejátszani H.264 videókat az <application>MPlayer</application>rel? 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. Hogyan tudok a <application>MEncoder</application>rel és az <systemitem class="library">x264</systemitem>-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. Audió codec-ek A legfontosabb audió codec-ek: MPEG layer 1/2/3 (MP1/2/3) audió (natív kód, MMX/SSE/3DNow! optimalizációval) Windows Media Audio 7 és 8 (ismert mint WMAv1 és WMAv2) (natív kód, libavcodec-kel) Windows Media Audio 9 (WMAv3) (DMO DLL-lel) AC3 Dolby audió (natív kód, MMX/SSE/3DNow! optimalizációval) hangkártyán áteresztő AC3 AAC Ogg Vorbis audió codec (natív függvénykönyvtár) RealAudio: DNET (alacsony bitrátájú AC3), Cook, Sipro és ATRAC3 QuickTime: Qualcomm és QDesign audió codec-ek VIVO audió (g723, Vivo Siren) Voxware audió (DirectShow DLL használatával) alaw és ulaw, számos gsm, adpcm és pcm formátum és más, egyszerű, régi audió codec Adaptive Multi-Rate (AMR) beszéd codec Szoftveres AC3 dekódolás Ez az alapértelmezésben használt dekódoló az AC3 audiójú fájlokhoz. Az AC3 dekódoló 2, 4 vagy 6 csatornás hangkimenet keverést tud csinálni. Ha 6 hangszóróra van beállítva, ez a dekódoló külön kimenetet biztosít hang vezérlő összes AC3 csatornájának, létrehozva így a teljes "surround sound" hatást, a hwac3 codec-hez szükséges külső AC3 dekódoló nélkül. Használd a kapcsolót a kimeneti csatornák számának megadásához. A sztereo downmix-et produkál. Egy 4 csatornás downmixhez (bal elülső, jobb elülső, bal Surround és jobb Surround kimenet) használd a kapcsolót. Ebben az esetben, bármelyik középső csatorna egyenlően lesz elkeverve az elülső csatornákhoz. A kapcsoló minden AC3 csatornát úgy ad ki, ahogy azok kódolva lettek - bal, jobb, bal Surround, jobb Surround, Center és LFE sorrendben. A csatornák alapértelmezett száma 2. 2-nél több kimeneti csatorna használatához OSS-t kell használnod, és egy olyan hangkártyával kell rendelkezned, ami támogatja a megfelelő számú kimeneti csatornát az SNDCTL_DSP_CHANNELS ioctl-en keresztül. Például az emu10k1 2001. augusztus vagy későbbi verziói megfelelő vezérlők (a Soundblaster Live! kártyák használják, de az ALSA CVS is valószínűleg működik). Hardveres AC3 dekódolás AC3-at támogató hangkártyára lesz szükséges, digitális kimenettel (S/PDIF). A kártya vezérlőjének megfelelően támogatnia kell az AFMT_AC3 formátumot (a C-Media támogatja). Csatlakoztasd az AC3 dekódolódat az S/PDIF kimenethez és használd a kapcsolót. Még kisérleti kód, de működik C-Media kártyákon és Soundblaster Live! + ALSA (de OSS-en nem) vezérlővel, valamint DXR3/Hollywood+ MPEG dekódoló kártyákon. libmad támogatás A libmad egy többplatformos, csak egész (belső 24bit-es PCM) alapú MPEG audió dekódoló függvénykönyvtár. Nem kezeli jól a sérült fájlokat, és néha problémái vannak a kereséssel, de jobb a teljesítménye FPU nélküli rendszereken (mint pl. az ARM), mint az mp3lib-é. Ha van megfelelő libmad telepítve, a configure automatikusan észleli és beépíti a támogatást az MPEG audió libmad-on keresztüli dekódolásához. Hardveres MPEG audió codec Ez a codec (a -ac hwmpa kapcsolóval választhatod ki) az MPEG audió csomagokat átadja a hardveres dekódolóknak, mint amilyenek például a jól felszerelt DVB kártyákon és DXR2 adaptereken vannak. Ne használd másik audió kimeneti eszközzel együtt (mint az OSS vagy ALSA), ami nem képes dekódolni (csak zajt fogsz hallanis). AAC codec Az AAC (Advanced Audio Coding) egy audió codec, amit néha MOV és MP4 fájlokban található. Egy FAAD nevű, nyílt forráskódú dekódoló elérhető a címen. Az MPlayer tartalmazza a libfaad 2.1 béta CVS kódját, nem szükséges külön beszerezni. Ha gcc 3.2-t használsz, ami nem tudja lefordítani a belső FAAD forrásunkat vagy valami más okból a külső függvénykönyvtárat szeretnéd használni, töltsd le a letöltési oldalról és add meg a kapcsolót a configure-nak. Nem kell a teljes faad2 az AAC fájlok dekódolásához, a libfaad elég. Így készítsd el: cd faad2/ sh bootstrap ./configure cd libfaad make make install Binárisok nem tölthetőek le az audiocoding.com-ról, de (apt-)get-tel feltelepítheted Debian csomagokból Christian Marillat weboldaláról, vagy Mandrake/Mandriva RPM-ből a P.L.F-ről, RedHat RPM-ből pedig a Grey Sector-tól. AMR codec-ek Az Adaptive Multi-Rate beszéd codec-et harmadik generációs (3G) mobiltelefonokban használják. A referencia implementáció elérhető A 3. Generációs Együttműködés Projekt oldalán (személyes felhasználásra ingyenes). A támogatás engedélyezéséhez töltsd le az AMR-NB és AMR-WB codec-ek forrását, tedd be abba a könyvtárba, ahol az MPlayer forrása van és futtasd az alábbi parancsokat: unzip 26104-610.zip unzip 26104-610_ANSI_C_source_code.zip mv c-code libavcodec/amr_float unzip 26204-600.zip unzip 26204-600_ANSI-C_source_code.zip mv c-code libavcodec/amrwb_float Ezután kövesd a szokásos MPlayer fordítási lépéseket. Win32 codec importálási HOGYAN VFW codec-ek A VFW (Video for Windows) egy régi Videó API Windowshoz. A codecjei .DLL vagy (ritkán) .DRV kiterjesztésűek voltak. Ha az MPlayernek nem sikerül lejátszani az AVI fájlodat egy ilyesmi üzenettel: UNKNOWN video codec: HFYU (0x55594648) Ez azt jelenti, hogy az AVI fájlod egy olyan codec-kel lett elkódolva, aminek HFYU a fourcc-je (HFYU = HuffYUV codec, DIV3 = DivX Low Motion, stb.). Most, hogy már tudod ezt, meg kell keresned, melyik DLL-t tölti be a Windows ennek a fájlnak a lejátszásához. A mi esetünkben, a system.ini tartalmazza ezt az információt ebben a sorban: VIDC.HFYU=huffyuv.dll Szükséged lesz a huffyuv.dll fájlra. Figyelj rá, hogy az audio codec-ek MSACM prefix-szel vannak megadva: msacm.l3acm=L3codeca.acm Ez az MP3 codec. Most már minden szükséges információval rendelkezel (fourcc, codec fájl, példa AVI), küldd be a codec támogatási kérésedet egy levélben és töltsd fel ezket a fájlokat az FTP-re: ftp://upload.mplayerhq.hu/MPlayer/incoming/[codecneve]/ Windows NT/2000/XP alatt a regisztrációs adatbázisban keresd ezeket az információkat, pl. keress rá a "VIDC.HFYU"-ra. Hogy ezt hogy tudod megcsinálni, nézd meg a régi DirectShow módszert lejebb. DirectShow codec-ek A DirectShow egy újabb Videó API, ami még rosszabb, mint az elődje. A dolgok nehezebben mennek a DirectShow-val, mivel a system.ini nem tartalmazza a megfelelő információkat, azok a regisztrációs adatbázisban vannak és szükségünk van a codec GUID-jére. Új módszer: A Microsoft GraphEdit használatával (gyors) Szedd le a GraphEdit-et a DirectX SDK-ból vagy a doom9-ről. Indítsd el a graphedit.exe-t. A menüben válaszd ki a Graph -> Insert Filters menüpontot. Nyisd ki a DirectShow Filters elemeit. Válaszd ki a megfelelő codec nevet és nyisd ki. A DisplayName bejegyzésben nézd meg a francia zárójelek között lévő karakterláncot és írd le (öt vonallal elválasztott blokk, a GUID). A codec bináris a Filename bejegyzésben megadott fájl. Ha nincs Filename és a DisplayName olyasmit tartalmaz, hogy device:dmo, akkor ez egy DMO-Codec. Régi módszer: Végy egy nagy levegőt és kezdj keresni a regisztrációs adatbázisban... indítsd el a regedit-et. Nyomd meg a Ctrl+F, kapcsold ki az első két kijelölő dobozd és engedélyezd a harmadikat. Írd be a codec fourcc-jét (pl. TM20). Egy mezőt kell látnod, ami az elérési utat és a fájl nevét tartalmazza (pl. C:\WINDOWS\SYSTEM\TM20DEC.AX). Most, hogy megvan a fájl, a GUID-t kell megkeresni. Próbáld újra a keresést, de most a codec nevére keress, ne a fourcc-re. A nevét a Media Player kiírja a fájl lejátszása közben, ha megnézed a File -> Properties -> Advanced fület. Ha mégsem, akkor így jártál. Próbáld meg kitalálni (pl. keress rá a TrueMotion-ra). Ha megvan a GUID, látnod kell egy FriendlyName és egy CLSID mezőt. Írd le a 16 bájtos CLSID-t, ez a GUID, ami kell. Ha nem sikerült a keresés, próbáld meg bekapcsolni az összes kijelölő dobozt. Ekkor kaphatsz hamis találatokat, de talán szerencséd lesz... Most, hogy már megvan minden szükséges információ (fourcc, GUID, codec fájl, példa AVI), küldd el a codec támogatási kérelmedet levélben és töltsd fel a fájlokat az FTP-re: ftp://upload.mplayerhq.hu/MPlayer/incoming/[codecneve]/ Ha saját magad szeretnél beépíteni egy codec-et, olvasd el a DOCS/tech/codecs.conf.txt fájlt.