Codec-ekVideó 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
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.
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):
cvs -z3 -d:pserver:anonymous@cvs.xvid.org:/xvid logincvs -z3 -d:pserver:anonymous@cvs.xvid.org:/xvid co xvidcorecd 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.
x264Mi 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ágaiCAVLC/CABACTö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ásaAdaptí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ódEgyedi kvantálási matricákTöbb szelet párhuzamos kódolásaInterlacingMi 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
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.
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.
Audió codec-ekA 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 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,
Fedora RPM-ből pedig a Livna-ró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 bekapcsolásához töltsd le és telepítsd a függvénykönyvtárakat az
AMR-NB és AMR-WB-hez
az oldal utasításait követve.
Win32 codec importálási HOGYANVFW 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/<codecname>/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 lejjebb.
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
GraphInsert Filters-t.
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 CtrlF-et,
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
FilePropertiesAdvanced 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/<codecname>/
Ha saját magad szeretnél beépíteni egy codec-et, olvasd el a
DOCS/tech/codecs.conf.txt-t.