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ásIntra: 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 VBVJelenet vágás detektálásaAdaptív B-kocka elhelyezésB-kocka mint referencia / önkényes képkocka
sorrend8x8 é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, 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 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 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/<codecname>/
Ha saját magad szeretnél beépíteni egy codec-et, olvasd el a
DOCS/tech/codecs.conf.txt
fájlt.