Tartalom
libcaca
- Színes ASCII Art függvénykönyvtárlibavcodec
codec családdalXviD
codec-kalx264
codec-kelHa ez az első találkozásod az MPlayer-rel, olvass el mindent innnentől egészen a Telepítés fejezet végéig, közben kövesed a linkeket. Ha van kérdésed, keress rá a tartalomjegyzékben, olvasd el a FAQ-t, vagy greppelj a file-okban. A legtöbb kérdésre fogsz választ találni, amire pedig nem, az nagy valószínűséggel már megválaszolásra került a levelezési listákon. Nézd meg az archivumot, mert rengeteg értékes információt tartalmaz.
Az MPlayer egy Linuxon működő videolejátszó (fut számos más Unix-on és akár nem-x86 processzorokon is, lásd Ports). Le tudja játszani a legtöbb MPEG, VOB, AVI, OGG/OGM, VIVO, ASF/WMA/WMV, QT/MOV/MP4, FLI, RM, NuppelVideo, yuv4mpeg, FILM, RoQ, PVA, és Matroska file-t, és ezekhez felsorakoztat jónéhány natív, XAnim, RealPlayer és Win32 DLL codecet. Nézhetsz vele VideoCD-t, SVCD-t, DVD-t, 3ivx, RealMedia, Sorenson, Theora és MPEG-4 (DivX) filmet is. Az MPlayer másik nagy előnye a megjelenítési módok széles választékában rejlik. Működik X11, Xv, DGA, OpenGL, SVGAlib, fbdev, AAlib, libcaca, DirectFB, sőt SDL-lel vagy GGI-vel is (beleértve ezáltal az SDL/GGI drivereit is), és néhány alacsonyszintű kártyaspecifikus vezérlő (Matrox, 3dfx, Radeon, Mach64, Permedia3) is használható! Legtöbbjük támogat szoftveres vagy hardveres nagyítást, így a teljesképernyős mód is elérhető. Az MPlayer támogat továbbá hardveres MPEG kártyákkal történő dekódolást/megjelenítést, így például a DVB és DXR3/Hollywood+ kártyákon! És még nem is szóltam a szép, élsímított, árnyékolt feliratozásról (14 támogatott típus!), ami támogat európai/ISO-88592-1,2 (magyar, angol, cseh, stb), cirill és koreai fontokat, valamint OSD-t!
A lejátszó sziklaszilárdan játszik le hibás MPEG file-okat (hasznos néhány VCD-nél), és minden olyan hibás AVI-t, amit a csodás Windows Media Player nem. Még az index chunk nélküli AVI-k is lejátszhatók, sőt az indexet ideiglenesen fel is lehet építeni az -idx opcióval (vagy véglegesen a MEncoderrel), így tekerni is lehet bennük! Amint az látszik, a stabilitás és a minőség a legfontosabb szempontok, de a sebesség terén sem szenved hátrányt. Valamint rendelkezik egy szűrő rendszerrel is a videó-audió szerkesztéshez.
Az MEncoder (MPlayer's Movie
Encoder) egy egyszerű film kódoló, az MPlayer által
ismert formátumok
(AVI/ASF/OGG/DVD/VCD/VOB/MPG/MOV/VIV/FLI/RM/NUV/NET/PVA)
más, az MPlayerrel is lejátszható formátumokba való
átalakításra. Sokféle codec-kel tud kódolni, például MPEG-4 (DivX4)-gyel
(egy vagy két menetes), a libavcodec
-et
alkotó codec-ekkel, audiót tekintve pedig
PCM/MP3/VBR MP3 a választék.
Az MEncoder előnyei
libavcodec
által támogatott összes formátumba tud tömöríteni
VBR MP3 audió
a VBR-es MP3-akat nem minden Windows rendszerre elérhető lejátszó kezeli helyesen!
Tervezett funkciók
Az MPlayer és MEncoder a GNU General Public License v2 értelmében terjeszthető.
Egy éve kezdődött... Nagyon sok lejátszót kiprobáltam Linux alatt (mtv, xmps, dvdview, livid/oms, videolan, xine, xanim, avifile, xmmp), de mind ugyanazokkal a problémákkal küzdött. Többnyire a különleges file-okkal, vagy a hang/kép szinkronnal. Legtöbbjük képtelen mind MPEG-1, MPEG-2 és AVI (DivX) lejátszására. Sokuknak gondjuk van a képminőséggel, vagy a sebességgel is. Elhatároztam, hogy (át)írok egyet...
A'rpi, 2001
mpg12play v0.1-v0.3: 2000. szeptember 22-25.
Az első probálkozás, fél óra alatt összerakva! A libmpeg3-at használtam a http://www.heroinewarrior.com-ról egészen a 0.3-as verzióig, de minőségi és sebességi problémák voltak vele.
mpg12play v0.5-v0.87: 2000. szeptember 28.-október 20.
Az MPEG codec helyáre a DVDview-et (Dirk Farin) tettem, nagyszerű dolog volt, de lassú és C++-ban készült (Árpi útálja a C++-t!!!)
mpg12play v0.9-v0.95pre5: 2000. október 21.-november 2.
Az MPEG codec itt az Aaron Holtzman és Michel Lespinasse által készített libmpeg2 (mpeg2dec). Nagyon jó, optimalizált, gyors C kód, tökéletes képminőség és 100%-osan megfelel a szabványnak.
MPlayer v0.3-v0.9: 2000. november 18.-december 4.
Egyvelege két programnak: mpeg12play v0.95pre6 és az új, egyszerű AVI lejtászómnak ('avip'), ami az avifile Win32 DLL loaderén alapszik.
MPlayer v0.10: 2001. január 1.
MPEG és AVI lejátszó egyetlen programban!
MPlayer v0.11pre sorozat:
Néhány új fejlesztővel a csapatban, innentől az MPlayer csapatmunka! ASF támogatás megjelenése és OpenDivX (lásd http://www.projectmayo.com) kódolás/dekódolás.
MPlayer v0.17a "The IdegCounter" 2001. április 27.
A 0.11pre sorozat végső verziója, 4 hónapnyi kökemény fejlesztés után! Probáld ki és ess ámulatba! Ezernyi új dolog... és persze a régi kód feljavítva, bugok eltávolítva, stb.
MPlayer 0.18 "The BugCounter" 2001. július 9.
2 hónap telt el a 0.17 óta, és itt az újabb release... Teljes ASF támogatás, még több felirat formátum, libao megjelenése (mint libvo, csak ez audio-ra), és még stabilabb, mint valaha, satöbbi! Kötelező darab!
MPlayer 0.50 "The Faszom(C)ounter" 2001. október 8.
Hmm. Újra release. Néhény tonna új funkció, béta verzióju GUI, hibajavítások, új vo és ao meghajtók, Linuxon kívül sok más támogatott rendszer, nyílt forráskódú DivX kodek, és még rengeteg más. Probáld ki!
MPlayer 0.60 "The RTFMCounter" 2002. január 3.
MOV/VIVO/RM/FLI/NUV formátumok támogatása, natív CRAM, Cinepak, ADPCM codec-ek, XANim bináris codec-einek támogatása; DVD feliratok, az MEncoder első verziója, grabbelés TV-ről, cache, liba52, rengeteg javítás.
MPlayer 0.90pre10 "The BirthdayCounter" 2002. november 11.
Bár ez nem egy release, azért megemlítem, tekintve, hogy pont az MPlayer 2 éves évfordulóján jött ki. Boldog születésnapot, MPlayer!
MPlayer 0.90rc1 "The CodecCounter" 2002. december 7.
Megintcsak nem release, de most, hogy bekerült a Sorenson 3 (QuickTime) és Windows Media 9 támogatás, az MPlayer a világ első lejátszója mely egyszerre támogatja az összes videoformátumot!
MPlayer 0.90 "The CounterCounter" 2003. április 6.
Több mint 1 év után megint úgy döntöttünk, hogy a kód stabilítása megfelel egy release-hez. Sajnálatos módon viszont még a verziószámot is elfelejtettük átírni rc5-ről, és egyéb idegesítő hibákra is fény derült.
MPlayer 0.91 2003. augusztus 13.
A fent említett és számos más hiba is kijavításra került. Ez a legújabb stabil kiadás.
MPlayer 1.0pre1 "Development on the beach" 2003. szeptember 1.
Habár ez sem stabil kiadas, azért említeném meg, mert ez az első tagja az MPlayer 1.0-ás sorozatának. A kiadás hivatott a nagy hibavadászatot elősegíteni. Ez egy nagy előrelépés.
MPlayer 1.0 dátum ismeretlen
Egy rövid telepítési leírást találsz a README fájlban. Kérlek először azt olvasd el, és utána gyere vissza ide, hogy megtudd a részleteket!
Ebben a fejezetben megpróbállak végigvezetni az MPlayer fordításának és beállításának menetén. Nem egyszerű, de nem is észveszejtően nehéz. Ha nálad máshogy viselkednek a dolgok, mint ahogy itt le van írva, nézd végig ezt a dokumentációt és (remélhetőleg) megtalálod a választ. Ha linkeket látsz, kövesd őket és olvasd el figyelmesen a tartalmukat. Időbe fog kerülni, de MEGÉRI.
Nem árt, ha vmi újabb rendszered van. Linuxon a 2.4.x-es kernel javasolt.
binutils - javasolt verzió: 2.11.x. Ez a program felelős az MMX/ 3DNow!/stb utasítások generálásáért, így nagyon fontos!
gcc - javasolt verziók: 2.95.3
(esetleg 2.95.4) és 3.2+.
SOHA ne használd a 2.96-ot vagy a 3.0.x-et! Hibás
MPlayer kódot generálnak. Ha úgy döntesz, hogy lecseréled
a 2.96-os gcc-det, csak azért ne tegyél fel 3.x-est, mert újabb! A 3.x korai kiadásai
még több hibát tartalmaztak, mint a 2.96. Tehát vagy állj vissza 2.95.x-re
(és cseréld le a libstdc++
-t is,
más programoknak szükségük lehet rá) vagy ne frissíts/tegyél vissza semmit (de ebben az
esetben készülj fel futási problémákra). Ha a 3.x-re szavazol, próbáld a legújabb
verziót használni, a korai kiadásoknak számtalan hibájuk volt, így győződj meg róla,
hogy legalább 3.1-eset használsz, ami ki lett próbálva és működik. Ha további infókat
szeretnél a 2.96-os gcc hibáiról (amik még mindig NEM lettek kijavítva, csak meg lettek
kerülve az MPlayerben!), nézd meg a FAQ
2.96-os gcc-re vonatkozó részét!
XFree86 - javasolt verzió: mindig a legújabb (4.3). Mindenki ezt akarja, mivel a 4.0.2-es XFree86-tól benne van az XVideo kiterjesztés (néhol Xv-ként hivatkoznak rá), ami szükséges a hardveres YUV gyorsítás engedélyezéséhez (gyors képmegjelenítés) azokon a kártyákon, amik támogatják. Győződj meg róla, hogy a fejlesztői csomagja is telepítve van, különben nem fog működni. Néhány videó kártyához nem kell XFree86. A listát lásd lejjebb.
make - javasolt verzió: mindig a legújabb (legalább 3.79.x-es). Ez legtöbbször nem olyan fontos.
SDL - nem feltétlenül szükséges, de segíthet pár esetben (hibás audió, videó kártya, ami késik az xv vezérlővel). Mindig használd a legújabbat (1.2.x-től kezdve).
libjpeg - választható JPEG dekódoló, az -mf kapcsoló használja és néhány QT MOV fájl. Hasznos mind az MPlayer, mind a MEncoder szempontjából, ha jpeg fájlokkal akarsz dolgozni.
libpng - szükséges és az alapértelmezett (M)PNG dekóder. Kell a GUI-hoz is. Használja az MPlayer és a MEncoder is.
lame - javasolt, szükséges MP3 audió MEncoderrel történő kódolásához, a javasolt verzió mindig a legújabb (de legalább 3.90).
zlib - javasolt, szükséges a tömörített MOV fejlécekhez és a PNG támogatáshoz.
libogg - választható, szükséges az OGG formátumú fájlok lejátszásához.
libvorbis - választható, szükséges az OGG Vorbis audiók lejátszásához.
LIVE.COM Streaming Media - választható, szükséges az RTSP/RTP folyamok lejátszásához.
directfb - választható, elérhető itt: http://www.directfb.org. Legalább 0.9.13-as szükséges.
cdparanoia - választható, szükséges a CDDA támogatáshoz
libfreetype - választható, TTF betűtípusok támogatásához kell. Legalább 2.0.9-es szükséges.
libxmms - választható, XMMS input plugin támogatáshoz kell. Legalább 1.2.7-es szükséges.
libsmb - választható, Samba támogatáshoz kell.
ALSA - választható, az ALSA audió kimenet támogatásához. Legalább 0.9.0rc4 szükséges.
bio2jack - választható, a JACK audió kimenet támogatásához kell, de csak a fordítás alatt. Beszerezheted a http://bio2jack.sf.net címről. Mivel nincs install opciója, kézzel kell bemásolnod a libbio2jack.a fájlt valahova a függvénykönyvtárakat tartalmazó könyvtáradba (pl. /usr/local/lib) vagy használnod kell a --with-bio2jack=DIR kapcsolót, hogy megmondd a ./configure scriptnek, hol van a fájl.
libavcodec
:
Ez a codec csomag a H.263/MJPEG/RV10/DivX3/DivX4/DivX5/MP41/MP42/WMV1/WMV2/SVQ1/SVQ3 kódolású videó
folyamokat és a WMA (Windows Media Audio) v1/v2 audió folyamokat tudja visszakódolni több platformon.
Mindezt az elérhető programok közül ő végzi a leggyorsabban is. Lásd az
FFmpeg bekezdést a részletekért. Jellemzők:
Win32 codecek: Ha x86-os gépen akarod használni az MPlayert, valószínűleg szükséged lesz rájuk. Töltsd le egy codec csomagot a codec oldalunkról és tedd be a codec-eket a /usr/local/lib/codecs könyvtárba az MPlayer fordítása ELŐTT, különben nem lesz befordított Win32 támogatásod!
Az avifile projektnek hasonló codec csomagja van, de az különbözik a mienkétől, így ha minden támogatott codecet használni akarsz, akkor a mi csomagunkra van szükséged (ne aggódj, az avifile-é is probléma nélkül működik).
Jellemzők:
libavcodec
nek van nyílt forrású dekódolója
ehhez.
QuickTime codecek: x86-os platformokon ezek a codecek az RPZA, egyébb QuickTime videók és QDesign audió folyamok lejátszására használható. A telepítéső útmutatók a Sorenson video codec részben találhatóak.
DivX4/DivX5: erről a codecről a információkat a
DivX4/DivX5 részben találhatsz. Valószínűleg nincs
szükséged erre a codecre, mert a
libavcodec
(lásd fent) sokkal
gyorsabb és jobb minőséget biztosít, mint ez, mind kódolásban, mind visszakódolásban.
Jellemzők:
libavcodec
-kel!
XviD: Nyílt forráskódú, alternatív kódoló a DivX4Linux mellett. Jellemzők:
Az XAnim codecek a legjobbak (teljes képernyő, hardveres YUV nagyítás) a 3ivx és Indeo 3/4/5 filmek dekódolásához, és néhány régi formátumhoz. Ráadásul multiplatformos, így ez az egyetlen lehetőség az Indeo fájlok lejátszására nem-x86-os platformokon (nos, legalábbis az XAnim használatán kívül :). De például a Cinepak filmeket legjobb az MPlayer saját Cinepak dekódolójával lejátszani!
Az Ogg Vorbis audió dekódoláshoz helyesen
telepített libvorbis
kell.
A bináris csomagokat és a forráskódot beszerezheted az
Ogg Vorbis oldaláról
MPlayer tudja használni a RealPlayer 8 vagy a RealONE függvénykönyvtárait a RealVideo 3.0 és 4.0 videók lejátszásához, és a Sipro/Cook audióhoz. Lásd a RealMedia fájl formátumok részt a telepítési útmutatóért és egyébb információkért.
Két nagy típusa van a videó kártyáknak. Az egyik (az újabbak) tudják a hardveres méretezést és YUV gyorsítást, a másik nem.
A képet bármilyen méretben meg tudják jeleníteni és átméretezni (nagyítani), ami belefér a memóriájukba, kevés CPU használattal (még nagyításnál is), így a teljes képernyős vetítés szép és nagyon gyors.
Matrox G200/G400/G450/G550 kártyák: bár van Vidix vezérlő hozzájuk, inkább az mgs_vid modult használd, sokkal jobban működik. Nézd meg az mga_vid részt a telepítéséhez és használatához! Fontos, hogy az ott leírtakat az MPlayer fordítása előtt végezd el, különben nem lesz beépített mga_vid támogatásod. Szintén nézd meg a Matrox TV-kimenet részt! Ha nem használsz Linux-ot, csak a VIDIX vezérlőben bízhatsz: olvasd el a VIDIX részt.
3Dfx Voodoo3/Banshee kártyák: nézd meg a tdfxfb részt, ha nagy sebességnövekedést akarsz elérni! Fontos, hogy az ott leírtakat az MPlayer fordítása előtt végezd el, különben nem lesz beépített 3Dfx támogatásod. Szintén nézd meg a 3dfx TV-kimenet részt! Ha X-et használsz, legalább 4.2.0-est használj, mert a 3dfx Xv vezérlő a 4.1.0 és korábbi verziókban hibás volt.
ATI kártyák: VIDIX vezérlő elérhető a következő kártyákhoz: Radeon, Rage128, Mach64 (Rage XL/Mobility, Xpert98). Nézd meg a TV-out dokumentáció ATI kártyákra vonatkozó részét, hogy megtudd a kártyád TV-kimenete támogatott-e a Linux/MPlayer alatt!
S3 kártyák: a Savage és Virge/DX chip-eknek van hardveres gyorsításuk. Használj olyan friss XFree86-ot, amilyet csak tudsz, a régebbi vezérlők hibásak. A Savage chip-eknek problémáik vannak a YV12 megjelenítéssel, lásd az S3 Xv részt a részletekért. Régebbi, Trio kártyákban nincs vagy lassú a hardveres támogatás.
nVidia kártyák: talán jó választás a videó lejátszáshoz, talán nem. Ha nincs GeForce2 (vagy újabb) kártyád, valószínűleg nem fog menni hiba nélkül. Az XFree86 beépített nVidia vezérlője nem minden kártyán támogatja a hardveres YUV gyorsítást. Le kell töltened az nVidia zárt forrású vezérlőjét az nVidia.com-ról. Nézd meg az nVidia Xv vezérlő fejezetet bővebb információkért! Szintén nézd meg az nVidia TV-kimenet részt ha TV-t is akarsz használni.
3DLabs GLINT R3 és Permedia3: VIDIX vezérlő van hozzá (pm3_vid). Kérlek olvasd el a VIDIX fejezetet bővebb infókért!
Egyéb kártyák: nincs a fentiekben?
A teljes képernyős lejátszás vagy a szoftveres méretezés engedélyezésével (használd a -zoom vagy a -vf kapcsolót, de figyelmeztetlek: lassú lesz), vagy egy kisebb, pl. 352x288-as felbontásra való átváltással lehetséges. Ha nincs YUV gyorsításod, az utóbbi módszer javasolt. A videó mód váltást a -vm kapcsolóval engedélyezheted, mely a következő vezérlőkkel működik:
GD 7548: alaplapi vezérlő, Compaq Armada 41xx notebook sorozatban tesztelve.
clgenfb
kernel vezérlővel tudod
bekapcsolni, de nekem csak 8bpp-ben működött, így használhatatlan.
A clgenfb forrását ki kell egészíteni a 7548 ID-vel fordítás előtt.
Döntsd el, hogy szükséged van-e GUI-ra. Ha igen, akkor nézd meg a GUI fejezetet a fordítás előtt!
Ha telepíteni akarod a MEncodert is (a nagyszerű, mindent tudó kódolónkat), nézd meg a MEncoder részt!
Ha V4L kompatibilis TV tuner kártyád van, és nézni/grabbelni vagy kódolni szeretnél filmeket az MPlayerrel, olvasd el a TV bemenet fejezetet.
Roppant jól sikerült OSD Menü támogatás vár használatra. Lásd az OSD menü fejezetet!
Mindezek után fordítsd le az MPlayert:
./configure make make install
Ezek után az MPlayer máris használatra kész. A $PREFIX/share/mplayer könyvtárban van a codecs.conf fájl, ami a codec-eket és azok tulajdonságait írja le a programnak. Ez a fájl csak akkor kell, ha meg akarod változtatni a képességeit, egyébként nem, mert a binárisban van egy másolat róla. Ellenőrizd le, hogy van-e codecs.conf nevű fájlod a home könyvtáradban (~/.mplayer/codecs.conf), melyet régebbi MPlayer verziók hagyhattak ott, és ha van, töröld le!
Vedd figyelembe, hogy ha van egy codecs.conf fájlod a ~/.mplayer/ könyvtárban, a beépített és a fő codecs.conf teljesen figyelmen kívül lesz hagyva. Ne használd ezt, hacsak nem akarsz trükközni az MPlayerrel, mivel ez sok problémát okozhat. Ha meg akarod változtatni a codec-ek keresési sorrendjét, használd a -vc, -ac, -vfm, vagy -afm kapcsolókat akár a parancssorban akár a konfigurációs fájlban (lásd man oldal).
A Debian használók .deb csomagot is készíthetnek maguknak, roppant egyszerűen. Csak futtasd a
fakeroot debian/rules binary
parancsot az MPlayer főkönyvtárában. Lásd a Debian csomagolás fejezetet bővebb információkért!
Mindig nézd végig a ./configure kimenetét, és a configure.log fájl, melyek információkat tartalmaznak arról, hogy mi is lesz lefordítva és mi nem. Szintén tanácsos megnézni a config.h és config.mak fájlokat. Ha van olyan telepített függvénykönyvtárad, amit a ./configure mégsem talált meg, ellenőrizd, hogy a megfelelő fejléc fájlok (általában a -dev csomagokban vannak) is elérhetőek-e, és egyező verziójúak. A configure.log fájl legtöbbször megmondja, hogy mi hiányzik.
Bár nem kötelező, de a betűtípusoknak telepítve kell lenniük, hogy az OSD és a feliratozás működjön. A javasolt eljárás, hogy telepíted a TTF betűkészletet, majd megmondod az MPlayernek, hogy használja azt. Lásd a Feliratok és az OSD részt bővebben.
A GUI-hoz GTK 1.2.x vagy GTK 2.0 kell (nem teljesen GTK-s, de a panelek igen).
A skinek sPNG formátumúak, így telepített GTK, libpng
(és a fejlesztői cuccok, amik általában gtk-dev
és libpng-dev
néven futnak) szükséges.
A ./configure-nak az --enable-gui kapcsoló
megadásával írhatod elő, hogy GUI-t is készítsen. Ezután ha a GUI-s változatot
akarod futtatni, akkor a gmplayer binárist kell elindítanod.
Jelenleg a -gui opció technikai okokból nem használható a parancssorban.
Mivel az MPlayer nem rendelkezik beépített skin-nel,
le kell töltened őket, ha a GUI-t használni akarod. Lásd a letöltési oldalt.
Ajánlott egy rendszerszinten elérhető könyvtárba tenni őket ($PREFIX/share/mplayer/Skin), vagy a $HOME/.mplayer/Skin-be.
Az MPlayer ezekben a könyvtárakban
keres egy default nevű alkönyvtárat, amelyben
az alapértelmezett skin van. Megadhatsz más könyvtárat is a
-skin newskin
kapcsolóval vagy a
skin=newskin
sorral a konfigurációs fájlban, és ekkor a
*/Skin/newskin könyvtárban lévő skin lesz
használatban.
Az MPlayer feliratokat is meg tud jeleníteni a filmekkel együtt. Jelenleg a következő formátumok támogatottak:
Az MPlayer az előzőleg felsorolt felirat formátumokat (az első három kivételével) át is tudja konvertálni az alábbi formátumokba, a megadott kapcsolókkal:
MPsub: -dumpmpsub
SubRip: -dumpsrtsub
MicroDVD: -dumpmicrodvdsub
JACOsub: -dumpjacosub
Sami: -dumpsami
A MEncoder el tudja menteni a DVD feliratokat VOBsub formában.
A parancssori kapcsolók eléggé különböznek az az egyes formátumoknál:
VOBsub feliratok.
A VOBsub feliratok egy nagy (néhány megabájtos) .SUB fájlból
és opcionálisan egy .IDX és/vagy .IFO
fájlból állnak. Ha olyan fájlaid vannak, hogy
sample.sub
,
sample.ifo
(opcionális),
sample.idx
- meg kell adnod az
MPlayernek a -vobsub sample
[-vobsubid id
] kapcsolót
(teljes elérési út is megadható). A -vobsubid kapcsoló olyan,
mint a -sid a DVD-knél, segítségével felirat sávok (nyelvek)
közül választhatsz. Abban az esetben, ha elfelejted a -vobsubid
kapcsolót, az MPLayer a -slang kapcsolóval
megadott nyelveket próbálja használni, és a langidx
-re ugrik
az .IDX fájlban, hogy beállítsa a felirat nyelvét. Ha ez nem
sikerül, nem lesz felirat.
Egyéb feliratok.
A többi formátum egy sima szöveges fájlból áll, mely tartalmazza az időzítést,
a pozícionálást és a szöveget. Használata: ha van egy olyan fájlod, mint pl.
sample.txt
,
akkor a -sub sample.txt
kapcsolóval
tudod megadni (teljes elérési út is megadható).
Felirat időzítés és pozícionálás beállítása:
mp
mp
másodperccel.
Lehet negatív is. Az érték a film időpozíciójának számlálójához adódik hozzá.
RÁTA
0-100
Ha MicroDVD felirat fájl használa közben egyre növekvő csúszást tapasztalsz a film és a felirat között, akkor a legvalószínűbb, hogy a film és a felirat frame rátája különböző. Jegyezd meg, hogy a MicroDVD felirat formátum abszolút képkocka számokat használ az időzítéshez, és nincs benne fps információ, emiatt a -subfps kapcsoló használata javasolt ezzel a formátummal. Ha végleg meg akarod oldani ezt a problémát, kézzel kell átkonvertálnod a felirat fájl frame rátáját. Az MPlayer el tudja végezni ezt a konverziót neked:
mplayerdummy.avi
-fps subtitles_fps -subfps avi_fps [-subdelay sec] [-sub subtitle_filename]-dumpmicrodvdsub
mplayer -dumpmicrodvdsub -fpssubtitles_fps
-subfpsavi_fps
-subsubtitle_filename
dummy.avi
A DVD feliratokról a DVD fejezetben olvashatsz bővebben.
Az MPlayer egy új felirat formátumot is bevezetett, amit MPsubnak hívnak. Gabucino tervezte. A legfontosabb tulajdonsága, hogy dinamikus idő-alapú (habár használható képkocka-alapú módban is). Példa (DOCS/tech/mpsub.sub):
FORMAT=TIME # első szám : ennyi másodpercet várjon az előző felirat eltűnése után # második szám : ennyi másodpercig mutassa az aktuális feliratot 15 3 Réges régen... 0 3 egy nagyon távoli galaxisban... 0 3 Naboo támadás alatt állt.
Amint látod, a fő cél a felirat szerkesztésének/időzítésének/összeillesztésének/vágásának könnyítése volt. És ha - mondjuk - kapsz egy SSA feliratot, de rosszul van időzítve/késleltetve a te filmedhez képest, egyszerűen csak kiadod a következő parancsot:
mplayer dummy.avi
-sub source.ssa -dumpmpsub
Ekkor egy dump.mpsub fájl jön létre az aktuális könyvtárban, ami a forrás felirat szövegét tartalmazza, de MPsub formátumban. Ezután szabadon hozzáadhatsz/kivonhatsz másodperceket a feliratoknál.
A feliratok egy 'OSD', On Screen Display nevű technológia segítségével jelennek meg. OSD segítségével jelenik meg az idő, a hangerő sáv, a kereső sáv, stb.
Kell egy MPlayer betű csomag, hogy használni tudd az OSD/SUB jellemzőket. Sok helyről beszerezheted:
Használhatod a betű generátort, a TOOLS/subfont-c-t. Ez egy program, ami TTF/Type1/stb. formátumú betűket átkonvertálja mplayer betű csomaggá (olvasd el a TOOLS/subfont-c/README fájt a részletekért).
A GIMP betű generátor plugin-jét használod, amit TOOLS/subfont-GIMP néven találsz (megjegyzés: HSI RAW plugin is kell, lásd http://realtime.ssu.ac.kr/~lethean/index.php?pagename=MplayerKoreanFonts).
TrueType (TTF) betűket használsz, amik megfelelnek a freetype
függvénykönyvtárnak. 2.0.9 vagy újabb verzió kötelező! Így két lehetőséged van:
használod a -font /path/to/sample_font.ttf
kapcsolót és megadod a TrueType betűtípust minden alkalommal
készítesz egy szimlinket:
ln -s /path/to/sample_font.ttf
~/.mplayer/subfont.ttf
Ha az MPlayert fontconfig
támogatással fordítottad, a fenti módszerek nem fognak működni, helyettük
a -font egy fontconfig
betű nevet vár, alapértelmezett pedig a sans-serif betű lesz. Ha a
fontconfig
által ismert betűtípusok
listája érdekel, használd az fc-list parancsot! Például:
-font 'Bitstream Vera Sans'
Letölthetsz használatra kész betű csomagokat az MPlayer oldaláról. Megjegyzés: a jelenleg elérhető betűtípusok csak az ISO 8859-1/2 kódolást támogatják, de van néhány más (beleértve a koreai, orosz, ISO 8859-8 stb.) betűtípusokat a contrib/font könyvtárban az FTP szerveren, amit felhasználók készítettek.
A betű csomagoknak tartalmazniuk kell egy font.desc fájlt, ami leírja a Unicode betűk pozícióját a felirat szövegének aktuális kódlapján. A másik megoldás, ha a feliratok UTF-8 kódolást használnak, ekkor az -utf8 kapcsoló használata vagy a felirat fájl átnevezése <video_name>.utf formátumra és a film mellé másolása elegendő. A különböző kódlapokról UTF-8-ra történő kódolás a konwert vagy az iconv programok segítségével végezhető el.
1.1. táblázat - Néhány URL
URL | Megjegyzés |
---|---|
ftp://ftp.mplayerhq.hu/MPlayer/releases/fonts/ | ISO betűtípusok |
ftp://ftp.mplayerhq.hu/MPlayer/contrib/fonts/ | felhasználók által készített különböző betűtípusok |
http://realtime.ssu.ac.kr/~lethean/index.php?pagename=MplayerKoreanFonts | koreai betűk és RAW plugin |
Ha nem-TTF betűtípust választasz, csomagold ki a letöltött fájlt a ~/.mplayer vagy a $PREFIX/share/mplayer könyvtárba. Ezután nevezd át vagy szimlinkeld az egyik kicsomagolt könyvtárat font, névre, például:
ln -s ~/.mplayer/arial-24
~/.mplayer/font
Ez után egy órát kell látnod a film bal felső sarkában (kikapcsolhatod az o billentyűvel).
(a feliratok mindig engedélyezettek, kikapcsolásukhoz olvasd el a man oldalt)
Az OSD-nek 4 állapota van (o billentyűvel válthatsz):
Az alapértelmezett viselkedést az osdlevel
változó átállításával
állíthatod be a konfigurációs fájlban, vagy a -osdlevel kapcsolóval
a parancssorban.
Az MPlayernek az OSD Menüje teljesen igényre szabható.
a Tulajdonságok menü még NINCS KIFEJLESZTVE!
Telepítés
indítsd el az MPlayert az alábbi példa alapján:
$ mplayer -menu file.avi
Három fajta időzítési eljárás van az MPlayerben.
usleep()
függvényt használja az
A/V szinkronizáláshoz, +/- 10ms-es pontossággal. Van amikor ennél is pontosabb
szinkronizálás szükséges.
Az új időzítő kód az RTC-t (RealTime Clock)
használja, mert ennek pontos, 1 ms-es időzítői vannak. Automatikusan engedélyezett
lesz, ha elérhető, de root jogok vagy setuid root beállítása
az MPlayer binárisán vagy megfelelően beállított kernel
kell hozzá. Ha 2.4.19pre8 vagy későbbi kernelt használsz, beállíthatod a maximum
RTC frekvenciát a sima felhasználóknak a /proc
fájlrendszer segítségével. Használd ez a parancsot az RTC normál
felhasználók számára történő engedélyezéséhez:
echo 1024 > /proc/sys/dev/rtc/max-user-freq
Ha nincs ilyen új kerneled, egy sort kell megváltoztatnod a drivers/char/rtc.c fájlban és újrafordítani a kernelt. Keresd meg ezt a részt:
* We don't really want Joe User enabling more * than 64Hz of interrupts on a multi-user machine. */ if ((rtc_freq > 64) && (!capable(CAP_SYS_RESOURCE)))
és írd át a 64-et 1024-re! Tudd, hogy mit csinálsz! Az új időzítő eredményét a státusz sorban láthatod. Néhány sebesség-léptetéses (speedstep) CPU-val rendelkező notebook BIOS-ának energia takarékossági funkciói rosszul működnek együtt az RTC-vel. Elromolhat az audió és a videó szinkronizációja. Úgy tűnik, ha bedugod a hálózati csatlakozót, mielőtt bekapcsolnád a notebookot, az segít. Az RTC támogatást bármikor kikapcsolhatod a -nortc kapcsolóval. Néhány hardver összeállításban (ALi1541-es alaplapokkal használt nem DMA-s DVD meghajtók esetén erősítették meg) az RTC időzítő használata kihagyásokat okoz lejátszás közben. Ebben az esetben a harmadik módszer használata javasolt.
SOHA ne telepíts egy setuid root-os MPlayer binárist egy több-felhasználós rendszerben! Azzal bárki simán root lehet.
libcaca
- Színes ASCII Art függvénykönyvtárFontos, hogy eloszlassunk egy gyakori tévhitet. A legtöbben ha egy .AVI kiterjesztésű filmet látnak, rögtön arra következtetnek, hogy az nem egy MPEG fájl. Ez nem igaz. Legalábbis nem teljesen. Az átlagos véleménnyel ellentétben egy ilyen fájl tartalmazhat MPEG-1 videót.
Mint láthatod, egy codec nem ugyan az, mint egy fájl formátum. Például videó codec-ek ezek: MPEG-1, MPEG-2, MPEG-4 (DivX), Indeo5, 3ivx. De fájl formátumok ezek: MPG, AVI, ASF.
Elméletileg egy OpenDivX-es videót és MP3 audiót beletehetsz egy MPG formátumú fájlba. Habár a legtöbb lejátszó nem fogja lejátszani, mert MPEG-1-es videót és MP2-es audiót várnak (az AVI-val ellentétben az MPG nem rendelkezik a megfelelő mezőkkel a videó és audió folyamainak leírásához). Vagy tehetsz MPEG-1 videót is AVI fájlba. Az FFmpeg és a MEncoder tud készíteni ilyen fájlokat.
Az MPEG fájlok különböző alakúak lehetnek:
A képkockák sorozata független csoportokat alkot az MPEG fájlokban. Ez azt jelenti, hogy egy MPEG fájlt szabványos fájl eszközökkel (például dd, cut) vághatsz/összeilleszthetsz, úgy, hogy teljesen működőképes marad.
Az MPG-k egyik legfontosabb tulajdonsága, hogy van egy mezőjük, mely a videó folyam képarányát írja le. Például az SVCD-knek 480x480 felbontású videójuk van, a fejlécben ilyenkor ez a mező 4:3 arányra van állítva, ezért játszódnak le 640x480-ban. AVI fájlokban nincs ilyen mező, ezért ezeket újra kell méretezni a -aspect kapcsolóval kódolás vagy lejátszás közben.
A Microsoft tervezte, az AVI (Audio Video Interleaved) egy széles körben elterjedt, többcélú formátum, melyet jelenleg leginkább MPEG-4 (DivX és DivX4) videóknál használnak. Rengeteg ismert hátránya és hiányossága van (például stream-elésben). Támogat egy videó folyamot 0-99 audió folyammal, max 2 GB-ig, de van egy OpenDML kiterjesztés, amivel ennél nagyobb fájlok is kezelhetőek. A Microsoft már nem javasolja a használatát, és az ASF/WMV használatára buzdít. Nem mintha ez bárkit is érdekelne.
Van egy hack, aminek a segítségével az AVI fájlokban lehet Ogg Vorbis audió folyam is, de így inkompatibilisek lesznek a szabványos AVI-val. Az MPlayer le tudja játszani ezeket a fájlokat. A keresés is megoldott, de ezt egyszerűen gátolja a rosszul kódolt fájlok zavaros fejléce. Sajnos jelenleg az egyetlen kódoló program, ami tud ilyen fájlokat készíteni, a NanDub is küzd ezzel a problémával.
A DV kamerák készítenek nyers DV folyamokat, amit a DV grab-belő segédprogramja két különböző típusú AVI fájllá konvertál. Az AVI ezután vagy külön audió és videó stream-et fog tartalmazni, amit az MPlayer le tud játszani vagy nyers DV stream-et, aminek a támogatása még fejlesztés alatt van.
Kétfajta AVI fájl létezik:
Az MPlayer kétféle időzítést támogat az AVI fájlokhoz:
Bármelyik audió és videó codec engedélyezett, de vedd figyelembe, hogy a VBR audiót a legtöbb lejátszó nem támogatja. A fájl formátum lehetővé teszi a VBR audió használatát, de a legtöbb lejátszó CBR audiót vár, így elakadnak a VBR-ben. A VBR ritka és a Microsoft AVI specifikációi csak a CBR audiót írják le. Azt is észre lehet venni, hogy a legtöbb AVI kódoló/multiplexelő hibás fájlt készít VBR audió használatakor. Csak két ismert kivétel van: a NanDub és a MEncoder.
Az ASF (Active Streaming Format) szintén a Microsofttól származik. Az ASF-nek kétfajta verzióját készítették el, v1.0 és v2.0. A v1.0-t a saját média eszközeik használják (Windows Media Player és Windows Media Encoder) és nagyon titkos. A v2.0 nyilvános és szabadalmaztatott :). Természetesen különböznek, semmilyen kompatibilitás nincs köztük (ez is csak egy jogi játék). Az MPlayer csak a v1.0-t támogatja, mivel még soha senki sem látott v2.0 fájlokat :). Figyelj rá, hogy az ASF fájlok manapság .WMA vagy .WMV kiterjesztésűek.
Ezeket a formátumokat az Apple fejlesztette ki, és bármilyen codec-et tartalmazhatnak, CBR-t vagy VBR-t. Legtöbbször .QT vagy .MOV kiterjesztésük van. Megjegyzendő, hogy mióta az MPEG-4 csapat a QuickTime-ot választotta az MPEG-4 javasolt fájlformátumának, a MOV fájlaik .MPG vagy .MP4 kiterjesztéssel jönnek (Érdekes módon a videó és audió folyamok ezekben a fájlokban igazi MPG és AAC fájlok. Még ki is tudod őket csomagolni a -dumpvideo és -dumpaudio kapcsolókkal.).
A legtöbb új QuickTime fájl Sorenson videót és QDesign Music audiót használ. Lásd a Sorenson codec részt.
Az MPlayer örömmel demuxálja a VIVO fájl formátumokat. A legnagyobb hátránya a formátumnak az, hogy nincs index blokkja, sem fix csomag mérete vagy szinkron bájtja, és a legtöbb fájlban még a kulcs képkockák is hiányoznak, így felejtsd el a pörgetést!
A VIVO/1.0 fájlok videó codec-je szabványos h.263. A VIVO/2.0 fájlok videó codec-je módosult, nem szabványos h.263v2. Az audio ugyan az, valószínűleg g.723 (standard) vagy Vivo Siren.
Lásd a VIVO video codec és VIVO audio codec részeket a telepítési útmutatókért.
A FLI egy nagyon régi fájl formátum, melyet az Autodesk Animator használt, de gyakoran használják rövid animációkhoz a neten. Az MPlayer demuxálja és dekódolja a FLI filmeket és még keresni is tud bennük (hasznos a -loop kapcsolóval történő ciklikus lejátszásnál). A FLI fájlokban nincs kulcs képkocka, így a kép egy rövid időre zavaros lesz a keresés után.
Igen, az MPlayer tudja olvasni (demuxálni) a RealMedia (.rm) fájlokat. Itt vannak támogatott RealVideo és RealAudio codec-ek.
A NuppelVideo egy TV grab-belő eszköz (AFAIK:). Az MPlayer tudja olvasni a .NUV fájlait (csak NuppelVideo 5.0). Ezek a fájlok tartalmazhatnak tömörítetlen YV12, YV12+RTJpeg tömörített, YV12 RTJpeg+lzo tömörített és YV12+lzo tömörített képkockákat. Az MPlayer dekódolja (és kódolja a MEncoderrel MPEG-4-be (DivX)/stb.!) őket. A keresés működik.
A yuv4mpeg / yuv4mpeg2 egy az mjpegtools programok által használt fájlformátum. Grab-belheted, készíthetsz, szűrheted vagy kódolhatod az ilyen formátumú videókat ezekkel az eszközökkel. A fájl formátum igazából tömörítetlen YUV 4:2:0 képek sorozatából áll.
A RoQ fájlok multimédia fájlok, melyeket pár ID játék használ, pl. a Quake III és a Return to Castle Wolfenstein.
Ez egy új fájlformátum a Xiphophorus-tól.
Bármilyen videó és audió codec-et tartalmazhat, CBR vagy VBR. El kell végezned
a libogg
és a
libvorbis
telepítését az
MPlayer fordítása előtt, hogy le tudd játszani
ezeket a fájlokat.
Az SDP egy IETF szabványos formátum videó és/vagy audió RTP folyamok leírásához. ("LIVE.COM Streaming Media" szükséges.)
A PVA egy MPEG-szerű formátum, melyet a DVB TV kártyák szoftvere használ (pl.: MultiDec, WinTV Windows alatt).
NSV (NullSoft Video) egy a Winamp lejátszó által használt formátum audio és video stream-eléshez. A videó VP3, VP5 vagy VP6, az audió MP3, AAC vagy VLB. Az csak audiót tartalmazó fájlnak .nsa kiterjesztése van. Az MPlayer mindkét NSV folyamot és fájlt le tudja játszani. Meg szeretném jegyezni, hogy a Winamp oldalán a legtöbb fájl VLB audiót használ, amit nem lehet dekódolni még. Ezenkívül több stream az oldalon külön szétcsomagoló réteget igényel, amit még el kellene készíteni (ezek a fájlok úgyis lejátszhatatlanok, mert VLB audiót használnak).
A Matroska egy nyílt konténer formátum. További infók a hivatalos weboldalukon találhatóak.
A NUT az MPlayeres és az FFmpeges emberkék által kifejlesztett konténer formátum. Mindkét projekt támogatja. További infókat a hivatalos weboldalon olvashatsz.
A GIF egy gyakori web-es grafikus formátum.
Két verziója van a GIF specifikációnak, GIF87a és GIF89a. A fő különbség az,
hogy a GIF89a megengedi az animációt. Az MPlayer
támogatja mindkét formátumot a libungif
vagy
más libgif-kompatibilis függvénykönyvtár segítségével. A nem animált GIF-ek egy
képkockát tartalmazó videóként lesznek megjelenítve. (Használd a -loop
és a -fixed-vo kapcsolókat a hosszabb megjelenítéshez.)
Az MPlayer jelenleg nem támogatja a keresést a GIF fájlokban. A GIF fájlok nem szükségszerűen fix képkocka méretűek, sem fix framrátájúak. Inkább minden egyes képkocka független méretű és meghatározott helyzetű egy fix méretű mezőn. A framerátát egy opcionális blokk vezérli minden egyes képkocka előtt, ami leírja a következő képkocka késleltetését centisecundumokban.
A szabványos GIF fájlok 24-bites RGB képkockákat tartalmaznak legtöbbször egy 8-bites indexelt palettával. Ezeket a képkockák legtöbbször LZW-vel tömörítettek, habár néhány GIF kódoló tömörítetlen képkockákat készít, hogy elkerüljék az LZW tömörítés szabadalmának megsértését.
Ha a disztribúciódban nincs libungif
,
töltsd le a
libungif
weboldaláról. Bővebb technikai információkért vess egy pillantást a
GIF89a specifikációra.
Az MPlayer egy film és nem egy zene lejátszó, ennek ellenére le tud játszani néhány audió fájl formátumot (az alábbi részben vannak felsorolva). Nem javaslom az MPlayer ilyen formában történő használatát, jobb ha XMMS-t használsz.
Bizonyos MP3 MPlayerrel történő lejátszásakor problémáid lehetnek, mert rosszul, MPEG-ként ismeri fel és vagy rosszul vagy sehogy sem játsza le. Ez nem javítható anélkül, hogy ne törölnénk bizonyos sérült MPEG fájlok lejátszásának támogatását, így a belátható jövőben ez így is marad. A -demuxer kapcsoló, melyet a man oldal ír le, segíthet ezekben az esetekben.
Az MPlayer fel tudja használni a cdparanoia-t CDDA (Audio CD) lejátszásához. A cdparanoia jellemzőinek felsorolása átlépi ezen fejezet kereteit.
Lásd a man oldal -cdda kapcsolóra vonatkozó részét, melynek a segítségével kapcsolókat adhatsz tovább a cdparanoia-nak.
Az MPlayer fel tudja használni az XMMS bemeneti plugin-jeit több fájl formátum lejátszásához. Van plugin SNES játék hangok, SID hangok (Commodore 64), sok Amiga formátum, .xm, .it, VQF, musepack, Bonk, és számos egyéb lejátszásához. Megtalálhatóak az XMMS bemeneti plugin oldalán.
Ehhez a képességhez XMMS és ./configure --enable-xmms kapcsolóval fordított MPlayer kell. Ha ez nem működik, pontosan meg kell adnod az XMMS plugin és függvénykönyvtár elérési útvonalát a --with-xmmsplugindir és --with-xmmslibdir kapcsolókkal.
Nézd meg a codec státusz táblázatot a teljes, naponta generált listáért. Elég sok codec elérhető letöltésként a weboldalunkon. Szedd le őket a codec oldalról.
A legfontosabb dolgok:
libavcodec
-ből és
RealVideo 3.0 & 4.0 codec a RealPlayer
könyvtárak felhasználásával
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.
Ez a rész a Project Mayo DivX4 és DivX5 codec-jeiről tartalmaz információkat. AZ első elérhető alpha verziójuk az OpenDivX 4.0 alpha 47 és 48 volt. Ezek támogatása be volt építve az MPlayerbe régen, és alapértelmezésként be is lett forgatva. Használtuk az utófeldolgozó kódjukat is az MPEG-1/2 filmek képminőségének opcionális javításához. Most már a sajátunkat használjuk, minden típushoz.
Ennek a codec-nek az új generációját DivX4-nek hívják és még a hírhedt
DivX codec-kel készített filmek dekódolására is képes! Ráadásként sokkal
gyorsabb, mint a natív Win32 DivX DLL, de lassabb, mint a
libavcodec
.
Ezért ellenezzük a dekóderként
történő használatát. Kódoláshoz viszont hasznos. Az egyetlen hátránya
ennek a codec-nek, hogy nem elérhető Nyílt Forráskódú licensszel.
A DivX4 két módban működik:
A -vc odivx módszer általában gyorsabb, amiatt, hogy a kép adatait YU12 (planar YUV 4:2:0) formátumban viszi át, így sokkal kisebb sávszélesség kell neki az adatbuszon. A csomagolt YUV módok (YUY2, UYVY) a -vc divx4 módszert használják. Az RGB módoknál a sebesség ugyan akkora, csak az aktuális színmélységedhez történő alkalmazkodásukban különböznek.
Ha a -vo vezérlőd támogatja a direkt renderelést, akkor a -vc divx4 gyorsabb lehet vagy akár a leggyorsabb is.
A DivX4/5 bináris codec könyvtár letölthető az avifile-ról vagy a divx.com címről. Csomagold ki, futtasd az ./install.sh fájlt root-ként és ne felejtsd el beírni a /usr/local/lib könyvtárat az /etc/ld.so.conf fájlba, majd futtatni az ldconfig parancsot.
A RÉGI OpenDivX függvénykönyvtárnak a CVS verziója is letölthető:
cvs -d:pserver:anonymous@cvs.projectmayo.com:/cvsroot login
cvs -d:pserver:anonymous@cvs.projectmayo.com:/cvsroot co divxcore
Ez a fő függvénykönyvtár decore és encore könyvtárakra van osztva, amiket külön kell fordítani. A decore könyvtárhoz egyszerűen írd be:
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
Sajnos az encore könyvtárhoz nincs Linuxos Makefile és az MMX optimalizáció csak Windowson működik. De így is le tudod fordítani, ezen Makefile használatával.
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 megtalálja a DivX4/DivX5-öt ha az megfelelően van telepítve, csak fordítsd le úgy, mint máskor. Ha nem találja meg, nem telepítetted vagy nem állítottad be megfelelően.
Az FFmpeg egy nyílt forráskódú codec csomagot tartamaz, ami képes számos audió és videó codec-et tartalmazó folyam dekódolására. Lenyűgöző kódolási képességei is vannak, és gyorsabb mint a Win32 codec-ek a DivX.com DivX4/5 könyvtáraiban!
Rengeteg szép codec-et tartalmaz, különösen fontosak az MPEG-4 variánsok: DivX3, DivX4, DivX5, Windows Media Video 7/8 (WMV1/WMV2). Nagyon érdekes még a WMA dekódoló.
A legújabb említésre méltó codec a Sorenson 3 (SVQ3) codec. Ez az első, teljesen nyílt forráskódú implementáció. És még gyorsabb is, mint az eredeti. Győződj meg róla, hogy ezt használod a bináris codec helyett!
Az összes támogatott codec listájáért látogasd meg az FFmpeg weboldalát. Támogatott videó és audió codec-ek.
Ha egy MPlayer kiadást használsz, a
libavcodec
benne van a csomagban, csak fordítsd le a szokásos módon. Ha az
MPlayert CVS-ből szedted, ki kell csomagolnod
a libavcodec
-et az FFmpeg
CVS fájából, mivel az FFmpeg kiadások elég ritkán jönnek. A CVS
legtöbbször stabil és több funkciót nyújt. Mindez így hajtható végre:
cvs -d:pserver:anonymous@mplayerhq.hu:/cvsroot/ffmpeg login
cvs -z3 -d:pserver:anonymous@mplayerhq.hu:/cvsroot/ffmpeg co -P ffmpeg/libavcodec ffmpeg/libavutil
Mozgasd át a libavcodec és libavutil könyvtárakat az FFmpeg forrásából az MPlayer CVS fájának gyökérkönyvtárába. Valahogy így kell kinéznie: main/libavcodec main/libavutil
A szimbólikus link készítése nem elég, át kell másolnod/mozgatnod!
Ha azt szeretnéd, hogy a libavcodec
mindig frissüljön, amikor frissíted az MPlayer CVS-t,
írd be a következő sort a main/CVS/Entries fájlba:
D/libavcodec////
D/libavutil////
Fordíts. Ha baj van, a configure megtalálja még a fordítás előtt.
Az CVS-ből származó MPlayer tartalmaz egy
libavcodec alkönyvtárat, de ebben
nincs bent a
libavcodec
forrása!
Kövesd a fenti lépéseket a függvénykönyvtár forrásának beszerzéséhez.
Az FFmpeg-gel és a Matrox G400-as kártyámmal még a legnagyobb felbontású DivX filmeket is képkockák eldobása nélkül tudom nézni a K6-2 500 gépemen.
Hadd figyelmeztessünk, hogy az XAnim bináris codec-jeit egy kis szöveggel együtt csomagolják, amely egy legális szoftver licensz, és amely más megszorítások mellett megtiltja a a felhasználónak, hogy a codec-eket az XAnim-on kívül más programmal használja. Ennek ellenére az XAnim szerzői még senki ellen sem tettek jogi lépéseket codec-használat ügyben.
TELEPÍTÉS ÉS HASZNÁLAT. Az MPlayer képes az XAnim codec-ek dekódoláshoz történő felhasználására. Kövesd az utasításokat a bekapcsolásukhoz:
Töltsd le a kívánt codec-eket az XAnim oldaláról. A 3ivx codec nincs ott, az a 3ivx oldalon van.
VAGY töltsd le a codec csomagot a codec oldalunkról
Használd a --with-xanimlibdir kapcsolót, amivel
megmondhatod a configure-nak, hogy hol találhatóak az
XAnim codec-ek. Alapértelmezésben a
/usr/local/lib/codecs,
/usr/local/lib/xanim/mods,
/usr/lib/xanim/mods és
/usr/lib/xanim könyvtárakban keresi.
Alternatívaként az
XANIM_MOD_DIR
környezeti változó beállításával is
megadhatod az XAnim codec-ek könyvtárát.
Nevezd át/szimlinkelt a fájlokat, szedd ki az architektúra részeket, így ilyen fájlneveket kapsz, mint ezek: vid_cvid.xa, vid_h263.xa, vid_iv50.xa
Az XAnim egy videó codec család, amelynek a használatát, ha az lehetséges, a -vfm xanim kapcsolóval írhatod elő az MPlayernek.
Letesztelt codec-ek: Indeo 3.2, 4.1, 5.0, CVID, 3ivX, H.263.
Az MPlayer le tudja játszani a Vivo (1.0 és 2.0) videókat. Az 1.0-ás fájlokhoz leginkább az FFmpeg H.263 dekódere illik, ezt a -vc ffh263 kapcsolóval tudod használni. A 2.0-ás fájlokhoz használd a Win32 DLL-t a -vc vivo kapcsoló segítségével. Ha nem adsz meg kapcsolót a parancsorban, az MPlayer automatikusan kiválasztja a legjobb codec-et.
Az MPEG-1 és MPEG-2 a libmpeg2
többplatformos,
natív függvénykönyvtár segítségével kerülnek dekódolásra, aminek a forrása benne van
az MPlayerben. Le tudjuk kezelni a hibás MPEG-1/2
videó fájlokat is a Signal 11
elkapásával
(szegmentálási hiba
), és a codec gyors
újrainicializálásával, pontosan onnan folytatva, ahol a hiba keletkezett. Ennek
a javító technikának nincs mérhető sebességvesztesége.
Az MPlayer a legtöbb régi codec-kel készült AVI és MOV
fájlt le tudja játszani. Régen bináris Win32 codec-ekkel voltak dekódolva, de most
már natív codec-jeink vannak a legtöbbhöz a
libavcodec
-nek
hála.
Az MPlayer támogatja a RealVideo összes verziójának dekódolását:
libavcodec
-kel
Töltsd le a Real codec-eket a http://www.mplayerhq.hu/MPlayer/releases/codecs/ könyvtárból és csomagold ki a /usr/local/lib/codecs könyvtárba. Ha máshol akarod tárolni őket, add meg a --with-reallibdir kapcsolót a configure-nak.
A RealPlayer könyvtárak jelenleg csak Linux, FreeBSD, NetBSD és Cygwin alatt működnek x86-on, Alpha-n és PowerPC-n (a Linux/Alpha és Linux/PowerPC tesztelve lett) és Mac OS X-szel.
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 (most DivX5) 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.
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 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 --enable-divxcompat kapcsolót, másold át a ../../src/divx4.h fájlt a /usr/local/include/könyvtárba.
Fordítsd újra az MPlayert a
--with-xvidlibdir=/eleresi/ut/
libxvidcore.a
--with-xvidincdir=/eleresi/ut/
xvid.h
kapcsolókkal.
A Sorenson egy Sorenson Media által kifejlesztett videó codec, amit az Apple-nek licenszelnek, aki a QuickTime Player-ével terjeszti. Képesek vagyunk a Sorenson videó fájlok összes verziójának dekódolására a következő dekódolókkal:
libavcodec
)
libavcodec
)
MPLAYER FORDÍTÁSA QUICKTIME KÖNYVTÁRAK TÁMOGATÁSÁVAL
Jelenleg csak a 32-bit-es Intel platformok támogatottak.
Töltsd le az MPlayer CVS-t
Töltsd le a QuickTime DLL csomagot: http://www.mplayerhq.hu/MPlayer/releases/codecs/
Csomagold ki a QuickTime DLL-eket a Win32 codec könyvtáradba (alapértelmezett: /usr/local/lib/codecs/)
fordítsd le az MPlayert
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 és 4x4 az összes jóslással)
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, vagy többlépéses ABR
Jelenet vágás detektálása
Adaptív B-kocka elhelyezés
B-kocka mint referencia / önkényes képkocka sorrend
Kódolási korlátok
Nincs igazi RD
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.
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 CVS
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 CVS fájának web-es felületét.
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 CVS
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.
A legfontosabb audió codec-ek:
libavcodec
-kel)
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 -channels kapcsolót a kimeneti csatornák számának megadásához. A -channels 2 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 -channels 4 kapcsolót. Ebben az esetben, bármelyik középső csatorna egyenlően lesz elkeverve az elülső csatornákhoz. A -channels 6 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).
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 -ac hwac3 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.
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-é.
A támogatás bekapcsolásához add meg a --enable-mad configure kapcsolót.
A VIVO fájlokban használt audió codec attól függ, hogy VIVO/1.0 vagy VIVO/2.0 fájlról van-e szó. A VIVO/1.0 fájlok g.723 audiót tartalmaznak, a VIVO/2.0 fájlok pedig Vivo Siren audiót. Mindkettő támogatott.
Az MPlayer majdnem minden RealAudio verziót támogat:
liba52
biztosítja
A RealPlayer könyvtárak telepítési útmutatóját a RealVideo részben találod.
QDesign audió folyamok (fourcc:QDMC, QDM2) MOV/QT fájlokban találhatóak. Ezen codec mindkét verziója dekódolható a QuickTime könyvtárakkal. A telepítési útmutatóhoz olvasd el a Sorenson videó codec részt.
Qualcomm audio streams (fourcc:Qclp) MOV/QT fájlokban találhatóak. Dekódolhatóak a QuickTime könyvtárakkal. A telepítési útmutatóhoz olvasd el a Sorenson videó codec részt.
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 http://www.audiocoding.com 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 --enable-external-faad 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.
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://ftp.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.
A DirectShow egy újabb Videó API, ami még rosszabb, mint az elődje. A dolgok nehezebben mennek a DirectShow-val, mivel
Ú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
-> -> 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://ftp.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.
NAGYON javasoljuk, hogy ellenőrizd le, hogy az MTRR regiszterek megfelelően be vannak-e állítva, mert hatalmas teljesítményjavulást hozhatnak.
Írd be: cat /proc/mtrr:
--($:~)--
cat /proc/mtrr
reg00: base=0xe4000000 (3648MB), size= 16MB: write-combining, count=9
reg01: base=0xd8000000 (3456MB), size= 128MB: write-combining, count=1
Ez jó, mutatja a 16 MB memóriával rendelkező Matrox G400-as kártyámat. Ezt XFree 4.x.x-ből csináltam, ami automatikusan beállítja az MTRR regisztereket.
Ha semmi sem működik, kézzel kell beállítanod. Először meg kell találnod a bázis címet. 3 módszer van a megtalálására:
az X11 indulási üzeneteiből, például:
(--) SVGA: PCI: Matrox MGA G400 AGP rev 4, Memory @ 0xd8000000, 0xd4000000 (--) SVGA: Linear framebuffer at 0xD8000000
a /proc/pci fájlból (használd az lspci -v parancsot):
01:00.0 VGA compatible controller: Matrox Graphics, Inc.: Unknown device 0525 Memory at d8000000 (32-bit, prefetchable)
az mga_vid kernel vezérlő üzeneteiből (használd a dmesg-et):
mga_mem_base = d8000000
Ezután keresd meg a memória méretét. Ez nagyon egyszerű, csak számold át a videó RAM méretét hexadecimálisra, vagy használd ezt a táblázatot:
1 MB | 0x100000 |
2 MB | 0x200000 |
4 MB | 0x400000 |
8 MB | 0x800000 |
16 MB | 0x1000000 |
32 MB | 0x2000000 |
Már tudjuk a bázis címet és a memória méretét, hát állítsuk be az
MTRR regisztereket!
Például a fenti Matrox kártyánál (base=0xd8000000
)
32MB RAM-mal (size=0x2000000
) csak futtasd ezt:
echo "base=0xd8000000 size=0x2000000 type=write-combining" >| /proc/mtrr
Nem minden CPU-ban van MTRR. Például a régebbi K6-2 (266MHz körül, stepping 0) CPU-kban nincs MTRR, de a stepping 12-ben van (futtasd le a cat /proc/cpuinfo parancsot az ellenőrzéshez).
XFree86 4.0.2 vagy újabb alatt használhatod a kártyád YUV rutinjait az XVideo kiterjesztés használatával. Ez az, amit a '-vo xv' kapcsoló használ. Ez a vezérlő támogatja a fényerősség/kontraszt/árnyalat/stb. állítását (hacsak nem a régi, lassú DirectShow DivX codec-et használod, ami mindenhol támogatja), lásd a man oldalt.
A beüzemeléséhez ellenőrizd a következőket:
XFree86 4.0.2 vagy újabbat kell használnod (korábbi verziókban nincs XVideo)
A kártyádnak támogatnia kell a hardveres gyorsítást (a modern kártyák tudják)
Az X-nek írnia kell az XVideo kiegészítés betöltését valahogy így:
(II) Loading extension XVideo
a /var/log/XFree86.0.log fájlban.
Ez csak az XFree86 kiegészítését tölti be. Egy jó telepítésben ez mindig betöltődik, de ez nem jelenti azt, hogy a kártya XVideo támogatása is be van töltve!
A kártyádnak van Xv támogatása Linux alatt. Ennek az ellenőrzéséhez add ki az xvinfo parancsot, ez része az XFree86 disztribúciónak. Egy hosszú szöveget kell kiírnia, valami ilyesmit:
X-Video Extension version 2.2 screen #0 Adaptor #0: "Savage Streams Engine" number of ports: 1 port base: 43 operations supported: PutImage supported visuals: depth 16, visualID 0x22 depth 16, visualID 0x23 number of attributes: 5 (...) Number of image formats: 7 id: 0x32595559 (YUY2) guid: 59555932-0000-0010-8000-00aa00389b71 bits per pixel: 16 number of planes: 1 type: YUV (packed) id: 0x32315659 (YV12) guid: 59563132-0000-0010-8000-00aa00389b71 bits per pixel: 12 number of planes: 3 type: YUV (planar) (...stb...)
Támogatnia kell a tömörített YUY2 és a YV12 planar pixel formátumokat, hogy az MPlayer használni tudja.
És végül, nézd meg, hogy az MPlayer 'xv' támogatással lett-e fordítva. Írd be ezt: mplayer -vo help | grep xv . Ha az 'xv' támogatás be van építve, egy ehhez hasonló sornak szerepelnie kell:
xv X11/Xv
A régebbi 3dfx vezérlőknek tudvalevőleg problémáik vannak az XVideo gyorsítással, nem támogatják sem a YUY2-t sem a YV12-t, és így tovább. Nézd meg, hogy 4.2.0 vagy újabb XFree86-tal rendelkezel-e, ez rendben működik YV12-vel és YUY2-vel. A korábbi verziók, beleértve a 4.1.0-t, összeomlanak az YV12-vel. Ha különös effekteket tapasztalsz a -vo xv használatakor, próbáld ki az SDL-t (ebben is van XVideo) és nézd meg, hogy ez segít-e. Lásd az SDL fejezetet a részletekért.
VAGY, próbáld ki az ÚJ -vo tdfxfb vezérlőt! Lásd a tdfxfb részt.
Az S3 Savage3D nem működik megfelelően, de a Savage4 igen 4.0.3 vagy újabb XFree86 használata mellett (képhibák esetén próbáld 16bpp-vel). Ami az S3 Virge-eket illeti: van xv támogatás, de maga a kártya túl lassú, így jobb, ha eladod.
Jelenleg nem tisztázott, hogy mely Savage modellekből hiányzik a YV12 támogatás, és konvertál a vezérlő (lassú). Ha a kártyára gyanakodsz, szerezz be egy újabb vezérlőt, vagy udvariasan kérj az MPlayer-users levelezési listán egy MMX/3DNow! támogatású vezérlőt.
Az nVidia soha nem volt egy jó választás Linux alatt (az nVidia szerint ez nem igaz)... Az XFree86 nyílt forráskódú vezérlője támogatja a legtöbb kártyát, de a legtöbb esetben a bináris, zárt forrású nVidia vezérlőt kell használnod, ami elérhető az nVidia weboldalán. Erre a vezérlőre mindenképpen szükséged lesz, ha 3D gyorsítást akarsz.
A Riva128 kártyákkal nincs XVideo támogatás az XFree86 nVidia vezérlőjével :( Panaszkodj az nVidia-nak.
Habár az MPlayer a legtöbb nVidia kártyához rendelkezik VIDIX vezérlővel. Jelenleg még béta állapotú, és van pár bökkenője. További információkért lásd az nVidia VIDIX részt.
A GATOS vezérlő (amit használnod illene, hacsak nem Rage128 vagy Radeon kártyád van) alapértelmezésként engedélyezi a VSYNC-et. Ez azt jelenti, hogy a dekódolási sebesség (!) a monitor frissítési rátájához van szinkronizálva. Ha a lejátszás lassúnak tűnik, próbáld meg valahogy kikapcsolni a VSYNC-et vagy állítsd be a frissítést n*(film fps értéke) Hz-re.
A Radeon VE - ha X kell, használj XFree 4.2.0-t vagy újabbat ehhez a kártyához. Nincs TV kimenet támogatás. Természetesen az MPlayerrel simán is gyorsított megjelenítést kapsz, TV kimenettel vagy anélkül, és így sem függvénykönyvtárra sem X-re nincs szükség. Olvasd el a VIDIX részt.
Ilyen kártyák általában laptopokban találhatóak. XFree86 4.3.0 vagy újabbat kell használnod, vagy Stefan Seyfried Xv-t támogató vezérlőjét. Csak válaszd ki az te XFree86-odhoz illő verziót.
Az XFree86 4.3.0-ban van Xv támogatás, Bohdan Horst pedig küldött egy kis javítást az XFree86 forrásához, ami a framebuffer műveleteket felgyorsítja (XVideo-t is) akár négyszeresére is. A javítás belekerült az XFree86 CVS-ébe és a 4.3.0 utáni következő kiadásban is benne lesz.
A DVD méretű tartalmak lejátszásához az XF86Config-odat módosítanod kell:
Section "Device"
[...]
Driver "neomagic"
Option "OverlayMem" "829440"
[...]
EndSection
Ha az Xv-t Trident kártyával akarod használni, feltéve hogy nem megy 4.1.0-val, telepítsd fel az XFree 4.2.0-t. A 4.2.0-ban teljes képernyős Xv támogatás van a Cyberblade XP kártyával.
Alternatívaként az MPlayer is tartalmaz egy VIDIX vezérlőt a Cyberblade/i1 kártyához.
Ha az Xv-t Kyro alapú kártyával akarod használni (például Hercules Prophet 4000XT-vel), akkor le kell töltened a vezérlőt a PowerVR oldaláról
BEVEZETÉS. Ez a dokumentum megpróbálja pár szóban elmagyarázni, hogy mi is az a DGA tulajdonképpen és mit tehet a DGA vezérlő az MPlayernek (és mit nem).
MI AZ A DGA.
A DGA a Direct Graphics Access
rövidítése és azt jelenti, hogy egy program az X szerver megkerülésével
direkt eléréssel módosíthatja a framebuffer memóriát. Gyakorlatilag ez úgy
történik, hogy a framebuffer memória a processzed memória tartományába
kerül leképezésre. Ezt a kernel csak superuser jogokkal engedélyezi. Vagy
root
néven történő bejelentkezéssel
vagy az MPlayer futtatható állományának SUID
bitjének beállításával juthatsz ilyen jogokhoz. (nem
javasoljuk).
Két verziója van a DGA-nak: a DGA1 az XFree 3.x.x-ban volt használatos, a DGA2 az XFree 4.0.1-ben került bevezetésre.
A DGA1 csak direkt framebuffer elérést biztosít a fent leírt módszerrel. A videó jel felbontásának megváltoztatásához az XVidMode kiterjesztést kell használnod.
A DGA2 már tartalmazza az XVidMode kiterjesztés képességeit és a képernyő színmélységét is engedi változtatni. Így alaphelyzetben 32 bites színmélységben futtatott X szervert átállíthatsz 15 bites mélységre és vissza.
Ennek ellenére a DGA-nak van néhány hátránya. Úgy tűnik ez az általad használt grafikus chip-től függ és az ezen chip-et irányító vezérlő X szerverben való megvalósításától. Így nem minden rendszeren működik...
DGA TÁMOGATÁS TELEPÍTÉSE AZ MPLAYERHEZ. Először győződj meg, hogy az X betölti a DGA kiterjesztést: lásd a /var/log/XFree86.0.log fájlt:
(II) Loading extension XFree86-DGA
XFree86 4.0.x vagy újabb nagyon javasolt! Az MPlayer DGA vezérlőjét a ./configure automatikusan megtalálja, de elő is írhatod a használatát a --enable-dga kapcsolóval.
Ha a vezérlő nem tud kisebb felbontásra váltani, kísérletezz a -vm (csak X 3.3.x esetén), -fs, -bpp, -zoom kapcsolókkal a filmnek legmegfelelőbb videó mód megtalálásához. Még nincs konverter :(
Lépj be root
ként. A DGA-hoz root
elérés kell, hogy közvetlenül tudjon írni a videó memóriába. Ha felhasználóként
akarod futtatni, telepítsd az MPlayert SUID root-tal:
chown root/usr/local/bin/mplayer
chmod 750/usr/local/bin/mplayer
chmod +s/usr/local/bin/mplayer
Így már egyszerű felhasználók esetében is működik.
Ez nagy biztonsági kockázatot jelent! Soha ne csináld ezt meg egy szerveren vagy egy olyan számítógépen amihez mások is hozzáférnek, mert root jogokat szerezhetnek a SUID root-os MPlayerrel.
Használd a -vo dga kapcsolót, és már megy is! (reméljük:) Kipróbálhatod a -vo sdl:dga kapcsolót is, hogy működik-e! Sokkal gyorsabb!
FELBONTÁS VÁLTÁS. A DGA vezérlő lehetővé teszi a kimeneti jel felbontásának megváltoztatását. Ezzel elkerülhető a (lassú) szoftveres méretezés és ugyanakkor teljes képernyős képet biztosít. Ideális helyzetben pontosan a videó adat felbontására vált (kivéve az aspect arányt), de az X szerver csak a /etc/X11/XF86Config (/etc/X11/XF86Config-4 XFree 4.X.X esetén) fájlban előírt felbontásokra enged váltani. Ezeket modline-oknak nevezik és a videó hardvered tulajdonságain múlik. Az X szerver átnézi ezt a konfigurációs fájlt indításkor és letiltja a hardverednek nem megfelelőeket. Az X11 log fájlból kiderítheted, hogy mely módok engedélyezettek. Megtalálhatóak a /var/log/XFree86.0.log fájlban.
Ezek a bejegyzések tudvalevőleg működnek Riva128 chip-en, az nv.o X szerver vezérlő modul használatával.
Section "Modes" Identifier "Modes[0]" Modeline "800x600" 40 800 840 968 1056 600 601 605 628 Modeline "712x600" 35.0 712 740 850 900 400 410 412 425 Modeline "640x480" 25.175 640 664 760 800 480 491 493 525 Modeline "400x300" 20 400 416 480 528 300 301 303 314 Doublescan Modeline "352x288" 25.10 352 368 416 432 288 296 290 310 Modeline "352x240" 15.750 352 368 416 432 240 244 246 262 Doublescan Modeline "320x240" 12.588 320 336 384 400 240 245 246 262 Doublescan EndSection
DGA & MPLAYER. A DGA két helyen használható az MPlayerben: Az SDL vezérlőnek előírhatod a használatát (-vo sdl:dga) és a DGA vezérlőben (-vo dga). A fent említettek vonatkoznak mind a kettőre; a következő részben leírom, hogyan működik az MPlayer DGA vezérlője.
TULAJDONSÁGOK. A DGA vezérlő használatát a -vo dga kapcsoló parancssorban történő megadásával írhatod elő. Alapértelmezésként az videó eredeti felbontásához legközelebb álló felbontásra vált. Szándékosan figyelmen kívül hagyja a -vm és -fs kapcsolókat (videó mód váltás engedélyezése és teljes képernyő) - mindig a lehető legtöbbet megpróbálja elfedni a képernyődből a videó mód váltásával, így megspórolja a képméretezéshez szükséges plusz CPU ciklusokat. Ha nem tetszik az általa választott mód, kényszerítheted, hogy az általad megadott felbontáshoz legközelebbit keresse meg az -x és -y kapcsolókkal. A -v kapcsoló beírásának hatására a DGA vezérlő sok egyéb mellett kilistázza az aktuális XF86Config fájl által támogatott összes felbontást. DGA2 használata esetén előírhatod a színmélységet is a -bpp kapcsolóval. Az érvényes színmélységek 15, 16, 24 és 32. A hardvereden múlik, hogy ezek a színmélységek alapból támogatottak-e vagy (valószínűleg lassú) konverziót kell végezni.
Ha vagy olyan szerencsés, hogy elegendő memóriád van az egész, nem képernyőn lévő kép bemásolásához, a DGA vezérlő dupla bufferelést fog használni, ami egyenletesebb film lejátszást eredményez. Kiírja, hogy a dupla bufferelés engedélyezett-e vagy sem.
A dupla bufferelés azt jelenti,h ogy a videód következő képkockája a memória egy nem megjelenített részére másolódik, amíg az aktuális képkocka van a képernyőn. Ha kész a következő képkocka, a grafikus chip megkapja az új kép memóriabeli helyét, és egyszerűen onnan megjeleníti a képet. Eközben a másik buffer ismét feltöltődik új videó adattal.
A dupla bufferelés bekapcsolható a -double kapcsolóval, vagy letiltható a -nodouble-lal. A jelenlegi alapértelmezett beállítás szerint le van tiltva a dupla bufferelés. DGA vezérlő használata esetén az onscreen display (OSD) csak akkor működik, ha a dupla bufferelés engedélyezve van. Azonban a dupla bufferelés nagy sebességcsökkenéssel járhat (az én K6-II+ 525 gépemen további 20% CPU idő!) a hardvered DGA implementációjától függően.
SEBESSÉGI ADATOK. Általánosságban a DGA framebuffer elérésének legalább olyan gyorsnak kell lennie, mint az X11-es vezérlőnek a teljes képernyős képhez szükséges kiegészítők használatával. Az MPlayer által kiírt százalékos sebesség értékeket azonban fenntartással kezeld, mert például az X11-es vezérlő esetén nem tartalmazzák azt az időt, ami az X szervernek kell a kirajzoláshoz. Hurkold rá a terminált egy soros vonalra és indítsd el a top programot, akkor megtudod mi is történik valójában a dobozodban.
Kijelenthetjük, hogy a DGA gyorsítása a 'normális' X11-es használathoz képest erőteljesen függ a grafikus kártyádtól és hogy a hozzá tartozó X szerver modul mennyire optimalizált.
Ha lassú rendszered van, jobb ha 15 vagy 16 bites színmélységet használsz, mivel ezek fele akkora memória sávszélességet igényelnek, mint a 32 bites megjelenítés.
A 24 bites színmélység használata is jó ötlet, ha a kártyád natívan támogatja a 32 bites mélységet, mivel ez is 25%-kal kevesebb adatátvitelt jelent a 32/32 módhoz képest.
Láttam pár AVI fájlt 266-os Pentium MMX-en lejátszva. Az AMD K6-2 CPU-k is működnek 400 MHZ vagy afölött.
ISMERT HIBÁK. Nos, az XFree néhány fejlesztője szerint a DGA egy szörnyeteg. Ők azt mondják, jobb ha nem használod. Az implementációja nem mindig tökéletes az XFree-hez tartozó chipset vezérlőkkel.
Az SDL (Simple Directmedia Layer) tulajdonképpen egy
egységesített videó/audió interfész. Az ezt használó programok csak az
SDL-ről tudnak, arról nem, az hogy milyen videó és audió vezérlőt használ.
Például egy SDL-t használó Doom port futhat svgalib, aalib, X, fbdev és
még más vezérlők segítségével, de neked csak (például) a videó vezérlőt kell
megadnod az SDL_VIDEODRIVER
környezeti változóval. Legalábbis
elméletben.
Az MPlayerrel mi az X11 vezérlő szoftveres képméretező képességét használtuk XVideo-t nem támogató kártyák/vezérlők esetén, amíg el nem készült a mi saját (gyorsabb, szebb) szoftveres méretezőnk. Használtuk az aalib kimeneti képességét is, de most már abból is van saját, ami sokkal komfortosabb. A DGA módja jobb volt a mienkénél, legalábbis a közelmúltig. Vágod? :)
Segít pár hibás vezérlő/kártya esetén is, ha a videó szaggatott (nem lassú rendszer miatt) vagy az audió késett.
Az SDL videó kimenet támogatja a feliratok megjelenítését a film alatt, a (ha van) fekete soron.
Számos parancssori kapcsoló van az SDL-hez:
name
aalib
,
dga
, x11
)
name
dsp
,
esd
, artsc
)
2.1. táblázat - Csak SDL alatt használható billentyűk
Gomb | Tevékenység |
---|---|
c | váltás az elérhető teljes képernyős módok között |
n | váltás normál módra |
Ismert hibák:
TELEPÍTÉS. Telepítened kell az svgalib-et és a fejlesztői csomagjait ahhoz, hogy az MPlayer elkészítse az SVGAlib vezérlőjét (automatikusan felismeri, de lehet kényszeríteni is rá) és ne felejtsd el átírni a /etc/vga/libvga.config fájlt, hogy megfeleljen a kártyádnak és a monitorodnak.
Ne használd a -fs kapcsolót, mert bekapcsolja a szoftveres méretezést és lassú. Ha tényleg szükség van rá, használd a -sws 4 kapcsolót, ami rossz minőséget ad, de valamivel gyorsabb.
EGA (4BPP) TÁMOGATÁS. Az SVGAlib tartalmazza az EGAlib-et és az MPlayer így képes bármely film 16 színben történő megjelenítésére, lehetővé téve az alábbi beállítások használatát:
A bpp (bit per pixel) értéket kézzel kell 4-re állítanod: -bpp 4
A filmet valószínűleg át kell méretezni, hogy megfeleljen az EGA módnak:
-vf scale=640:350
or
-vf scale=320:200
Ehhez gyors, de rossz minőséget produkáló méretező rutin kell:
-sws 4
Talán az automatikus arány-javítást kikapcsolhatod:
-noaspect
A kísérleteimből úgy tűnik, a legjobb képminőség EGA monitorokon a világosság enyhe csökkentésével állítható elő: -vf eq=-20:0. Nálam szükséges volt az audió mintavételi ráta csökkentése is, mert a hang szétesett 44kHz-en: -srate 22050.
Csak az expand szűrő segítségével tudod bekapcsolni a feliratokat és az OSD-t, lásd a man oldalt a megfelelő paraméterekért.
Az FBdev elkészítése automatikusan kiválasztódik a ./configure során. Olvasd el a framebuffer dokumentációt a kernel forrásban (Documentation/fb/*) a bővebb információkért.
Ha a kártyád nem támogatja a VBE 2.0 szabványt (régebbi ISA/PCI kártyák, mint például az S3 Trio64), csak a VBE 1.2-t (vagy régebbit?): Nos, a VESAfb még elérhető, de be kell töltened a SciTech Display Doctor-t (egykori UniVBE), mielőtt betöltenéd a Linuxot. Használj DOS boot lemezt vagy valamit. És ne felejtsd el regisztrálni az UniVBE-det! ;))
Az FBdev kimenetnek a fentiek mellett van néhány paramétere is:
Ha egy különleges módra akarsz váltani, akkor így használd:
mplayer -vm -fbmodemod_neve
fajlnev
Magában a -vm kiválasztja a legmegfelelőbb módot a /etc/fb.modes fájlból. Használható együtt a -x és -y kapcsolókkal is. A -flip kapcsoló csak akkor támogatott, ha a film pixel formátuma megfelel a videó mód pixel formátumának. Figyelj a bpp értékére, az fbdev vezérlő az aktuálisat próbálja meg használni, vagy ha megadsz valamit a -bpp kapcsolóval, akkor azt.
A -zoom kapcsoló nem támogatott (használd a -vf scale-t). Nem használhatsz 8bpp (vagy kevesebb) módokat.
Valószínűleg el szeretnéd tüntetni a kurzort:
echo -e '\033[?25l'
vagy
setterm -cursor off
és a képernyővédőt:
setterm -blank 0
Kurzor visszakapcsolása:
echo -e '\033[?25h'
vagy
setterm -cursor on
Az FBdev videó mód váltása nem működik a VESA framebufferrel és ne is kérd, hogy működjön, mivel ez nem az MPlayer korlátja.
Ez a rész a Matrox G200/G400/G450/G550 BES (Back-End Scaler) támogatásról szól, az mga_vid kernel vezérlőről. Jelenleg A'rpi fejleszti, van benne hardveres VSYNC támogatás tripla buffereléssel. Működik mind framebufferes konzolon, mind X alatt.
Mindez csak Linux alatt! Nem-Linux (FreeBSD-n tesztelve) rendszereken a VIDIX-et használhatod helyette!
Telepítés:
A használatához először mga_vid.o-t kell forgatnod:
cd drivers make
Majd hozd létre a /dev/mga_vid eszközt:
mknod /dev/mga_vid c 178 0
és töltsd be a vezérlőt
insmod mga_vid.o
Ellenőrizd a memória méret detektálását a dmesg parancs segítségével. Ha hibásan írja, használd a mga_ram_size kapcsolót (előtte rmmod mga_vid), a kártya memóriájának MB-ban történő megadásához:
insmod mga_vid.o mga_ram_size=16
Az automatikus betöltéshez/törléshez először írd be ezt a sort a /etc/modules.conf fájlod végére:
alias char-major-178 mga_vid
Majd másold be a mga_vid.o modult a megfelelő
helyre a /lib/modules/kernel
verzió
/valahol
könyvtárba.
Ezután futtasd le a
depmod -a
parancsot.
Ezekután le kell fordítanod (újra) az MPlayert, a ./configure meg fogja találni a /dev/mga_vid-et és elkészíti az 'mga' vezérlőt. Az MPlayerben a -vo mga kapcsolóval használhatod, ha matroxfb konzolod van vagy a -vo xmga-val XFree86 3.x.x vagy 4.x.x alatt.
Az mga_vid vezérlő együttműködik az Xv-vel.
A /dev/mga_vid eszköz fájlt megnézheted némi infóért például a
cat /dev/mga_vid
segítségével és beállíthatod a fényerősséget:
echo "brightness=120" > /dev/mga_vid
Ez a vezérlő a kernel tdfx framebuffer vezérlőjét használja a filmek YUV gyorsításával történő lejátszásához. Kell hozzá egy kernel tdfxfb támogatással, és egy újrafordítás a
./configure --enable-tdfxfb
paranccsal.
Az MPlayer támogatja a filmek OpenGL-lel történő megjelenítését is, de ha a platformod/vezérlőd támogatja az Xv-t, inkább azt használd PC-n Linux-szal, az OpenGL teljesítménye észrevehetően gyengébb. Ha Xv támogatás nélküli X11-ed van, az OpenGL jó alternatíva lehet.
Sajnos nem minden vezérlő támogatja ezt a tulajdonságot. A Utah-GLX vezérlők (az XFree86 3.3.6-hoz) minden kártya esetén támogatják. Lásd a http://utah-glx.sf.net oldalt a részletes telepítési leíráshoz.
Az XFree86(DRI) 4.0.3 vagy későbbi támogatja az OpenGL-t Matrox és Radeon kártyákkal, a 4.2.0 vagy későbbi Rage128-cal. Lásd a http://dri.sf.net oldalt a letöltéshez és a telepítési utasításokért.
Egy felhasználónk tanácsa: a GL videó kimenetet függőlegesen szinkronizált TV kimenet előállításához is felhasználhatod. Csak be kell állítanod egy környezeti változót (legalábbis az nVidia-n):
export $__GL_SYNC_TO_VBLANK=1
Az AAlib egy függvény könyvtár grafika karakteres módban történő megjelenítéséhez, egy nagyszerű ASCII renderelő segítségével. Már jelenleg is rengeteg program támogatja, például a Doom, Quake, stb. Az MPlayerben is van egy roppant jól használható vezérlő hozzá. Ha a ./configure talál telepített aalib-et, az aalib libvo vezérlő alapértelmezett lesz.
Pár billentyű segítségével állíthatod a renderelési opciókat az AA Ablakban:
Gomb | Művelet |
---|---|
1 | kontraszt csökkentése |
2 | kontraszt növelése |
3 | fényerő csökkentése |
4 | fényerő növelése |
5 | gyors renderelés be/kikapcsolása |
6 | dithering módjának beállítása (nincs, hiba eloszlás, Floyd Steinberg) |
7 | kép megfordítása |
8 | váltás az aa és az MPlayer vezérlése között |
A következő parancssori kapcsolókat használhatod:
V
OSD szín megváltoztatása
V
felirat szín megváltoztatása
ahol a V
lehet:
0
(normális),
1
(sötét),
2
(vastag),
3
(félkövér betű),
4
(ellentétes),
5
(speciális).
Maga az AAlib számtalan lehetőséget biztosít. Itt van pár fontosabb:
A renderelés nagyon CPU igényes, különösen ha AA-on-X-et (aalib használata X alatt) használsz, a legalacsonyabb a standard, nem framebuffer-es konzolon. Használd az SVGATextMode-ot a nagy felbontás beállításához, és élvezd! (másodlagos Hercules kártyák a sirályak :)) (de SZVSZ használhatod a -vf 1bpp kapcsolót is a hgafb-en megjelenő grafikához :)
A -framedrop kapcsoló használatát javasoljuk, ha nem elég gyors a géped az összes képkocka rendeléséhez!
Terminálon lejátszva jobb sebességet és minőséget kapsz a Linux vezérlővel,
mint a curses-szal (-aadriver linux). De ehhez írási joggal
kell rendelkezned a /dev/vcsa<terminal>
fájlhoz! Ezt az aalib nem ismeri fel magától, de a vo_aa megpróbálja
megtalálni a legjobb módot.
Lásd a http://aa-project.sf.net/tune oldalt a további
tuningolási dolgokhoz.
A libcaca
függvénykönyvtár egy grafikus könyvtár, ami szöveget jelenít meg pixelek helyett, így
működik régebbi videó kártyákkal vagy szöveges terminálokon is. Hasonló a népszerű
AAlib
könyvtárhoz.
A libcaca
-nak egy terminál kell a működéshez, így
bármilyen Unix rendszeren (beleértve a Mac OS X-et) működik, vagy a
slang
vagy az
ncurses
vagy DOS alatt a
conio.h
illetve Windows rendszereken
akár a slang
vagy az
ncurses
(Cygwin emuláción keresztül) vagy
a conio.h
könyvtárak használatával. Ha
a ./configure
megtalálja a libcaca
-t, a caca libvo vezérlő
elkészül.
A különbség az AAlib
-hez képest
a következőek:
De a libcaca
-nak megvan az
alábbi korlátja:
Pár billentyűvel szabályozhatod a caca ablakban a renderelés opcióit:
Gomb | Művelet |
---|---|
d |
Váltás a libcaca dithering metódusai között.
|
a |
A libcaca antialiasing ki-/bekapcsolása.
|
b |
A libcaca háttérbe küldése.
|
A libcaca
figyel pár környezeti változót is:
Használd a -framedrop kapcsolót ha a számítógéped nem elég gyors az összes képkocka rendeléséhez.
Ezt a vezérlőt egy általános vezérlőként terveztük meg és vezettük be bármilyen, VESA VBE 2.0 kompatibilis BIOS-szal rendelkező monitorkártya esetében. A másik előnye ennek a vezérlőnek, hogy megpróbálja használni a TV kimenetet. VESA BIOS EXTENSION (VBE) Version 3.0 Dátum: 1998. szeptember 16. (70. oldal) ezt írja:
Duál-Vezérlős Tervezés. A VBE 3.0 támogatja a duál-vezérlős tervezést, feltételezve hogy általában mindkét vezérlőt ugyanaz az OEM biztosítja, egy BIOS ROM vezérlésével ugyan azon a grafikus kártyán, lehetséges az alkalmazás számára elrejteni azt a tényt, hogy valójában két vezérlő van jelen. Ez ugyan megakadályozza a vezérlők egyidejűleg történő egyedi használatát, azonban lehetővé teszi a VBE 3.0 előtt kiadott alkalmazások normális működését. A 00h VBE funció (Vezérlő információkkal tér vissza) a két vezérlő kombinált információit adja vissza, beleértve a használható módok kombinált listáját. Ha az alkalmazás kiválaszt egy módot, a megfelelő vezérlő aktiválódik. Az összes többi VBE funkció ezután az aktív vezérlővel dolgozik.
Így van esélyed a TV kimenet használatára ezzel a vezérlővel. (Gondolom a TV-out legtöbbször legalább egyedülálló fej vagy egyedüli kimenet.)
ELŐNYÖK
int 10h
kezelőt így nem
emulátor - igazi dolgokat hív az
igazi BIOS-ban valós-módban
(valójában vm86 módban).
HÁTRÁNYOK
root
használhatja.
Ne használd ezt a vezérlőt GCC 2.96-tal! Nem fog menni!
A VESA PARANCSSORI KAPCSOLÓI
opts
dga
a dga mód használatához és
nodga
a dga mód letiltásához. A dga módban engedélyezheted
a dupla bufferelést a -double kapcsolóval. Megjegyzés: ezen
paraméterek elhagyásával engedélyezed a dga mód automatikus
detektálását.
ISMERT PROBLÉMÁK ÉS MEGOLDÁSAIK
Ha lehet, kerüld el! Az X11-es kimenetnek (megosztott memória kiterjesztést használnak), nincs semmilyen hardveres támogatásuk. Tudja ugyan (MMX/3DNow/SSE által gyorsítva, de így is lassan) a szoftveres méretezést, használhatod a -fs -zoom kapcsolókat. A legtöbb hardverben benne van a hardveres méretezés támogatása, használd a -vo xv kimenetet hozzá vagy a -vo xmga-t a Matrox kártyákhoz.
A probléma az, hogy a legtöbb kártya vezérlője nem támogatja a hardveres gyorsítást a második fejen/TV-n. Ezekben az esetekben zöld/kék színű ablakot látsz a film helyett. Az ilyen esetekben jön jól ez a vezérlő, de erős CPU-val kell rendelkezned a szoftveres méretezés használatához. Ne használd az SDL vezérlő szoftveres kimenetét+méretezőjét, annak még rosszabb a képminősége!
A szoftveres méretezés nagyon lassú, jobb, ha megpróbálsz videó módot váltani inkább. Az egyszerűbb. Lásd a DGA rész modeline-jait, és írd be őket az XF86Config fájlba.
Ha nem találod a beszúrt módokat, nézd át az XFree86 kimenetét. Néhány vezérlő nem tud alacsony pixelclock-ot használni, ami szükséges az alacsony felbontású videó módokhoz.
BEVEZETÉS. A VIDIX a VIDeo Interface for *niX rövidítése. A VIDIX-et egy felhasználói térben használható vezérlőként tervezték és mutatták be, mely olyan videó teljesítményt nyújt, mint az mga_vid a Matrox kártyákon. Ráadásul könnyen portolható.
Ezt az interfészt úgy tervezték meg, hogy illeszkedjen a már létező videó gyorsító interfészekhez (mga_vid, rage128_vid, radeon_vid, pm3_vid) egy állandó sémával. Magas szintű interfészt biztosít a BES (BackEnd Scalers) néven ismert chip-ekhez vagy az OV-hoz (Video Overlays). Nem nyújt a grafikus szerverekhez hasonló alacsony szintű interfészt. (Nem akarok versenyezni a z X11 csapattal a grafikus mód váltásban). Pl. ezen interfész fő célja a videó lejátszás sebességének maximalizálása.
HASZNÁLAT
Igazából nem számít, hogy melyik videó kimeneti vezérlőt használod együtt a VIDIX-szel.
KÖVETELMÉNYEK
HASZNÁLATI MÓDOK. Ha a VIDIX-et aleszközként használod (-vo vesa:vidix), akkor a videó mód konfigurációt a videó kimeneti vezérlő (röviden vo_server) végzi. Ezért az MPlayer parancssorában ugyan azokat a kulcsokat használhatod, mint a vo_server-rel. Ráadásul ismeri a -double kulcsot mint globálisan látható paramétert. (Javaslom ezen kulcs VIDIX-szel történő használatát legalább az ATI kártyával). Ami a -vo xvidix-et illeti, most csak a következő kapcsolókat ismeri: -fs -zoom -x -y -double.
A parancssorban harmadik alkapcsolóként megadhatod közvetlenül a VIDIX vezérlőjét:
mplayer -vo xvidix:mga_vid.so -fs -zoom -double file.avi
or
mplayer -vo vesa:vidix:radeon_vid.so -fs -zoom -double -bpp 32 file.avi
De ez veszélyes, inkább ne használd. Ebben az esetben a megadott vezérlő lesz kényszerítve, így az eredmény megjósolhatatlan (lefagyaszthatja a számítógéped). CSAK akkor csinálj ilyet, ha teljesen biztos vagy benne, hogy működik és az MPlayer nem teszi meg automatikusan. Ez esetben kérjük jelezd ezt a fejlesztőknek is. A helyes módszer a VIDIX argumentumok nélküli használata, és így az automatikus detektálás engedélyezése.
A VIDIX egy új technológia és eléggé elképzelhető, hogy a te rendszereden nem fog működni. Ebben az esetben az egyetlen megoldás, ha portolod (leginkább a libdha-t). De van remény, hogy működni fog azokon a rendszereken, amiken az X11 megy.
Mivel a VIDIX-nek direkt hardver elérés kell, futtathatod root-ként vagy beállíthatod a SUID bit-et az MPlayer binárisán (Figyelem: Ez biztonsági kockázatot jelent!). Alternatívaként használhatsz egy speciális kernel modult, így:
Töltsd le az svgalib (pl. 1.9.17-es) fejlesztői verzióját, VAGY az Alex által speciálisan az MPlayerrel történő használatra készítettet (a lefordításához nem kell az svgalib forrás) innen.
Fordítsd le a modult az svgalib_helper könyvtárban (az svgalib-1.9.17/kernel/ könyvtáron belül található, ha az svgalib oldaláról töltötted le a forrást) és insmod-old.
A /dev könyvtárban a megfelelő eszközök létrehozásához add ki a
make device
parancsot az svgalib_helper könyvtárban rootként.
Mozgasd át az svgalib_helper könyvtárat az mplayer/main/libdha/svgalib_helper-be.
Szükséges, ha a forrást az svgalib oldaláról szerezted be: töröld a megjegyzést az "svgalib_helper"-t tartalmazó CFLAGS sor elől a libdha/Makefile-ban.
Fordítsd újra és telepítsd a libdha-t.
Jelenleg a legtöbb ATI kártya natívan támogatott, a Mach64-től a legújabb Radeonokig.
Két lefordított bináris van: radeon_vid a Radeonhoz és rage128_vid a Rage 128 kártyákhoz. Előírhatsz egyet vagy hagyhatod a VIDIX rendszernek automatikusan kipróbálni az összes elérhető vezérlőt.
A Matrox G200, G400, G450 és G550 működik a jelentések szerint.
A vezérlő támogatja a videó equalizereket és majdnem olyan gyors, mint a Matrox framebuffer.
Van egy vezérlő a Trident Cyberblade/i1 chipset-hez, ami a VIA Epia alaplapokon található.
A vezérlőt Alastair M. Robinson írta és tartja karban.
Habár van vezérlő a 3DLabs GLINT R3 és Permedia3 chip-ekhez, senki sem tesztelte le, így örömmel fogadjuk a jelentéseket.
Van egy eléggé új nVidia vezérlő, tudvalevőleg működik a Riva 128, TNT és GeForce2 chipset-ekkel, de a többi esetében is jelezték, hogy megy.
KORLÁTOZÁSOK
Ajánlatos a bináris nVidia vezérlők használata az X-szel, mielőtt ezen VIDIX vezérlőt használnád, mert néhány regiszter, melyek inicializálása szükséges, még nem lettek teljesen felderítve, így valószínűleg sikertelen lesz a Nyílt Forráskódú XFree86 nv.o vezérlőjével.
Jelenleg csak az UYVY színterű kimenetre képes codec-ek működnek együtt ezzel
ezzel a vezérlővel. Sajnos ez kizár minden egyes dekódolót a
libavcodec
családból. Emiatt a
következő használható, népszerű codec-ek maradnak:
cvid, divxds, xvid, divx4, wmv7, wmv8
és pár
egyéb. Kérjük vedd figyelembe, hogy ez csak ideiglenes kényelmetlenség.
A használati szintaxis a következő:
mplayer -vf format=uyvy -vc divxds divx3file.avi
Egy egyedülálló tulajdonsága az nvidia_vid vezérlőnek a sima, egyszerű, csak szöveges konzolon történő videó megjelenítés - framebuffer vagy X varázslag és egyebek nélkül. Ehhez a cvidix videó kimenetet kell használni, amint az itt látható:
mplayer -vf format=uyvy -vc divxds -vo cvidix example.avi
Várjuk a visszajelzéseket!
"A DirectFB egy grafikus függvénykönyvtár, amit a beágyazott rendszereket szem előtt tartva terveztek meg. Maximális hardver gyorsítási teljesítményt ad minimális erőforrás felhasználással és terheléssel." - idézet a http://www.directfb.org oldalról
Ki fogom hagyni a DirectFB tulajdonságokat ebből a fejezetből.
Mivel az MPlayer nem támogatott, mint "video provider" a DirectFB-ben, ez a kimeneti vezérlő engedélyezi a videó lejátszást DirectFB-n keresztül. Természetesen gyorsított lesz, az én Matrox G400-amon a DirectFB sebessége majdnem megegyezik az XVideo-éval.
Mindig próbáld meg a DirectFB legújabb verzióját használni. Megadhatsz DirectFB opciókat a parancssorban a -dfbopts kapcsoló használatával. A réteg választás egy aleszköz módszerével történhet, pl.: -vo directfb:2 (-1-es réteg az alapértelmezett: automatikus keresés)
Kérjük olvasd el a fő DirectFB részt az általános információkért.
Ez a videó kimeneti vezérlő engedélyezi a CRTC2-t (a második fejen) a Matrox G400/G450/G550 kártyákon, a videót az első fejtől függetlenül jelenítve meg.
Ville Syrjala-nak van egy README-je és egy HOWTO-ja a weboldalán, ami leírja, hogy hogyan hozhatod működésbe a DirectFB TV kimenetet a Matrox kártyákon.
Az első DirectFB verzió, amit működésre tudtunk bírni a
0.9.17 volt (hibás, kell hozzá az a surfacemanager
javítás a fenti URL-ről). A CRTC2 kód portolását az
mga_vid-be évekig terveztük, a
javításokat szívesen fogadjuk.
Az MPlayer támogatja a Siemens DVB chipset-tel szerelt kártyákat olyan gyártóktól, mint a Siemens, Technotrend, Galaxis vagy a Hauppauge. A legújabb DVB vezérlők elérhetőek a Linux TV oldalról. Ha szoftveres átkódolást akarsz csinálni, legalább egy 1GHz-es CPU-ra lesz szükséged.
A configure megtalálja a DVB kártyádat. Ha mégsem, kényszerítheted:
./configure --enable-dvb
Ha ost fejléc fájlaid vannak egy nem szabványos elérési útvonalon, add meg:
./configure --with-extraincdir=DVB forrás könyvtár
/ost/include
Majd fordíts és telepíts, mint rendesen.
HASZNÁLAT. A hardveres dekódolás (szabványos MPEG-1/2 fájlok lejátszása) elvégezhető ezzel a paranccsal:
mplayer -ao mpegpes -vo mpegpes file.mpg|vob
A Szoftveres dekódolás vagy átkódolás különböző formátumokról MPEG-1-re egy ehhez hasonló paranccsal érhető el:
mplayer -ao mpegpes -vo mpegpesyourfile.ext
mplayer -ao mpegpes -vo mpegpes -vf expandyourfile.ext
Figyelj rá, hogy a DVB kártyák PAL esetén csak a 288-as és 576-os, NTSC esetén a 240-es és 480-as magasságokat ismerik. Muszáj átméretezned más magassághoz a scale=szélesség:magasság kapcsolóval és a kívánt szélesség és magasság megadásával a -vf kapcsolónál. A DVB kártyák számos szélességet elfogadnak, mint például 720, 704, 640, 512, 480, 352 stb. és hardveres méretezést alkalmaznak vízszintes irányban, így a legtöbb esetben nem kell vízszintesen méretezned. Egy 512x384 (4:3 arányú) MPEG-4 (DivX)-hez:
mplayer -ao mpegpes -vo mpegpes -vf scale=512:576
Ha szélesvásznú filmed van és nem akarod átméretezni teljes magasságúra, használhatod az expand=w:h szűrőt a fekete sávok hozzáadásához. Egy 640x384 MPEG-4 (DivX) megnézésénél:
mplayer -ao mpegpes -vo mpegpes -vf expand=640:576 file.avi
Ha a CPU-d túl lassú a teljes méretű 720x576 MPEG-4 (DivX)-hez, próbáld meg leméretezni:
mplayer -ao mpegpes -vo mpegpes -vf scale=352:576 file.avi
Ha a sebesség nem javul, próbáld meg a függőleges leméretezést is:
mplayer -ao mpegpes -vo mpegpes -vf scale=352:288 file.avi
Az OSD és a feliratokhoz használd az expand szűrő OSD tulajdonságát. Így, az expand=w:h vagy expand=w:h:x:y helyett írj expand=w:h:x:y:1-et (az ötödik paraméter, a :1 a végén engedélyezi az OSD render-elést). A képet egy kicsit feljebb szeretnéd vinnni valószínűleg, hogy nagyobb hely maradjon a feliratoknak. Vagy akár a feliratokat is felviheted, ha a TV képernyőjén kívülre esnek, használd a -subpos <0-100> kapcsolót ennek beállításához (a -subpos 80 egy jó választás).
A nem-25fps-es filmek PAL TV-n vagy lassú CPU-n való lejátszásához még add hozzá a -framedrop kapcsolót.
Az MPEG-4 (DivX) fájlok méretarányának megtartásához és az optimális méretezési paraméterekhez (hardveres vízszintes és szoftveres függőleges méretezés a helyes méretarány megtartásával) használd az új dvbscale szűrőt:
for a 4:3 TV: -vf dvbscale,scale=-1:0,expand=-1:576:-1:-1:1 for a 16:9 TV: -vf dvbscale=1024,scale=-1:0,expand=-1:576:-1:-1:1
Digital TV (DVB bemeneti modul). A DVB kártyád segítségével digitalis TV-t is nézhetsz.
A scan és szap/tzap/czap/azap programoknak telepítve kell lenniük; mind benne vannak a drivers csomagban.
Ellenőrizd, hogy a vezérlőid megfelelően működnek egy olyan programmal, mint a dvbstream (ez a DVB bemeneti modul alapja).
Most már fordíthatsz egy ~/.mplayer/channels.conf fájlt, a szap/tzap/czap/azap által elfogadott szintaktikával, vagy engeded a scannek, hogy elkészítse neked.
Ha több típusú kártyád van (pl. műholdas, földi, kábel és ATSC), a csatorna fájlokat elmentheted ~/.mplayer/channels.conf.sat, ~/.mplayer/channels.conf.ter, ~/.mplayer/channels.conf.cbl, és ~/.mplayer/channels.conf.atsc néven, így az MPlayernek implicit javaslod ezen fájlok használatát a ~/.mplayer/channels.conf helyett és csak azt kell megadnod, hogy melyik kártyát akarod használni.
Győződj meg róla, hogy csak Free to Air csatornák vannak a channels.conf fájlodban, vagy az MPlayer a következő nézhetőig ugrik, de ez sokáig tart, ha egymás után sok kódolt csatorna van.
Az audió és a videó mezőkidben használhatsz kiterjesztett szintaxist: ...:pid[+pid]:... (egyenként maximálisan 6 pid); ebben az esetben az MPlayer beleveszi a stream-be az összes jelzett pid-et, plusz a pid 0-t (ami a PAT-ot tartalmazza). Javasolt a PMT pid bevétele minden sorba a megfelelő csatornáknál (ha tudod). Egyéb lehetőségek: televideo pid, második audió sáv, stb.
A csatornák beállításainak kilistázásához futtast ezt:
mplayer dvb://
Ha egy adott csatornát akarsz nézni, mint pl. az R1-et, írd be:
mplayer dvb://R1
Ha egynél több kártyád van, meg kell adnod a kártya számát is, ahol a csatorna látható (pl. 2) az alábbi szintaxissal:
mplayer dvb://2@R1
A csatornaváltáshoz nyomd meg a h (következő) vagy a k (előző) gombot vagy használd az OSD menüt (működő OSD alrendszer kell hozzá).
Ha a ~/.mplayer/menu.conf fájlod tartalmazza a
<dvbsel>
bejegyzést, úgy, mint az
etc/dvb-menu.conf példafájl (ezt felhasználhatod a
~/.mplayer/menu.conf fájl felülírásához), a fő menüben
egy al-menü bejegyzést láthatsz, aminek a segítségével választhatsz a
channels.conf-ban előre beállított csatornák közül,
melyet az elérhető kártyák listája követhet, ha egynél több
MPlayer által használható kártya van.
Ha el akarod menteni a programot a lemezre, használhatod az alábbi parancsot:
mplayer -dumpfile r1.ts -dumpstream dvb://R1
Ha inkább másik formátumban akarsz rögzíteni (újrakódolni), kiadhatsz egy ehhez hasonló parancsot:
mencoder -o r1.avi -ovc xvid -xvidencopts bitrate=800 -oac mp3lame -lameopts cbr:br=128 -pp=ci dvb://R1
Olvasd el a man oldalt a kapcsolók listájához, amiket megadhatsz a DVB bemeneti modulnak.
A JÖVŐ. Ha kérdésed van vagy további bejelentésekről szeretnél tudomást szerezni és részt venni a beszélgetéseinkben, csatlakozz az MPlayer-DVB levelezési listához. Kérjük vedd figyelembe, hogy a lista nyelve az angol.
A jövőben tervezzük a DVB kártyák által biztosított natív OSD használatát az OSD menü és a feliratok megjelenítéséhez, valamint a nem-25fps-es filmek sokkal folyékonyabb lejátszását és a valós idejű átkódolást MPEG-2 és MPEG-4 között (részleges kitömörítés).
Az MPlayer támogatja a hardveresen gyorsított lejátszást a Creative DXR2 kártyával.
Mindenek előtt megfelelően telepített DXR2 vezérlő kell. A vezérlőt és a telepítési útmutatót megtalálhatod a DXR2 Resource Center oldalán.
HASZNÁLAT
TV kimenet bekapcsolása
átlapolásos kimenet bekapcsolása X11-en
Ezzel a kapcsolóval a DXR2 vezérlő irányítható.
A DXR2-n használt átlapolásos chipset elég rossz minőségű, de az alapértelmezett beállítások mindenkinél működnek. Az OSD használható az átlapolással (nem TV-n) a színkulcsban történi kirajzolással. Az alapértelmezett színkulcs beállításokkal változó eredményeket kaphatsz, valószínűleg látni fogod a színkulcsot a karakterek körül vagy más egyéb érdekes effektet. De ha megfelelően beállítod a színkulcsot, elfogadható eredményt kapsz.
Kérjük nézd meg a man oldalt a használható kapcsolókhoz.
Az MPlayer támogatja a hardveresen gyorsított lejátszást a Creative DXR3 és Sigma Designs Hollywood Plus kártyákkal. Ezek a kártyák a Sigma Designs em8300 MPEG dekódoló chip-jét használják.
Mindenek előtt megfelelően telepített DXR3/H+ vezérlő kell, 0.12.0 verziójú vagy régebbi. A vezérlőket és a telepítési utasításokat megtalálhatod a DXR3 & Hollywood Plus for Linux oldalon. A configurenak automatikusan meg kell találnia a kártyádat, és a fordításnak hiba nélkül le kell futnia.
HASZNÁLAT
eszköz
Az overlay az átlapolást aktiválja a TVOut helyett. A helyes
működéshez megfelelően beállított overlay setup kell. A legegyszerűbb út
az átlapolás beállításához először az autocal majd az mplayer futtatása
dxr3 kimenettel és az átlapolás bekapcsolása nélkül futtasd a dxr3view-t. A
dxr3view-ban állíthatsz az átlapolási beállításokon és láthatod az effekteket
valós időben, talán ezt a funkciót az MPlayer GUI
is támogatni fogja a jövőben. Ha az átlapolás megfelelően be lett állítva,
többet nem kell használnod a dxr3view-t. A prebuf bekapcsolja az
előbufferelést. Az előbufferelés az em8300 chip egy olyan képessége, mellyel
egynél több képkockát tud megtartani egy időben. Ez azt jelenti, hogy ha
előbuffereléssel futtatod az MPlayert, az megpróbálja
folyamatosan tele tartani a videó buffert adatokkal. Ha lassú gépen vagy, az
MPlayer közel vagy pontosan 100% CPU kihasználtságot
fog okozni. Ez különösen gyakori ha egyszerű MPEG streamet játszasz le (pl. DVD-k,
SVCD-k, stb.), mivel ekkor az MPlayernek nem kell
újrakódolnia MPEG-be, és nagyon gyorsan tölti a buffert.
Az előbuffereléssel a videó lejátszás sokkal
kevésbé érzékeny az többi program CPU foglalására, nem fog képkockát eldobni,
hacsak az alkalmazások nem foglalják túl hosszú ideig a CPU-t. Ha előbufferelés
nélkül futtatod, az em8300 sokkal érzékenyebb a CPU terhelésre, így nagyon
javasolt, hogy használd az MPlayer
-framedrop kapcsolóját a további szinkronvesztés elkerüléséhez.
A sync bekapcsolja az új szinkron-motort. Ez jelenleg még
egy tesztelés alatt lévő képesség. A bekapcsolt szinkron tulajdonsággal az
em8300 belső órája folyamatosan figyelve lesz, és ha eltér az
MPlayer órájától, resetel, ezzel az em8300-t az összes
hátralévő képkocka eldobására kényszeríti.
A norm=x beállítja a DXR3 kártya TV normáját külső segédeszköz,
pl. em8300setup nélkül. A helyes norma értékek: 5 = NTSC, 4 = PAL-60, 3 = PAL.
Speciális norma a 2 (auto-beállítás PAL/PAL-60 használatával) és az 1
(auto-beállítás PAL/NTSC használatával) mivel ezek a film képkocka rátájának
segítségével állapítják meg a normát. A norm = 0 (alapértelmezett) nem változtat
a jelenlegi normán.
eszköz
= a használni kívánt eszköz
száma több em8300 kártya esetén.
Ezen opciók bármelyike elhagyható.
:prebuf:sync látszólag nagyszerűen működik MPEG-4 (DivX) filmek
lejátszásakor. Többen problémákról számoltak be MPEG-1/2 fájlok lejátszásakor
bekapcsolt prebuf esetén. Először mindenféle opció nélkül nézd meg, majd ha
szinkron vagy DVD felirat problémáid vannak, adj egy esélyt a
:sync-nek.
X
Audió kimenethez, ahol az X
az eszköz száma (0 ha egy kártya).
xxxxx
A em8300 nem tud lejátszani 44100Hz-nél alacsonyabb mintavételű hangot. Ha a mintavételi ráta 44100Hz alatt van, válassz 44100Hz-et vagy 48000Hz-et, attól függően, hogy melyik van közelebb. Pl. ha egy film 22050Hz-et használ, válaszd a 44100Hz-et, mivel 44100 / 2 = 22050, ha 24000Hz-et, válaszd a 48000Hz-et, mert 48000 / 2 = 24000 és így tovább. Ez nem működik digitális audió kimenettel (-ac hwac3).
Nem-MPEG tartalom em8300-on történő nézéséhez (pl. MPEG-4 (DivX) vagy RealVideo)
meg kell adnod egy MPEG-1 videó szűrőt, mint pl. a
libavcodec
(lavc) vagy a
libfame
(fame). Jelenleg
a lavc gyorsabb is és jobb képminőséget is ad, javaslom, hogy ezt
használd, hacsak nincs problémád vele. Lásd a man oldalt a további
infókért a -vf lavc/fame kapcsolóról.
A lavc használata nagyon javasolt. Jelenleg nem lehet az em8300 fps értékét
módosítani, ami azt jelenti, hogy fixen 30000/1001 fps. Emiatt javasolt a
-vf lavc=minőség
:25 kapcsoló
használata, különösen ha előbufferelést használsz. Hogy miért 25 és nem
30000/1001? Nos, a dolog úgy áll, hogy ha 30000/1001-et használsz, a kép kicsit
ugrálós lesz. Ennek az okát nem tudjuk. Ha beállítod valahova 25 és 27
közé, a kép stabillá válik. Jelenleg mást nem tehetünk, elfogadjuk ezt
tényként.
Habár a DXR3 vezérlő tud némi OSD-t tenni az MPEG-1/2/4 videóra, sokkal rosszabb minősége van, mint az MPlayer tradícionális OSD-jének és számos frissítési problémája is van. A fenti parancssor először is átkonvertálja a bemeneti videót MPEG-4-be (ez szükséges, bocs), majd alkalmazza rá az expand szűrőt, ami nem terjeszt ki semmit (-1: alapértelmezett), de a normális OSD-t teszi a képre (ezt csinálja az "1" a végén).
A em8300 támogatja az AC3 audió lejátszását (térhatású hang) a kártya digitális audió kimenetén keresztül. Lásd a -ao oss kapcsolót fent, a DXR3 kimenetének meghatározására használható a hangkártya helyett.
Ez egy képernyő-vezérlő (-vo zr) számos MJPEG
mentő/lejátszó kártyához (DC10+ és Buz-zal tesztelve, és működnie kell
LML33, a DC10 esetén is). A vezérlő úgy működik, hogy kódolja a képkockát
JPEG-be majd kiküldi a kártyára. A JPEG kódoláshoz a
libavcodec
-et használja, ami
ezért szükséges hozzá. Egy speciális cinerama móddal
igazi nagyképernyőn nézhetsz filmeket, feltéve, hogy két felvevőd és két
MJPEG kártyád van. A felbontástól és a minőségi beállításoktól függően ez
a vezérlő rengeteg CPU erőt igényel, ne felejtsd el megadni a
-framedrop kapcsolót, ha lassú a géped.
Megjegyzés: Az én AMD K6-2 350MHz-es gépem (-framedrop-pal)
eléggé elfogadható volt VCD méretű anyag nézésekor és
leméretezett filmnél.
Ez a vezérlő a http://mjpeg.sf.net címen található kernel vezérlővel társalog, így először ezt kell beizzítanod. Az MJPEG kártya jelenléte automatikusan detektálva lesz a configure script által, ha ez nem sikerül, kényszerítsd a detektálásra a
./configure --enable-zr
kapcsolóval.
A kimenet számos kapcsolóval szabályozható, a kapcsolók hosszú leírással megtalálhatóak a man oldalon, egy rövidebb listát a
mplayer -zrhelp
parancs lefuttatásával kaphatsz.
Az olyan dolgokat, mint méretezés és OSD (on screen display) ez a vezérlő nem kezeli, de megoldhatóak videó szűrőkkel. Például tegyük fel, hogy van egy filmed 512x272-es felbontással és teljes képernyőn akarod nézni a DC10+-eden. Három lehetőséged van, méretezned kell a filmet 768, 384 vagy 192-es szélességre. Teljesítmény és minőségi okokból én a 384x204-re való méretezést választanám, gyors bilineáris szoftveres méretező használatával. A parancssor:
mplayer -vo zr -sws 0 -vf scale=384:204 movie.avi
A levágás a crop szűrő segítségével valósítható meg és magával a vezérlővel. Feltéve, hogy a film túl széles a megjelenítéshez a Buz-odon és hogy a -zrcrop-ot akarod használni a film szűkítéséhez, a következő parancs a te barátod:
mplayer -vo zr -zrcrop 720x320+80+0 benhur.avi
Ha használni akarod a crop szűrőt, ez kell:
mplayer -vo zr -vf crop=720:320:80:0 benhur.avi
Extra esetben a -zrcrop meghívja a cinerama módot, pl. a filmet több TV vagy beamer között sugározhatod egy nagyobb kép létrehozásához. Feltéve, hogy két beamer-ed van. A bal oldali a Buz-odhoz csatlakozik a /dev/video1-en, a jobb oldali a DC10+-odhoz a /dev/video0-án. A film felbontása 704x288. Továbbá tegyük fel azt is, hogy a jobb beamer-t fekete-fehéren szeretnéd, a balnak pedig 10-es minőségű JPEG képeket kell adnia. Ekkor a következő parancsot kell használnod:
mplayer -vo zr -zrdev /dev/video0 -zrcrop 352x288+352+0 -zrxdoff 0 -zrbw \
-zrcrop 352x288+0+0 -zrdev /dev/video1 -zrquality 10 \
movie.avi
Láthatod, hogy a második -zrcrop előtt feltűnő opciók csak a DC10+-re, a második -zrcrop után lévők csak a Buz-ra vonatkoznak. A cinerama-ban használható MJPEG kártyák maximális száma négy, így egy 2x2-es vidi-falat építhetsz.
Végül egy fontos megjegyzés: Ne indítsd el vagy állítsd meg a XawTV-t a lejátszó eszközön a lejátszás alatt, ez összeomlasztja a számítógépedet. Legjobb ELŐSZÖR elindítani a XawTV-t, EZUTÁN elindítani az MPlayert, várni, míg az MPlayer végez, és EZUTÁN megállítani a XawTV-t.
Ez a vezérlő képes a lejátszásra a Blinkenlights UDP protokol felhasználásával. Ha nem tudod, hogy mi az a Blinkenlights, vagy az utóda az Arcade, nézz utána. Habár ez a legutoljára használt videó kimeneti vezérlő, kétségkívül ez a legjobb, amit az MPlayer nyújtani tud. Csak nézz meg pár Blinkenlights dokumentációs videót. Az Arcade videóban láthatod a Blinkenlights kimeneti vezérlőt akcióban a 00:07:50-en.
Linux alatt két módon bírhatod működésre a G400 TV kimenetét:
a Matrox G450/G550 TV-kimenet utasításaiért lásd a következő részt!
A vezérlő és a HAL modul használatával, mely elérhető a Matrox oldalán. Ezzel X-et kapsz a TV-n.
Ez a módszer nem nyújt gyorsított lejátszást Windows alatt! A második fejnek csak YUV framebuffer-e van, a BES (Back End Scaler, a YUV méretező a G200/G400/G450/G550 kártyákon) nem működik rajta! A Windows-os vezérlők ezt valahogy megkerülik, talán 3D motort használnak a nagyításhoz és a YUV framebuffer-t a nagyított képek megjelenítéséhez. Ha tényleg X-et akarsz használni, válaszd a -vo x11 -fs -zoom kapcsolókat, de LASSÚ lesz, és Macrovision másolásvédelem van rajta (ezzel a perl script-tel "megkerülheted" a Macrovisiont).
A 2.4-es kernelekben lévő matroxfb modulok használatával. A 2.2-es kernel-ekben nincs TVout tulajdonság hozzájuk, így használhatatlanok erre. Engedélyezned kell az ÖSSZES matroxfb-specifikus tulajdonságot a fordítás alatt (kivéve a MultiHead-et) és modulokba kell fordítanod! Az engedélyezett I2C-re is szükséged lesz.
Lépj be a TVout-ba és írd be:
./compile.sh. Telepítsd a
TVout/matroxset/matroxset-et
valahova a PATH
-odon belülre.
Ha nincs telepítve fbset-ed, tedd a
TVout/fbset/fbset-et
valahova a PATH
-odba.
Ha nincs con2fb-ed telepítve, tedd a
TVout/con2fb/con2fb-t
valahova a PATH
-odba.
Majd lépj be a TVout/ könyvtárba az MPlayer forrásában és futtasd le a ./modules-t root-ként. A szöveges módú konzolod átvált framebuffer módba (nincs visszaút!).
Ezután ÍRD ÁT és futtasd a ./matroxtv script-et. Ez egy roppant egyszerű menüt kínál neked. Nyomd meg a 2-est és az Enter-t. Most már ugyan azt a képet kell látnod a monitorodon és a TV-n. ha a TV (PAL alapértelmezettként) képén furcsa csíkok vannak, a script nem tudta beállítani jól a felbontást (640x512-ra alapesetben). Próbálj meg másik felbontást a menüből és/vagy kísérletezz az fbset-tel.
Yoh. A következő dolog, hogy a kurzort eltűntesd a tty1-ről (vagy akármiről) és kikapcsold a képernyő törlést. Futtasd le a következő parancsokat:
echo -e '\033[?25l' setterm -blank 0
vagy
setterm -cursor off setterm -blank 0
A fentieket valószínűleg beleírod egy script-be, egy képernyő törléssel együtt. A kurzor visszakapcsolása:
echo -e '\033[?25h'
vagy
setterm -cursor on
Yeah sirály. Indítsd el a film lejátszást:
mplayer -vo mga -fs -screenw 640 -screenh 512 filename
(Ha X-et használsz, most válts át matroxfb-re, például a
Ctrl+Alt+F1 gombokkal.)
Változtasd meg a 640
-et és az 512
-t,
ha másra állítottad a felbontást...
Élvezd az ultra-gyors ultra-különleges Matrox TV kimenetet (jobb mint az Xv)!
Matrox TV-kimeneti kábel készítése. Senki sem vállal ezért semmilyen felelősséget, sem garanciát bármilyen, ezen leírásból származó kárért.
Kábel a G400-hoz. A CRTC2 csatlakozójának negyedik pin-je a kompozit videó jel. A földelés a hatodik, hetedik és nyolcadik pin. (az infót Rácz Balázs adta)
Kábel a G450-hez. A CRTC2 csatlakozójának első pin-je a kompozit videó jel. A földelés az ötödik, hatodik, hetedik és tizenötödik (5, 6, 7, 15) pin. (az infót Kerekes Balázs adta)
A TV kimenet támogatása ezeken a kártyákon csak nemrég jelent meg, és még nincs a a fő kernelben. Jelenleg az mga_vid modul nem használható AFAIK, mert a G450/G550-es vezérlő csak egy konfigurációban működik: az első CRTC chip (a sokkal több képességgel) az első képernyőn (a monitoron) és a második CRTC (nincs BES - a BES magyarázatához lásd a G400-as részt fent) TV-n. Így csak az MPlayer fbdev kimeneti vezérlőjét használhatod jelenleg.
Az első CRTC nem irányítható át a második fejre jelenleg. A matroxfb kernel vezérlő szerzője - Petr Vandrovec - talán készít támogatást ehhez, az első CRTC kimenetét egyszerre mindkét fejen megjelenítve, mint ahogy most is javasolt a G400-on, lásd a fenti részt.
A szükséges kernel javítás és a bővebb HOWTO letölthető: http://www.bglug.ca/matrox_tvout/
BEVEZETÉS. Jelenleg az ATI nem akarja támogatni semelyik TV-out chip-jét sem Linux alatt, a licenszelt Macrovision technológiájuk miatt.
ATI KÁRTYÁK TV-KIMENETÉNEK ÁLLAPOTA LINUXON
Egyéb kártyák esetében lásd a VESA vezérlőt, VIDIX nélkül. Bár ehhez erős CPU kell.
Az egyeten dolog, amit tenned kell - Be kell dugnod a TV csatlakozóját, mielőtt bekapcsolnád a PC-t mivel a videó BIOS csak egyszer, a POST folyamat során inicializálja magát.
Nézd meg ezt az URL-t.
Először le KELL töltened a zárt-forrású vezérlőt az http://nvidia.com-ról. Nem írom le a telepítés és a konfiguráció lépéseit, mert ez nem tartozik ezen dokumentáció céljához.
Miután az XFree86, az XVideo és a 3D gyorsítás is megfelelően működik, írd át a kártya Device részét az XF86Config fájlban, a következő példának megfelelően (a te kártyádhoz/TV-dhez igazítva):
Section "Device" Identifier "GeForce" VendorName "ASUS" BoardName "nVidia GeForce2/MX 400" Driver "nvidia" #Option "NvAGP" "1" Option "NoLogo" Option "CursorShadow" "on" Option "TwinView" Option "TwinViewOrientation" "Clone" Option "MetaModes" "1024x768,640x480" Option "ConnectedMonitor" "CRT, TV" Option "TVStandard" "PAL-B" Option "TVOutFormat" "Composite" EndSection
Természetesen a legfontosabb a TwinView rész.
A NeoMagic chip számos laptop-ban megtalálható, pár közülük egy egyszerű analóg TV kódolóval van felszerelve, mások sokkal fejlettebbel rendelkeznek.
Analóg kódoló chip: Tesztelve Toshiba Tecra 8000-en. A TV kimeneti chip-je egy kalap szar. Kerüld el ha teheted.
A -vo vesa-t kell használnod. A tesztelt chip csak 1.333333-as méret arányra volt képes, így győződj meg róla, hogy a -x, -y kapcsolók és/vagy a -vf scale,crop,expand szűrők használatáról, ha a doboz nem engedélyezi a TV kimenetet. A maximum felbontás 720*576 volt 16bpp-n.
Ismert dolgok: Csak VESA, 1.33333-as korlátozás, a kép nem mindig középre igazított, a film minden 10 percben 4bpp-s lesz és úgy is marad. Gyakori súlyos fagyások, LCD kijelző problémák.
Chrontel 70xx kódoló chip: Az IBM Thinkpad 390E és talán más Thinkpad-okban és notebook-okban található.
A -vo vesa:neotv_pal-t kell használnod a PAL-hoz vagy a -vo vesa:neotv_ntsc-t az NTSC-hez. TV kimenetet biztosít az alábbi 16 bpp és 8 bpp módokban:
Az 512x384-es módot nem támogatja a BIOS. Át kell méretezned a képet egy másik felbontásra a TV kimenet aktiválásához. Ha egy képet látsz a képernyőn 640x480-ban vagy 800x600-ban, de semmit 320x240-ben vagy kisebb felbontáson, ki kell cserélned két táblázatot a vbelib.c fájlban. Lásd a vbeSetTV függvényeket a részletekért. Kérlek keresd meg a szerzőt ebben az esetben.
Ismert dolgok: Csak VESA, semmilyen más beállítás, pl. fényesség, kontraszt, blacklevel, flickfilter nincs implementálva.
A Linux hangkártya vezérlői kompatibilítási problémákkal küzdenek. Ez azért van, mert az MPlayer a megfelelően kódolt hang vezérlők egy beépített tulajdonságát használja, ami engedélyezi nekik az audió/videó szinkron javítását. Sajnálatos módon néhány vezérlő szerzői nem gondoskodnak ezen tulajdonság kódolásáról, mivel nem szükséges az MP3-ak és a hangeffektek lejátszásához.
Más média lejátszók, mint pl. az aviplay vagy a xine valószínűleg kapásból működnek ezekkel a vezérlőkkel, mert egy "egyszerű" módszert használnak belső időzítéssel. A mérések azt mutatják, hogy az ő módszereik nem olyan hatékonyak, mint az MPlayeré.
Az MPlayert egy megfelelően megírt audió vezérlővel használva soha nem fog A/V deszinkronizáció bekövetkezni az audióban, csak nagyon rosszul elkészített fájlok esetén (lásd a man oldalt a megkerüléshez).
Ha neked rossz audió vezérlőd van, próbáld ki a -autosync kapcsolót, megszünteti a problémáidat. Lásd a man oldalt a bővebb információkért.
Néhány megjegyzés:
Ha 0.5-ös ALSA-d van, akkor majdnem mindig a -ao alsa5-öt kell használnod, mivel az ALSA 0.5-nek hibás az OSS emulációs kódja, és össze fogja omlasztani az MPlayert egy ehhez hasonló üzenettel:
DEMUXER: Too many (945 in 8390980 bytes) video packets in the buffer!
Ha a hang kattog CD-ROM-ról történő lejátszás közben, kapcsold be az IRQ unmasking-ot, amint az a CD-ROM részben le van írva.
Ez a rész arról szól, hogy hogyan lehet adást nézni/lementeni V4L kompatibilis TV tunerrel. Lásd a man oldalt a TV-s kapcsolók és a vezérlő billentyűk listájáért.
Először is újra fordítanod kell. A ./configure automatikusan megtalálja a v4l dolgok kernel fejléceit és a /dev/video* bejegyzéseket. Ha léteznek, a TV támogatás be lesz építve (lásd a ./configure kimenetét).
Győződj meg róla, hogy a tunered működik másik Linuxos TV szoftverrel is, például a XawTV-vel.
A kapcsolók teljes listája a man oldalon található. Itt csak pár tippet említünk meg:
Használd a channels kapcsolót. Például:
-tv channels=26-MTV1,23-TV2
Magyarázat: ha ezt a kapcsolót használod, akkor csak a 26-os és a 23-as csatorna lesz használható, és szép OSD szöveg lesz csatorna váltáskor, mely a csatorna nevét jelzi ki. A csatorna nevében lévő szóközöket a "_" karakterrel kell kicserélni.
Válassz valamilyen értelmes képméretet. A kp méreteinek oszthatónak kell lennie 16-tal.
Ha videót mentesz el úgy, hogy a függőleges felbontás nagyobb, mint a teljes felbontás fele (pl. 288 a PAL-nál és 240 az NTSC-nél), győződj meg róla, hogy bekapcsoltad a deinterlacing-et. Különben a filmed torzul a gyors mozgású jelenetek alatt és a bitráta vezérlő is valószínűleg képtelen lesz az előírt bitráta megtartására, ahogy az interlacing változások nagy mennyiségű adatot eredményeznek és így nagy sávszélességet vesznek el. A deinterlacing-et bekapcsolhatod a -vf pp=DEINT_TYPE kapcsolóval. Általában a pp=lb jó, de ez az egyéni beállításokon is múlik. A többi deinterlacing algoritmust lásd a manuálban és próbálgasd ki őket.
Vágd le a felesleges helyet. Ha videót mentesz, a sarki arénák teljesen feketék és némi zajt tartalmaznak. Ezek szintén nagy sávszélességet foglalnak el feleslegesen. Pontosabban nem maguk a fekete területek, hanem az éles átmenetek a fekete és a világosabb videó kép között, de ez most nem fontos igazából. Mielőtt elindítanád a mentést, állítsd be a crop kapcsoló argumentumait, így a széleknél lévő vackok le lesznek vágva. És ne feledd a képméreteket ésszerű keretek között tartani.
Figyelj a CPU terhelésre. Legtöbbször átlépi a 90%-os határt. Ha nagy mentési buffered van, a MEncoder túlél egy esetleges túlterhelést pár másodpercig, de semmi több. Jobb kikapcsolni a 3D OpenGL képernyővédőket és a hasonló dolgokat.
Ne szórakozz a rendszer órával. A MEncoder a rendszer órát használja az A/V szinkronhoz. Ha átállítod a rendszer órát (különösen vissza az időben), a MEncoder összezavarodik és képkockákat veszítesz. Ez egy fontos dolog, ha hálózathoz kapcsolódsz és futtatsz valamilyen idő szinkronizációs szoftvert, mint pl. NTP. Ki kell kapcsolnod az NTP-t a mentési folyamat alatt, ha megbízható mentést akarsz.
Ne változtasd meg az outfmt-t, hacsak vagy biztos benne, hogy mit
csinálsz, vagy a kártyád/vezérlőd tényleg nem támogatja az alapértelmezést
(YV12 színtér). A MPlayer/MEncoder
régebbi verzióiban szükséges volt a kimeneti formátum megadása. Ez a jelenlegi
kiadásban már javítva lett és az outfmt már nem szükséges, az
alapértelmezés megfelel a legtöbb esetben. Például ha videót mentesz DivX-be
a libavcodec
használatával és megadod
az outfmt=RGB24-t a mentett kép minőségének növelése érdekében,
a mentett kép igazából később lesz visszakonvertálva YV12-be így az egyetlen,
amit elérsz, az erőteljes CPU használat.
Az I420 színtér megadásához (outfmt=i420) meg kell adnod egy -vc rawi420 kapcsolót is, mivel fourcc ütközés van egy Intel Indeo videó codec-kel.
Rengeteg módon menthetsz el audiót. A hangot grabbelheted a hang kártyáddal is egy a videó kártya és a line-in között lévő külső kábelen keresztül, vagy a bt878-as chip-be beépített ADC segítségével. A második esetben be kell töltened a btaudio vezérlőt. Olvasd el a linux/Documentation/sound/btaudio fájlt (a kernel fájában, nem az MPlayerében) némi leírásért ezen vezérlő használatával kapcsolatban.
Ha a MEncoder nem tudja megnyitni az audió eszközt, győződj meg róla, hogy tényleg elérhető-e. Gond lehet a hang szerverekkel, mint pl. aRts (KDE) vagy ESD (GNOME). ha full duplex hang kártyád van (majdnem az összes hangkártya tudja már ezt manapság), és KDE-t használsz, próbáld meg bekapcsolni a "full duplex" opciót a hangkártya tulajdonságok menüben.
Dummy kimenet AAlib-re :)
mplayer -tv driver=dummy:width=640:height=480 -vo aa tv://
Bemenet standard V4L-ről:
mplayer -tv driver=v4l:width=640:height=480:outfmt=i420 -vc rawi420 -vo xv tv://
Egy sokkal mesterkéltebb példa. Ezzel a MEncoder elmenti a teljes PAL képet, levágja a széleket és deinterlace-eli a képet a linear blend algoritmus segítségével. Az audió 65 kbps-es állandó bitrátával kerül tömörítésre, a LAME codec felhasználásával. Ez a beállítás megfelelő a filmek elmentéséhez.
mencoder -tv driver=v4l:width=768:height=576 \
-ovc lavc -lavcopts vcodec=mpeg4:vbitrate=900 \
-oac mp3lame -lameopts cbr:br=64 \
-vf crop=720:544:24:16,pp=lb -o output.avi
tv://
This will additionally rescale the image to 384x288 and compresses the video with the bitrate of 350kbps in high quality mode. The vqmax option looses the quantizer and allows the video compressor to actually reach so low bitrate even at the expense of the quality. This can be used for capturing long TV series, where the video quality isn't so important.
mencoder -tv driver=v4l:width=768:height=576 \
-ovc lavc -lavcopts vcodec=mpeg4:vbitrate=350:vhq:vqmax=31:keyint=300 \
-oac mp3lame -lameopts cbr:br=48 \
-vf crop=720:540:24:18,pp=lb,scale=384:288 -sws 1 -o output.avi
tv://
Meg lehet adni kisebb képméretet is a -tv kapcsolónál és ki lehet hagyni a szoftveres méretezést, de ez a megközelítés a lehető legtöbb információt használja fel és egy kicsit ellenállóbb a zajokkal szemben. A bt8x8 chip-ek a pixel átlagolást csak vízszintesen tudják hardveres korlátok miatt.
Az MPlayer egy komplex lejátszási sort használ. Először a globális opciók szerepelnek, például
mplayer -vfm 5
majd a fájlnév után írt kapcsolók, amik csak a megadott fájlra/URL-re/bármire vonatkoznak, például:
mplayer -vfm 5movie1.avi
movie2.avi
-vfm 4
A fájlneveket/URL-eket csoportosíthatod a {
és }
segítségével. Ez főleg a -loop kapcsolóval együtt hasznos:
mplayer { 1.avi -loop 2 2.avi } -loop 3
A fenti parancs a fájlokat ebben a sorrendben játsza le: 1, 1, 2, 1, 1, 2, 1, 1, 2.
Egy fájl lejátszása:
mplayer [kapcsolók
] [elérési út
/]fájlnév
Másik módszer egy fájl lejátszásához:
mplayer [kapcsolók
]file:///uri-escaped-path
Több fájl lejátszása:
mplayer [alapértelmezett kapcsolók
] [elérési út
/]fájlnév1
[options for filename1
]fájlnév2
[kapcsolók a fájlnév2-höz
] ...
VCD lejátszása:
mplayer [kapcsolók
] vcd://sávszám
[-cdrom-device/dev/cdrom
]
DVD lejátszása:
mplayer [kapcsolók
] dvd://rész szám
[-dvd-device/dev/dvd
]
Lejátszás a WWW-ről:
mplayer [kapcsolók
] http://site.com/file.asf
(lejátszási listák is megadhatóak)
Lejátszás RTSP-ről:
mplayer [options
] rtsp://pelda.szerver.com/streamNev
Példák:
mplayer -vo x11/mnt/Films/Contact/contact2.mpg
mplayer vcd://2
-cdrom-device/dev/hdc
mplayer -afm 3/mnt/DVDtrailers/alien4.vob
mplayer dvd://1
-dvd-device/dev/hdc
mplayer -abs 65536 -delay -0.4 -nobps~/movies/test.avi
Az MPlayer teljesen konfigurálható, parancsvezérelt, az irányítási rétegének a segítségével az MPlayert vezérelheted billentyűzettel, egérrel, joystickkal vagy távirányítóval (LIRC használatával). Olvasd el a man oldalon a használható billentyűk listáját.
Az MPlayer engedélyezi bármely billentyűhöz/gombhoz
bármilyen MPlayer parancs hozzárendelését egy egyszerű
konfigurációs fájl segítségével. A szintaxis egy egyszerű billentyű névből
és az azt követő parancsból áll. A konfigurációs fájl alapértelmezett helye
a $HOME/.mplayer/input.conf de ez megváltoztatható
a -input conf
kapcsoló
segítségével (a relatív elérési útvonalak a $HOME/.mplayer-hez
képest relatívak).
Az összes támogatott billentyű nevének listáját az mplayer -input keylist parancs írja ki, az elérhető parancsok listáját pedig az mplayer -input cmdlist paranccsal kapod meg.
Linux Infrared Remote Control (Linux Infravörös Távoli Irányítás) - végy egy egyszerűen összerakható, otthon barkácsolt IR-vevőt, egy (majdnem) tetszés szerinti távirányítót és irányítsd a Linux-os gépedet vele! Bővebben a LIRC weboldalon olvashatsz erről.
Ha feltelepítetted a LIRC csomagot, a configure automatikusan
megtalálja. Ha minden jól megy, az MPlayer egy ilyen
üzenetet ír ki indításkor: "Setting up lirc support...
".
Ha valami hiba történt, tájékoztat róla. Ha semmit sem mond a LIRC-ről,
akkor a támogatása nincs beforgatva. Ennyi :-)
Az MPlayer alkalmazás neve - minő meglepő -
mplayer. Bármelyik mplayer parancsot használhatod
és egyszerre több parancsot is megadhatsz egy lépésben, ha \n
karakterrel választod el őket. Ne felejtsd el engedélyezni az ismétlés jelzőt
(repeat flag) a .lircrc fájlban, ha van értelme
(keresés, hangerő, stb.). Itt egy kivonat egy .lircrc
fájlból:
begin button = VOLUME_PLUS prog = mplayer config = volume 1 repeat = 1 end begin button = VOLUME_MINUS prog = mplayer config = volume -1 repeat = 1 end begin button = CD_PLAY prog = mplayer config = pause end begin button = CD_STOP prog = mplayer config = seek 0 1\npause end
Ha nem tetszik a lirc-config fájl alapértelmezett elérési útvonala
(~/.lircrc), használd a -lircconf
fájlnév
kapcsolót egy másik fájl
megadásához.
A szolga mód segítségével egyszerű frontend-eket készíthetsz az MPlayerhez. Ha a -slave kapcsolóval futtatod az MPlayert, beolvassa az új sor karakterrel (\n) elválasztott parancsokat a standard bemenetről (stdin). A parancsok a slave.txt fájlban vannak leírva.
Az MPlayer HTTP, FTP, MMS vagy RTSP/RTP protokoll segítségével le tud játszani fájlokat hálózatról is.
A lejátszáshoz egyszerűen csak be kell írni az URL-t a parancssorba.
Az MPlayer figyeli a
http_proxy
környezeti változót is, és használja a
proxy-t, ha van. Azonban így is megadhatod a proxy-t:
mplayer http_proxy://proxy.micorsops.com:3128/http://micorsops.com:80/stream.asf
Az MPlayer tud olvasni a standard bemenetről (stdin) is (nem nevesített pipe). Ezt például FTP-ről történő lejátszásnál tudod használni:
wget ftp://micorsops.com/something.avi
-O - | mplayer -
Tanácsos megadni a -cache kapcsolót, ha hálózatról játszol le:
wget ftp://micorsops.com/something.avi
-O - | mplayer -cache 8192 -
Ha már sikerült az MPlayerrel lejátszani a kedvenc internetes stream-edet, a -dumpstream kapcsoló segítségével el is tudod menteni a folyamot egy fájlba. Például:
mplayerhttp://217.71.208.37:8006
-dumpstream -dumpfilestream.asf
Ez el fogja menteni a
http://217.71.208.37:8006
szerveren stream-elt
tartalmat a stream.asf
fájlba.
Ez működik az MPlayer által támogatott
összes protokollal, mint MMS, RSTP és így tovább.
Ha csak audiót vagy videót akarsz lementeni, használd a megfelelő
-dumpaudio vagy -dumpvideo kapcsolót,
de figyelj rá, hogy az MPlayer a parancssorban
megadott összes -dump* kapcsolót figyelmen kívül hagyja
az utolsó kivételével.
A távoli stream-ek segítségévela legtöbb MPlayer által ismert stream típust elérheted egy távoli hoszt segítségével is. A fő célja ennek, hogy direkt módon használhasd egy másik számítógép CD vagy DVD meghajtóját hálózaton keresztül (feltéve, hogy megvan a megfelelő sávszélesség). Letöltési oldalon pár stream típus (jelenleg a TV és az MF) nem használhatóak távolról, mert a demuxer szintjén vannak implementálva. Ez sajnálatos az MF esetében, de a TV stream-hez úgyis eszeveszettül nagy sávszélesség kellene.
Miután lefordítottad az MPlayert, menj a TOOLS/netstream könyvtárba és add ki a make parancsot a szerver bináris elkészítéséhez. Ezután a netstream binárist bemásolhatod a megfelelő helyre (általában /usr/local/bin Linuxon).
Először el kell indítanod a szervert azon a gépen, amit távolról el akarsz érni. Jelenleg a szerver nagyon kezdetleges és nincs parancssori kapcsolója, csak írd be a netstream parancsot. Ezután például le tudod játszani a szerverben lévő VCD második sávját:
mplayer -cache 5000 mpst://servername/vcd://2
A szerveren lévő fájlokat is elérheted:
mplayer -cache 5000 mpst://servername//usr/local/movies/lol.avi
Figyelj arra, hogy ha egy elérési útvonal nem / jellel kezdődik, akkor az a szerver futási helyéhez képest lesz relatív. A -cache kapcsoló nem szükséges, de nagyon ajánlott.
Vigyázz, a jelenlegi szerver semennyire sem biztonságos. Tehát ne panaszkodj a számos exploit miatt, ami esetleg kihasználhatja ezt. Inkább küldj néhány (jó) javítást, hogy jobb legyen vagy kezd el írni a saját szervered.
Az edit decision list (EDL) rendszer segítségével automatikusan kihagyhatsz vagy elnémíthatsz részeket videókban a lejátszás alatt, egy film specifikus EDL konfigurációs fájl segítségével.
Ez azoknak hasznos, akik "család-barát" módban szeretnének filmet nézni. Ki tudsz vágni bármilyen erőszakos, káromkodós, Jar-Jar Binks-es jelenetet egy filmből, a saját igényeidnek megfelelően. Mindemellett más felhasználási módok is vannak, például automatikusan átlépni a videó fájlokban lévő reklámokat.
Az EDL fájl formátuma eléggé egyszerű. Majd ha az EDL rendszer elér egy bizonyos fejlettségi szintet, egy XML alapú fájl formátum lesz implementálva valószínűleg (megtartva a kompatibilitást visszafelé, a régi EDL formátumokkal).
Add meg a -edl <fájlnév> kapcsolót, amikor indítod az MPlayert, a videóhoz használni kívánt EDL fájl nevével.
A jelenlegi EDL fájl formátum:
[kezdő másodperc] [befejező másodperc] [akció]
Ahol a másodpercek lebegőpontos számok, az akció pedig vagy
0
a kihagyáshoz vagy 1
az elnémításhoz. Például:
5.3 7.1 0 15 16.7 1 420 422 0
Ez az 5.3 másodperctől a 7.1 másodpercig kihagyja a videót, majd 15 másodpercnél leveszi a hangot, 16.7 másodpercnél visszateszi és a 420. és 422. másodperc között ismét kihagy a videóból. Ezek az akciók akkor hajtódnak végre, amikor a lejátszás időzítője eléri a fájlban megadott időket.
Ha készíteni akarsz egy EDL fájl, amit utána szerkeszthetsz, használd a -edlout <fájlnév> kapcsolót. Lejátszás közben, ha meg akarod jelölni az előző két másodpercet kihagyásra, nyomd meg az i billentyűt. A megfelelő bejegyzés bekerül a fájlba erre az időszakra. Ezután kézzel tetszőlegesen beigazíthatod az EDL fájlt.
A legtöbb DVD és sok más fájl térhatású hangot tartalmaz. Az MPlayer támogatja a térhatású lejátszást, de alapértelmezésként nem engedélyezi, mivel a sztereó berendezések a gyakoribbak. A több, mint két csatornás audiót tartalmazó fájlok lejátszásához használd a -channels kapcsolót. Például egy 5.1-es audióval rendelkező DVD lejátszása:
mplayer dvd://1 -channels 6
Figyelj rá, hogy az "5.1" név ellenére valójában hat különálló csatorna van. Ha van térhatású hangfalszetted, nyugodtan beleírhatod a channels opciót az MPlayer konfigurációs fájljába, a ~/.mplayer/config-ba. Például a kvadrafónikus lejátszás alapértelmezetté tételéhez írd be ezt a sort:
channels=4
Az MPlayer ekkor az audiót négy csatornán fogja lejátszani, ha mind a négy csatorna elérhető.
Az MPlayer nem duplázza meg a csatornákat alapból, ahogy a legtöbb audió vezérlő sem. Ha ilyet akarsz, kézzel kell megadnod:
mplayer filename
-af channels=2:2:0:1:0:0
Lásd a csatorna másolásról szóló rész a magyarázatért.
A DVD-k általában AC3 (Dolby Digital) vagy DTS (Digital Theater System) formátumban kódolt térhatású hanggal rendelkeznek. Néhány modern audió berendezés képes ezen formátumok belső dekódolására. Az MPlayer beállítható úgy, hogy dekódolás nélkül adja át az audió adatot. Ez csak akkor fog működni, ha van egy S/PDIF (Sony/Philips Digital Interface) jack dugó a hangkártyádon.
Ha az audió berendezésed tudja dekódolni mind az AC3-at, mind a DTS-t, nyugodtan engedélyezheted az áteresztést mindkét formátumnál. Különben csak arra a formátumra engedélyezd, amelyiket a berendezésed támogatja.
Áteresztés engedélyezése a parancssorban:
Csak AC3-hoz használd a -ac hwac3 kapcsolót.
CSak DTS-hez használd a -ac hwdts kapcsolót
AC3 és DTS esetén használd a -afm hwac3 kapcsolót.
Áteresztés engedélyezése az MPlayer konfigurációs fájljában:
Csak AC3-hoz használd az ac=hwac3, sort.
Csak DTS-hez használd az ac=hwdts, sort.
AC3 és DTS esetén használd az afm=hwac3 sort.
Figyelj rá, hogy az ac=hwac3, és ac=hwdts, sorok végén van egy vessző (","). Ez arra utasítja az MPlayert, hogy váltson vissza a normálisan használt codec-re, ha olyan fájlt játszasz le, amiben nincs AC3-as vagy DTS audió. Az afm=hwac3 sorba nem kell vessző; az MPlayer mindenképpen vált ha egy audió család van megadva.
***TENNIVALÓ***
Ezt a részt még el kell készíteni, de addig nem lehet befejezni, amíg valaki nem ad nekünk hozzá példafájlokat teszteléshez. Ha van mátrix-kódolású audió fájlod, tudod, hogy hol lehet találni ilyet vagy van bármilyen információd, hálásak lennénk ha üzennél nekünk az MPlayer-DOCS levelezési listára. Írj egy "[matrix-encoded audio]"-t a tárgy sorba.
Ha nem érkezik fájl vagy további információ, ez a fejezet törölve lesz.
Jó link-ek:
Az MPlayer tartalmaz HRTF (Head Related Transfer Function) szűrőt, mely egy MIT projekten alapszik, melyben méréseket végeztek emberi műfejre szerelt mikrofonokkal.
Bár nem lehet tökéletesen imitálni egy térhatású rendszert, az MPlayer HRTF szűrője biztosít térben némileg mélyített hangot két csatornás fülhallgatón. A hagyományos lekeverés egyszerűen kombinálja az összes csatornát kettőbe; a csatornák kombinálásán túl a hrtf finom visszhangot generál, kissé növeli a sztereó elválasztást és megváltoztatja néhány frekvencia hangerejét. A HRTF hangzásának minősége függ a forrás audiótól és az emberi érzékléstől, de mindenképpen megér egy próbát.
DVD lejátszása DVD HRTF-fel:
mplayer dvd://1 -channels 6 -af hrtf
A hrtf csak 5 vagy 6 csatornával működik jól, valamint 48 kHz-es audió kell hozzá. A DVD audió már 48 kHz-es, de ha van egy fájlod ettől különböző mintavételezési rátával, akkor a hrtf-fel történő lejátszáshoz újra kell mintáznod:
mplayer fájlnév
-channels 6 -af resample=48000,hrtf
Sajnos nincs szabvány a csatornák sorrendjére vonatkozóan. Az alábbi sorrend az AC3-é, ami eléggé tipikus; próbáld meg ezt és meglátod, hogy a forrásod megfelel-e neki. A csatornák számozása 0-tól indul.
mono
sztereó
kvadrafónikus
surround 4.0
surround 5.0
surround 5.1
A -channels kapcsolóval az audió dekódertől lekérdezhető a csatornák száma. Néhány audió codec a specifikált csatornák számát használja fel a downmixing szükségességének megállapítására. Figyelj rá, hogy ez nem mindig érinti a kimeneti csatornák számát. Például a -channels 4 használata egy sztereó MP3 fájl lejátszásánál továbbra is 2 csatornás kimenetet ad, mert az MP3 codec nem tud extra csatornákat készíteni.
A channels audió szűrő használható csatornák létrehozására vagy eltávolítására, a hangkártya felé kiküldött csatornák számának beállítására való. Lásd a következő fejezeteket a csatorna manipulációval kapcsolatos bővebb információkért.
A mono hangok sokkal jobbak, ha két hangszórón keresztül hallhatóak - különösen ha fülhallgatót használsz. Az audió fájlok, amik ténylegesen egy csatornásak, automatikusan két hangszórón keresztül kerülnek lejátszásra; sajnos, a legtöbb mono hangú fájl tulajdonképpen szereóként van elkódolva, amiben az egyik csatornát lenémították. A legkönnyebb és legbolondbiztosabb megoldás arra, hogy mindkét hangszórón ugyanaz a kimenet legyen, az extrastereo szűrő:
mplayer fájlnév
-af extrastereo=0
Ez átlagolja mindkét csatornát, aminek eredményeként fele olyan hangosak lesznek, mint az eredeti. A következő fejezetekben találsz egyéb példákat is ennek megvalósítására a hangerő csökkentése nélkül, de azok komplexek és különböző kapcsolókat igényelnek attól függően, hogy melyik csatornát tartod meg. Ha tényleg szükséges a hangerő megtartása, könnyebb, ha a volume szűrővel kikísérletezed és megkeresed a helyes hangerőt. Például:
mplayer filename
-af extrastereo=0,volume=5
A channels szűrő bármelyik vagy az összes csatornát tudja mozgatni. A channels szűrő alopcióinak beállítása esetenként bonyolult és némi odafigyelést kíván.
Döntsd el, hány kimeneti csatornára van szükséged. Ez az első alopció.
Számold meg, hány csatornamozgatást fogsz véghezvinni. Ez a második alopció. Minden csatorna több különböző helyre mozgatható egy időben, de tartsd észben, hogy ha egy csatornát mozgatsz (még ha csak egy helyre is), a forrás csatorna üres lesz amíg másik csatornát nem mozgatsz a helyére. Csatorna másolásakor a forrás ugyan az marad, egyszerűen csak mozgasd a csatornát mind a cél mind a forrás helyre. Például:
2-es csatorna --> 3-as csatorna 2-es csatorna --> 2-es csatorna
Írd le a csatorna másolásokat alopció párokként. Figyelj rá, hogy az első csatorna
a 0, a második az 1, stb. Ezen alopciók sorrendje nem számít, amíg megfelelően
vannak csoportosítva forrás:cél
párokba.
Itt egy példa az egy csatorna több hangszóróra való kiküldésének egy másik módjára. Ebben a példában feltételezzük, hogy a bal csatornát kell lejátszani és a jobb csatornát eldobjuk. Követve a fenti leírást:
Ahhoz, hogy egy-egy kimeneti csatorna legyen mindkét hangszóróhoz, az első alopciónak "2"-nek kell lennie.
A bal csatornát kell mozgatni a jobb csatornára és saját magára is, hogy ne legyen üres. Ez összesen két mozgatás, ami miatt a második alopció is "2".
A bal csatorna mozgatásához (0. csatorna) a jobb csatornára (1. csatorna) az alopció pár "0:1", "0:0" mozgatja a bal csatornát saját magára.
Mindezt összerakva kapjuk:
mplayer fájlnév
-af channels=2:2:0:1:0:0
Ezen példa előnye az extrastereo-val szemben, hogy a hangerő mindegyik kimeneti csatornán a bemeneti csatornáéval megegyező lesz. A hátránya, hogy az alopciókat "2:2:1:0:1:1"-re kell változtatni, ha a kívánt audió a jobb csatornán van. Valamint nehezebb megjegyezni és begépelni.
Van egy sokkal könnyebb mód a channels szűrő használatára, hogy a bal csatornát mindkét hangszórón megszólaltassuk:
mplayer fájlnév
-af channels=1
A második csatorna figyelmen kívül marad és további alopciók nélkül az egyetlen megmaradó csatorna egyedül marad. A hangkártya vezérlők az egy csatornás audiót automatikusan lejátszák mindkét hangszórón. Ez csak akkor működik, ha a kívánt csatorna a bal.
Másik gyakori művelet az elülső csatornák duplázása és lejátszása hátul, a hátsó hangszórókon kvadrafónikus beállítással.
Négy kimeneti csatorna kell. Az első alopció "4".
A két elülső csatornát kell mozgatni a megfelelő hátsóra és saját magára. Ez négy mozgatás, a második alopció "4".
A bal elsőt (0. csatorna) kell mozgatni a bal hátsóra (2. csatorna): "0:2". A bal elsőt saját magára is kell mozgatni: "0:0". A jobb elsőt (1. csatorna) a jobb hátsóra (3. csatorna): "1:3", és saját magára kell mozgatni: "1:1".
Az alopciók összeállításával kapjuk:
mplayer fájlnév
-af channels=4:4:0:2:0:0:1:3:1:1
A pan szűrő felhasználó által megadott arányban tudja keverni a csatornákat. Ezzel meg lehet csinálni mindent, amit a channels szűrővel, és még többet is. Sajnos az alopciók még komplikáltabbak.
Döntsd el, hány csatornával akarsz dolgozni. Ezt a -channels és/vagy -af channels kapcsolókkal kell megadnod. A példák megmutatják, mikor melyiket kell használni.
Döntsd el, hány csatornát adsz át a pan-nek (a további dekódolt csatornák figyelmen kívül maradnak). Ez az első alopció és szabályozza a kimeneti csatornák számát is.
A fennmaradó alopciók megadják, hogy melyik csatornát milyen mértékben kell bekeverni mindegyik másik csatornába. Ez az igazán bonyolult dolog. Könnyítésként válaszd szét az alopciókat különböző részekre, egy rész minden egyes kimeneti csatornához. Minden egy részen belül található alopció egy bemeneti csatornának felel meg. A szám, amit megadsz, a bemeneti csatorna kimeneti csatornába történő bekeverésének százalékos aránya lesz.
A pan 0 és 512 közötti értékeket fogad el, az eredeti hangerő 0% és 51200%-ának megfelelően. Légy óvatos, ha 1-nél nagyobb értékeket használsz. Nem csak nagy hangerőt adhat, de ha túlléped a hangkártyád mintavételezési rátáját, kellemetlen pukkanásokat és kattanásokat hallhatsz. Ha akarod, a pan-t követheti egy ,volume a vágás engedélyezéséhez, de jobb a pan értékeit olyan alacsonyan tartani, hogy ne kelljen vágni.
Itt van egy újabb példa a bal csatorna két hangszórón történő lejátszására. Kövesd a fent leírt lépéseket:
A pannek két kimeneti csatornája lesz, így az első alopció "2".
Mivel két bemeneti csatornánk van, két alopció rész lesz. Mivel két kimeneti csatornánk van, két alopció lesz részenként. A fájl bal csatornája teljes hangerővel mehet az új bal és jobb csatornára. Így az első alopció rész "1:1". A jobb csatornát figyelmen kívül kell hagyni, így a második "0:0". A sorvégi 0 értékek elhagyhatóak, de a könnyebb megértésért most megtartjuk őket.
Ezen opciók összeállítása adja:
mplayer fájlnév
-af pan=2:1:1:0:0
Ha inkább a jobb csatorna kell a bal helyett, a pan alopciói "2:0:0:1:1" lesznek.
Amint a channels-el, itt is lehet rövidíteni, ha a csak a bal csatornával dolgozol:
mplayer fájlnév
-af pan=1:1
Mivel a pan-nek csak egy bemeneti csatornája van (a másik csatorna figyelmen kívül marad), csak egy része van az alopcióknak, ami megadja, hogy az egyetlen csatorna saját maga 100%-át kapja.
Az MPlayer 6 csatornás PCM dekódolója nem tud lekeverni. Itt egy módszer a PCM lekeverésre a pan használatával:
A kimeneti csatornák száma 2, így az első alopció "2".
Hat bemeneti csatornával hat alopció rész lesz. Szerencsére mivel csak az első két csatorna kimenetével foglalkozunk, csak két részt kell készítenünk; a maradék négy elhagyható. Vigyázz, nem mindig ugyan az a csatornák sorrendje a többcsatornás audió fájlokban! Ez a példa egy olyan fájl lekeverését szemlélteti, amiben ugyan olyan csatornák vannak, mint az AC3 5.1 esetén:
0 - bal első 1 - jobb első 2 - bal hátsó 3 - jobb hátsó 4 - középső első 5 - mélynyomó
Az alopciók első csoportja az eredeti hangerő százalékát adja, sorrendben, amit mindegyik kimeneti csatorna a bal első csatornától kap: "1:0". A jobb első csatornának a jobb kimenetre kell mennie: "0:1". Ugyan ez a hátsó csatornákra: "1:0" és "0:1". A középső csatorna mindkét kimeneti csatornára átmegy fél hangerővel: "0.5:0.5", a mélynyomó pedig mindkettőre teljes hangerővel: "1:1".
Mindezt összerakva:
mplayer 6-channel.wav
-af pan=2:1:0:0:1:1:0:0:1:0.5:0.5:1:1
A fenti példa százalékok csak durva példák. Nyugodtan játszadozz velük!
Ha egy pár nagy hangszóród van elől, nem kell pénzt áldoznod mélynyomóra a teljes 5.1-es hangzáshoz. Ha a -channels 5 használatával kéred, hogy a liba52 az 5.1-es audiót 5.0-ban dekódolja, a mélynyomó csatornája egyszerűen elmarad. Ha a mélynyomó csatornáját saját magad szeretnéd szétosztani, kézzel kell lekeverned a pan-nal:
Mivel a pan-nak mind a hat csatornával kell foglalkoznia, add meg a -channels 6 kapcsolót, hogy a liba52 dekódolja őket.
A pan csak öt csatornára küld kimenetet, az első alopció 5.
Hat bemeneti csatorna van és öt kimeneti csatorna, ez hat részt jelent öt alopcióval.
Ezen opciók összevonásával születik meg az eredmény:
mplayer dvd://1
-channels 6 -af pan=5:1:0:0:0:0:0:1:0:0:0:0:0:1:0:0:0:0:0:1:0:0:0:0:0:1:0.5:0.5:0:0:0
Néhány audió sáv túl halk, hogy kényelmesen hallható legyen kiegészítés nélkül. Ez akkor jelent problémát, ha az audió berendezésed nem tud erősíteni a jelen. A -softvol opció utasítja az MPlayert egy belső keverő használatára. Használhatod a hangerő állító gombokat (alapértelmezettként 9 és 0) a nagyobb hangerő eléréséhez. Figyelj rá, hogy ez nem hagyja figyelmen kívül a hangkártyád keverőjét; az MPlayer csak erősít az eredeti jelen mielőtt kiküldené a hangkártyára. A következő példa jó kezdésként:
mplayer halk-fájl
-softvol -softvol-max 300
A -softvol-max opció megadja a maximálisan megengedhető kimeneti hangerőt az eredeti hangerő százalékában. Például a -softvol-max 200 az eredeti szint dupláját engedélyezi. Nyugodtan megadhatsz egy nagy értéket a -softvol-max kapcsolóval; a nagyobb hangerő addig nem lesz használva, amíg te nem használod a hangerő állító gombokat. Az egyetlen hátránya a nagy értéknek az, hogy mivel az MPlayer a maximum százalékával állítja be a hangerőt, nem lesz olyan precíz vezérlésed a hangerő állító gombok használatakor. Használj kisebb értéket a -softvol-max-szal és/vagy add meg a -volstep 1-et, ha nagyobb pontosságot akarsz.
A -softvol opció a volume audió szűrő vezérlésével működik. Ha egy fájlt egy bizonyos hangerővel akarsz lejátszani az elejétől kezdve, megadhatod a volume-val kézzel:
mplayer halk-fájl
-af volume=10
Ez 10 decibel-es növeléssel játsszal le a fájlt. Légy óvatos, ha a volume szűrőt használod - könnyen károsíthatod a füleidet, ha túl nagy értéket használsz. Kezd alacsonyan és fokozatosan menj felfelé, amíg meg nem érzed, hogy meddig kell állítani. Valamint ha nagyon nagy értékeket adsz meg, a volume-nek lehet, hogy le kell csípnie a jelet, hogy megakadályozza a hangkártyád elfogadható tartományán kívül eső adatok küldését; ez zavart audiót eredményez.
4.1. Fejlesztés | |
K: | Hogyan készítsek egy megfelelő patchet az MPlayerhez? |
V: | Készítettünk egy rövid leírást, melyben minden fontos dolgot megtalálsz. Kérünk kövesd az utasításait! |
K: | Hogyan fordíthatom le az MPlayert egy új nyelvre? |
V: | Olvasd el a fordítás HOGYAN-t, az elmagyaráz mindent. További segítséget kaphatsz az MPlayer-translations levelezési listán. |
K: | Hogyan támogathatom az MPlayer fejlesztését? |
V: | Több mint örömmel fogadjuk a hardver és szoftver felajánlásokat. Ezek segítenek nekünk az MPlayer folyamatos fejlesztésében. |
K: | Hogyan lehetek én is MPlayer fejlesztő? |
V: | Mindig örömmel várjuk a programozókat és a dokumentáció készítőket. Olvasd el a technikai dokumentációt hogy egy kicsit megértsd a dolgokat. Majd fel kell iratkoznod az MPlayer-dev-eng levelezési listára és elkezdeni kódolni. Ha a dokumentáció készítésében szeretnél segíteni, csatlakozz az MPlayer-docs levelezési listához! |
K: | Miért nem használjátok az autoconf/automake párost? |
V: | Van egy saját, moduláris fordító rendszerünk. Meglehetősen jól teszi a dolgát, így hát miért váltsunk? Ezonkívül nem szeretjük az auto* eszközöket, mint ahogy mások sem. |
4.2. Fordítás és telepítés | |
| |
K: |
A fordítás leáll hibaüzenettel és a gcc valami
titokzatos üzenetet ad ki magából, ami a
|
V: | Belebotlottál egy gcc hibába. Kérjük jelentsd a gcc csapatnak és ne nekünk. Valamiért úgy tűnik az MPlayer folyamatosan fordító hibákat idéz elő. Azonban mi ezeket nem tudjuk javítani és nem teszünk "kerülőutakat" a kódba a fordító hibái miatt. Hogy elkerüld ezt a problémát, vagy használj ismert és megbízható, stabil verziót a fordítóból vagy frissítsd rendszeresen. |
K: | Vannak bináris (RPM/Debian) csomagok az MPlayerből? |
V: | |
K: | Hogyan fordíthatok 32 bites MPlayert egy 64 bites Athlon-on? |
V: | Próbáld meg a következő configure kapcsolókkal: ./configure --target=athlon_xp --cc="gcc -m32" --as="as --32" --with-extralibdir=/usr/lib
|
K: | A konfiguráció ezzel a szöveggel ér véget és az MPlayer nem fordul le! Your gcc does not support even i386 for '-march' and '-mcpu'
|
V: | A gcc-d nincs megfelelően installálva, ellenőrizd a configure.log fájlt a részletekért! |
K: |
Van egy Matrox G200/G400/G450/G550 kártyám, hogyan tudom lefordítani/használni
az |
V: | Olvasd el az mga_vid részt. |
K: | A 'make' közben az MPlayer hiányzó X11 könyvtárak miatt panaszkodik. Nem értem, van telepítve X11-em!? |
V: | ... de nincsenek telepítve az X11 fejlesztői csomagjai. Vagy rosszul vannak fent. XFree86-devel* a nevük Red Hat alatt és xlibs-dev Debian Woody ill. libx11-dev Debian Sarge alatt. Nézd meg azt is, hogy a /usr/X11 és a /usr/include/X11 szimbolikus linkek léteznek-e (ez Mandrake rendszereken lehet probléma). |
4.3. Általános kérdések | |
| |
K: | Van MPlayerrel foglalkozó levelezési lista? |
V: | Igen. Lásd a levelezési listák részt! |
K: | Találtam egy csúnya hibát, amikor megpróbáltam lejátszani a kedvenc videómat! Kit értesítsek? |
V: | Kérünk olvasd el a hiba jelentési útmutatót és kövesd az utasításait. |
K: | Problémám van a ... codec-kel történő lejátszással. Egyáltalán használható? |
V: | Ellenőrizd a codec státusz oldalt, ha nem tartalmazza a te codecedet, olvasd el a codec dokumentációt, különösen a codec importálás HOGYAN-t és keress meg minket. |
K: | Ha elindítom a lejátszást, ezt az üzenetet kapom, de látszólag minden rendben van: Linux RTC init: ioctl (rtc_pie_on): Permission denied
|
V: | Rendszergazdai (root) jogok kellenek vagy speciálisan beállított kernel az új időzítő kód használatához. A részletekért lásd az RTC részt a dokumentációban. |
K: | Hogyan készíthetek mentést a képernyőről? |
V: | Olyan videó kimeneti vezérlőt kell használnod, ami nem átlapolva dolgozik, csak így tudod elmenteni a képet. X11 alatt a -vo x11 megteszi, Windows alatt a -vo directx:noaccel működik.
Alternatívaként futtathatod az MPlayert a
|
K: | Mit jelentenek a számok a státusz sorban? |
V: | Például: A: 2.1 V: 2.2 A-V: -0.167 ct: 0.042 57/57 41% 0% 2.6% 0 4 49% 1.00x
Ezek legtöbbje hibakeresési céllal szerepel, a -quiet kapcsoló használatával eltüntethetőek. Észreveheted, hogy a video_out CPU használata nulla (0%) néhány fájlnál. Ez azért van, mert közvetlenül a codec-ből kerül meghívásra, így nem mérhető külön. Ha tudni akarod a video_out sebességét, hasonlítsd össze a -vo null-lal és a hagyományos videó kimeneti vezérlővel történő lejátszás értékeit. |
K: | Üzeneteket kapok a /usr/local/lib/codecs/ könyvtárban nem található fájlokról... |
V: | Töltsd le a bináris codeceket a codec oldalunkról és telepítsd. |
K: | Hogyan emlékeztethetem az MPlayert egy bizonyos fájlnál használt opciókra, pl. a movie.avi-nál? |
V: | Hozz létre egy movie.avi.conf nevű fájl a fájl-specifikus opciókkal és tedd a ~/.mplayer könyvtárba vagy a fájl mellé. |
K: | A feliratok gyönyörűek, a legszebbek, amit valaha láttam, de lelassítják a lejátszást! Tudom, hogy hihetetlen ... |
V: |
Miután lefuttattad a ./configure-t, írd át a config.h
fájlt és cseréld ki az |
K: | Nem érem el a GUI menüt. Jobb gombbal kattintok, de semelyik menüelemet sem tudom elérni! |
V: | FVWM-et használsz? Próbáld ki ezt:
|
K: | Hogy tudom az MPlayer a háttérben futtatni? |
V: | Így: mplayer
|
4.4. Lejátszási problémák | |
| |
K: | Nem találom néhány érdekes lejátszási probléma okát. |
V: | Nem maradt valahol egy codecs.conf fájlod a ~/.mplayer/, /etc/, /usr/local/etc/ vagy hasonló helyen? Töröld le, egy régi codecs.conf fájl ismeretlen problémákat okozhat és csak a fejlesztőknek lett szánva a codec támogatások elkészítéséhez. Felülbírálja az MPlayer belső codec beállításait, ami megbosszulja magát, ha az újabb verziókban inkompatibilis változások jelennek meg. Hacsak nem vagy hozzáértő, ez a tuti recept a láthatóan véletlenszerű és nehezen azonosítható fagyások és lejátszási problémák esetén. Ha még valahol megtalálható a rendszereden, most azonnal töröld le! |
K: | Hogyan jeleníthetem meg a feliratot a film körül lévő fekete sávon? |
V: |
Használd az mplayer -vf expand=0:-100:0:0 -slang de dvd://1
|
K: | Hogyan tudok audió/felirat sávot választani a DVD, OGM, Matroska vagy NUT fájlban? |
V: | A -aid (audio ID) vagy -alang (audió nyelv), -sid(felirat ID) vagy -slang (felirat nyelv) kapcsolókkal, például: mplayer -alang eng -slang eng Ha kiváncsi vagy, hogy melyek elérhetőek: mplayer -vo null -ao null -frames 0 -v
|
K: | Egy véletlen stream-et szeretnék lejátszani az Internetről, de nem sikerül. |
V: | Próbáld meg lejátszani a stream-et a -playlist kapcsolóval. |
K: | Letöltöttem egy videót egy P2P hálózatról és nem megy! |
V: | A fájlod valószínűleg sérült vagy fake. Ha egy ismerőstől kaptad és ő azt mondja, hogy működik, hasonlítsd össze az md5sum hash-eket. |
K: | Gondjaim vannak a feliratok megjelenítésével, segítsetek!! |
V: |
Győződj meg róla, hogy helyesen telepítetted a betűtípusokat. Fuss át a lépésein újra
a OSD és felirat részben a telepítési fejezetben.
Ha TrueType betűtípusokat használsz, ellenőrizd, hogy van
|
K: | Miért nem működik az MPlayer Fedora Core-on? |
V: | Rossz az együttműködés a Fedora-n az exec-shield, prelink és néhány Windows DLL-eket használó alkalmazás (mint például az MPlayer) között. A probléma az, hogy az exec-shield véletlenszerűsíti az összes rendszer függvény könyvtár betöltési helyét. Ez a véletlenszerűsítés prelink időben történik meg (kéthetente egyszer). Amikor az MPlayer megpróbálja betölteni egy Windows DLL-t, egy speciális címre akarja tenni (0x400000). Ha egy fontos rendszer függvény könyvtár már épp ott van, az MPlayer összeomlik. (Tipikus jele ennek a Windows Media 9 fájlok lejátszásakor bekövetkező szegmentálási hiba.) Ha egy ilyenbe belefutsz, két lehetőséged van:
|
K: | Az MPlayer meghal ezzel: MPlayer interrupted by signal 4 in module: decode_video
|
V: | Ne használd az MPlayert más CPU-n, mint amin fordítva lett, vagy fordítsd újra futásidejű CPU felismeréssel (./configure --enable-runtime-cpudetection). |
K: | Ha menteni próbálok a tuneremről, működik, de a színek érdekesek lesznek. Más alkalmazásokkal minden rendben van. |
V: | A kártyád valószínűleg támogatottként jelöl meg bizonyos színtereketet, miközben nem támogatja őket. Próbáld meg YUY2-vel az alapértelmezett YV12 helyett (lásd a TV fejezetet). |
K: | Furcsa százalékos értékeket kapok (nagyon magasak), miközben a notebook-omon játszok le fájlokat. |
V: | A notebookod energia menedzselő / energia takarékoskodó rendszerének (BIOS, nem kernel) hatása. Dugd be a külső áramkábelt mielőtt bekapcsolod a notebookodat. Megnézheted, hogy a cpufreq (SpeedStep interfész Linuxra) segít-e neked. |
K: | Az audió/videó teljesen elveszti a szinkront ha az MPlayert root-ként futtatom a notebookon. Normálisan működik, ha felhasználóként futtatom. |
V: | Ez megint csak az energia menedzsment hatása (lásd feljebb). Dugd be a külső áramkábelt mielőtt bekapcsolod a notebookodat vagy használd a -nortc kapcsolót. |
K: | Film lejátszása közben hirtelen szaggatottá válik és a következő üzenetet kapom: Badly interleaved AVI file detected - switching to -ni mode...
|
V: | Rossz a fájl interleave-je és a -cache sem működik jól. Próbáld meg a -nocache kapcsolót. |
4.5. Videó/audió vezérlő problémák (vo/ao) | |
| |
K: | Ha átváltok teljes képernyős módba, csak fekete széleket kapok a kép körül és nincs igazi méretezés teljes képernyős módra. |
V: |
A videó kimeneti eszközöd nem támogatja a hardveres méretezést és a
szoftveres hihetetlenül lassú tud lenni, az MPlayer
alapértelmezésként nem engedélyezi. Legvalószínűbb, hogy az
|
K: | Most telepítettem az MPlayert. Amikor meg akarok nyitni vele egy videó fájlt, végzetes hibával elszáll: Error opening/initializing the selected video_out (-vo) device. Hogyan oldhatom meg ezt a problémát? |
V: | Csak változtass a videó kimeneti eszközön. Írd be a következő parancsot a használható videó kimeneti vezérlők listájához: mplayer -vo help Miután kiválasztottad a megfelelő videó kimeneti vezérlőt, írd be a konfigurációs fájlodba. Ezt egy
vo = sor ~/.mplayer/config fájlhoz adásával és/vagy
vo_driver = ~/.mplayer/gui.conf fájlba írásával teheted meg. |
K: |
Problémám van a |
V: | Olvasd el a hiba jelentési leírást és küldj egy megfelelő hiba jelentést. Vagy próbaként kísérletezhetsz a -fstype kapcsolóval. |
K: | AVI fájl lejátszásakor elveszik az audió szinkronizáció. |
V: | Próbáld meg a -bps vagy a -nobps kapcsolót. Ha nem javul, olvasd el a hibajelentési útmutatót és töltsd fel a fájlt az FTP-re. |
K: | A számítógépem az MS DivX AVI-kat ~ 640x300-as felbontásban játssza le, sztereó MP3 hanggal, és lassú. Ha használom a -nosound kapcsolót, minden rendben (csak nincs hang). |
V: | A géped túl lassú vagy a hangkártyád vezérlője hibás. Nézd végig a dokumentációt, hogy megtudd, hogyan javíthatsz a teljesítményen. |
K: | Hogy tudom használni a dmix-et az MPlayerrel? |
V: | Miután beállítottad az asoundrc-t használd a -ao alsa:device=dmix kapcsolót. |
K: | Nincs hang videó lejátszása közben, és egy ehhez hasonló üzenetet kapok: AO: [oss] 44100Hz 2ch Signed 16-bit (Little-Endian) audio_setup: Can't open audio device /dev/dsp: Device or resource busy couldn't open/init audio device -> NOSOUND Audio: no sound!!! Start playing...
|
V: | KDE-t vagy GNOME-ot futtatsz aRts vagy ESD hang démonnal? Próbáld meg kikapcsolni a hang démont vagy használd a -ao arts vagy -ao esd kapcsolót, hogy az MPlayer aRts-ot vagy ESD-t használjon. Talán az ALSA-t OSS emuláció nélkül futtatod, próbáld meg betölteni az ALSA OSS kernel modulját vagy megadni a -ao alsa kapcsolót a parancssorban a közvetlen ALSA audió kimeneti vezérlő használatához. |
K: | Ha elindítom az MPlayert KDE alatt, csak egy üres képet kapok és semmi sem történik. Majd kb. egy perc után elindul a videó lejátszás. |
V: | A KDE aRts zene démonja blokkolja a hang eszközt. Vagy megvárod, amíg a videó elindul vagy kikapcsolod az arts-démont a vezérlőpanelben. Ha arts-ot akarsz használni, add meg az audió kimenetnek a mi saját, natív aRts audió vezérlőnket (-ao arts). Ha nem működik vagy nincs beforgatva, próbáld meg az SDL-t (-ao sdl) és győződj meg róla, hogy az SDL tudja kezelni az aRts-ot. Másik lehetőség, hogy az MPlayert artsdsp-vel indítod. |
K: | A/V szinkronizálási problémáim vannak. Néhány AVI fájlom rendesen lejátszódik, de néhány dupla sebességgel megy! |
V: |
Hibás hang kártyád/vezérlőd van. Legvalószínűbb, hogy rögzítve van 44100Hz-en,
és olyan fájlt akarsz lejátszani, amiben 22050Hz-es audió van. Próbáld ki a
|
K: | Amikor filmet játszok le, szétesik a videó-audió szinkron és/vagy az MPlayer összeomlik ezzel az üzenettel: DEMUXER: Too many (945 in 8390980 bytes) video packets in the buffer!
|
V: | Ennek több oka lehet.
|
4.6. DVD lejátszás | |
| |
K: | Mi van a DVD navigációval/menükkel? |
V: | Az MPlayer nem támogatja a DVD menüket súlyos tervezési korlátok miatt, amik megakadályozzák a still images és az interaktív tartalom használatát. Ha szép menüket akarsz használni, másik lejátszót kell használnod, mint pl. a xine, a vlc vagy az Ogle. Ha DVD navigációt akarsz látni az MPlayerben, neked magadnak kell megcsinálnod, de vigyázz, nagy fába vágod a fejszédet. |
K: | Mi van a feliratokkal? Meg tudja őket jeleníteni az MPlayer? |
V: | Igen. Lásd a DVD fejezetet. |
K: | Hogy tudom beállítani a DVD meghajtóm régió kódját? Nincs Windows-om! |
V: | Használd a regionset eszközt. |
K: | Muszáj (setuid) root-nak lennem, hogy DVD-t nézhessek? |
V: | Nem. De megfelelő jogokkal kell rendelkezned a DVD eszköz bejegyzésére (a /dev/ könyvtárban). |
K: | Lehetséges, hogy csak a kijelölt fejezeteket játszam le/kódoljam? |
V: | Igen, próbáld ki a -chapter kapcsolót. |
K: | A DVD lejátszásom lassú! |
V: | Használd a -cache kapcsolót (ahogy le van írva a man oldalon) és próbáld meg engedélyezni a DMA-t a DVD meghajtóra a hdparm eszközzel (ahogy le van írva a CD fejezetben). |
K: | Másoltam egy DVD-t vobcopy-val. Hogyan tudom lejátszani/elkódolni a merevlemezemről? |
V: | Használd a -dvd-device kapcsolót, amivel megadhatod a könyvtárat, ahol a fájlok vannak:
mplayer dvd://1 -dvd-device
|
4.7. Speciális kérések | |
K: | Ha az MPlayert megállítom és megpróbálok ugrani vagy megnyomok bármilyen gombot, az MPlayer felfüggeszti a megállítást. Szeretnék keresni a megállított filmben. |
V: | Ezt megvalósítani nagyon nehéz lenne az A/V szinkronizáció elveszítése nélkül. Az összes kísérlet eddig kudarcba fulladt, de örömmel fogadjuk a javításokat. |
K: | Szeretnék +/- 1 képkockát ugrani a 10 másodperc helyett. |
V: | Egy képkockával előre léphetsz a . gombbal. Ha a film nem volt megállítva, akkor ezután megáll (lásd a man oldalt a részletekért). A visszafelé lépés valószínűleg nem lesz mostanában megvalósítva. |
4.8. Elkódolás | |
| |
K: | Hogy tudok kódolni? |
V: | Olvasd el a MEncoder részt. |
K: | Hogyan tudok egy teljes DVD részt átteni egy fájlba? |
V: | Ha kiválasztottad a részt és meggyőződtél róla, hogy az MPlayer jól játsza le, használhatod a -dumpstream kapcsolót. Például:
mplayer dvd://5 -dumpstream -dumpfile
kimenti a DVD 5. részét a |
K: | Hogy tudok automatikusan (S)VCD-t készíteni? |
V: | Használd a mencvcd szkriptet a TOOLS alkönyvtárból. Ezzel DVD-ket és más filmeket tudsz VCD vagy SVCD formátumba kódolni és még közvetlenül CD-re is írhatod őket. |
K: | Hogyan tudok (S)VCD-t készíteni? |
V: | A MEncoder újabb verziói direktben tudnak MPEG-2-es fájlokat készíteni, amiket fel lehet használni VCD vagy SVCD készítéshez és valószínűleg minden platformon lejátszhatóak (például videó megosztása egy digitális camcorderről a számítógép-tudatlan barátaiddal). Kérlek olvasd el a MEncoder használata VCD/SVCD/DVD-kompatibilis fájlok készítéséhez című fejezetet a bővebb információkért. |
K: | Hogy tudok összefűzni két videó fájlt? |
V: | Az MPEG fájlok csak szerencsés esetben fűzhetőek össze egy fájlba. AVI fájlokhoz használhatod a MEncoder több fájl támogatását így: mencoder -ovc copy -oac copy -o Ez csak akkor működik, ha a fájlok ugyan felbontásúak és ugyan azt a codec-et használják. Megpróbálhatod az avidemux-ot és az avimerge-t (a transcode eszközcsomag részei). |
K: | Hogyan tudom megjavítani a hibás indexű vagy átlapolt AVI fájlokat? |
V: | Ha el akarod kerülni az -idx kapcsoló állandó használatát azért, hogy képes legyél keresni a hibás indexű AVI fájlban vagy az -ni kapcsolót a rossz átlapoláshoz, használd a mencoder parancsot a videó és az audió folyamok új AVI fájlba másolásához, az index újragenerálásával és az átlapolási adatok kijavításával. Természetesen ez nem tudja kijavítani az esetleges hibákat a videó és/vagy audió folyamban. |
K: | Hogyan tudom kijavítani egy AVI fájl képének méretarányát? |
V: | Ilyet is tudsz csinálni hála a MEncoder -force-avi-aspect kapcsolójának, ami felülbírálja az AVI OpenDML vprp fejlécébe beírt értéket. Például: mencoder
|
K: | Nem tudok DVD feliratot kódolni az AVI fájlba! |
V: | Helyesen kell megadnod a -sid kapcsolót! |
K: | Csak a kiválasztott fejezeteket tudom elkódolni a DVD-ről? |
V: | Használd a -chapter kapcsolót pontosan, például: -chapter 5-7. |
K: | 2GB+ méretű fájlokkal próbálok dolgozni VFAT fájlrendszeren. Működni fog? |
V: | Nem, a VFAT nem támogatja a 2GB+ fájlokat. |
K: | Miért negatív a MEncoder által kiírt javasolt bitráta? |
V: | Mert a bitráta, amivel kódoltad az audiót túl nagy ahhoz, hogy a film ráférjen bármilyen CD-re. Ellenőrizd, hogy a libmp3lame megfelelően van-e telepítve. |
K: | Nem tudok elkódolni ASF fájlokat AVI/MPEG-4 (DivX)-be, mert 1000 fps-t használ? |
V: | Mivel az ASF változó bitrátát használ, az AVI pedig fix értéket, kézzel kell megadnod a -ofps kapcsoló segítségével. |
K: | Hogy tudok feliratot tenni a kimeneti fájlba? |
V: | Csak add meg a -sub <fájlnév> (vagy -sid, megfelelően) kapcsolót a MEncodernek. |
K: | Hogyan tudom csak a zenét elkódolni egy zenés videóból? |
V: | Közvetlenül nem lehetséges, de megpróbálhatod a következőt (figyelj a & jelre az mplayer parancs végén):
mkfifo encode
mplayer -ao pcm -aofile encode dvd://1 &
lame Így bármilyen kódolót használhatsz, nem csak a LAME-t, csak cseréld ki a lame-t a kedvenc audió kódolóddal a fenti parancsban. |
K: | Miért nem tudom lejátszani más programmal a MEncoder 1.0pre7 és későbbi verzióival kódolt MPEG-4 filmeket? |
V: |
A mencoder
Figyelj rá, hogy ez XVID-re állítja a FourCC-t a DIVX helyett.
Ez a javasolt eljárás, mivel a DIVX FourCC DivX4-et jelent, ami egy
nagyon alap MPEG-4 codec, míg a DX50 és XVID mindkettő teljes MPEG-4
(ASP) támogatást jelent.
Ezért ha DIVX-re változtatod a FourCC-t, néhány rossz program vagy
hardveres lejátszó agyoncsaphatja a |
K: | Hogyan tudok elkódolni egy csak audiót tartalmazó fájlt? |
V: | Használd az aconvert-et a TOOLS alkönyvtárból az MPlayer forrás fájában. |
K: | Hogyan tudom lejátszani az AVI-ba ágyazott feliratokat? |
V: | Használd az avisubdump.c fájlt a TOOLS alkönyvtárból vagy olvasd el ezt a dokumentumot az OpenDML AVI fájlokba ágyazott feliratok kicsomagolásáról/demultiplex-álásáról. |
K: | Az MPlayer nem... |
V: | Nézz bele a TOOLS alkönyvtárba, mindenféle scriptek és hack-ok gyűjteményét találod ott. A TOOLS/README tartalmazza a dokumentációt. |
A modern CD-ROM meghajtók nagyon nagy sebességen működnek, ugyanakkor több CD-ROM képes kisebb sebességű pörgésre is. Rengeteg oka lehet annak, hogy valaki meg akarja megváltoztatni a CD-ROM meghajtó sebességét:
Sok helyen írtak olvasási hibákról, melyek nagy sebességnél fordulnak elő, különösen rosszul nyomott CD-ROM-ok esetén. A csökkentett sebességgel megelőzheted az adatvesztést ilyen esetben.
Sok CD-ROM idegesítően hangos, alacsonyabb sebességen kisebb a zaj.
Az IDE CD-ROM meghajtók sebességét a hdparm, a setcd vagy a cdctl nevezetű programmal módosíthatod. Így működnek:
hdparm -E[sebesség]
[cdrom eszköz]
setcd -x[sebesség]
[cdrom eszköz]
cdctl -bS [sebesség]
Ha SCSI emulációt használsz, az igazi IDE eszközre vonatkozóan kell alkalmaznod a beállításokat, nem az emulált SCSI eszközre.
Ha root jogaid vannak, a következő parancs is segíthet:
echo file_readahead:2000000 > /proc/ide/[cdrom eszköz]
/settings
Ez beállítja a fájl előreolvasást 2 MB-ra, ami segít a karcos CD-ROM-ok esetében. Ha túl nagyra állítod, a meghajtó folyton felpörög majd leáll, és drasztikus módon csökkenni fog a teljesítménye. A javasolt módszer a CD-ROM meghajtó hdparm-mal történő beállítása:
hdparm -d1 -a8 -u1 [cdrom eszköz]
Ez bekapcsolja a DMA elérést, az előreolvasást, és az IRQ unmasking-ot (olvasd el a hdparm man oldalát a bővebb magyarázatért).
Nézd meg a "/proc/ide/cdrom eszköz
/settings"
fájlt a CD-ROM tuningolásához.
A SCSI meghajtókra vonatkozóan nincs egységes módszer ezen paraméterek beállításához. (Ismersz egyet? Mondd el nekünk is!) Van egy eszköz, ami Plextor SCSI meghajtókkal működik.
A használható kapcsolók teljes listájáért olvasd el a man oldalt. A szintaxis egy szabványos Digital Versatile Disc (DVD)-hez a következő:
mplayer dvd://<sáv>
[-dvd-device<eszköz>
]
Például:
mplayer dvd://1
-dvd-device/dev/hdc
Az alapértelmezett DVD eszköz a /dev/dvd. Ha a te beállításod különböző, készíts egy szimbolikus linket vagy add meg a megfelelő eszközt a parancssorban a -dvd-device kapcsolóval.
A DVD támogatás új formája (mpdvdkit2).
Az MPlayer fel tudja használni a libdvdread
-ot
és a libdvdcss
-t is a DVD-k dekódolásához és lejátszásához. Ez
a két függvény könyvtár a libmpdvdkit2/ alkönyvtárban
található az MPlayer forrás fájéban, nem kell őket
külön telepítened. Ezt a megoldást választottuk, mert javítanunk kellett egy
libdvdread
hibát és beletennünk egy másik javítást
a feltört CSS kulcsok cache-elésének támogatásához a
libdvdcss
-be. Ez nagy sebességnövekedést eredményezett,
mivel a kulcsokat nem kell mindig feltörni lejátszás előtt.
Az MPlayer a rendszer libdvdread
és libdvdcss
függvénykönyvtárait is tudja használni, de ez
nem javasolt, mivel hibák forrása lehet,
könyvtár inkompatibilítást és sebességcsökkenést okozhat.
Ha DVD dekódolási problémáid vannak, próbáld meg letiltani a supermount-ot vagy bármilyen más hasonló dolgot.
DVD struktúra. A DVD lemezeken 2048 bájtos szektorok vannak ECC/CRC-vel. Legtöbbször UDF fájlrendszer van egyetlen sávon, ami különböző fájlokat tartalmaz (kicsi .IFO és .BUK fájlok, valamint nagy (1 GB) .VOB fájlok). Ezek igazi fájlok, amik másolhatóak/lejátszhatóak egy nem titkosított DVD mountolt fájlrendszeréről.
Az .IFO fájlok a filmben történő navígációhoz tartalmaznak információkat (fejezet/cím/szög térkép, nyelvtáblázat, stb.) és szökségesek a .VOB tartalmának olvasásához és értelmezéséhez (film). A .BUK fájlok ezek biztonsági mentései. Szektorokat használnak mindenhol, így a lemezen nyers szektor címzést kell használni a DVD navigáláshoz és a tartalom dekódolásához.
A DVD támogatás nyers szektor-alapú elérést igényel az eszközhöz. Sajnos (Linux
alatt) root-nak kell lenned, hogy megkapd egy fájl szektor címét. Emiatt egyáltalán
nem használjuk a kernel fájlrendszer vezérlőjét, inkább felhasználói szinten
(userspace) oldottuk meg. A libdvdread
0.9.x és a
libmpdvdkit
teszi ezt lehetővé. A kernel UDF fájlrendszer
vezérlője nem kell, mivel saját beépített UDF fájlrendszer vezérlőjük van.
Sőt, még mountolni sem kell a DVD-t, mivel csak nyers szektor-alapú címzést
használnak.
Néha a /dev/dvd nem olvasható a felhasználók által, így
a libdvdread
szerzői egy emulációs réteget készítettek,
ami átalakítja a szektor címeket fájlnév+eltolásra, így nyers elérést emulál a
mountolt fájlrendszeren vagy akár a merevlemezen is.
A libdvdread
elfogadja a mountolás helyét is az eszköz
neve helyett a nyers címzéshez, az eszköz nevét a /proc/mounts
fájlból olvassa ki. Solaris-ra lett kifejlesztve, ahol az eszköz nevek dinamikusan
vannak lefoglalva.
Az alapértelmezett DVD eszköz a /dev/dvd. Ha a te beállításaid különbözőek, készíts egy szimbolikus linket vagy add meg a megfelelő eszközt a parancssorban a -dvd-device kapcsolóval.
DVD hitelesítés.
A hitelesítés és az új formájú DVD támogatás dekódolási metódusának támogatását a
patchelt libdvdcss
biztosítja (lásd feljebb). A módszert
a DVDCSS_METHOD
környezeti változó segítségével előírhatod, beállítható
kulcsra, lemezre vagy sávra.
Ha semmi sincs megadva, akkor a következő módon próbálkozik (alapértelmezett: kulcs, sáv kérés):
busz kulcs: Ez a kulcs a hitelesítés során kerül megállapításra (ioctl-ek és egyéb kulcs cserék hosszú sora, titkosítási cucc) és a sáv és a lemez kulcsok titkosítására használják, mielőtt kiküldenék a védtelen buszra (hogy megelőzzés az eavesdropping-ot). A busz kulcs szükséges a titkosított lemez kulcs megszerzéséhez és visszakódolásához.
cache-elt kulcs: Az MPlayer végignézi a már cache-elt sáv kulcsokat, amik a ~/.mplayer/DVDKeys könyvtárban tárolódnak (gyors ;).
kulcs: Ha nincs cache-lt kulcs, az MPlayer megpróbálja visszakódolni a lemez kulcsot a beépített lejátszó kulcsok gyűjteményének segítségével.
lemez: Ha a kulcs metódus sikertelen (pl. nincs beépített lejátszó kulcs), az MPlayer feltöri a lemez kulcsot egy brute force algoritmussal. Ez az eljárás intenzív CPU használatot eredményez és 64 MB memóriát igényel (16M 32Bit-es bejegyzések a hash táblához) az ideiglenes adatok tárolásához. Ez a módszer mindig működik (lassú).
sáv kérés: a lemez kulccsal az
MPlayer az ioctl()
segítségével
lekéri a titkosított sáv kulcsokat, amik rejtett szektorokban találhatók.
Az RPC-2 meghajtók régió védelme is ebben a lépésben van megvalósítva, ezért
ez hibázhat ilyen meghajtókon. Ha sikerül, a sáv kulcsokat dekódolja a busz és
lemez kulccsal.
sáv: Ezt a metódust akkor használjuk, ha a sáv kérés sikertelen és nem a DVD meghajtóval történő kulcs cserén alapul. Ez egy crypto támadást indít, hogy kitalálja közvetlenül a sáv kulcsot (egy, a visszakódolt VOB tartalomban ismétlődő minta megkeresésével, azt feltételezve, hogy az első titkosított bájtnak megfelelő sima szöveg ezen minta folytatása). Ezt a metódust úgy is ismerik, mint "ismert tiszta szöveg támadás" vagy "DeCSSPlus". Ritka esetben sikertelen lehet, mert nincs elég titkosított adat a lemezen a statisztikai támadáshoz vagy mert a kulcs megváltozik a sáv közepén. Ez a módszer az egyetlen járható út a merevlemezen tárolt DVD-k visszakódolásához vagy a rossz régió kódú DVD-k RPC2 meghajtóban történő lejátszásához (lassú).
Az RPC-1 DVD meghajtók csak szoftveresen védik a régió kódot. Az RPC-2 meghajtókban hardveres védelem van, ami csak 5 változtatást engedélyez. Szükséges/javasolt a firmware frissítése RPC-1-re ha RPC-2-es DVD meghajtód van. Megpróbálhatsz keresni firmware frissítést az Interneten, ez a firmware fórum egy jó kiinduló pont lehet. Ha nincs firmware javítás a te meghajtódhoz, használd a regionset eszközt a DVD meghajtód régió kódjának beállításához (Linux alatt). Figyelem: Csak 5 alkalommal állíthatod át a régió kódot.
A használható kapcsolók teljes listájáért olvasd el a man oldalt. Egy szabványos Video CD (VCD) szintaxisa a következő:
mplayer vcd://<sáv>
[-cdrom-device<eszköz>
]
Például:
mplayer vcd://2
-cdrom-device/dev/hdc
Az alapértelmezett VCD eszköz a /dev/cdrom. Ha a te beállításaid különbözőek, készíts egy szimbolikus linket vagy add meg a megfelelő eszközt a parancssorban a -cdrom-device kapcsolóval.
A Plextor és néhány Toshiba SCSI CD-ROM meghajtónak borzalmas a teljesítménye
CVD olvasáskor. Ez azért van, mert a CDROMREADRAW ioctl
nincs teljesen implementálva ezekben a meghajtókban. Ha ismered a SCSI programozást,
kérlek segíts nekünk egy általános
SCSI támogatás elkészítésében VCD-khez.
Addig is kinyerheted az adatokat a VCD-ről a readvcd segítségével, majd az eredményül kapott fájlt lejátszhatod az MPlayerrel.
VCD struktúra. Egy Video CD (VCD) CD-ROM XA szektorokból áll, pl. CD-ROM 2-es módban 1-es és 2-es formátumú sávok:
Az első sáv 2-es módban, 2-es formátumban van, ami azt jelenti, hogy L2 hibajavítást használ. A sáv ISO-9660 fájlrendszert tartalmaz 2048 bájt/szektorral. Ez a fájlrendszer VCD metaadat információkat tartalmaz, valamint gyakran a menükben alkalmazott képkockákat. A menük MPEG szegmensei is ezen az első sávon tárolhatóak, de az MPEG-eket fel kell osztani 150 szektoros csonkokra. Az ISO-9660 fájlrendszer tartalmazhat egyéb fájlokat vagy programokat, amik a VCD működése szempontjából nem lényegesek.
A második és a további sávok általában nyers 2324 bájt/szektor formátumú MPEG (film) sáv, mely egy MPEG PS adat csomagot tartalmaz szektoronként. Ezek 2-es mód 1-es formátumban vannak, így több adatot tárolnak szektoronként némi hibajavítás elveszítése árán. Lehet CD-DA sáv is a VCD-n az első sáv után. Némelyik operációs rendszeren van egy kis csalás, amivel ezek a nem-ISO-9660 sávok megjelennek a fájlrendszerben. Más operációs rendszereken, például GNU/Linux-on ez nem így van (még). Itt az MPEG adat nem mountolható. Mivel a legtöbb film ilyen típusú sávon belül van, először próbáld ki a vcd://2 -t.
Léteznek olyan VCD lemezek is, melyeken nincs meg az első sáv (egy sáv és egyáltalán nincs fájlrendszer). Ezek szintén lejátszhatóak, de nem lehet őket becsatolni.
A Video CD szabvány definícióját a Philips "Fehér könyv"-nek nevezte el és nem szabadon hozzáférhető, a Philipstől kell megvásárolni. A Video CD-kről sokkal részletesebb információt találhatsz a vcdimager dokumentációjában.
A .DAT fájlokról. A becsatolt VCD első sávján látható ~600 MB fájl valójában nem igazi fájl! Ez egy úgynevezett ISO átjáró, azért hozták létre, hogy a Windows kezelni tudja ezen sávokat (a Windows semmilyen módon sem engedi a közvetlen eszköz elérést az alkalmazásoknak). Linux alatt nem tudod átmásolni vagy lejátszani az ilyen fájlokat (szemét van bennük). Windows alatt lehetséges, mivel az iso9660 vezérlője a sávok nyers olvasását emulálja ebben a fájlban. A .DAT fájlok lejátszásához szükséged lesz egy kernel vezérlőre, ami a PowerDVD Linuxos verziójában található. Ez egy módosított iso9660 fájlrendszer vezérlőt (vcdfs/isofs-2.4.X.o) tartalmaz, ami képes a nyers sáv emulációra ezen ál .DAT fájlon keresztül. Ha az ő vezérlőjük segítségével csatolod be a lemezt, át tudod másolni és le tudod játszani a .DAT fájlt az MPlayerrel. A Linux kernel szabványos iso9660 vezérlőjével ez nem megy! Használd a vcd://-t helyette. VCD másolásához alternatíva az új cdfs kernel vezérlő (nem része a hivatalos kernelnek) ami a CD meneteket kép fájlok formájában mutatja, és a cdrdao, egy bitről-bitre grabbelő/másoló program.
Az elsődleges fejlesztési platform a Linux x86-on, ennek ellenére az MPlayer számos más Linux által támogatott architektúrán fut. Bináris csomagok számos forrásból elérhetőek, de ezek közül egyik sem támogatott a fejlesztők által, ezért ha bármi gond adódik velük, akkor a bináris csomag készítőjével kell felvenni a kapcsolatot, nem pedig velünk.
Debian csomag készítéséhez futtasd az alábbi parancsot az MPlayer forrásának könyvtárában:
fakeroot debian/rules binary
Ha különleges kapcsolókat akarsz átadni a configure-nak, állítsd be a
DEB_BUILD_OPTIONS
környezeti változót. például ha
szeretnél GUI-t és OSD menü támogatást, ezt kell használnod:
DEB_BUILD_OPTIONS="--enable-gui --enable-menu" fakeroot debian/rules binary
Pár változót is átadhatsz a Makefile-nak. Például ha gcc 3.4-et szeretnél használni a fordításhoz annak ellenére, hogy nem az az alapértelmezett fordító:
CC=gcc-3.4 DEB_BUILD_OPTIONS="--enable-gui" fakeroot debian/rules binary
A forrás fa kitakarításához add ki a következő parancsot:
fakeroot debian/rules clean
Rendszergazdaként a szokásos módszerrel telepíthető a .deb csomag:
dpkg -i ../mplayer_verziószám
.deb
Christian Marillat már régóta készít nem-hivatalos Debian csomagokat az MPlayerből, MEncoderből és a betűtípusokból, melyek akár az apt-get segítségével is telepíthetők a weboldaláról.
Dominik Mierzejewski készítette el és tartja karban az MPlayer hivatalos RPM csomagjait a Red Hat-hoz és a Fedora Core-hoz. Elérhetőek ezen a helyen.
A Mandrake/Mandriva RPM csomagok a P.L.F. oldalán találhatóak. A SuSE régen az MPlayer egy csonkított verzióját tartalmazta, de az utóbbi kiadásokból már kiszedték. SuSE-val működő csomagok a links2linux.de oldalon találhatóak.
Az MPlayer működik ARM CPU-val rendelkező PDA-kon is,
mint páldául a Sharp Zaurus, vagy a Compaq Ipaq. Megszerzésének legegyszerűbb
módja az OpenZaurus webhelyéről
történő letöltés. Ha saját erődből akarod lefordítani, érdemes körülnézni az
mplayer
és a
libavcodec
Openzaurus buildroot könyvtárakban, ezek ugyanis mindig tartalmazzák a legújabb
Makefile-okat és patcheket az MPlayer CVS verziójának
libavcodec
-kel történő lefordításához.
Ha GUI frontend-et is szeretnél, használd az xmms-embedded-et.
Az MPlayer fut FreeBSD, OpenBSD, NetBSD, BSD/OS és Darwin rendszereken. Léteznek ports/pkgsrc/fink/stb. verziók az MPlayerből, amelyek nagy valószínűséggel egyszerűbben fordíthatóak le, mint a mi gyers forrásaink.
A fordításhoz szükséged lesz GNU make-ra (gmake, mivel a natív BSD make más szintaxist használ) és a binutils valamelyik frissebb verziójára.
Ha az MPlayer nem találja a /dev/cdrom-ot vagy a /dev/dvd-t, csinálj egy symlinket:
ln -s /dev/cdrom_egység
/dev/cdrom
Ha Win32 DLL-eket akarsz használni az MPlayerrel,
újra kell fordítanod a kernelt
"option USER_LDT
"-vel (kivéve, ha FreeBSD-CURRENT-et
használsz, ahol ez az alapállapot).
Ha a processzorod támogatja az SSE-t, akkor ezen utasításkészlet kihasználásához
a kernelt az "options CPU_ENABLE_SSE
" beállítással
kell fordítani (ehhez FreeBSD-STABLE vagy kernelpatchekre van szükség).
A gas különböző verzióinak hiányosságai miatt (relokáció vs MMX), két
lépésben kell fordítani: előszőr legyen a nem-natív verzió a $PATH
-ban,
majd add ki a gmake -k parancsot, majd a natív verzióval
gmake.
Az OpenBSD 3.4-től a fenti kavarás már nem szükséges.
Lásd a Mac OS részt.
Az MPlayer Solaris 2.6 vagy újabb rendszereken működik. A SUN audió vezérlőjét a -ao sun kapcsolóval használhatod.
Az MPlayer kihasználja az
UltraSPARC gépek VIS
utasításkészletét (az MMX-hez hasonló), bár jelenleg csak a
libmpeg2
-ben,
libvo
-ben és
a libavcodec
-ben, de az
mp3lib
-ben nem.
Egy 400Mhz-es CPU elég, hogy élvezhetően lejátsz egy VOB filet.
Szükséged lesz egy felinstallált
mLib
-re
is.
A fordításhoz GNU make-re lesz szükséged (gmake, /opt/sfw/gmake), natív Solaris make nem jó. Egy tipikus hiba, ha mégis azzal probálkozol:
% /usr/ccs/bin/make make: Fatal error in reader: Makefile, line 25: Unexpected end of line seen
Solaris SPARC-on GNU C/C++ fordító is kell; az nem számít, hogy assemblerrel vagy nélküle van.
Solaris x86-on kell a GNU assembler és a GNU C/C++ fordító is, aminek támogatnia kell a GNU assemblert! Az MPlayer igencsak támaszkodik az MMX, SSE és 3DNOW! utasításokra, amiket a Sun standard assemblere (/usr/ccs/bin/as) nem támogat.
A configure script megpróbálja megkereseni, hogy a
"gcc" parancsod melyik assemblert indítja (ha nem sikerül neki,
használd a "--as=/ahova/installalva/lett/a/gnu-as
"
kapcsolót, hogy megadd a configurenak az "as" helyét a rendszeredben).
Hibaüzenet GNU assembler nélküli GCC használata esetén:
% configure ... Checking assembler (/usr/ccs/bin/as) ... , failed Please upgrade(downgrade) binutils to 2.10.1...
(Megoldás: "--with-as=gas"-al fordított GCC használata)
Tipikus hiba, ha a GNU C fordító nem GNU assemblert (GNU as) használ:
% gmake ... gcc -c -Iloader -Ilibvo -O4 -march=i686 -mcpu=i686 -pipe -ffast-math -fomit-frame-pointer -I/usr/local/include -o mplayer.o mplayer.c Assembler: mplayer.c "(stdin)", line 3567 : Illegal mnemonic "(stdin)", line 3567 : Syntax error ... további "Illegal mnemonic" és "Syntax error" hibák ...
Pár hiba miatt nem tudsz megbízhatóan 4 GB-nál nagyobb DVD-t lejátszani Solaris 8-on:
Az sd(7D) vezérlőnek a Solaris 8 x86-ban van egy hibája a >4GB lemez blokkok elérésénél egy eszközön, melyen a logikai blokkméret != DEV_BSIZE-zel (pl. CD-ROM és DVD média). A 32 bites egész túlcsordulása miatt a lemez cím modulo 4GB kerül megcímzésre (http://groups.yahoo.com/group/solarisonintel/message/22516). Ez a probléma a SPARC alapú Solaris 8-on nincs.
Egy hasonló hiba van a hsfs(7FS) fájlrendszer kódjában is (alias ISO9660), a hsfs nem támogatja a 4 GB-nál nagyobb partíciókat/lemezeket, minden adat modulo 4GB-vel lesz elérve (http://groups.yahoo.com/group/solarisonintel/message/22592). Ez a hiba a 109764-04 (sparc) / 109765-04 (x86) jelzésű patch-ek telepítése után megszűnik.
A GNU install programot kell feltelepítened, és (ha nem tetted bele a globális path-ba) megadni a helyét:
./configure --with-install=/eleresi/ut/es/install_neve
Lehet az alap IRIX 6.5-ös install-t is használni, de ebben az esetben a Makefile egy kis kézi átírásra szorul. A következő két sort kell átírni:
$(INSTALL) -c -m 644 DOCS/mplayer.1 $(MANDIR)/man1/mplayer.1 $(INSTALL) -c -m 644 etc/codecs.conf $(CONFDIR)/codecs.conf
erre:
$(INSTALL) -m 644 mplayer.1 $(MANDIR)/man1/ $(INSTALL) -m 644 codecs.conf $(CONFDIR)/
Add ki a következő parancsokat (az MPlayer forrás könyvtárában):
cp DOCS/mplayer.1 . ; cp etc/codecs.conf .
ezután símán fordíts és telepíts.
Joe Page ad helyet egy részletes HP-UX MPlayer HOGYAN-nak a weboldalán, amit Martin Gansser írt. Ezekkel az utasításokkal a fordítás után egyből kész programot kapsz. A következő információk a HOGYAN-ból lettek átvéve.
GCC 3.4.0 vagy későbbire lesz szükséged, GNU make 3.80 vagy újabb és SDL 1.2.7 vagy újabb. A HP cc nem tud működő programot fordítani, a korábbi GCC verziók pedig hibásak. Az OpenGL funkcionalításhoz telepítened kel a Mesa-t és így a gl és gl2 videó kimeneti vezérlőknek működniük kell, bár nagyon lassúak is lehetnek a CPU sebességétől függően. A meglehetősen gyenge natív HP-UX hangrendszer helyett inkább használd a GNU esound-ot.
Hozd létre a DVD eszközt nézd végig a SCSI buszt:
# ioscan -fn Class I H/W Path Driver S/W State H/W Type Description ... ext_bus 1 8/16/5 c720 CLAIMED INTERFACE Built-in SCSI target 3 8/16/5.2 tgt CLAIMED DEVICE disk 4 8/16/5.2.0 sdisk CLAIMED DEVICE PIONEER DVD-ROM DVD-305 /dev/dsk/c1t2d0 /dev/rdsk/c1t2d0 target 4 8/16/5.7 tgt CLAIMED DEVICE ctl 1 8/16/5.7.0 sctl CLAIMED DEVICE Initiator /dev/rscsi/c1t7d0 /dev/rscsi/c1t7l0 /dev/scsi/c1t7l0 ...
A képernyőn a kimenetben egy Pioneer DVD-ROM látszik a 2. SCSI címen. A kártya a 8/16-os hardver útra az 1-essel hivatkozik.
Készíts egy linket a nyers eszközről a DVD eszközre.
# ln -s /dev/rdsk/c<SCSI busz hivatkozás>
t<SCSI cél ID>
d<LUN>
/dev/<eszköz>
Például:
# ln -s /dev/rdsk/c1t2d0 /dev/dvd
Itt van pár gyakori probléma megoldása:
A rendzser összeomlik indításkor a következő hibaüzenettel:
/usr/lib/dld.sl: Unresolved symbol: finite (code) from /usr/local/lib/gcc-lib/hppa2.0n-hp-hpux11.00/3.2/../../../libGL.sl
Ez azt jelenti, hogy a .finite().
függvény
nincs benne a szabványos HP-UX math függvénykönyvtárban.
Ekkor .isfinite().
van helyette.
Megoldás: Használd a legújabb Mesa depot fájlt.
Összeomlás lejátszáskor a következő hibaüzenettel:
/usr/lib/dld.sl: Unresolved symbol: sem_init (code) from /usr/local/lib/libSDL-1.2.sl.0
Megoldás: Használd a configure extralibdir opcióját --with-extralibdir="/usr/lib -lrt"
Az MPlayer segfault-ol egy ilyesmi üzenettel:
Pid 10166 received a SIGSEGV for stack growth failure. Possible causes: insufficient memory or swap space, or stack size exceeded maxssiz. Segmentation fault
Megoldás:
A HP-UX kernel alapértelmezésként 8MB-os(?) méretű vermet használ processzenként.(11.0 és
az újabb 10.20 foltok engedik növelni a maxssiz
-t egészen
350MB-ig a 32-bit-es programokhoz). Növelned kell a maxssiz
-t
és újrafordítani a kernelt (majd reboot-olni). Ehhez használhatod a SAM-ot. (Ha már itt
tartunk, nézd meg a maxdsiz
paramétert is az egy program által
használható maximum adatmennyiséghez. Az alkalmazásaidon múlik, hogy az alapértelmezett
64MB elég vagy sem.)
Működik. Le kell töltened az SDL-t QNX-re és telepítened kell. Ezután az MPlayert a -vo sdl:photon és az -ao sdl:nto kapcsolókkal futtasd, így gyorsnak kell lennie.
A -vo x11 kimenet még lassabb lesz, mint Linuxon, mert a QNX csak X emulációt tartalmaz, amely rettenetesen lassú. Használj SDL-t.
Igen, az MPlayer fut Windows-on Cygwin és MinGW alatt. Még nincs hivatalos GUI-ja, de a parancssoros verzió teljes mértékben használható. Ajánlott megnézni az MPlayer-cygwin levelezési listát is segítéségért és a legfrissebb információkért. A hivatalos Windows-os binárisok megtalálhatóak a letöltési oldalon. A külső forrásból származó telepítő csomagokat és egyszerű GUI frontend-eket összegyűjtöttük a kapcsolódó projektek oldal Windows-os részében.
Ha el akarod kerülni a parancssor használatát, van egy egyszerű trükk. Tegyél egy parancsikont az asztalodra, ami valami hasonló parancssort tartalmaz:
c:\eleresi\ut\
mplayer.exe %1
Ezután az MPlayer le fog játszani bármilyen videót, amit erre a parancsikonra ejtesz. Írd hozzá a -fs kapcsolót a teljes képernyős módhoz.
A legjobb eredmény a natív DirectX videó kimeneti vezérlővel (-vo directx) és a natív Windows waveout audió vezérlővel (-ao win32) érhető el. Alternatívaként van OpenGL és SDL, de az OpenGL teljesítménye nagyban változik a rendszerek között, az SDL pedig tudvalevőleg torzítja a hangot és a képet vagy összeomlik néhány rendszeren. Ha torz a kép, próbáld meg kikapcsolni a hardveres gyorsítást a -vo directx:noaccel kapcsolóval. Töltsd le a DirectX 7 fejléc fájlokat a DirectX videó kimeneti vezérlő beforgatásához.
A VIDIX is működik már Windows alatt a -vo winvidix kapcsolóval, bár még kisérleti fázisban van és egy kis kézi állítgatás kell hozzá. Töltsd le a dhahelper.sys vagy dhahelper.sys (MTRR támogatással) fájlt és másold be a libdha/dhahelperwin könyvtárba az MPlayer forrás fádban. Nyisd meg a konzolt és válts át erre a könyvtárra, majd írd be
gcc -o dhasetup.exe dhasetup.c
és futtasd
dhasetup.exe install
mint Adminisztrátor. Ezután újra kell indítanod a gépet. Ha készen vagy
másold a .so
fájlokat a
vidix/drivers könyvtárból az
mplayer/vidix könyvtárba,
az mplayer.exe-hez relatíven.
A legjobb eredményhez az MPlayernek egy olyan színteret kell használnia, amit a videó kártyád támogat. Sajnos sok Windows-os grafikus vezérlő hibásan támogatottnak jelent pár színteret. Hogy megtudd, melyiket, próbáld ki az
mplayer -benchmark -nosound -frames 100 -vf format=szinter
film
parancsot, ahol a szinter
bármelyik színtér lehet,
amit a -vf format=fmt=help kapcsoló kiír. Ha találsz
olyan színteret, amit a kártyád részben hibásan kezel,
-vf noformat=szinter
kapcsolóval megakadályozhatod a használatát. Írd be ezt a konfigurációs fájlodba,
hogy véglegesen kimaradjon a használatból.
Vannak speciálisan Windowsra készített codec csomagok a
codec oldalunkon,
melyek segítségével azokat a formátumokat is lejátszhatod, amikhez még
nincs natív támogatás.
Tedd be a codec-eket valahova az elérési útvonaladba vagy add meg a
--with-codecsdir=c:/ut/a/codecjeidhez
(alternatívaként
--with-codecsdir=/ut/a/codecjeidhez
csak Cygwin alatt) kapcsolóval a configure-nak.
Kaptunk olyan visszajelzéseket, hogy a Real DLL-eknek írhatóaknak kell lenniük az
MPlayert futtató felhasználó által, de csak bizonyos
rendszereken (NT4). Próbáld meg írhatóvá tenni őket, ha problémáid vannak.
VCD-ket is lejátszhatsz a .DAT vagy .MPG fájlok lejátszásával, amit a Windows meglát a VCD-n. Így nagyszerűen működik (javítsd ki a CD-ROM-od betűjelét):
mplayer d:/mpegav/avseq01.dat
A DVD-k is működnek, add meg a -dvd-device kapcsolócal a DVD-ROM-od betűjelét:
mplayer dvd://<title>
-dvd-deviced
:
A Cygwin/MinGW konzol meglehetősen lassú. Kimenet átirányítással vagy a -quiet kapcsolóval a jelentések szerint javítható a teljesítmény néhány rendszeren. A Direct renderelés (-dr) is segíthet. Az OSD villogását megelőzheted a -double kapcsolóval előírt dupla buffereléssel. Ha a lejátszás szaggatott, próbáld meg a -autosync 100 opciót. Ha ezek közül bármelyik segít, írd be a konfigurációs fájlodba.
A Cygwin 1.5.0 vagy későbbi verziójára lesz szükséged az MPlayer lefordításához.
A DirectX fejléc fájlokat a /usr/include/ vagy /usr/local/include/ könyvtárba kell kicsomagolni.
Az SDL előállításával és Cygwin alatti használatával kapcsolatos utasításokat és fájlokat a libsdl oldalon találod meg.
A MinGW egy olyan verziójának telepítése, ami le tudja fordítani az MPlayert, régebben eléggé trükkös volt, de most már simán megy. Csak telepítsd a MinGW 3.1.0 vagy későbbi és az MSYS 1.0.9 vagy későbbi verzóját és az MSYS telepítés utáni beállító programjának mondd meg, hogy telepítve van a MinGW.
A DirectX fejléc fájlokat a /mingw/include/ könyvtárba kell kicsomagolni.
A tömörített MOV fejlécek támogatásához zlib kell, ami alaphelyzetben nincs benne a MinGW-ben. Állítsd be a --prefix=/mingw kapcsolóval és telepítsd, mielőtt az MPlayert fordítanád.
Az MPlayer és a szükséges függvénykönyvtárak elkészítésének módját elolvashatod az MPlayer MinGW HOGYAN-ban.
Az MPlayernek gond nélkül kell(ene) fordulnia egyből Mac OS X 10.2 és ez felett. A javasolt fordító a GCC 3.x vagy későbbi Apple féle változata. Ha Mac OS X 10.3.9 vagy régebbi verziód és QuickTime 7-esed van, használhatod a macosx videó kimeneti vezérlőt is.
Van egy natív GUI az MPlayerhez egy előfordított MPlayer binárissal együtt Mac OS X alá a MPlayerOSX projektből, de emlékezz rá: ez a projekt már nem aktív.
Szerencsére az MPlayerOSX projektet az MPlayer csapat egyik tagja átvette. Előzetes kiadások elérhetőek a letöltési oldalunkról és hamarosan jön a hivatalos kiadás is.
Ha saját magad akarod lefordítani forrásból az MPlayerOSXet,
szükséged lesz az mplayerosx
-re, a
main
-re és a
main
CVS modul
main_noaltivec
-re átnevezett másolatára.
mplayerosx
a GUI frontend,
main
az MPlayer és a
main_noaltivec
az MPlayer AltiVec támogatás
nélkül.
A CVS modulok letöltéséhez használt az alábbi parancsokat:
cvs -d:pserver:anonymous@mplayerhq.hu:/cvsroot/mplayer login cvs -z3 -d:pserver:anonymous@mplayerhq.hu:/cvsroot/mplayer co -P mplayerosx cvs -z3 -d:pserver:anonymous@mplayerhq.hu:/cvsroot/mplayer co -P main
Az MPlayerOSX elkészítéséhez valami ilyesmit kell csinálnod:
MPlayer_forras_konyvtar | |--->main (MPlayer CVS forrás) | |--->main_noaltivec (MPlayer CVS forrás --disable-altivec -kel konfigurálva) | |--->mplayerosx (MPlayer OS X CVS forrás)
Először a main és main_noaltivec-et kell lefordítanod.
Ezután állíts be egy globális változót:
export MACOSX_DEPLOYMENT_TARGET=10.3
Majd konfigurálj:
Ha a G4 vagy későbbi, AltiVec támogatással rendelkező CPU-ra konfigurálsz:
./configure --with-termcaplib=ncurses.5 --disable-gl --disable-x11
Ha G3-as, AltiVec nélküli gépre:
./configure --with-termcaplib=ncurses.5 --disable-gl --disable-x11 --disable-altivec
Lehet, hogy szerkesztened kell a config.mak fájlt és
át kell írnod az -mcpu
-t és -mtune
-t
74XX
-ről G3
-ra.
Folytasd a
make
paranccsal, majd menj a mplayerosx könyvtárba és írd be
make dist
Ez egy tömörített .dmg
archívot hoz létre
egy használatra kész binárissal.
Használhatod az Xcode 2.1 projektet is; a régi, Xcode 1.x projekt nem működik már.
Az emberek a www.amigasoft.net-nél készítettek csomagokat az aktuális MPlayerből és MEncoderből.
Nicholas Det (Genesi) sikeresen átültette az MPlayert MorphOS alá. Sajnálatos módon csak a 0.90-es széria van kész.
Letölthető a MorphZone-ról:
A MEncoder összes használható kapcsolójához és a példákhoz kérlek nézd meg a man oldalt. Mindennapi példákért és a számos kódolási paraméter bővebb leírásáért olvasd el a kódolási tippeket, amiket számos levelezési lista szálból gyűjtöttünk össze az MPlayer-users-ről. Kereshetsz az archívumban a rengeteg beszélgetés között, melyek a MEncoderrel történő kódolást több szempontból vizsgálják és kiemelik a problémákat vele kapcsolatban.
A kódoláshoz az audió és videó codec-ek a -oac és -ovc opciókkal adható meg. Gépeld be ezt a példát:
mencoder -ovc help
a gépeden lévő MEncoder által támogatott videó codec-ek kilistázásához. A következő választások érhetőek el:
Audió codec-ek:
Audió codec neve | Leírás |
---|---|
mp3lame | Kódol VBR, ABR vagy CBR MP3-at LAME-mel |
lavc | A libavcodec valamelyik audió codec-jét használja
|
faac | FAAC AAC audió kódoló |
toolame | MPEG Audio Layer 2 kódoló |
twolame | tooLAME alapú MPEG Audio Layer 2 kódoló |
pcm | Tömörítetlen PCM audió |
copy | Nem kódol újra, csak másolja a tömörített kockákat |
Videó codec-ek:
Videó codec neve | Leírás |
---|---|
lavc | A libavcodec valamelyik videó codec-jét használja
|
xvid | XviD, MPEG-4 Advanced Simple Profile (ASP) codec |
x264 | x264, MPEG-4 Advanced Video Coding (AVC), AKA H.264 codec |
nuv | nuppel video, néhány realtime alkalmazás használja |
raw | Tömörítetlen videó képkockák |
copy | Nem kódol újra, csak másolja a tömörített kockákat |
frameno | A 3-lépéses kódolásban használatos (nem javasolt) |
A kimeneti konténer formátumokat a -of kapcsolóval választhatod ki. Írd be:
mencoder -of help
a gépeden lévő MEncoder által támogatott konténerek kilistázásához. A következő választások érhetőek el:
Konténer formátumok:
Konténer formátum neve | Leírás |
---|---|
lavf | A libavformat által
támogatott valamelyik konténer |
avi | Audio-Video Interleaved |
mpeg | MPEG-1 és MPEG-2 PS |
rawvideo | nyers videó folyam (nincs keverés - csak egy videó folyam) |
rawaudio | nyers audió folyam (nincs keverés - csak egy audió folyam) |
Az AVI konténer a MEncoder natív konténer formátuma, ami azt jelenti, hogy ezt kezeli a legjobban és hogy a MEncoder ehhez lett tervezve. Amint fentebb megemlítettük, más konténer formátumok is használhatóak, de problémákba ütközhetsz a használatuk során.
libavformat
konténerek:
Ha a libavformat
-ot választottad
a kimeneti fájl keveréséhez (a -of lavf használatával),
a megfelelő konténer formátum a kimeneti fájl kiterjesztése alapján kerül
megállapításra.
Egy meghatározott konténer formátumot a format kapcsolóval
tudsz megadni a libavformat
-nek.
libavformat konténer neve | Leírás |
---|---|
mpg | MPEG-1 és MPEG-2 PS |
asf | Advanced Streaming Format |
avi | Audio-Video Interleaved |
wav | Waveform Audio |
swf | Macromedia Flash |
flv | Macromedia Flash video |
rm | RealMedia |
au | SUN AU |
nut | NUT nyílt konténer (kísérleti és még nem a specifikációnak megfelelő) |
mov | QuickTime |
mp4 | MPEG-4 formátum |
dv | Sony Digital Video konténer |
Amint láthatod, a libavformat
elég sok konténer formátumba engedélyezi a keverést a
MEncoder-nek.
Sajnos mivel a MEncoder nem úgy lett tervezve
a kezdetektől, hogy az AVI-tól különböző konténer formátumokat is támogassa,
izgulhatsz a kimeneti fájl miatt.
Kérjük ellenőrizd, hogy az audió/videó szinkron rendben van-e és hogy a
fájl lejátszható-e más lejátszókkal is az
MPlayer-en kívül.
Példa:
Egy Macromedia Flash videó létrehozása, mely lejátszható web böngészőben a Macromedia Flash plugin-nel:
mencoderbemenet.avi
-okimenet.flv
-of lavf -oac mp3lame -lameopts abr:br=56 -ovc lavc \ -lavcopts vcodec=flv:vbitrate=500:mbd=2:mv0:trell:v4mv:cbp:last_pred=3 \ -srate 22050
A MEncoder tud kódolni fájlokból vagy akár
direkt DVD vagy VCD lemezekről is.
A fájlból való kódoláshoz egyszerűen csak add meg a fájl nevét a parancssorban,
vagy a dvd://részszám
vagy
vcd://sávszám
eszközt a
DVD részről vagy VCD sávról történő kódoláshoz.
Ha egy DVD-t már átmásoltál a merevlemezedre (használhatod pl. a
dvdbackup ezsközt, mely a legtöbb rendszeren megvan),
és a másolatot akarod elkódolni, akkor is használnod kell a
dvd:// szintaxist, a -dvd-device-szal együtt,
amit a lemásolt DVD gyökérkönyvtárának elérési útja követ.
A -dvd-device és -cdrom-device
kapcsolókkal felülbírálhatóak a direkt lemezolvasásnál használt eszközök
elérési útjái is, ha az alapértelmezett
/dev/dvd és /dev/cdrom nem
működnek a rendszereden.
Ha DVD-ről kódolsz, gyakran kívánatos, hogy a kódolni kívánt fejezetet vagy
fejezetek tartományát is megadd.
Ehhez használhatod a -chapter kapcsolót.
Például a -chapter 1-4
csak az 1-4 fejezeteket fogja elkódolni a DVD-ről.
Ez különösen hasznos, ha egy 1400 MB-os kódolást csinálsz két CD-re, mivel
meggyőződhetsz róla, hogy a vágás pontosan fejezet határnál lesz és nem
egy jelenet közepén.
Ha van támogatott TV felvevő kártyád, tudsz kódolni a TV-in eszközről is.
Használd a tv://csatornaszám
eszközt
fájlnévként és a -tv kapcoslót a mentési beállítások
megadásához.
A DVB hasonlóképpen működik.
A név abból a tényből ered, hogy ez a módszer a fájlt kétszer kódolja át. Az első kódolás (szinkronizációs lépés) létrehoz pár ideiglenes, néhány megabájtos fájlt (*.log), ezeket ne töröld le még (az AVI-t letörölheted vagy egyszerűen létre sem hozod, a videó /dev/null -ba irányításával). A második lépésben, a két menetes kimenet fájl lesz létrehozva, az ideiglenes fájlok bitrátájának felhasználásával. Az eredmény fájlnak sokkal jobb lesz a képminősége. Ha most hallasz erről először, nézz meg pár a neten elérhető leírást.
7.1. példa - audió sáv másolása
Egy DVD második sávjának két menetes kódolása MPEG-4 ("DivX") AVI-ba az audió sáv másolásával.
mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 -oac copy -o/dev/null
mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=2 -oac copy -omovie.avi
7.2. példa - audió sáv kódolása
Egy DVD második sávjának két menetes kódolása MPEG-4 ("DivX") AVI-ba az audió sáv MP3-ba alakításával. Vigyázz ezzela módszerrel, mivel bizonyos esetekben audió/videó deszinkronizációhoz vezethet.
mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 -oac mp3lame -lameopts vbr=3 -omovie.avi
mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=2 -oac mp3lame -lameopts vbr=3 -omovie.avi
A MEncoder tud készíteni MPEG (MPEG-PS) formátumú kimeneti fájlokat. Általában, ha MPEG-1 vagy MPEG-2 videót használsz, az azért van, mert egy korlátozott formátumhoz kódolsz, mint pl. az SVCD, a VCD vagy a DVD. Ezen formátumok speciális igényei a VCD és DVD készítési leírásban megtalálhatóak.
A MEncoder kimeneti fájl formátumának megváltoztatásához használd a -of mpeg kapcsolót.
Példa:
mencoder -of mpeg -ovc lavc -lavcopts vcodec=mpeg1video -oac copyegyéb_kapcsolók
media.avi
-ooutput.mpg
Egy MPEG-1-es fájl létrehozása, mely alkalmas minimális multimédia támogatással rendelkező rendszereken, például alapértelmezett Windows telepítéseken történő lejátszásra is:
mencoder -of mpeg -mpegopts format=mpeg1:tsaf:muxrate=2000 -o \x.mpg
-oac lavc -ovc lavc \ -lavcopts acodec=mp2:abitrate=224:vcodec=mpeg1video:vbitrate=1152:keyint=15:mbd=2:aspect=4/3 \bemenet.avi
Gyakran szükséged lehet a videó képméretének átméretezésére. Ennek több oka lehet: fájl méretének csökkentése, hálózati sávszélesség, stb. A legtöbb ember akkor is végez átméretezést, amikor DVD-ket vagy SVCD-ket konvertál DivX AVI-ba. Ha át szeretnél méretezni, olvasd el a képméret arányok megtartásáról szóló részt.
A méretezési eljárást a scale
videó szűrő végzi:
-vf scale=szélesség
:magasság
.
A minősége beállítható a -sws kapcsolóval.
Ha ez nincs megadva, akkor a MEncoder a 2: bicubic-et használja.
Használat:
mencoderinput.mpg
-ovc lavc -lavcopts vcodec=mpeg4 -vf scale=640:480 -ooutput.avi
MEncoder kétféleképpen tudja kezelni a folyamokat: kódolni vagy másolni tudja őket. Ez a rész a másolásról szól.
Videó stream (-ovc copy kapcsoló): szép dolgokat lehet vele csinálni :) Például FLI vagy VIVO vagy MPEG-1 videót tenni (nem konvertálni!) AVI fájlba! Természetesen csak az MPlayer tudja lejátszani az ilyen fájlokat :) Ennek valószínűleg gyakorlati haszna nincs. Ésszerűbben: a videó stream másolása hasznos lehet például ha csak az audió stream-et kell kódolni (például tömörítetlen PCM-et MP3-ba).
Audió stream (-oac copy kapcsoló):
őszintén szólva... Bele lehet mixelni egy külső audió fájlt (MP3, WAV) a
kimeneti stream-be. Használd a
-audiofile fájlnév
kapcsolót
ehhez.
A -oac copy használatával végrehajtott egyik konténer formátumból másikba történő másoláshoz szükséges lehet a -fafmttag kapcsoló, hogy megmaradjon az eredeti fájl audió formátum tag-je. Például ha egy NSV fájl AAC audióval AVI konténerbe alakítasz át, az audió formátum tag hibás lesz és meg kell változtatni. Az audió formátum tag-ek listáját megtalálod a codecs.conf fájlban.
Példa:
mencoderinput.nsv
-oac copy -fafmttag 0x706D -ovc lavc -lavcopts vcodec=mpeg4 -ooutput.avi
A MEncoder képes egy vagy több JPEG, PNG vagy TGA fájlból film létrehozására. Egy egyszerű framecopy-val MJPEG (Motion JPEG), MPNG (Motion PNG) vagy MTGA (Motion TGA) fájlokat tud létrehozni.
A folyamat leírása:
A MEncoder dekódolja a bemeneti
képe(ke)t a libjpeg
-gel (ha PNG-ket
dekódol, akkor a libpng
-vel).
Ezután a MEncoder a dekódolt képeket a kiválasztott videó tömörítőnek adja át (DivX4, XviD, FFmpeg msmpeg4, stb.).
Példák. A -mf kapcsoló magyarázata a man oldalon található.
Egy MPEG-4-es fájl létrehozása az aktuális könyvtárból található összes JPEG fájlból:
mencoder mf://*.jpg -mf w=800:h=600:fps=25:type=jpg -ovc lavc -lavcopts vcodec=mpeg4 -oac copy -o output.avi
Egy MPEG-4 fájl létrehozása néhány JPEG fájlból az aktuális könyvtárban:
mencoder mf://frame001.jpg,frame002.jpg
-mf w=800:h=600:fps=25:type=jpg -ovc lavc -lavcopts vcodec=mpeg4 -oac copy -ooutput.avi
Egy Motion JPEG (MJPEG) fájl készítése az aktuális könyvtár összes JPEG fájlából:
mencoder mf://*.jpg -mf w=800:h=600:fps=25:type=jpg -ovc copy -oac copy -o output.avi
Egy tömörítetlen fájl létrehozása az aktuális könyvtár összes PNG fájlából:
mencoder mf:// -mf w=800:h=600:fps=25:type=png -ovc raw -oac copy -o output.avi
A szélességnek 4 egész többszörösének kell lennie, ez a RAW RGB AVI formátum megszorítása.
Egy Motion PNG (MPNG) fájl létrehozása az aktuális könyvtár PNG fájlaiból:
mencoder mf://*.png -mf w=800:h=600:fps=25:type=png -ovc copy -oac copy -o output.avi
Egy Motion TGA (MTGA) fájl létrehozása az aktuális könyvtár összes TGA fájlából:
mencoder mf://*.tga -mf w=800:h=600:fps=25:type=tga -ovc copy -oac copy -o output.avi
A MEncoder képes a feliratok kiszedésére a DVD-kből és elmentésére VOBsub formátumú fájlokba. Ezek két fájlból állnak, .idx és .sub kiterjesztéssel, és általában egy .rar archívba vannak becsomagolva. Az MPlayer le tudja ezeket játszani a -vobsub és a -vobsubid kapcsolókkal.
Meg kell adnod a kimeneti fájlok fájlnevét (az .idx vagy .sub kiterjesztés nélkül) a -vobsubout kapcsolóval és az ezen felirathoz tartozó indexet a kimeneti fájlokban a -vobsuboutindex-szel.
Ha a bemenet nem DVD, akkor a -ifo kapcsolót kell használnod ahhoz, hogy megadd, hogy .ifo fájl szükséges a kimeneti .idx elkészítéséhez.
Ha a bemenet nem DVD és nincs .ifo fájlod, a -vobsubid kapcsolót kell használnod, hogy megadd, milyen nyelv id-t kell beletenni az .idx fájlba.
Mindkét esetben az éppen futó felirat hozzáíródik a .idx és .sub fájlokhoz, amennyiben azok már léteznek. Így ezeket le kell törölnöd, mielőtt nekiállnál.
7.3. példa - Két felirat másolása egy DVD-ről két menetes kódolás közben
rm subtitles.idx subtitles.sub mencoder dvd://1 -oac copy -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 -vobsubout subtitles -vobsuboutindex 0 -sid 2 mencoder dvd://1 -oac copy -ovc lavc -lavcopts vcodec=mpeg4:vpass=2 -vobsubout subtitles -vobsuboutindex 1 -sid 5
A DVD-s és az SVCD-s (pl. MPEG-1/2) fájlokban van egy képméret arány érték, ami leírja, hogy a lejátszónak hogyan kell méreteznie a videó stream-et, így az embereknek nem lesz tojás fejük (pl.: 480x480 + 4:3 = 640x480). Ennek ellenére AVI-ba (DivX) történő kódoláskor figyelembe kell venned, hogy az AVI fejléc nem tárolja ezt az értéket. A film átméretezése undorító és időigényes, kell, hogy legyen egy jobb megoldás!
Van is.
Az MPEG-4-nek van egy egyedülálló sajátossága: a videó stream tartalmazhatja a szükséges képarányt. Igen, úgy mint az MPEG-1/2 (DVD, SVCD) és a H.263 fájlok. Sajnos azonban nincs olyan videó lejátszó, mely az MPEG-4 ezen attribútumát támogatná, kivéve az MPlayert.
Ez a tulajdonság csak a
libavcodec
mpeg4
codec-jével használható. Tartsd észben: habár az
MPlayer hibátlanul lejátsza a létrehozott fájlt,
a többi lejátszó rossz képarányt fog használni.
Ajánlott levágni a fekete sávokat a film képe felett és alatt.
Lásd a man oldalt a cropdetect
és a
crop
szűrők használatához.
Használat
mencodersample-svcd.mpg
-ovc lavc -lavcopts vcodec=mpeg4:autoaspect -vf crop=714:548:0:14 -oac copy -ooutput.avi
libavcodec
codec családdalXviD
codec-kalx264
codec-kelEgy gyakran feltett kérdés: "Hogyan készíthetem el a legjobb minőségű DVD rip-et egy adott méretben? Vagy: "Hogyan készíthetem el a lehető legjobb minőségű DVD rip-et? Nem érdekel a fájl méret, csak a legjobb minőséget akarom."
Az utóbbi kérdés talán kicsit rosszul van megfogalmazva. Hiszen ha nem érdekel a fájl méret, akkor miért nem másolod át az egész MPEG-2 videó stream-et a DVD-ről egy az egyben? Az AVI fájlod 5GB körül fogja végezni, fogd és vidd, de ha a legjobb minőséget akarod és nem érdekel a méret, akkor biztos, hogy ez lesz a legjobb lehetőséged.
Valójában egy DVD MPEG-4-be történő átkódolásának az oka pont az, hogy érdekel a fájl mérete.
Nehéz egy általános receptet adni a jó minőségű DVD rip-ek készítéséhez.
Számos szempontot figyelembe kell venni és meg kell értened ezeket a
részleteket, különben elégedetlen leszel a végeredménnyel. Kicsit körbejárjuk
ezen dolgok közül néhányat és utána példát is adunk. Feltételezzük, hogy a
libavcodec
-et használod a videó
kódolásához, habár az elmélet bármilyen codec-kel használható.
Ha ez túl sok neked, akkor talán jobb, ha a sok nagyszerű frontend valamelyikét használod, amik fel vannak sorolva a kapcsolódó projektek oldalán a MEncoder részben. Így nagyon jó minőségű rip-eket készíthetsz túl sok gondolkodás nélkül, mert ezen eszközök legtöbbje úgy lett megtervezve, hogy jó döntéseket hozzon.
Mielőtt eszedbe jutna bármiféle film átkódolása, meg kell tenned pár előkészületi lépést.
Az első és legfontosabb lépés a kódolás előtt annak megállapítása, hogy miféle anyaggal van egyáltalán dolgod. Ha a forrás anyagod DVD-ről származik vagy sugárzott/kábeles/műholdas TV, a következő két formátum valamelyikében tárolódik: NTSC Észak Amerikában és Japánban, PAL Európában. Fontos tudatosítani, hogy ez csak a televízión történő megjelenítés formátuma és gyakran nincs összhangban a film eredeti formátumával. A tapasztalatok szerint az NTSC tartalmat sokkal nehezebb elkódolni, mert több elemet kell azonosítani a forrásban. Ahhoz, hogy megfelelő legyen a kódolás, ismerned kell az eredeti formátumot. Ennek elmulasztása esetén különböző hibák lesznek a kódolásodban, csúnya törési (átlapolás) mellékhatások, duplázott vagy akár elveszett képkockák. Mindamellett, hogy csúnya, a mellékhatások rontják a kódolási hatékonyságot is: rosszabb minőség per bitráta egység arányt kapsz.
Itt van egy lista a forrás anyagok által általában használt típusokról, ebben valószínűleg megtalálod a tiédet és annak jellemzőit:
Szabványos film: Moziban történő vetítéshez rögzítették 24 fps-sel.
PAL videó: PAL videókamerával rögzítették 50 mező per másodperc sebességgel. Egy mező csak a képkocka páros vagy páratlan sorszámú sorait tartalmazza. A televíziót úgy tervezték meg, hogy ilyen arányban frissítsen, az analóg tömörítés egy olcsó formájaként. Az emberi szemnek ezt kompenzálnia kellene, de ha egyszer megérted az átlapolást, meg fogod látni a TV-n és soha többé nem fogod élvezni a TV adást. Két mező még nem alkot egy teljes képkockát, mert 1/50 másodpercnyire vannak egymástól időben és így csak mozgásnál igazodnak össze.
NTSC Videó: NTSC kamerával felvett, 60000/1001 mező per másodperc vagy a színek előtti időben 60 mező per másodperc sebességű film. Egyébként hasonló a PAL-hoz.
Animáció: Általában 24fps-sel rajzolják, de található kevert-framerátás változat is.
Számítógépes grafika (CG): Bármilyen framerátával mehet, de van pár, ami gyakoribb a többinél; 24 és 30 képkocka per másodpercesek a tipikusak NTSC-nél és 25fps PAL-nál.
Régi film: Különböző alacsony frameráták.
A képkockákból álló filmekre progresszívként szoktak hivatkozni, míg az egymástól független mezőkből állóakra vagy átlapoltként vagy videóként - bár ez utóbbi félreérthető.
További bonyolításként néhány film a fenti kettő keveréke.
A legfontosabb különbség, amit észre kell venni a két formátum között, hogy van, amelyik képkocka-alapú míg mások mező alapúak. Bármikor, ha egy filmet televíziós megjelenítésre készítenek elő (beleértve a DVD-t is), átkonvertálják mező-alapú formába. A különböző módszereket, amikkel ez végrehajtható, gyűjtőnéven "pulldown"-nak hívjuk, ennek egyik változata a hírhedt NTSC-s "3:2 telecine". Hacsak nem volt az eredeti anyag is mező-alapú (és megegyező mező rátájú), más formátumbú lesz a filmed, mint az eredeti.
Számos általános típusa van a pulldown-nak:
PAL 2:2 pulldown: Az összes közül a legjobb. Minden képkocka két mező idejéig látszódik, úgy, hogy a páros és páratlan sorokat kinyeri belőlük és váltakozva mutatja őket. Ha az eredeti anyag 24fps-es, ez az eljárás felgyorsítja a filmet 4%-kal.
PAL 2:2:2:2:2:2:2:2:2:2:2:3 pulldown: Minden 12. kockát három mező hosszan mutat kettő helyett. Ezzel elkerüli a 4%-os gyorsulást, de sokkal nehezebben megfordíthatóvá teszi a folyamatot. Általában musical készítésénél használják, ahol a 4%-os sebességmódosulás komolyan rontaná a zenei jelet.
NTSC 3:2 telecine: A kockák felváltva 3 vagy 2 mezőnyi ideig látszódnak. Ezáltal a mező ráta 2.5-szöröse lesz az eredeti framerátának. Az eredmény nagyon kis mértékben lelassul, 60 mező per másodpercről 59.94 mező per másodpercre, az NTSC mező ráta megtartása miatt.
NTSC 2:2 pulldown: A 30fps-es anyagok NTSC-n történő megjelenítéséhez használják. Szép, csakúgy, mint a 2:2 PAL pulldown.
Vannak még egyéb módszerek az NTSC és a PAL videó közötti konvertáláshoz, de ez a téma meghaladja ezen leírás célkitűzéseit. Ha ilyen filmbe futsz bele és el szeretnéd kódolni, a legjobb, ha keresel egy másolatot az eredeti formátumban. A két formátum közötti konvertálás nagyon romboló hatású és nem lehet teljesen visszafordítani, így a kódolt adatod nagyon megszenvedi, ha már konvertált forrásból készül.
Ha a videó DVD-n van, az egymást követő mezők képkockává csoportosíthatóak, még akkor is, ha nem egyidejű megjelenítésre tervezték őket. A DVD-n és digitális TV-n használt MPEG-2 szabvány lehetőséget nyújt mind az eredeti progresszív kockák elkódolására, mind pedig arra, hogy azon mezők számát, amelyhez egy képkockát meg kell jeleníteni, az adott képkocka fejlécében tárolhassuk. Ha ezt a módszert használják, a filmet gyakran "soft-telecined"-ként jellemzik, mert ez az eljárás csak utasítja a DVD lejátszót a pulldown alkalmazására a film tényleges megváltoztatása helyett. Ez a lehetőség nagyon preferált, mert könnyen visszafordítható (tulajdonképpen kihagyható) a kódoló által és megtartja a maximális minőséget. Bár sok DVD és műsorszóró stúdió nem használ megfelelő kódolási technikát, hanem inkább "hard telecine"-es filmeket alkalmaznak, ahol a mezők tulajdonképpen duplázva vannak az elkódolt MPEG-2-ben.
Az eljárás, ahogy ezeket az eseteket kezelni kell, később kerül leírásra ebben az útmutatóban. Most következzék pár tanács, amik segítségével eldöntheted, hogy milyen anyaggal van dolgod:
NTSC régiók:
Ha az MPlayer azt írja ki, hogy a frameráta megváltozott 24000/1001-re a film nézése közben, és soha nem vált vissza, akkor majdnem biztosan progresszív tartalomról van szó, amit "soft telecine" eljárásnak vetettek alá.
Ha az MPlayer a frameráta oda-vissza váltakozását mutatja 24000/1001 és 30000/1001 között és "hullámzást" látsz ilyenkor, akkor több lehetőség is van. A 24000/1001 fps-es részek majdnem biztosan progresszív tartalmak, "soft telecine"-ltek, de a 30000/1001 fps-es részek lehetnek vagy hard-telecine-lt 24000/1001 fps-esek vagy 60000/1001 mező per másodperces NTSC videók. Kövesd a következő két esetben leírt irányelveket, hogy el tudd dönteni, valójában melyik formátummal van dolgod.
Ha az MPlayer soha nem mutatja a frameráta változást és minden egyes mozgást tartalmazó kocka hullámosnak tűnik, akkor a filmed NTSC videó 60000/1001 mező per másodperc sebességgel.
Ha az MPlayer soha nem mutatja a frameráta változást és minden ötből két kocka hullámosnak tűnik, akkor a filmed "hard telecine"-s 24000/1001fps-es formátumú.
PAL régiók:
Ha sosem látsz hullámzást, akkor a filmed 2:2 pulldown-os.
Ha hullámzást látsz váltakozóan ki-be minden fél másodpercben, akkor a filmed 2:2:2:2:2:2:2:2:2:2:2:3 pulldown-os.
Ha mindig látsz hullámzást a mozgás közben, akkor a filmed PAL videó 50 mező per másodperces sebességgel.
Az MPlayer le tudja lassítani a lejátszást a -speed kapcsolóval vagy a kockáról-kockára történő lejátszással. Próbáld meg használni a -speed 0.2-t, hogy nagyon lassan nézhesd a filmet vagy nyomogasd a "." gombot a kockáról kockára történő lejátszáshoz és azonosítsd a mintákat, ha nem látod meg teljes sebességnél.
Nagyon sokféle minőségben tudod elkódolni a filmedet. A modern videó kódolókkal és egy kis pre-codec tömörítéssel (leméretezés és zajcsökkentés), lehetséges nagyon jó minőség elérése 700 MB-on, egy 90-110 perces szélesvásznú filmnél. Továbbá minden, kivéve a leghosszabb filmeket, elkódolható majdnem tökéletes minőséggel 1400 MB-ba.
Három féle megközelítése van egy videó kódolásának: konstans bitráta (CBR), konstans kvantálás, és többmenetes (ABR vagy átlagos bitráta).
Egy film képkockáinak komplexitása és így a tömörítéshez szükséges bitek száma nagy mértékben változhat jelentről jelenetre. A modern videó kódolók már alkalmazkodnak az igényekhez a bitráta variálásával. Az egyszerű módokban, mint pl. a CBR, a kódolók nem ismerik az elkövetkező jelenetek bitráta igényét és így nem tudják átlépni az igényelt átlagos bitrátát hosszabb időre. A fejlettebb módokban, mint pl. a több lépéses kódolásnál, már figyelembe lehet venni az előző lépés statisztikáját; ez megoldja a fent említett problémát.
A legtöbb ABR kódolást támogató codec csak a két lépéses kódolást
támogatja, míg néhány másik, mint pl. az x264
,
az XviD
és a
libavcodec
támogatják
a többmenetest, ami kissé javít a minőségen minden lépésben,
bár ez a javulás nem mérhető és nem is észrevehető a 4. lépés után.
Ezért, ebben a részben a két lépéses és a többmenetes felváltva
értelmezhető.
Ezen módok mindegyikében a videó codec (mint pl. a libavcodec
)
a videó képkockákat 16x16 pixel nagyságú macroblock-okra osztja, majd egy
kvantálást végez mindegyik macroblock-on. Minél alacsonyabb a kvantálás, annál
jobb a minőség és nagyobb a bitráta. A film kódolók által egy adott macroblockhoz
a megfelelő kvantáló kiválasztására használt módszer változó és nagymértékben
tuningolható. (Ez egy extrém túl-egyszerűsítése a tulajdonképpeni folyamatnak,
de az alap koncepciót hasznos megérteni.)
Ha előírsz egy konstans bitrátát, a videó codec elkódolja a videót, figyelmen
kívül hagyva a részleteket amennyire csak lehetséges és a legkisebb mértékben,
amennyire szükséges, hogy a megadott bitrátánál alacsonyabban maradjon. Ha
tényleg nem érdekel a fájl méret, használhatsz CBR-t és megadhatsz egy bitrátát
vagy hagyhatod határozatlanul. (A gyakorlatban ez egy kellően magas értéket
jelent, ami nem szab gátat, pl. 10000Kbit.) Ha nincs különösebb megkötés a
bitrátára vonatkozóan, az eredmény az lesz, hogy a codec a lehető legalacsonyabb
kvantálást fogja használni minden egyes macroblock-hoz (amint ez a
vqmin-ben meg van adva a libavcodec
nél, alapértelmezésként 2). Amint
előírsz egy megfelelően alacsony bitrátát, ami a codecet magasabb kvantálás
használatára kényszeríti, majdnem biztos, hogy rontod a videód minőségét.
Ahhoz, hogy ezt elkerüld, valószínűleg downscale-t kell végrehajtani a
videón, az alábbiakban szereplő módszernek megfelelően. Általában igaz,
hogy jobb ha kerülöd a CBR-t, ha számít a minőség.
Konstans kvantálással a codec ugyan azt a kvantálót használja, amit
a vqscale kapcsolóval megadtál (a libavcodec
nek), minden macroblock-nál. Ha
a lehető legjobb minőségű rip-et szeretnéd, szintén a bitráta kihagyásával,
használhatod a vqscale=2 kapcsolót. Ez ugyan azt a bitrátát
és PSNR-t (peak signal-to-noise ratio) szolgáltatja, mint a CBR a
vbitrate=végtelen kapcsolóval és a alapértelmezett 2-es
vqmin-nal.
A konstans kvantálás problémája, hogy a megadott kvantálót alkalmazza, akár szükséges a macroblock-hoz, akár nem. Lehet, hogy használható lenne egy nagyobb kvantálás is a mackroblock-on a vizuális minőség feláldozása nélkül is. Miért pazarolnánk a biteket szükségtelenül alacsony kvantálóra? A CPU-d annyi ciklusa lehet, amennyi időd csak van, de a merevlemezed véges.
Két lépéses kódolásban az első lépés úgy rip-eli a filmet, mintha CBR lenne, de megtartja a tulajdonságok listáját minden egyes képkockánál. Ezeket az adatokat használja fel aztán a második lépésben a használni kívánt kvantálót meghatározó intelligens döntésekben. Gyors akciónál vagy kis részletességű jeleneteknél magasabb kvantálót használ, lassú mozgásnál vagy nagy részletességű jeleneteknél alacsonyabbat.
Ha használod a vqscale=2 kapcsolót, akkor biteket pazarolsz. Ha a vqscale=3 kapcsolót adod meg, akkor nem a legjobb minőségű rip-et kapod. Tegyük fel, hogy egy DVD-t rip-elsz vqscale=3-mal, és az eredmény 1800Kbit. Ha két lépéses kódolást csinálsz vbitrate=1800 kapcsolóval, az kimeneti videó jobb minőségű lesz ugyanolyan bitrátával.
Mivel most meggyőződtél róla, hogy a két lépéses kódolás a megfelelő módszer, az igazi kérdés az, hogy milyen bitrátát ajánlott használni? A válasz az, hogy nincs egyszerű válasz. Valószínűleg olyan bitrátát akarsz választani, ami a legjobb egyensúlyt biztosítja a minőség és a fájl méret között. Ez viszont a forrás videótól függően változik.
Ha a méret nem számít, egy jó kiindulási pont minden nagyon jó minőségű rip-hez egy 2000Kbit körüli érték, plusz-mínusz 200Kbit. A gyors akciókhoz és a nagy részletességű videókhoz vagy ha sas szemed van, akkor választhatsz 2400-at vagy 2600-at. Néhány DVD-nél nem fogsz különbséget felfedezni 1400Kbit-en sem. Jó ötlet az egyes fejezeteket különböző bitrátával megnézni, hogy meglásd a különbséget.
Ha egy bizonyos méretet céloztál be, valahogy ki kell számítanod a bitrátát.
De ezelőtt azt kell megtudnod, hogy mennyi helyet kell fenntartanod az
audió sáv(ok)nak, így először ezeket
kell lerippelned.
A következő egyenlettel tudod kiszámítani a bitrátát:
bitráta = (cél_méret_Mbyteokban - hang_mérete_Mbyteokban) *
1024 * 1024 / hossz_másodpercben * 8 / 1000
Például egy két órás film 702 Mbájtos CD-re való összenyomásához, 60
Mbájtnyi hang sávval, a videó bitrátájának
(702 - 60) * 1024 * 1024 / (120*60) * 8 / 1000 =
740kbps
-nek kell lennie.
Az MPEG-típusú tömörítés természetéből adódóan számos megszorítás van, amit követned kell a maximális minőség érdekében. Az MPEG 16x16 makroblokknak nevezett négyzetre osztja fel a videót, mindegyik 4 darab 8x8 blokk luma (intenzitás) információt és két fél-felbontású 8x8 chroma (szín) blokkot tartalmaz (egy a vörös-világoskék tengelyen, a másik a kék-sárga tengelyen). Ha a film szélessége és magassága nem 16 többszöröse, a kódoló akkor is elegendő 16x16-os makroblokkot fog használni, hogy lefedje a teljes képet, a maradék hely veszendőbe megy. Így ha a minőség maximalizálása a cél egy fix fájlmérettel, akkor eléggé rossz ötlet nem 16 valamelyik többszörösét használni méretként.
A legtöbb DVD-n van valamekkora fekete sáv a sarkokban. Ha ezeket békén hagyod, akkor több módon is ronthatják a minőséget.
Az MPEG-típusú tömörítés szintén nagyban függ a frekvencia tartományok transzformálásától is, általában a Diszkrét Koszinusz Transzformációt (DCT) használják, ami hasonló a Fourier transzformációhoz. Ez a fajta kódolás hatékony a minták és a sima átmenetek átalakításához, de nehezen bírkózik meg az éles élekkel. Ezek elkódolásához sokkal több bitre van szüksége, különben egy gyűrűsödésnek nevezett mellékhatás jelenik meg.
A frekvencia transzformáció (DCT) külön hajtódik végre minden egyes makroblokkon (tulajdonképpen minden blokkon), így ez a probléma csak akkor jelentkezik, ha az éles él a blokkon belül van. Ha a fekete határ épp olyan pixel határon kezdődik, ami 16 többszöröse, akkor nincs probléma. Habár a fekete határok a DVD-ken ritkán vannak szépen eligazítva, így a gyakorlatban majdnem mindig vágni kell, hogy elkerüld ez a büntetést.
A frekvencia tartományok kódolása mellett az MPEG-típusú tömörítés mozgó vektorokat használ a képkockák közötti változások ábrázolásához. A mozgó vektorok természetesen kevésbé hatékonyak a sarkokból érkező új tartalomnál, mert az még nincs jelen az előző képkockán. Amíg a tartalom a sarkok felé terjed ki, a mozgó vektoroknak nincs problémájuk a tartalom kifelé mozgásával. Habár a fekete határok megjelenésekor lehetnek gondok:
Minden egyes makroblokknál az MPEG-típusú kódolás egy vektort is eltárol, mely azt mondja meg, hogy az előző képkocka melyik részét kell átmásolni ebbe a makroblokkba a következő kocka megbecsléséhez. Csak a megmaradt különbséget kell elkódolni. Ha a makroblokkot kettéosztja a kép széle és a fekete sáv, akkor a kép többi részének mozgó vektorai felül fogják írni a fekete sávot. Ez azt jelenti, hogy sok bitet kell elpazarolni vagy a határ felülírt részének újrafeketítéséhez vagy (inkább) a mozgó vektor nem kerül felhasználásra és így a makroblokk összes változását expliciten el kell kódolni. Mindkét esetben jelentősen romlik a kódolás hatékonysága.
Ez a probléma szintén csak akkor jelentkezik, ha a fekete sáv nem 16 többszörösű pixel-határon van.
Végül tegyük fel, hogy van egy makroblokkunk a kép belsejében és egy objektum mozog be ebbe a blokkba a kép sarka felől. Az MPEG-típusú kódolás nem tudja azt mondani, hogy "másold át azt a részt, ami a kép belsejében van, de a fekete sávot ne". Így a fekete sáv is átmásolódik és így rengeteg bitet kell feláldozni a kép ott lévő részének újrakódolásához.
Ha a kép tovább fut az elkódolt terület sarka felé, az MPEG-nek speciális optimalizációi vannak az kép szélén lévő pixelek ismétlődő másolására, ha a mozgó vektorok a kódolt területen kívülről jönnek. Ez a tulajdonság haszontalanná válik, ha a filmen fekete sávok vannak. Az első két problémával ellentétben itt nem segít a 16 többszörösére való igazítás.
Habár a sávok teljesen feketék és soha nem változnak, mindenképpen egy kis plusz munkát igényelnek, mivel több macroblokk van.
A fenti okok miatt javasolt, hogy teljesen vágd le a fekete sávokat. Továbbá ha a kép sarkainál zaros/torz rész van, ennek a levágása is javít a kódolási hatékonyságon. A keményvonalas videósok, akik az eredeti tartalmat akarják megtartani, amennyire csak lehet, biztos tiltakozni fognak ez ellen, de ha nem tervezed konstant kvantálás használatát, akkor a vágás miatt nyert minőségjavulás jelentősen nagyobb lesz, mint a sarkok levágása miatti információvesztés.
Emlékezz rá az előző fejezetből, hogy a végső képméret, amibe kódolsz, 16 többszöröse ajánlott, hogy legyen (mind szélességben, mind magasságban). Ezt vágással, méretezéssel vagy ezek kombinációjával érheted el.
Vágásnál van egy pár ökölszabály, amit jó ha betartasz, ha nem akarsz kárt tenni a filmben. A normál YUV formátum 4:2:0, a chroma (szín) információkat almintaként tárolja, pl. a chroma csak fele annyiszor kerül mintázásra minden irányban, mint a luma (intenzítás) információk. Tanulmányozd ezt a diagramot, ahol L jelenti a luma mintázási pontokat és C a chroma-kat!
L | L | L | L | L | L | L | L |
C | C | C | C | ||||
L | L | L | L | L | L | L | L |
L | L | L | L | L | L | L | L |
C | C | C | C | ||||
L | L | L | L | L | L | L | L |
Amint láthatod, a kép sorai és oszlopai természetszerűleg párokba rendeződnek. Így a vágási eltolásodnak és a méreteidnek páros számoknak kell lenniük. Ha nem, akkor a chroma nem fog rendes sort alkotni a luma-val. Elméletben lehetséges a vágás páratlan eltolással, de ehhez a chroma újramintázása szükséges, ami egy veszteséges művelet és nem is támogatja a vágó szűrő.
Továbbá az átlapolt videót a következőképpen mintázzák:
Top field | Bottom field | ||||||||||||||
L | L | L | L | L | L | L | L | ||||||||
C | C | C | C | ||||||||||||
L | L | L | L | L | L | L | L | ||||||||
L | L | L | L | L | L | L | L | ||||||||
C | C | C | C | ||||||||||||
L | L | L | L | L | L | L | L | ||||||||
L | L | L | L | L | L | L | L | ||||||||
C | C | C | C | ||||||||||||
L | L | L | L | L | L | L | L | ||||||||
L | L | L | L | L | L | L | L | ||||||||
C | C | C | C | ||||||||||||
L | L | L | L | L | L | L | L |
Amint láthatod a minták nem ismétlődnek meg a 4 sor után. Így az átlapolt videóhoz a vágás y-eltolásának és a magasságának 4 többszörösének kell lennie.
A natív DVD felbontás 720x480 NTSC-vel és 720x576 PAL-lal, de van egy arányjelző is, ami megmutatja, hogy teljes képernyős (4:3) vagy széles vásznú (16:9). Sok (ha nem az összes) széles képernyős DVD nem szigorúan 16:9-es, vagy 1.85:1-hez vagy 2.35:1-hez (cinescope). Ez azt jelenti, hogy fekete sávok lesznek a videón, amit le kell vágni.
Az MPlayer rendelkezik egy crop detection szűrővel, ami megállapítja a levágandó téglalapot (-vf cropdetect). Futtasd az MPlayert a -vf cropdetect kapcsolóval és kiírja a vágási beállításokat a határok eltávolításához. A filmet elegendő ideig kell engedned futni ahhoz, hogy legyen teljesen lefedett kép és helyes vágási eredményeket kapj.
Ezután teszteld le a kapott értékeket az MPlayerrel, felhasználva a cropdetect által kiírt parancssort és állíts a téglalapon, ha szükséges. A téglalap szűrő segít neked a vágási téglalap filmen való, interaktív módon történő elhelyezésében. Emlékezz, és kövesd a fenti oszthatósági ökölszabályokat, nehogy félreigazítsd a chroma plane-eket.
Bizonyos esetekben a méretezés nem kívánatos. A méretezés függőleges irányban nehéz átlapolt videónál és ha meg akarod őrizni az átlapoltságot, tartózkodnod kell a méretezéstől. Ha nem fogsz méretezni, de 16 többszörösét akarod használni képméretként, túl kell vágnod a filmet. Ne vágj kisebbet, mert a fekete szélek nagyon rosszak kódoláskor!
Mivel az MPEG-4 16x16-os macroblock-okat használ, meg kell győződnöd róla, hogy a kódolt videó mindegyik dimenziója 16 többszöröse-e, különben rontod a minőséget, különösen alacsony bitrátánál. Ezt megteheted a levágandó terület szélességének és magasságának 16 legközelebbi többszörösére való kerekítésével. Amint az már szerepelt korábban, vágásnál növelni szeretnéd az y-offszetet a régi és az új magasság közötti különbség felével, így a keletkező videó elmozdul a kép középpontjából. A DVD videó mintavételezési módja miatt meg kell győződnöd róla, hogy az offszet páros szám-e. (Valójában íratlan szabály, hogy soha ne használj páratlan értékeket semmilyen paraméternek se, ha vágsz vagy méretezel egy videót.) Ha nem akarsz pár extra pixelt eldobni, akkor a videó méretezését kell megfontolnod inkább. Ezt nézzük meg a következő példánkban. Tulajdonképpen engedélyezheted a cropdetect szűrőnek, hogy ezt az egészet megcsinálja helyetted, mivel van egy opcionális kerekítési paramétere, ami alapértelmezésként 16.
Szintén figyelned kell a "félfekete" pixelekre a sarkokban. Győződj meg róla, hogy ezeket szintén levágtad, különben olyan biteket pazarolsz el ott, amiket máshoz jobban felhasználhatnál.
Miután mindent elmondtunk és kész, valószínűleg olyan videót kapsz, aminek
a pixeljei nem éppen 1.85:1 vagy 2.35:1 arányúak, de legalább valami hasonló.
Az új képarányt kiszámíthatod kézzel is, de a MEncoder
rendelkezik egy kapcsolóval a libavcodec
hez, amit autoaspect-nek
hívnak, ami megcsinálja ezt neked. Ne méretezd át ezt a videót a pixelek
négyszögletesítéséhez, hacsak nem akarod pazarolni a helyet a merevlemezeden.
A méretezés történhet lejátszáskor, és a lejátszó az AVI-ban tárolt arányt
fogja használni a megfelelő felbontás megállapításához.
Sajnos nem minden lejátszó teszi kötelezővé ezt az auto-méretezési információt,
ezért lehet, hogy mégis átméretezésre kényszerülsz.
Ha nem konstans kvantálási módban fogsz kódolni, akkor meg kell adnod a bitrátát. A bitráta koncepciója elég egyszerű. A filmed tárolására másodpercenként felhasznált bitek (átlagos) száma. Normális esetben a bitrátát kilobit (1000 bit) per másodpercben mérik. A filmed mérete a lemezen egyenlő a bitráta és a film hosszának szorzatával, plusz egy kis "túlterheléssel" (lásd az AVI konténert például). Az egyéb paraméterek, mint a méretezés, vágás, stb. nem változtatják meg a fájl méretét, amíg nem változtatsz a bitrátán is.
A bitráta nem aránylik a felbontáshoz. Ezért mondhatjuk, hogy egy 320x240-es fájl 200 kbit/sec-kel nem lesz ugyan olyan minőségű, mint ugyan az a film 640x480-ban, 800 kbit/sec-kel! Ennek két oka van:
Érzékelhető: Jobban észreveszed az MPEG hibáit ha fel vannak nagyítva! A hibák a blokkok (8x8) méretezéséből adódnak. A szemed nem látja meg a hibát 4800 kicsi blokkban olyan könnyen, mint 1200 nagy blokkban (feltételezve, hogy mindkettőt teljes képernyőre nagyítod).
Elméleti: Ha egy képet leméretezel, de ugyan akkora méretű (8x8) blokkokat használsz a frekvenciatartomány transzformálásához, több adatot mozgatsz a magasabb frekvenciatartományokba. Egyszerűen fogalmazva, minden pixel több részletet fog tartalmazni, mint előtte. Így habár a leméretezett képed kiterjedésében az információ 1/4-edét tartalmazza csak, mégis az információ nagy részét tartalmazhatja a frekvenciatartományban (feltéve, hogy a magas frekvenciák nincsenek kellőképpen kihasználva az eredeti 640x480-as képen).
A régi leírások egy "bit per pixel" megközelítés szerint javasolták a bitráta és a felbontás megválasztását, ez azonban általában nem helyes a fentiek miatt. A legjobb becslésnek az tűnik, ha a bitráta léptéke a felbontás négyzetgyökével arányos, így a 320x240 és 400 kbit/sec összehasonlítható a 640x480 és 800 kbit/sec-kel. Azonban ez még nem lett bizonyítva sem elméleti sem gyakorlati törvénnyel. Továbbá, tekintve, hogy a filmek nagyon változatosak a zajtól, részletességtől, a mozgás szögétől, és a többitől függően, haszontalan általános tanácsokat adni bit per átló hosszára vonatkozóan (a bit per pixel analógiája, a négyzetgyök felhasználásával).
Eddig csak a felbontás és a bitráta kiválasztás nehézségeiről beszéltünk.
Először, ki kell számítanod az elkódolt képarányt:
ARc = (Wc x (ARa / PRdvd )) / Hc
ahol:
Wc és Hc a vágott videó szélessége és a magassága,
ARa a megjelenített kép aránya, ami általában 4/3 vagy 16/9,
PRdvd a DVD pixel rátája, ami PAL DVD-k esetén 1.25=(720/576) és 1.5=(720/480) NTSC DVD-knél,
Ezután, kiszámíthatod az X és Y felbontást, egy bizonyos Tömörítési
Minőség (Compression Quality, CQ) faktornak megfelelően:
ResY = INT(SQRT( 1000*Bitrate/25/ARc/CQ )/16) * 16
és
ResX = INT( ResY * ARc / 16) * 16
Oké, de mi az a CQ? A CQ reprezentálja a kódolás pixelenkénti és képkockánkénti bitszükségletét. Nagy vonalakban minél nagyobb a CQ, annál kisebb a valószínűsége, hogy kódolási hibát fog látni. Bár ha van cél méret a filmedhez (1 vagy 2 CD például), akkor korlátozott a felhasználható bitek száma; ezért szükséges, hogy megfelelő arányt találj a tömörség és a minőség között.
A CQ függ mind a bitrátától mind a film felbontásától. Ha növelni akarod a CQ-t, általában leméretezést kell végezned a filmen, mivel a bitráta a cél méret és a film hosszából számítódik, ami konstans. Egy 0,18 alatti CQ általában nagyon kockás képet eredményez, mert nincs elég bit minden egyes macroblokk információinak eltárolásához (az MPEG4, mint sok más codec, csoportokba gyűjti a pixeleket a kép tömörítéséhez; ha nincs elég bit, láthatóvá válik ezen blokkok széle). Ezért ésszerű a CQ-t a 0,20-0,22-es tartományból választani 1 CD-s rip esetén, és 0,26-0,28-ból a 2 CD-snél.
Kérlek figyelj rá, hogy a CQ csak egy mutató, mely az elkódolt tartalomtól függ, egy 0,18-as CQ-val jól nézhet ki egy Bergman, szemben az olyan filmekkel, mint például a Mátrix, ami sok gyors-mozgású részt tartalmaz. Másrészt nem éri meg növelni a CQ-t 0,30-nál magasabbra, mert csak pazarolni fogod a biteket észrevehető minőségi nyereség nélkül.
A MEncoder videó szűrői használatának ismerete alapvető fontosságú a jó kódoláshoz. Az összes videó feldolgozás a szűrőkön keresztül történik -- vágás, méretezés, szín állítás, zajszűrés, élesítés, deinterlacing, telecine, inverz telecine és deblocking, csak hogy néhányat megemlítsünk. A támogatott formátumok sokaságával együtt a MEncoder szűrőinek változatossága a fő előnye a hasonló programokkal szemben.
A szűrők láncban töltődnek be a -vf kapcsoló használatával:
-vf szuro1=opciok,szuro2=opciok,...
A legtöbb szűrő több numerikus opciót vár, kettőspontokkal elválasztva, de igazából a szintaxis szűrőről szűrőre változik, ezért olvasd el a man oldal általad használni kívánt szűrőhöz tartozó részét!
A szűrők olyan sorrendben módosítják a videót, ahogy be lettek töltve. Például a következő lánc:
-vf crop=688:464:12:4,scale=640:464
először kivágja a 688x464 területű régiót (12,4)-es bal felső sarokkal, majd az eredményt leméretezi 640x464-re.
Bizonyos szűrőket a szűrő lánc elején, vagy ahhoz közel kell betölteni, ahhoz, hogy a videó dekódolótól érkező információkat megkapja, azok ne vesszenek el vagy változzanak meg másik szűrő miatt. A legjobb példa erre a pp (utófeldolgozás, csak ha deblock vagy dering műveleteket hajt végre), az spp (másik utófeldolgozó az MPEG mellékhatások eltávolítására), a pullup (inverz telecine) és a softpulldown (a soft telecine hard telecine-re történő konvertálása).
Általában olyan kevés szűrést szeretnél, amennyit csak lehet, hogy az eredeti DVD forráshoz hű maradj. A vágás gyakran elkerülhetetlen (amint azt fentebb leírtuk), de ne méretezd a videót. Noha a kicsinyítés néha előnyben részesül a magas kvantálóknál, mi szeretnénk elkerülni mindkét dolgot: emlékezz, hogy mit határoztunk el kezdetben a bitek minőségért történő feláldozásáról.
Szintén hagyd békén a gamma, kontraszt, fényerő, stb. beállításokat. Ami jól néz ki a monitorodon nem biztos, hogy másnál is szép lesz. Ezeket a beállításokat lejátszáskor kell elvégezni.
Az egyetlen dolog, amit szeretnél, a videó nagyon könnyű zajszűrőn történő áteresztése, mint pl. -vf hqdn3d=2:1:2. Ismételten, ezen bitek jobb felhasználásáról van szó: miért vesztegessük el őket a zaj kódolására, ha ezt a zajt lejátszás közben is hozzá tudod adni? A hqdn3d paramétereinek növelésével még jobb tömörítettséget érhetsz el, de ha túl magasra állítod az értékeket, rontod a kép láthatóságát. A fent javasolt értékek (2:1:2) eléggé konzervatívak; kísérletezz szabadon nagyobb értékekkel és ellenőrizd az eredményeket magad.
Majdnem minden filmet 24 fps-sel fényképeznek. Mivel az NTSC 30000/1001 fps-es, némi átdolgozás szükséges ezen a 24 fps-es videón, hogy a megfelelő NTSC framerátával menjen. Ez az eljárást 3:2 pulldown-nak hívják, de általában csak telecine néven hivatkoznak rá (mivel a pulldownt gyakran használják a telecine eljárás során), ami egyszerűen leírva lelassítja a filmet 24000/1001 fps-re és megismétel minden negyedik képkockát.
Ez nem speciális feldolgozás, habár minden PAL DVD esetében megcsinálják, ami 25 fps-sel megy. (Műszaki szempontból a PAL-t lehet telecine-elni, ezt 2:2 pulldown-nak hívják, de ez nem terjedt el a gyakorlatban.) A 24 fps-es filmet egyszerűen 25 fps-sel játszák le. Az eredmény az, hogy a film kissé gyorsabban megy, de ha nem vagy egy földönkívüli, valószínűleg nem fogod észrevenni a különbséget. A legtöbb PAL DVD zajszint-javított audiót tartalmaz, így amikor 25 fps-sel játszák le őket, a hangok jól hangzanak, még akkor is, ha az audió sáv (és ebből adódóan az egész film) az NTSC DVD-kénél 4%-kal lassabb futási idővel megy.
Mivel a PAL DVD-ben a videót nem változtatták meg, nem kell aggódnod a frameráta miatt. A forrás 25 fps-es és a rip-ed is 25 fps-es lesz. De ha egy NTSC DVD filmet rippelsz, fordított telecine-t kell alkalmaznod.
A 24 fps-sel felvett filmeknél az NTSC DVD-n lévő videó vagy telecine-elt 30000/1001 fps-re vagy pedig progresszív 24000/1001 fps-es és szándék szerint a DVD lejátszó végzi a telecine-t lejátszás közben. Másrészről a TV sorozatok általában csak átlapoltak, nem telecine-ltek. Ez azonban nem ökölszabály: néhány TV sorozat átlapolt (mint a Buffy a Vámpír gyilkos) míg másik a progresszív és az átlapolt keverékei (mint pl. az Angyal vagy a 24).
Javasoljuk, hogy olvasd el a mit kezdjünk a telecine-nel és az átlapolással NTSC DVD-ken részt, hogy kezelni tudd a különböző lehetőségeket.
Bár ha legtöbbször csak filmeket rippelsz, valószínűleg vagy 24 fps-es progresszív vagy telecine-lt videóval lesz dolgod, ezekben az esetekben használhatod a pullup szűrőt a -vf pullup,softskip kapcsolóval.
Ha az általad elkódolni kívánt film átlapolt (NTSC videó vagy PAL videó), el kell döntened, hogy akarsz-e deinterlacing-et vagy sem. A deinterlacing használhatóvá teszi a filmed progresszív scan-es megjelenítőkön, mint pl. a számítógép monitorok vagy a projektorok, van ára is: az 50 vagy 60000/1001-es mezőráta feleződik 25 vagy 30000/1001 képkocka per másodpercre és így a filmedben tárolt információk durván fele elveszik a jelentős mozgást tartalmazó részekben.
Így hát ha archiválási okokból jó minőség kell, akkor kerüld el a deinterlace-t. Bármikor deinterlace-lheted a filmet lejátszás közben is, ha progresszív scan-es megjelenítőd van, valamint a jövő lejátszói képesek lesznek teljes mezőrátával deinterlacing-elni, 50 vagy 60000/1001 teljes képkocka per másodpercre interpolálni az átlapolt videóból.
Fokozott figyelemmel kell eljárni, ha átlapolt videóval dolgozol:
A vágási magasság és y-offszet 4 többszöröse kell, hogy legyen.
Bármilyen függőleges átméretezést átlapolt módban kell elvégezni.
Az utófeldolgozó és a zajcsökkentő szűrők nem az elvártnak megfelelően működnek, ha nem gondoskodsz róla, hogy egyszerre csak egy mezővel dolgozzanak, különben a nem megfelelő használat miatt sérülhet a videó.
Mindezt észben tartva, itt az első példánk:
mencoder capture.avi
-mc 0 -oac lavc -ovc lavc -lavcopts \
vcodec=mpeg2video:vbitrate=6000:ilme:ildct:acodec=mp2:abitrate=224
Figyelj az ilme és az ildct kapcsolókra.
A MEncoder audió/videó szinkronizáló
algoritmusai azzal a szándékkal lettek megtervezve, hogy képesek
legyenek a sérült szinkronú filmek megjavítására.
De néhány esetben a képkockáknál szükségtelen kihagyásokat és duplikálásokat
valamint kis mértékben A/V deszinkronizációt okozhatnak, ha megfelelő
bementük van (természetesen az A/V szinkron dolgok csak akkor érvényesek,
ha feldolgozod vagy másolod az audió sávot a videó átkódolása közben,
ami nagyon javasolt).
Ezért lehet, hogy az alapértelmezett A/V szinkronizációra kell váltanod
a -mc 0 opcióval, vagy írd ezt bele a
~/.mplayer/mencoder
konfigurációs fájlodba,
feltéve, hogy csak hibátlan anyaggal dolgozol (DVD, TV mentés, nagyon
jó minőségű MPEG-4 rip, stb.) és nem hibás ASF/RM/MOV fájlokkal.
Ha még további különös képkocka kihagyásokat és duplázásokat akarsz elkerülni, használhatod az -mc 0 és -noskip kapcsolókat együtt is. Ez megakadályoz mindenféle A/V szinkronizációt és egy az egyben másolja a képkockákat, így nem használhatod olyan szűrőkkel, melyek megjósolhatatlanul hozzáadnak vagy elvesznek képkockákat, vagy ha a bemeneti fájlodnak változó framerátája van! Ezért a -noskip használata általában nem javasolt.
A MEncoder által támogatott, úgy nevezett "három lépéses" audió kódolás a visszajelzések szerint A/V deszinkronizációt okoz. Ez különösen akkor történik, ha bizonyos szűrőkkel együtt használják, így jelenleg nem javasolt a három lépéses audió mód használata. Ez a képesség csak kompatibilítási okok miatt maradt meg és a haladó felhasználóknak, akik tudják, hogy mikor lehet használni és mikor nem. Ha ezelőtt még soha nem hallottál a három lépéses módról, felejtsd el azt is, hogy megemlítettük!
Érkeztek jelentések A/V deszinkronizációról MEncoderrel stdin-ről történő kódolás esetén is. Ne tedd ezt! Mindig használj fájlt vagy CD/DVD/stb. eszközt forrásként.
Az audió egy sokkal könnyebben megoldható probléma: ha számít a minőség, akkor egyszerűen hagyd úgy, ahogy van. Még az AC3 5.1 stream-ek is leginkább 448Kbit/s-osak és minden bitet megérnek. Csábító lehet az audió jó minőségű Vorbis-ba történő konvertálása, de az, hogy ma nincs egy A/V receiver-ed az AC3 áteresztéshez, nem jelenti azt, hogy holnap sem lesz. Készíts a jövőben is használható DVD rip-eket az AC3 stream megtartásával. Megtarthatod az AC3 stream-et a kódolás közben a videó stream-be történő közvetlen átmásolással. Vagy ki is szedheted az AC3 stream-et, hogy elkeverd valamilyen konténer formátumba, mint pl. a NUT vagy a Matroska.
mplayerforras_fajl.vob
-aid 129 -dumpaudio -dumpfilehang.ac3
a 129-es audió sávot kiszedi a sound.ac3
nevű
fájlba a source_file.vob
-ból (NB: a DVD VOB
fájlok általában különböző audió számozást használnak, ami azt jelenti,
hogy a 129-es VOB audio sáv a 2. audió sáv a fájlban).
De néha tényleg nincs más választásod, mint tovább tömöríteni a hangot így több bit jut a videóra. A legtöbb ember vagy MP3-at vagy Vorbis-t választ az audió tömörítéséhez. Míg az utóbbi nagyon hely-takarékos codec, az MP3-nak jobb a hardveres lejátszók terén a támogatottsága, bár ez a trend változóban van.
Ne használd a -nosound-ot ha audióval rendelkező fájlt kódolsz, akkor se, ha az audiót később, elkülönítve kódolod és kevered. Bár ideális esetben működik, a -nosound opció okozhat némi problémát a parancssori kódolási beállításaidban. Más szavakkal, a zene sáv megléte biztosítja a „Too many audio packets in the buffer” (Túl sok audió csomag a bufferban) és hasonló üzenetek elkerülését és a megfelelő szinkront.
Fel kell dolgoznod a MEncoderrel a hangot. Például az -oac copy-val átmásolhatod az eredeti hangsávot a kódolás közben vagy átkonvertálhatod "könnyű" 4 kHz-es mono WAV PCM-be a -oac pcm -channels 1 -srate 4000 kapcsolóval. Különben bizonyos esetekben olyan videó fájlt fog létrehozni, amiben nem lesz szinkronban az audió. Akkor fordulhat elő ilyen eset, ha a videó kockák száma a forrás fájlban nem egyezik meg az audió keretek teljes hosszával vagy folyamatossági hiba/szakadás miatt hiányzó vagy extra audió keretek vannak a fájlban. A helyes megoldás ezen típusú problémák kezelésére csend beillesztése vagy az audió keretek vágása ezeken a pontokon. Azonban a MPlayer ezt nem tudja megtenni, így ha az AC3-at demuxálod és egy másik alkalmazással kódolod (vagy kimented PCM-be az MPlayerrel), a szeletek hibásan maradnak benne és csak képkocka eldobással/duplázással lehet javítani. Amíg a MEncoder látja az audiót a videó kódolása közben, meg tudja csinálni ezt az eldobást/duplázást (ami általában rendben van, mert teljesen sötét/jelentetváltásos helyeken történik), de ha a MEncoder nem látja az audiót, csak feldolgoz minden képkockát úgy ahogy van és nem fog illeszkedni a végső audió folyamhoz ha például összeilleszted az audió és a videó sávodat egy Matroska fájlba.
Mindenek előtt át kell konvertálnod a DVD hangját WAV fájlba, hogy az audió codec használhassa bemenetként. Például:
mplayerforras_fajl.vob
-ao pcm:file=cel_hang.wav
-vc dummy -aid 1 -vo null
ki fogja szedni a második audió sávot a source_file.vob
fájlból a destination_sound.wav
fájlba.
Kódolás előtt valószínűleg normalizálni akarod a hangot, mivel a DVD audió
sávjait legtöbbször alacsony hangerővel rögzítik.
Használhatod a normalize eszközt, ami megtalálható
a legtöbb disztribúcióban.
Ha Windows-t használsz, egy eszköz, mint pl. a BeSweet
megcsinálja ezt neked.
Vagy Vorbis-ba vagy MP3-ba kódolsz.
Például:
oggenc -q1 cel_hang.wav
elkódolja a destination_sound.wav
-ot az 1-es
kódolási minsőséggel, ami nagyjából megfelel 80Kb/s-nak és annak a minimum
minőségnek, amit legalább használnod kell, ha érdekel a minőség.
Kérlek jegyezd meg, hogy a MEncoder jelenleg nem tud Ogg Vorbis sávokat
belekeverni a kimeneti fájlba, mert csak AVI és MPEG konténereket támogat
kimenetként és mindkettőnél audió/videó lejátszási szinkronizációs problémákat
okozhat néhány lejátszóval, ha az AVI fájl VBR-es audió stream-et tartalmaz,
mint pl. a Vorbis.
De ne aggódj, ez a dokumentáció megmutatja, hogy hogy tudod
ezt megcsinálni egyéb programokkal.
Most, hogy elkódoltad a videódat, valószínűleg szeretnéd elkeverni egy vagy több audió sávval együtt egy film konténerbe, mint pl. az AVI, MPEG, Matroska vagy a NUT. A MEncoder jelenleg csak MPEG és AVI konténer formátumokba tud natív audió és videó kimenetet készíteni. Például:
mencoder -oac copy -ovc copy -okimenet_film.avi
-audiofilebemenet_audio.mp2
bemenet_video.avi
Ez a bemenet_video.avi
videó fájlból
és a bemenet_audio.mp2
audió fájlból
elkészíti a kimenet_film.avi
fájlt.
Ez a parancs működik MPEG-1 layer I, II és III (ismertebb nevén
MP3) audióval, WAV és egy pár más audió formátummal.
A MEncoderben kísérleti jelleggel van
libavformat
támogatás, ami
az FFmpeg projektből egy függvénykönyvtár, ami számos konténer keverését és
demux-álását támogatja.
Például:
mencoder -oac copy -ovc copy -okimenet_film.asf
-audiofilebemenet_audio.mp2
bemenet_video.avi
-of lavf -lavfopts format=asf
Ez ugyan azt csinálja, mint az előbbi példa, de a kimeneti
konténer ASF lesz.
Kérlek figyelj, hogy ez a támogatás még nagyon kísérleti (de minden
nap egyre jobb lesz) és csak akkor működik, ha az
MPlayert a
libavformat
támogatás
bekapcsolásával fordítottad (ami azt jelenti, hogy az előre
csomagolt binárisok a legtöbb esetben nem fognak működni).
Néhány súlyos A/V szinkron problémát tapasztalhatsz, ha a videódat valamilyen audió sávval akarod összekeverni, mégpedig azt, hogy akár hogyan állítod az audió késleltetést, soha nem lesz megfelelő a szinkron. Ez akkor történhet meg, ha olyan videó szűrőt használsz, ami eldob vagy megdupláz képkockákat, mint pl. az inverz telecine szűrők. Javasolt a harddup videű szűrő hozzáillesztése a szűrő lánc végéhez ezen problémák elkerülése érdekében.
A harddup nélkül ha a MEncoder meg akar duplázni egy képkockát, a keverőre bízza a jelölés konténerbe helyezését, hogy az utolsó képkocka még egyszer megjelenjen a szinkron megtartása végett, aktuális képkocka írása nélkül. A harddup-pal a MEncoder ehelyett egyszerűen csak újra átküldi a szűrő láncon az utolsó megjelenített képkockát. Ez azt jelenti, hogy a kódoló pontosan ugyan azt a képkockát kapja meg kétszer és tömöríti be. Ez kicsit nagyobb fájlt eredményez, de nem okoz problémát demuxálásnál vagy másik konténer formátumba történő újrakeverésnél.
Nincs más választásod, mint a harddup használata az
olyan konténer formátumokkal, amelyek nincsenek szoros összefüggésben a
MEncoderrel. Ezek pl. azok, amelyeket a
libavformat
-on keresztül támogat,
ami nem támogatja a képkocka duplázást konténer szinten.
Habár a legszélesebb körben támogatott konténer formátum az MPEG-1 után, az AVI-nak is van néhány nagy hátránya. Talán a legnyilvánvalóbb a túlterhelés. Az AVi fájl minden egyes chunk-ja 24 bájtot pazarol a fejlécekre és az index-re. Ez egy kicsit több mint 5 MB óránként vagy 1-2,5% plusz egy 700 MB-os filmnél. Ez nem tűnik soknak, de eldöntheti, hogy 700 kbit/sec-os videót tudsz csak használni vagy 714 kbit/sec-osat, ahol minden bit a minőségre megy.
Ezen hatalmas hátrány mellett az AVI-nak a következő fő korlátai vannak:
Csak fix-fps-ű tartalmat tud tárolni. Ez különleges korlátozás, ha az eredeti anyag, amit el akarsz kódolni, kevert tartalom, például NTSC videó és film anyag keveréke. Már vannak olyan hack-ek, amivel kevert framerátás tartalmat lehetne AVI-ba tenni, de ötszörös vagy még nagyobb mértékben növelik a (már amúgy is nagy) túlterhelést, így nem praktikusak.
Az AVI fájlokban az audiónak vagy konstans-bitrátásnak (CBR) vagy konstans-képkocka méretűnek (pl. minden képkocka ugyan annyi számú mintát dekódol) kell lennie. Sajnos a leghatékonyabb codec, a Vorbis, egyik kívánalomnak sem felel meg. Ezért ha AVI-ban tárolod a filmjeidet, egy kevésbé hatékony codec-et kell használnod, mint pl. az MP3 vagy az AC3.
A fentiek miatt a MEncoder jelenleg nem támogatja a változó-fps-es kimenetet vagy a Vorbis kódolást. Így ezeket nem korlátozásként fogod fel, ha a MEncoder az egyetlen eszköz, mellyel kódolsz. Azonban lehetséges a MEncodert csak a videó kódolására használni és valamilyen egyéb eszközzel elkódolni az audiót majd összekeverni őket egy konténer formátumba.
A Matroska szabad, nyílt szabványú konténer formátum, melynek célja, hogy rengeteg továbbfejlesztett képességet biztosítson, amit a régebbi konténerek, mint pl. az AVI nem tud kezelni. például a Matroska támogatja a változó bitrátás audió tartalmat (VBR), változó framerátát (VFR), fejezeteket, fájl csatolásokat, hiba kereső kódot (EDC) és a modern A/V codec-eket, mint az "Advanced Audio Coding" (AAC), "Vorbis" vagy "MPEG-4 AVC" (H.264), szemben az AVI-val, amelyik egyiket sem.
A Matroska fájlok készítéséhez szükséges eszközöket együtt mkvtoolnix-nek hívják és elérhetőek a legtöbb Unix platformon, akárcsak Windowson. Mivel a Matroska nyílt szabványú, találhatsz más eszközöket is, amik jobban megfelelnek neked, de mivel az mkvtoolnix a leggyakrabban használt, és maga a Matroska csapat támogatja, csak ennek a használatát mutatjuk be.
Talán a legegyszerűbb módszer, hogy elindulj a Matroska-val, az MMG használata, az mkvtoolnix-szel szállított grafiksu frontend és kövesd a mkvmerge GUI (mmg) leírást.
A parancssor segítségével is összekverheted az audió és videó fájlokat:
mkvmerge -okimenet.mkv
bemenet_video.avi
bemenet_audio1.mp3
bemenet_audio2.ac3
Ez a bemenet_video.avi
fájlt és a
két audió fájlt, a bemenet_audio1.mp3
-at
és a bemenet_audio2.ac3
-at összefűzi a
kimenet.mkv
Matroska fájlba.
A Matroska, mint ahogy azt már megemlítettem, ennél sokkal többre
képes, mint pl. több audió sáv használatára (beleértve az audió/videó
szinkronizáció finom-hangolását), fejezetek, feliratok, vágás, stb...
Kérlek olvasd el ezen alkalmazások dokumentációit a részletekért.
Mi az a telecine? Gondolom azért kerested meg ezt a részt, mert nem sok mindent értesz abból, ami ebben a dokumentumban le van írva: http://www.divx.com/support/guides/guide.php?gid=10 Ez az URL egy érthető és meglehetősen átfogó leírás arról, hogy mi is az a telecine.
Megjegyzés a számokhoz. Sok dokumentáció, beleértve a fent belinkeltet is, az NTSC videó mező per másodperc értékét 59.94-ként határozza meg, és a megfelelő képkocka per másodperc értéket 29.97-nek (telecine-s és átlapolt) és 23.976-nak írja (progresszív). Az egyszerűség kedvéért sok dokumentáció még ezeket a számokat is lekerekíti 60-ra, 30-ra és 24-re.
Pontosan fogalmazva az összes szám csak közelítés. A fekete-fehér NTSC videó pontosan 60 mező per másodperces volt, de később 60000/1001-et választottak, hogy a szín adatokat hozzáigazítsák, de kompatibilisek maradjanak a kortárs fekete-fehér televíziókkal. A digitális NTSC videó (mint ami a DVD-n van) is 60000/1001 mező per másodperces. Ebből származik, hogy az átlapolt és telecine-lt videó 30000/1001 képkocka per másodperces; a progresszív videó 24000/1001 képkocka per másodperces.
A MEncoder dokumentációjának régebbi változatai és számos archivált levelezési listára küldött levél az 59.94-re, 29.97-re és a 23.976-ra hivatkozik. Az összes MEncoder dokumentáció frissítve lett a tört számokra és neked is ajánlatos ezeket használni.
-ofps 23.976 helytelen. -ofps 24000/1001 használandó helyette.
Hogyan használják a telecine-t. Az összes videónak, amit NTSC televízión szándékoznak megjeleníteni, 60000/1001 mező per másodperc sebességűnek kell lennie. A TV-nek készített filmeket és show-kat gyakran direkt 60000/1001 mező per másodperces sebességgel fényképezik, de a mozifilmek nagy része 24 vagy 24000/1001 képkocka per másodperccel készül. Amikor a mozis film DVD-jét készítik, a videót egy telecine-nek nevezett eljárás keretében televíziós formátumra konvertálják.
Egy DVD-n a videót tulajdonképpen soha sem 60000/1001 mező per másodperccel tárolják. Abban a videóban, ami eredetileg 60000/1001-es volt, egy pár mező alkot egy képkockát, 30000/1001 képkocka per másodperces sebességet eredményezve. A hardveres DVD lejátszók ezután beolvasnak egy, a videó folyamban benne lévő jelzőt, hogy megállapítsák, hogy a páros vagy páratlan sorszámú sorok alkotják-e az első mezőt.
Általában a 24000/1001 képkocka per másodperces tartalom változatlan marad, ha DVD-re kódolják és a DVD lejátszónak kell telecine-t végezni menet közben. De néha a videót a DVD-re mentés előtt telecine-lik, akkor is, ha eredetileg 24000/1001 képkocka per másodperces volt, így 60000/1001 mező per másodperces lesz, és a lemezen 30000/1001 képkocka per másodpercesként tárolódik.
Ha megnézed az egyes képkockákat az 60000/1001 mező per másodperces videóban, telecine-lt vagy sem, az átlapolás tisztán látható bármilyen mozgásnál, mert az egyik mező (mondjuk a páros sorszámú sorok) időben 1/(60000/1001) másodperccel későbbi történést reprezentál, mint a másik. Átlapolt videó számítógépen történő lejátszáskor rondán néz ki, mert egyrészt a monitornak nagyobb a felbontása, másrészt mert a videót kockáról kockára mutatja meg, mezőről mezőre történő lejátszás helyett.
Megjegyzések:
Ez a rész csak NTSC DVD-re vonatkozik, nem a PAL-ra.
A MEncoder példa sorok a dokumentumban
nem hétköznapi felhasználásra lettek
írva. Csak a legalapvetőbb dolgokat mutatják, ami a megfelelő kategóriába
tartozó videók kódolásához szükséges. A jó DVD rip-ek készítése vagy a
libavcodec
finomhangolása a
maximális minőség eléréséhez nem tartozik ezen dokumentum célkitűzései közé.
Sok megjegyzés vonatkozik erre a leírásra, melyek így vannak jelölve: [1]
A progresszív videót eredetileg 24000/1001 fps-sel rögzítették és változtatás nélkül tárolják a DVD-n.
Ha egy progressive DVD-t az MPlayerrel játszasz le, az MPlayer a következő sort fogja kiírni, amint a film lejátszása megkezdődik:
demux_mpg: 24000/1001 fps progressive NTSC content detected, switching framerate.
magyarul:
demux_mpg: 24000/1001 fps progresszív NTSC formátumot találtam, frameráta váltás.
Ettől a ponttól kezdve a demux_mpg soha sem mondhatja azt, hogy "30000/1001 fps NTSC formátumot" talált.
Ha progresszív videót nézel, soha nem láthatod meg az átlapolást. De vigyázz, néha pár telecine-s bit belekeveredik oda, ahol nem számítasz rá. Én DVD-n lévő TV műsoroknál láttam egy másodpercnyi telecine-t minden jelenet váltáskor vagy véletlen helyeken történő belenézéskor. Egyszer láttam olyan DVD-t is, aminek az első fele progresszív volt, a második fele pedig telecine-s. Ha tényleg biztosra akarsz menni, átvizsgálhatod az egész filmet:
mplayer dvd://1 -nosound -vo null -benchmark
A -benchmark kapcsoló határása az MPlayer olyan gyorsan játsza le a filmet, amennyire csak lehetséges; a hardveredtől függően sokáig is eltarthat. Minden esetben, ha a demux_mpg frameráta váltást észlel, a fenti sor azonnal megmutatja neked a váltás idejét.
Néha a progresszív videóra "soft-telecine"-ként hivatkoznak, mert a DVD lejátszónak kell ezt telecine-elnie.
A telecine-lt videót eredetileg 24000/1001 fps-sel vették fel, de telecine-lve lett a DVD-re írás előtt.
Az MPlayer nem ír semmilyen frameráta változást, ha telecine-lt videót játszik le.
Egy telecine-lt videó nézésekor átlapolási hibákat láthatsz, amik miatt "villoghat" a kép: ismétlődően megjelennek majd eltűnnek. Ezt jobban megfigyelheted így:
mplayer dvd://1
Menj egy mozgást ábrázoló részhez.
Használd a . gombot az egy képkockával történő előreléptetéshez.
Nézd meg az átlapoltnak látszó és a progresszívnak látszó képkockák mintáját. Ha a minta, amit látsz PPPII, PPPII, PPPII,... akkor a videó telecine-lt. Ha valami más mintát látsz, akkor a videót lehet, hogy egy másik, nem szabványos módszerrel telecine-lték; a MEncoder nem tudja veszteségmentesen átkonvertálni a nem-sabványos telecine-t progresszívba. Ha egyáltalán nem látsz semmilyen mintát, akkor valószínűleg átlapolt.
Néha a DVD-ken lévő telecine-lt videót "hard-telecine"-nak is hívják. Mivel a hard-telecine már 60000/1001 mező per másodperces, a DVD lejátszó mindenféle manipulálás nélkül játsza le a videót.
A másik módszer a telecine-lt forrás felismerésére a forrás megtekintése
a -vf pullup és -v kapcsolók parancssorhoz
történő hozzáadásával. Így megnézheted, hogy a pullup hogyan
illeszkedik a képkockákhoz. Ha a forrás telecine-s, a konzolon egy 3:2-es
mintát kell látnod, melyben 0+.1.+2
és
0++1
váltakozik.
Ennek a technikának megvan az az előnye, hogy nem kell a forrást nézned
az azonosításhoz, ami akkor jó, ha automatizálni szeretnéd a kódolási
folyamatot vagy távolról, lassú kapcsolaton keresztül szeretnéd megcsinálni.
Az átlapolt videót eredetileg 60000/1001 mező per másodperc sebességgel filmezték és 30000/1001 képkocka per másodperccel került fel a DVD-re. Az átlapolási effektus (gyakran "combing"-nak hívják) a mező párok képkockává történő egyesítésének eredménye. Minden mezőnek 1/(60000/1001) másodpercnyire kellene lennie egymástól, megjelenítésnél a különbség szemmel látható.
Akár csak a telecine-s videóknál, az MPlayernek a nem kell semmiféle frameráta változásról értesítenie átlapolt videók lejátszásakor.
Ha egy átlapolt videót közelebbről megnézel képkocka-léptetéssel a . gombot nyomogatva, megláthatod, hogy minden egyes képkocka átlapolt.
Az összes "kevert progresszív és telecine" videót eredetileg 24000/1001 képkocka per másodperccel rögzítették, de egyes részei utólag telecine-lve lettek.
Ha az MPlayer ilyen videót játszik le, (sokszor ismétlődően) oda-vissza vált "30000/1001 fps NTSC" és "24000/1001 fps progresszív NTSC" között. Figyeld az MPlayer kimenetének alját, ott megláthatod az üzeneteket.
Nézd meg a "30000/1001 fps NTSC" részeket, és meggyőződhetsz róla, hogy telecine-ltek, nem csak átlapoltak.
"Kevert progresszív és átlapolt" tartalomnál a progresszív és az átlapolt videót összeillesztették.
Ez a kategória ugyan úgy viselkedik, mint a "kevert progresszív és telecine", egészen addig, amíg meg nem vizsgálod a 30000/1001 fps-es részeket és észre nem veszed, hogy nincs bennük telecine minta.
Ahogy említettem az elején, például a MEncoder alábbi parancssorai nem igazán használhatóak; csak demonstrálják a minimum paramétereket az egyes kategóriák megfelelő kódolásához.
A progresszív videóhoz nem kell semmilyen különleges szűrés. Az egyetlen paraméterm, amit biztosan használnod kell, az a -ofps 24000/1001. Egyébként a MEncoder 30000/1001 fps-sel és duplikált képkockákkal próbál kódolni.
mencoder dvd://1 -oac copy -ovc lavc -ofps 24000/1001
Gyakran az az eset áll fenn, hogy a videó progresszívnek tűnik, de valójában nagyon rövid telecine-s részek vannak belekeverve. Ha nem vagy biztos a dolgodban, a legbiztonságosabb, ha kevert progresszív és telecine-lt videóként kezeled. A teljesítményvesztés kicsi [3].
A telecine visszafordítható, hogy megkapd az eredeti 24000/1001-es tartalmat, egy inverz-telecine-nek nevezett eljárással. Az MPlayer számos szűrővel rendelkezik ennek az elvégzéséhez; a legjobb szűrő a pullup le van írva a kevert progresszív és telecine részben.
A legtöbb gyakorlati esetben nem lehetséges a teljes progresszív videó visszanyerése az átlapolt tartalomból. Az egyetlen út ehhez a függőleges felbontás felének elvesztése nélkül a frameráta megduplázása és "megtippelni", hogy mi kellene minden egyes mező megfelelő sorainak felépítéséhez (ennek vannak hátrányai - lásd a 3. módszert).
Kódold el a videót átlapolt formában. Normális esetben az átlapolás
eléggé odavág a kódoló tömörítési képességeinek, de a
libavcodec
nek van két
paramétere speciálisan az átlapolt videó tárolásának egy kicsit jobb
kezeléséhez: ildct és ilme. Az
mbd=2 használata is javasolt
[2] , mert ez a
makroblokkokat nem-átlapoltként fogja elkódolni azokon a helyeken, ahol
nincs mozgás. Ügyelj rá, hogy itt a -ofps NEM kell.
mencoder dvd://1 -oac copy -ovc lavc -lavcopts ildct:ilme:mbd=2
Használj deinterlacing szűrőt a kódolás előtt. Számos közül választhatsz, mindegyiknek megvan a maga előnye és hátránya. Lásd az mplayer -pphelp kimenetét, hogy megtudd, mit használhatsz (grep-pelj a "deint"-re), és keress az MPlayer levelezési listáin a sok beszélgetés között, ami a különböző szűrőkről szól. A frameráta itt sem változik, így nem kell -ofps. A deinterlacing-et a vágás után [1] és a méretezés előtt kell elvégezni.
mencoder dvd://1 -oac copy -vf pp=lb -ovc lavc
Sajnos ez a kapcsoló hibás a MEncoderben; talán a MEncoder G2-vel működni fog, de itt most még nem. Belefuthatsz fagyásokba. Egyébként a -vf tfields célja az lenne, hogy teljes képkockát készít mindegyik mezőből, ami miatt a frameráta 60000/1001 lesz. Ennek a megközelítésnek az az előnye, hogy soha nincs adatvesztés; habár mivel minden egyes kocka csak egy mezőből keletkezik, a hiányzó sorokat valahogy interpolálni kell. Igazából nincs jó módszer a hiányzó adat összegyűjtésére és így az eredmény kicsit úgy fog kinézni, mint amikor valamilyen deinterlacing szűrőt használsz. A hiányzó sorok generálása egyéb dolgokat idéz elő, egyszerűen mivel az adat mennyisége megduplázódik. Így, nagyobb kódolási bitráták szükségesek a minőség megtartásához, és nagyobb CPU teljesítmény mind a kódoláshoz, mind a dekódoláshoz. A tfield-eknek számos különböző opciójuk van az egyes képkockákban hiányzó sorok előállításához. Ha ezt a módszert használod, akkor nézd meg a manual-t és válassz, hogy melyik opcióval néz ki legjobban az anyagod. Figyelj rá, hogy ha tfield-eket használsz, mind a -fps-nek, mind a -ofps-nek az eredeti forrásod framerátájának kétszeresét kell megadnod.
mencoder dvd://1 -oac copy -vf tfields=2 -ovc lavc -fps 60000/1001 -ofps 60000/1001
Ha drasztikus downscaling-et tervezel, kiszedhetsz és elkódolhatsz egy mezőt is a kettő helyett. Természetesen így elveszíted a függőleges felbontás felét, de ha downscaling-et tervezel legfeljebb az eredeti 1/2-ével, a veszteség nem számottevő. Az eredmény egy progresszív 30000/1001 képkocka per másodperces fájl lesz. Az helyes eljárás a -vf field használata, majd vágás [1] és megfelelő méretezés. Emlékezz, hogy be kell állítanod a méretarányt a felezett függőleges felbontásnak megfelelően.
mencoder dvd://1 -oac copy -vf field=0 -ovc lavc
Ahhoz, hogy egy kevert, progresszív és telecine-s videót teljesen progresszív videóvá konvertálj, a telecine-lt részeket inverz-telecine-elni kell. Ez háromféle képpen végezhető el, mint ahogy az lejjebb látható. Figyelj rá, hogy mindig az inverse-telecine legyen meg bármilyen átméretezés előtt; hacsak nem vagy teljesen biztos a dolgodban, és az inverse-telecine legyen a vágás előtt is [1]. A -ofps 24000/1001 kell ide, mert a kimeneti videó 24000/1001 képkocka per másodperc sebességű lesz.
A -vf pullup a telecine-s részek inverz-telecine-léséhez lett tervezve úgy, hogy a progresszív adatokat érintetlenül hagyja. A helyes működéshez a pullup-ot a softskip szűrőnek kell követnie, különben a MEncoder összeomlik. Ennek ellenére a pullup a legtisztább és legjobb módszer mind a telecine-s, mind a "kevert progresszív és telecine-s" videók elkódolásához.
mencoder dvd://1 -oac copy -vf pullup,softskip -ovc lavc -ofps 24000/1001
A másik módszer, a telecine-s részek inverz-telecine-lése helyett a nem-telecine-s részek telecine-lése majd a teljes videó inverz-telecine-lése. Zavarosan hangzik? A softpulldown egy olyan szűrő, ami végigmegy a videón és a teljes fájlt telecine-li. Ha a softpulldown-t vagy detc vagy ivtc követi, a végső eredmény teljesen progresszív lesz. A -ofps 24000/1001 kapcsolót meg kell adni.
mencoder dvd://1 -oac copy -vf softpulldown,ivtc=1 -ovc lavc -ofps 24000/1001
Én magam nem használtam a -vf filmdint-et, de álljon itt D Richard Felker III hozzászólása:
Rendben, de IMO inkább deinterlace-t próbálj a túl gyakori inverz telecine helyett (inkább settop DVD lejátszók & progresszív TV-k) ami csúnya vibrálást és egyéb jelenségeket okoz. Ha használni akarod, el kell töltened egy kis időt az opciók próbálgatásával és az eredmény megfigyelésével, hogy biztos légy benne, nem rontja el az egészet.
Két módon kezelheted ezt a kategóriát, mindkettő kompromisszum. Az időtartam/hely alapján kell döntened.
Kezeld úgy, mintha progresszív lenne. Az átlapolt részek átlapoltnak látszanak és néhány átlapolt mezőt el kell dobni, ami egyenletlen ugrásokat eredményez. Használhatsz utófeldolgozó szűrőt, ha akarsz, de ez kissé rontja a progresszív részeket.
Ez az opció használhatatlan akkor, ha a videót egy átlapolt eszközön akarod megjeleníteni (TV kártyával például). Ha átlapolt képkockáid vannak 24000/1001 képkocka per másodperces videóban, telecine-lve lesznek a progresszív képkockákkal együtt. Az átlapolt "képkockák" fele három mező hosszon lesz látható (3/(60000/1001) másodperc), ami kattanó "visszaugrás az időben" egy olyan effektus, ami nagyon rosszul néz ki. Ha mégis kísérletezel ezzel, használnod kell egy deinterlacing szűrőt, mint pl. az lb vagy az l5.
Rossz ötlet a progresszív megjelenítéshez is. Eldobja az egymást követő átlapolt mezőpárokat, megszakítva ezzel a folyamatosságot, ami sokkal szembetűnőbb, mint a második módszer, ami néhány progresszív képkockát duplán mutat. A 30000/1001 képkocka per másodperces átlapolt videó amúgy is egy kicsit fodrozódó mert igazából 60000/1001 mező per másodperc sebességgel kellene megjeleníteni, így a duplikált képkockák nem látszanak annyira.
Mindkét esetben érdemes megnézni a tartalmat és eldönteni, hogy hogyan szeretnéd megjeleníteni. Ha a videó 90%-ban progresszív és soha nem akarod TV-n lejátszani, akkor a progresszív megközelítést fogod előnyben részesíteni. Ha csak félig progresszív, akkor valószínűleg átlapoltként akarod elkódolni az egészet.
Kezeld teljesen átlapoltként. A progresszív részekben néhány képkockát meg kell duplázni, ami egyenlőtlen ugrásokat eredményez. De hangsúlyozom, a deinterlacing szűrők rontják a progresszív részeket.
A vágásról: A videó adatot a DVD-ken egy úgynevezett YUV 4:2:0 formátumban tárolják. A YUV videóban a luma ("fényerő") és a chroma ("szín") külön tárolódik. Mivel az emberi szem valamivel érzéketlenebb a színre, mint a fényerőre, a YUV 4:2:0 képen csak egy chroma pixel jut minden négy luma pixelre. Egy progresszív képen minden négy luma pixel által alkotott négyzetben (kettő mindkét oldalon) egy közös chroma pixel van. A progresszív YUV 4:2:0-t le kell vágnod páros felbontásúra és páros offszetet kell használnod. Például a crop=716:380:2:26 jó de a crop=716:380:3:26 nem.
Ha átlapolt YUV 4:2:0-lal van dolgod, a szituáció egy kicsit bonyolódik. Ahelyett, hogy az egy képkockában lévő mind a négy luma pixel osztozna egy chroma pixelen, a mezőben lévő négy luma osztozik egy chroma pixelen. Ha a mezők át vannak lapolva egy képkocka felépítéséhez, minden egyes scanline egy pixel magas. Nos, ahelyett, hogy a négy luma pixel egy négyszögben lenne, két pixel van egymás mellett, a másik kettő két scanline-nal lejjebb van egymás mellett. A két luma pixel a közbeeső scanline-on a másik mezőből van és így egy másik chroma pixel tartozik hozzájuk és két darab, két scanline távolságra lévő luma pixel. Mindezen keverés teszi szükségessé azt, hogy a függőleges vágási dimenzióknak és az offszeteknek néggyel oszthatóaknak kell lenniük. A vízszintes maradhat páros.
A telecine-lt videóknál javaslom, hogy a vágást az inverz telecine után ejtsd meg. Ha a videó már progresszív, csak páros számokkal el kell vágnod. Ha ki akarod használni azt a sebességnövekedést, amit a vágás rejteget magában, akkor függőlegesen négy többszörösével kell vágnod, különben az inverz-telecine szűrő nem kap megfelelő adatokat.
Az átlapolt (nem telecine-lt) videónál függőlegesen mindig négy többszörösével kell vágnod, hacsak nem használod a -vf field-et a vágás előtt.
A kódolási paraméterekről és a minőségről:
Csak mert itt javasoltam az mbd=2-t, nem jelenti
azt, hogy máshol ne lehetne használni. A trell-lel
együtt az mbd=2 egyike a két libavcodec
kapcsolóknak, amik legjobban
növelik a minőséget és igazából mindig ajánlott ezt a kettőt
használni, kivéve ha tilos a kódolási sebesség rontása (pl. valós
idejű kódolás). Még számos egyéb opciója van a libavcodec
-nek, ami növeli a kódolás
minőségét (és csökkenti a kódolás sebességét) de az már túlmutat ezen
dokumentum célkitűzésein.
A pullup teljesítményéről: Bátran használhatod a pullup-ot (a softskippel együtt) a progresszív videókon és ez általában jó ötlet, hacsak a forrás nem egyértelműen teljesen progresszív. A teljesítményveszteség kicsi az esetek többségében. Nagyon ritka kódolási esetekben a pullup a MEncoder 50%-os lassulását okozhatja. A zenefeldolgozás hozzáadása és a fejlett lavcopts háttérbe szorítja ezt a különbséget, a pullup miatti teljesítményromlást 2%-ra csökkentve.
A libavcodec
számos érdekes videó és audió formátumba történő egyszerű kódolást biztosít.
A következő codec-ekbe kódolhatsz (többé-kevésbé friss lista):
Videó codec neve | Leírás |
---|---|
mjpeg | Motion JPEG |
ljpeg | veszteségmentes JPEG |
h261 | H.261 |
h263 | H.263 |
h263p | H.263+ |
mpeg4 | ISO szabvány MPEG-4 (DivX 5, XviD kompatibilis) |
msmpeg4 | Szabvány előtti MPEG-4 variáns az MS-től, v3 (AKA DivX3) |
msmpeg4v2 | Szabvány előtti MPEG-4 az MS-től, v2 (régi ASF fájlokban használják) |
wmv1 | Windows Media Video, 1-es verzió (AKA WMV7) |
wmv2 | Windows Media Video, 2-es verzió (AKA WMV8) |
rv10 | RealVideo 1.0 |
rv20 | RealVideo 2.0 |
mpeg1video | MPEG-1 videó |
mpeg2video | MPEG-2 videó |
huffyuv | veszteségmentes tömörítés |
asv1 | ASUS Video v1 |
asv2 | ASUS Video v2 |
ffv1 | az FFmpeg veszteségmentes videó codec-je |
svq1 | Sorenson video 1 |
flv | Flash Videókban használt Sorenson H.263 |
dvvideo | Sony Digital Video |
snow | az FFmpeg kísérleti wavelet-alapú codecja |
Az első oszlop a codec neveket tartalmazza, amit a vcodec
opció után kell megadni, például: -lavcopts vcodec=msmpeg4
Egy példa MJPEG tömörítéssel:
mencoder dvd://2 -o title2.avi -ovc lavc -lavcopts vcodec=mjpeg -oac copy
Audió codec neve | Leírás |
---|---|
mp2 | MPEG Layer 2 |
ac3 | AC3, AKA Dolby Digital |
adpcm_ima_wav | IMA adaptív PCM (4 bit mintánként, 4:1-es tömörítés) |
sonic | kísérleti veszteséges/veszteségmentes codec |
Az első oszlop a codec neveket tartalmazza, amit az acodec
opció után kell megadni, például: -lavcopts acodec=ac3
Egy példa AC3 tömörítéssel:
mencoder dvd://2 -o title2.avi -oac lavc -lavcopts acodec=ac3 -ovc copy
Ellentétben a libavcodec
videó
codec-jeivel, az audió codec-jei nem használnak el annyi bit-et, amennyit
szánsz nekik, mivel hiányzik belőlük némi minimális pszichoakusztikus modell
(ha van egyáltalán), ami a legtöbb egyéb codec implementációban benne van.
Azonban vedd figyelembe, hogy ezek az audió codec-ek nagyon gyorsak és
azonnal használhatóak bárhol, ahol a MEncodert
a libavcodec
-kel együtt fordították le
(ami a legtöbb esetben így van), és nem függ külső függvénykönyvtáraktól.
Ideális esetben szeretnéd, ha csak azt kellene mondani a kódolónak, hogy váltson "jobb minőségre" és kész. Ez szép is lenne, de sajnos nehezen megvalósítható, mert a különböző kódolási opciók különböző minőséget eredményeznek, mely függ a forrás anyagtól is. Ez azért van, mert a tömörítés függ a szóbanforgó videó vizuális tulajdonságaitól. Például az anime és az élő felvétel két nagyon különböző anyag és így különböző opciókat követelnek meg az optimális kódoláshoz. A jó hír, hogy néhány opciót soha sem lehet elhagyni, mint például az mbd=2, trell és v4mv. Olvass tovább a gyakori kódolási opciók leírásához.
Állítható opciók:
vmax_b_frames: 1 vagy 2 a jó, a filmtől
függően.
Figyelj rá, hogy úgy kell kódolnod, hogy DivX5-tel dekódolható legyen az
eredmény, aktiválnod kell a zárt GOP támogatást a
libavcodec
cgop
opciójával, de ki kell kapcsolnod a jelenet detektálást, ami
nem túl jó ötlet, mivel rontja a kódolási hatékonyságot egy kicsit.
vb_strategy=1: segít a gyors mozgású jeleneteknél. Néhány videónál a vmax_b_frames rontja a minőséget, de a vmax_b_frames=2 a vb_strategy=1-gyel együtt segít.
dia: mozgás kereső tartomány. A nagyobb a jobb és a lassabb. Negatív értékek teljesen más skálát adnak. A jó értékek -1 a gyors kódoláshoz vagy 2-4 a lassabbhoz.
predia: mozgás kereső előre-lépés. Nem olyan fontos, mint a dia. Jó értékek 1-től (alapértelmezett) 4-ig. preme=2 kell hozzá, hogy igazán hasznos legyen.
cmp, subcmp, precmp: Összehasonlító funkciók a mozgás becsléshez. Kísérletezz a 0 (alapértelmezett), 2 (hadamard), 3 (dct) és 6 (ráta torzítás) értékekkel! 0 a leggyorsabb és és elegendő a precmp-hez. A cmp-hez és subcmp-hez 2 jó, ha anime és 3 ha élő akció. A 6 vagy jobb vagy nem, de mindenképpen lassabb.
last_pred: Az előző képkockából megjósolandó mozgások száma. 1-3 vagy hasonló segít egy kis sebességcsökkenés árán. A magasabb értékek lassúak, de igazi hasznuk nincs.
cbp, mv0: A makroblokkok kiválasztását irányítja. Egy kis sebességcsökkenés egy kis minőségjavulásért.
qprd: adaptív kvantálás, mely a makroblokk komplexitásán alapul. Vagy segít vagy nem, a videó és egyéb opciók függvényében. Ennek lehetnek mellékhatásai, hacsak nem állítod be a vqmax-ot valami ésszerűen alacsony értékre (a 6 jó, talán minimum 4); a vqmin=1 is segíthet.
qns: nagyon lassú, különösen ha a qprd-vel kombinálod. Ezen opció hatására a kódoló minimalizálja a zajt tömörítési mellékhatásokkal, ahelyett, hogy a szigorúan a forráshoz próbálna igazodni. Ne használd ezt, csak ha már minden mást kipróbáltál és az eredmény még mindig nem elég jó.
vqcomp: Rátaírányítás beállítása. Hogy milyen értékek jók, az a filmtől függ. Nyugodtan elhagyhatod ezt, ha akarod. A vqcomp csökkentése több bitet engedélyez az alacsony komplexitású részeknél, a növelése a nagy komplexitású részekre teszi őket (alapértelmezés: 0.5, tartomány: 0-1, javasolt tartomány: 0.5-0.7).
vlelim, vcelim: Beállítja a szimpla együttható eliminációs küszöböt a fényerősséghez és a chroma plane-khez. Ezt elkülönítve kódolja le minden MPEG-szerű algorítmus. Az ötlet emögött az opció mögött az, hogy egy jó heurisztikát használnak annak megállapítására, hogy a blokkban történt változás kisebb-e, mint az általad megadott küszöb és ebben az esetben egyszerűen "változtatás nélkül" kerül elkódolásra a blokk. Ez biteket ment meg és talán gyorsít is a kódoláson. A vlelim=-4 és vcelim=9 látszólag jók az élő filmekhez, de nem segítenek az anime-nál; ha animációt kódolsz, inkább hagyd őket változatlanul.
qpel: Negyed pixel mozgás becslés. Az MPEG-4 fél pixeles precíziót használ a mozgáskereséshez alapértelmezésként, ezért ez az opció plusz terhelést hoz, mivel több információ tárolódik az elkódolt fájlban. A tömörítési nyereség/veszteség a filmtől függ, de általában nem hatékony anime-oknál. A qpel mindig jelentős dekódolási CPU idő igénnyel jár (+25% a gyakorlatban).
psnr: nem érinti az aktuális kódolást, de készít egy log fájlt, mely megadja minden képkocka típusát/méretét/minőségét és a végére odaírja a PSNR-t (Peak Signal to Noise Ratio, Zajarány csúcspontja).
Opciók, melyekkel nem javasolt játszadozni:
vme: Az alapértelmezett a legjobb.
lumi_mask, dark_mask: Pszichovizuális adaptív kvantálás. Ne játszadozz ezekkel az opciókkal, ha számít a minőség. Az ésszerű értékek jók lehetnek a te esetedben, de vigyázz, ez nagyon szubjektív.
scplx_mask: Megpróbálja megelőzni a blokkos mellékhatásokat, de az utófeldolgozás jobb.
A következő beállítások példák különböző kódolási opciók kombinációjára, amik a sebesség vs minőség kérdést döntően befolyásolják ugyanazon cél bitráta mellett.
Az összes kódolási beállítást egy 720x448 @30000/1001 fps-es példa videón teszteltük, a cél bitráta 900kbps volt, a gép pedig egy AMD-64 3400+ 2400 Mhz-en 64 bites módban. Mindegyik kódolási beállítás tartalmazza a kódolási sebességet (képkocka per másodpercben) és a PSNR veszteséget (dB-ben) a "nagyon jó minőséghez" viszonyítva. Kérlek vedd figyelembe, hogy a forrásanyagodtól, a géped típusától és a fejlesztésektől függően különböző eredményeket kaphatsz.
Leírás | Kódolási opciók | sebesség (fps-ben) | Relatív PSNR veszteség (dB-ben) |
---|---|---|---|
Nagyon jó minőség | vcodec=mpeg4:mbd=2:mv0:trell:v4mv:cbp:last_pred=3:predia=2:dia=2:vmax_b_frames=2:vb_strategy=1:precmp=2:cmp=2:subcmp=2:preme=2:vme=5:naq:qns=2 | 6fps | 0dB |
Jó minőség | vcodec=mpeg4:mbd=2:trell:v4mv:last_pred=2:dia=-1:vmax_b_frames=2:vb_strategy=1:cmp=3:subcmp=3:precmp=0:vqcomp=0.6:turbo | 15fps | -0.5dB |
Gyors | vcodec=mpeg4:mbd=2:trell:v4mv:turbo | 42fps | -0.74dB |
Valós idejű | vcodec=mpeg4:mbd=2:turbo | 54fps | -1.21dB |
A libavcodec
ezen képességével egyedi inter (I-frame/kulcs frame) és intra
(P-frame/jósolt frame) matricákat állíthatsz be. Több codec támogatja ezt: az
mpeg1video
és mpeg2video
a jelentések szerint működik.
Ennek egy tipikus felhasználása a KVCD által javasolt matricák beállítása.
Egy KVCD "Notch" Kvantálási Mátrix:
Intra:
8 9 12 22 26 27 29 34 9 10 14 26 27 29 34 37 12 14 18 27 29 34 37 38 22 26 27 31 36 37 38 40 26 27 29 36 39 38 40 48 27 29 34 37 38 40 48 58 29 34 37 38 40 48 58 69 34 37 38 40 48 58 69 79
Inter:
16 18 20 22 24 26 28 30 18 20 22 24 26 28 30 32 20 22 24 26 28 30 32 34 22 24 26 30 32 32 34 36 24 26 28 32 34 34 36 38 26 28 30 32 34 36 38 40 28 30 32 34 36 38 42 42 30 32 34 36 38 40 42 44
Használat:
$ mencoderinput.avi
-ooutput.avi
-oac copy -ovc lavc -lavcopts inter_matrix=...:intra_matrix=...
$ mencoder input.avi
-ovc lavc -lavcopts
vcodec=mpeg2video:intra_matrix=8,9,12,22,26,27,29,34,9,10,14,26,27,29,34,37,
12,14,18,27,29,34,37,38,22,26,27,31,36,37,38,40,26,27,29,36,39,38,40,48,27,
29,34,37,38,40,48,58,29,34,37,38,40,48,58,69,34,37,38,40,48,58,69,79
:inter_matrix=16,18,20,22,24,26,28,30,18,20,22,24,26,28,30,32,20,22,24,26,
28,30,32,34,22,24,26,30,32,32,34,36,24,26,28,32,34,34,36,38,26,28,30,32,34,
36,38,40,28,30,32,34,36,38,42,42,30,32,34,36,38,40,42,44 -oac copy -o svcd.mpg
Nos hát, éppen most vetted meg a Harry Potter és a titkok kamrája gyönyörű új példányát (widescreen edition természetesen) és le akarod rip-pelni ezt a DVD-t, hogy hozzáadhasd a PC-s házimozidhoz. Ez egy régió 1-es DVD, így NTSC-s. Az alábbi példa egyszerűen alkalmazható PAL-ra is, a -ofps 24000/1001 kapcsoló elhagyásával (mert a kimeneti frameráta ugyan annyi, mint a bemeneti) és természetesen a vágás méretei is mások lesznek.
Miután lefuttattad az mplayer dvd://1 parancsot, kövesd a mit kezdjünk a telecine-nel és az átlapolással NTSC DVD-ken részben leírt utasításokat és fedezd fel, hogy ez egy 24000/1001 fps-es progresszív videó, ami azt jelenti, hogy nem kell inverz telecine szűrőt használnod, mint pl. a pullup vagy a filmdint.
Következőnek megállapítjuk a megfelelő vágási téglalapot, így használjuk a cropdetect szűrőt:
mplayer dvd://1 -vf cropdetect
Győződj meg róla, hogy egy teljesen kitöltött képkockán állsz (pl. egy világos jelenet), ezt fogod látni az MPlayer konzol kimenetén:
crop area: X: 0..719 Y: 57..419 (-vf crop=720:362:0:58)
Ezután lejátszuk a filmet ezzel a szűrővel a számok ellenérzéséhez:
mplayer dvd://1 -vf crop=720:362:0:58
És azt látjuk, hogy tökéletesen megfelel. Majd meggyőződünk, hogy a szélesség és a magasság osztható 16-tal. A szélesség jó, de a magasság nem. Mivel nem buktunk hetedik osztályban matekból, tudjuk, hogy a 16 legközelebbi többszöröse, ami kisebb, mint 362, a 352.
Így egyszerűen használhatjuk a crop=720:352:0:58 opciót, de jó lenne egy kicsit lecsípni a telejéből és az aljából, hogy középen maradjunk. Összehúzzuk a magasságot 10 pixellel, de nem akarjuk növelni az y-offszetet 5 pixellel, mert az páratlan szám és rontja a minőséget. Helyette inkább 4 pixellel növeljük az y-offszetet:
mplayer dvd://1 -vf crop=720:352:0:62
A másik ok, hogy lecsípjünk pixeleket mid fent, mint lent, hogy biztosak legyünk, hogy a fél-fekete pixeleket is levágtuk, amennyiben vannak. Figyelj rá, hogy ha a videó telecine-lt, a pullup szűrő (vagy bármelyik inverz telecine szűrő, amit használsz) a vágás előtt szerepeljen a szűrők láncában. Ha átlapolt, végezz deinterlace-t a vágás előtt. (Ha úgy döntesz, hogy megtartod az átlapolt videót, győződj meg róla, hogy a függőleges vágási offszet 4 többszöröse.)
Ha érdekel annak a 10 pixelnek az elvesztése, inkább a méretek 16 legközelebbi többszörösére való kicsinyítése érdekelhet. A szűrő lánc ez esetben:
-vf crop=720:362:0:58,scale=720:352
A videó ilyen módon történő lekicsinyítése azt jelenti, hogy néhány apró részlet elveszik, de ez valószínűleg nem lesz észrevehető. A nagyítás rosszabb minőséget eredményez (hacsak nem növeled a bitrátát). A vágás az összes ilyen pixeltől megszabadít. Ez egy üzlet, amit minden esetben meg kell fontolnod. például ha a DVD videó televízióra készült, ajánlott elkerülni a függőleges méretezést, mert a sor mintázás az eredeti felvételhez igazodik.
Megtekintés után azt látjuk, hogy a filmünk eléggé eseménydús és nagyon részletes, így 2400Kbit-et választunk bitrátának.
Most már készen vagyunk a két lépéses kódoláshoz. Első lépés:
mencoder dvd://1 -ofps 24000/1001 -oac copy -vf crop=720:352:0:62,hqdn3d=2:1:2 -ovc lavc \ -lavcopts vcodec=mpeg4:vbitrate=2400:v4mv:mbd=2:trell:cmp=3:subcmp=3:mbcmp=3:autoaspect:vpass=1 \ -o Harry_Potter_2.avi
A második lépés ugyan ez, csak megadjuk a vpass=2-t:
mencoder dvd://1 -ofps 24000/1001 -oac copy -vf crop=720:352:0:62,hqdn3d=2:1:2 -ovc lavc \ -lavcopts vcodec=mpeg4:vbitrate=2400:v4mv:mbd=2:trell:cmp=3:subcmp=3:mbcmp=3:autoaspect:vpass=2 \ -o Harry_Potter_2.avi
A v4mv:mbd=2:trell kapcsolók nagyban javítják a minőséget
a kódolási idő rovására. Nem ajánlott ezen opciók elhagyása, ha a fő cél a
jó minőség. A cmp=3:subcmp=3:mbcmp=3 opciók egy
összehasonlító függvényt választanak ki, ami jobb minőséget biztosít, mint
az alapértelmezettek. Ezzel a paraméterrel is kísérletezhetsz (lásd a man
oldalt a lehetséges értékekért), mivel a különböző függvények nagyban
befolyásolják a minőséget a forrás anyagtól függően. Például ha úgy találod,
hogy a libavcodec
túl
kockás eredményt ad, megpróbálhatod a kísérleti NSSE összehasonlító
függvény használatát a *cmp=10 opcióval.
Ennél a filmnél a keletkező AVI 138 perc hosszú lesz és közel 3 GB-os. És mivel azt mondtuk, hogy a fájl méret nem számít, ez egy tökéletesen megfelelő méret. De ha kisebbet szeretnél, próbálj ki egy alacsonyabb bitrátát. A bitráták növelése csökkenő mértékű javulást hoz, így pl. tisztán kivehető a különbség az 1800Kbit és a 2000Kbit között, szinte észrevehetetlen 2000Kbit felett. Nyugodtan kísérletezz, amíg csak kedved tartja.
Mivel a forrás videót áteresztettük a zajeltávolító szűrőn, talán egy picit vissza akarsz tenni a lejátszás közben. Ez, az spp utófeldolgozó szűrővel drasztikusan javítja a felfogható minőséget és segít a segít a videó kockásodásának megszüntetésében. Az MPlayer autoq opciójával szabályozhatod az spp szűrő utófeldolgozásának mértékét a CPU-tól függően. Emellett valószínűleg gamma és/vagy szín korrekciót is szeretnél csinálni, hogy jobban illeszkedjen a monitorodhoz. Például:
mplayer Harry_Potter_2.avi -vf spp,noise=9ah:5ah,eq2=1.2 -autoq 3
Az XviD
egy szabad függvénykönyvtár
MPEG-4 ASP videó stream-ek elkódolásához.
A kódolás megkezdése előtt be kell állítanod
a MEncoderben a támogatását.
Ez a leírás főként hasonló információkat szeretne nyújtani, mint az x264 kódolási leírás. Ezért, kérlek kezdd azzal, hogy elolvasod azon leírásnak az első részét.
Kezdésként nézd át az MPlayer man oldalának
XviD
részét!
Ez a rész csak a man oldal kiegészítéseként használható.
Az XviD alapértelmezett beállításai egyensúlyt teremtenek a sebesség és a minőség között, így nyugodtan használhatod azokat, ha a következő rész túl zavarosnak tűnik.
vhq Ez a beállítás a makroblokk döntési algoritmust érinti, minél nagyobb a beállítás, annál okosabb a döntés. Az alapértelmezett érték bátran használható minden kódoláshoz, míg a nagyobb értékek segítik a PSNR-t de jelentősen lassabbak. Kérlek vedd figyelembe, hogy a jobb PSNR nem feltétlenül jelenti azt, hogy a kép jobban fog kinézni, de közelebb lesz az eredetihez. A kikapcsolása észrevehetően felgyorsítja a kódolást; ha a sebesség kritikus számodra, megéri a cserét.
bvhq Ez ugyan azt csinálja, mint a vhq, de a B-kockákon. Elhanyagolható a hatása a sebességre és kismértékben javít a minőségen (+0.1dB PSNR körül).
max_bframes Az egymás után engedélyezett több B-kocka általában javítja a tömöríthetőséget, de több blokkosodási mellékhatást okoz. Az alapértelmezett beállítás jó kompromisszum a tömöríthetőség és a minőség között, de növelheted 3-ig ha ki vagy éhezve a bitrátára. Csökkentheted 1-re vagy 0-ra ha a tökéletes minőséget céloztad meg, de ekkor biztosan tudnod kell, hogy a forrásod bitrátája elég nagy ahhoz, hogy a kódolónak nem kell növelni a kvantálást, hogy elére ezt.
bf_threshold Ez a kódoló B-kocka érzékenységét szabályozza, a nagyobb érték hatására több B-kockát használ (és fordítva). Ez a beállítás a max_bframes-szel együtt használható; ha bitráta éhségben szenvedsz, növelned kell mind a max_bframes, mind a bf_threshold értékét, míg ha növeled a max_bframes-t és csökkented a bf_threshold-ot, akkor a kódoló több B-kockát fog használni, de csak azokon a helyeken, ahol tényleg szükséges. A max_bframes alacsony értéke és a bf_threshold magas értéke nem túl bölcs döntés, mert ez arra kényszeríti a kódolót, hogy olyan helyekre is tegyen B-kockát, ahol nincs rájuk szükség, így csökkenti a vizuális minőséget. De ha kompatibilis akarsz maradni az egyedi lejátszókkal, amik csak a régi DivX profilokat támogatják (amik csak legfeljebb 1 B-kockát támogatnak sorban), ez az egyetlen lehetőséged a tömöríthetőség növelésére a B-kockák használatával.
trellis Optimalizálja a kvantálási eljárást, hogy optimális arányt találjon a PSNR és a bitráta között, ami jelentős bitmegtakarítást engedélyez. Cserébe ezek a bitek a videóban máshol kerülnek felhasználásra, növelve az össz minőséget. Mindig ajánlott bekapcsolva hagyni, mert jelentősen befolyásolja a minőséget. Még ha neked a sebesség számít, akkor is ne kapcsold ki, amíg nem kapcsoltad ki a vhq-t és a többi CPU-éhes opciót nem állítottad a minimumra.
hq_ac Bekapcsol egy jobb együttható kölcségbecslő módszert, ami kissé csökkenti a fájlméretet, kb. 0,15-0,19% között (ami kevesebb, mint 0,01dB-es PSNR növekedésnek felel meg), miközben jelentéktelen hatása van a sebességre. Ezért ajánlott mindig bekapcsolva hagyni.
cartoon A rajzfilm tartalom jobb kódolására lett kitalálva és nincs hatása a sebességre, mivel csak a döntési heurisztikát tuningolja az ilyen típusú tartalomnál.
me_quality Ez a beállítás a mozgás előrejelzés pontosságát vezérli. Minél nagyobb a me_quality érték, annál pontosabb lesz az eredeti mozgás előrejelzése és minél pontosabb ez, annál jobban közelíti majd az eredmény az eredeti mozgást.
Az alapértelmezett érték jó a legtöbb esetben; így nem javasolt a változtatása, csak ha tényleg a sebesség számít, mivel minden a mozgás becslésével megmentett bit másra lesz felhasználva, növelve az össz minőséget. Ezért ne menj 5 alá és ezt is csak végszükség esetén állítsd be.
chroma_me Javítja a mozgás előrejelzést úgy, hogy a számításba beleveszi a chroma (szín) információkat is, míg a me_quality csak a luma-t (grayscale) használja. Ez 5-10%-kal lassítja a kódolást, de eléggé javítja a vizuális minőséget a blokkosodási effektusok csökkentésével és csökkenti a fájlméretet kb. 1,3%-kal. Ha a sebesség érdekel, kapcsold ki ezt az opciót, mielőtt elkezdenél töprengeni a me_quality csökkentésén.
chroma_opt A chroma képek minőségének javítása a célja az egyszerű fehér/fekete sarkoknál a tömörítés javítása helyett. Ezzel csökkentheted a "red stairs" effektust.
lumi_mask Megpróbál kevesebb bitrátát adni a kép azon részeinek, amiket az emberi szem nem lát olyan jól, így a kódolónak lehetősége van a megspórolt biteket a kép sokkal fontosabb részeinél felhasználni. Ezen opció nyeresége a kódolás minőségének szempontjából erősen függ az egyéni beállításoktól és a megtekintéshez használt monitor típusától és beállításaitól (tipikusan egy világosabb vagy TFT monitoron nem fog olyan jól kinézni).
qpel Növeli a várható mozgásvektorok számát a mozgás előrejelzés pontosságának növelésével halfpel-ről quarterpel-re. Az ötlet annyi, hogy a jobb mozgásvektorokért cserébe csökken a bitráta (ezért nő a minőség). Habár a quarterpel pontosságú mozgásvektorok kódolásához egy kicsivel több bit kell, a várható vektorok nem mindig adnak (sokkal) jobb minőséget. Elég gyakran a codec még mindig biteket biztosít az extra pontossághoz, de csak kicsi vagy semmilyen minőségi nyereség nincs cserében. Sajnos, nem lehet előre megmondani a qpel lehetséges nyereségeit, így kódolnod kell vele is és nélküle is, hogy biztosan tudd.
A qpel majdnem dupla kódolási időt jelent és 25%-kal több feldolgozási erőforrást igényel a dekódolása. Nem minden asztali lejátszó támogatja.
gmc
Biteket próbál megspórolni bizonyos jeleneteknél úgy, hogy egy
mozgásvektort használ az egész kockához.
Ez majdnem mindig növeli a PSNR-t, de jelentősen lelassítja a
kódolást (és a dekódolást is).
Ezért csak akkor ajánlott használnod, ha a vhq
a maximumra állítottad.
Az XviD
GMC-je sokkal
kifinomultabb, mint a DivX-é, de csak kevés lejátszó támogatja.
Az XviD támogatja a kódolási profilokat a profile opción keresztül, amivel az XVid videó folyam tulajdonságaiban olyan megszorításokat lehet előírni, amikkel az lejátszható marad az összes eszközön, ami támogatja a választott profilt. A megkötések a felbontásra, a bitrátára és bizonyos MPEG-4-es funkciókra vonatkoznak. A következő táblázat megmutatja, hogy melyik profil mit támogat.
Szimpla | Fejlett szimpla | DivX | ||||||||||||||
Profil neve | 0 | 1 | 2 | 3 | 0 | 1 | 2 | 3 | 4 | 5 | Handheld | Hordozható NTSC | Hordozható PAL | NTSC házimozi | PAL házimozi | HDTV |
Szélesség [pixelben] | 176 | 176 | 352 | 352 | 176 | 176 | 352 | 352 | 352 | 720 | 176 | 352 | 352 | 720 | 720 | 1280 |
Magasság [pixelben] | 144 | 144 | 288 | 288 | 144 | 144 | 288 | 288 | 576 | 576 | 144 | 240 | 288 | 480 | 576 | 720 |
Frame ráta [fps] | 15 | 15 | 15 | 15 | 30 | 30 | 15 | 30 | 30 | 30 | 15 | 30 | 25 | 30 | 25 | 30 |
Max átlagos bitráta [kbps] | 64 | 64 | 128 | 384 | 128 | 128 | 384 | 768 | 3000 | 8000 | 537.6 | 4854 | 4854 | 4854 | 4854 | 9708.4 |
Átlagos csúcs bitráta 3 mp-n keresztül [kbps] | 800 | 8000 | 8000 | 8000 | 8000 | 16000 | ||||||||||
Max. B-frame | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 2 | ||||||
MPEG kvantálás | X | X | X | X | X | X | ||||||||||
Adaptív kvantálás | X | X | X | X | X | X | X | X | X | X | X | X | ||||
Átlapolt kódolás | X | X | X | X | X | X | X | X | X | |||||||
Quaterpixel | X | X | X | X | X | X | ||||||||||
Globális mozgás-kompenzáció | X | X | X | X | X | X |
A következő beállítások példák különböző kódolási opciók kombinációjára, amik a sebesség vs minőség kérdést döntően befolyásolják ugyanazon cél bitráta mellett.
Az összes kódolási beállítást egy 720x448 @30000/1001 fps-es példa videón teszteltük, a cél bitráta 900kbps volt, a gép pedig egy AMD-64 3400+ 2400 Mhz-en 64 bites módban. Mindegyik kódolási beállítás tartalmazza a kódolási sebességet (képkocka per másodpercben) és a PSNR veszteséget (dB-ben) a "nagyon jó minőséghez" viszonyítva. Kérlek vedd figyelembe, hogy a forrásanyagodtól, a géped típusától és a fejlesztésektől függően különböző eredményeket kaphatsz.
Leírás | Kódolási opciók | sebesség (fps-ben) | Relatív PSNR veszteség (dB-ben) |
---|---|---|---|
Nagyon jó minőség | chroma_opt:vhq=4:bvhq=1:quant_type=mpeg | 16fps | 0dB |
Jó minőség | vhq=2:bvhq=1:chroma_opt:quant_type=mpeg | 18fps | -0.1dB |
Gyors | turbo:vhq=0 | 28fps | -0.69dB |
Valós idejű | turbo:nochroma_me:notrellis:max_bframes=0:vhq=0 | 38fps | -1.48dB |
Az x264
egy szabad függvénykönyvtár
a H.264/AVC videó folyamok kódolásához.
Mielőtt elkezdenél kódolni, be kell állítanod a
MEncoderben a támogatását.
Kérlek kezd az olvasást az MPlayer man oldalának
x264
részével.
Ez a rész a man oldal kiegészítésének lett szánva. Itt csak rövid
tanácsokat találhatsz, hogy mely opciók érdekelhetik a letöbb embert.
A man oldal tömörebb, de ugyanakkor kimerítőbb is és esetenként
több technikai információval szolgál.
Ez a leírás a kódolási opciók két fő kategóriáját tárgyalja:
Opciók, melyekkel a kódolási idő vs. minőség arány szabályozható
Opciók, melyek a különböző egyéni érdekeknek és speciális igényeknek próbálnak eleget tenni
Igazából csak te tudod, hogy mely opciók a legjobbak neked. Az első csoportba tartozó opcióknál könnyű dönteni: csak azt kell megfontolnod, hogy a minőségi különbség megéri-e a sebességbeli különbséget. A másik csoport már sokkal szubjektívebb és több szempontot kell figyelembe venni. Tartsd észben, hogy az "egyéni érdekek és speciális igényeknek" eleget tevő opciók jelentősen befolyásolják a sebességet vagy a minőséget, de elsősorban nem ezért használják őket. Az "egyéni érdekek" opciói közül több olyan változásokat idézhet elő, ami néhány embernek tetszhet, míg másoknak nem.
Mielőtt folytatnád, meg kell értened, hogy ez a leírás csak egy minőségi mércét használ: a globális PSNR-t. A PSNR rövid leírása megtalálható a Wikipedia PSNR-ről szóló cikkében. A globális PSNR az utolsó PSNR szám, amit kiír az x264encopts, ha megadod neki a psnr opciót. Bármikor, amikor egy kijelentést olvasol a PSNR-ről, él az a feltételezés, hogy azonos bitrátát használsz.
Ezen leírás majdnem teljesen egészében feltételezi, hogy két lépéses kódolást használsz. Az opciók összehasonlításánál két fő érv szól a kétlépéses kódolás mellett. Az egyik, hogy a két lépés alkalmazása kb. 1dB PSNR-t jelent pluszban, ami nagyon nagy különbség. A másik, hogy az opciók tesztelésénél a direkt minőség-összehasonlítás az egy lépéses kódolásokkal behoz egy zavaró tényezőt: a bitráta gyakran jelentősen változik a kódolások között. Nem minden esetben könnyű megmondani, hogy a minőségi változás a megváltozott opciók miatt következett-e be vagy a főként véletlenül elért bitráta különbségből adódik.
subq: Azon opciók közül, amik segítségével a sebesség és minőség közötti arányt befolyásolhatod, a subq és a frameref (lásd lejjebb) a legfontosabbak általában. Ha érdekel akár a sebesség, akár a minőség tuningolása, akkor ezt a két opciót kell először megvizsgálnod. Sebesség szempontjából a frameref és a subq opciók elég erőteljes kölcsönhatásban vannak. A tapasztalatok szerint egy referencia kockával a subq=5 (alapértelmezett érték) kb. 35%-kal több időt kíván, mint a subq=1. 6 referencia kockával az igény 60% fölé megy. A subq hatása a PSNR-re elég egyenletes, a referencia kockák számától függetlenül. Általában a subq=5 0.2-0.5 dB-vel magasabb globális PSNR-t biztosít a subq=1-gyel összehasonlítva. Általában ez már látható különbség.
A subq=6 a leglassabb, legjobb minőséget nyújtó mód. A subq=5-tel összehasonlítva általában 0.1-0.4 dB nyereséget jelent a globális PSNR-ben, 25%-100% között változó sebességveszteség árán. A subq egyéb értékeitől eltérően a subq=6 viselkedése nem függ olyan nagy mértékben a frameref és a me opcióktól. A subq=6 hatékonysága inkább a használt B-kockák számától függ. Normális használat esetén ez azt jelenti, hogy a subq=6-nak nagy hatása van mind a sebességre, mint a minőségre az összetett, sok mozgást tartalmazó jelenetek esetében, de sokkal kevesebb a kevés mozgást rögzítő részeknél. Jegyezd meg, hogy még mindig javasoljuk a bframes értékének valamilyen nullától különböző értékre történő állítását (lásd lejjebb).
frameref: A frameref alapértéke 1, de ez nem jelenti azt, hogy jó dolog 1-re állítani. Pusztán a frameref növelése 2-re kb. 0.15dB PSNR nyereséget jelent 5-10%-os sebességcsökkenéssel; ez így még jó üzletnek tűnik. A frameref=3 0.25dB PSNR-t hoz a frameref=1-hez képest, ami látható különbség. A frameref=3 kb. 15%-kal lassabb a frameref=1-nél. Ezután sajnos gyorsan jön a csökkenés. A frameref=6 valószínűleg csak 0.05-0.1 dB pluszt jelent a frameref=3-hoz képest, további 15% sebességveszteség mellett. frameref=6 felett a minőségjavulás általában nagyon kicsi (bár vedd figyelembe az egész rész olvasása közben, hogy ez nagymértékben változhat a forrásodtól függően). Egy átlagos esetben a frameref=12 a globális PSNR-t csekély 0.02dB-vel javítja a frameref=6-hoz képest, 15%-20% sebességveszteség árán. Az ilyen magas frameref értékeknél az egyedüli igazán jó dolog, amit mondhatunk, hogy a további növelés szinte soha sem árt a PSNR-nek, de a minőségi javulás szinte alig mérhető és nem is észrevehető.
A frameref növelése szükségtelenül magas értékekre ronthatja és általában rontja is a kódolási hatékonyságot, ha kikapcsolod a CABAC-ot. Bekapcsolt CABAC-kal (alapértelmezett), a frameref "túl magas" értékre történő beállítása jelenleg nagyon távolinak tűnik ahhoz, hogy aggódjunk miatta és a jövőben az optimalizációk lehet, hogy meg is szüntetik ennek lehetőségét.
Ha számít a sebesség, akkor megfontolandó, hogy alacsony subq és frameref értékeket használj az első lépésben és majd a második lépésben emeld. Általában ez jelentéktelen negatív hatással van a végső minőségre: valószínűleg jóval kevesebb, mint 0.1dB PSNR-t veszítesz, ami túl kicsi különbség ahhoz, hogy észrevedd. Bár a frameref különböző értékei alkalmanként befolyásolhatják a frametype döntéseket. Ezek legtöbbször ritka, szélsőséges esetek, de ha teljesen biztos akarsz lenni, gondolkozz el rajta, hogy van-e a videódban teljes képernyős ismétlődő, csillogó minta vagy nagyon nagy ideiglenes elzáródás, ami kikényszeríthet egy I-kockát. Az első lépés frameref-jét úgy állítsd be, hogy elég nagy legyen ahhoz, hogy tartalmazza a villódzási ciklust (vagy az elzárást). Például ha a jelenet oda-vissza ugrál két kép között három keret idejéig, állítsd be az első lépés frameref-jét 3-ra vagy magasabbra. Ez a dolog eléggé ritka az élő akciót tartalmazó videóanyagokban, de néha előjön videójátékok képének mentésekor.
me: Ez az opció a mozgásbecsléshez használt keresés módszerét választja ki. Ezen opció megváltoztatása természetesen magával hozza a minőség-vs-sebesség arány változását. A me=1 csak kis mértékben gyorsabb, mint az alapértelmezett keresés, kevesebb, mint 0.1dB globális PSNR árán. Az alapértelmezett beállítás (me=2) egy ésszerű kompromisszum a sebesség és a minőség között. A me=3 kicsivel kevesebb, mint 0.1dB globális PSNR-t jelent, amiért változó árat kell fizetni a sebességben a frameref-től függően. Ha a frameref értéke nagy (pl. 12 vagy hasonló), a me=3 kb. 40%-kal lassabb, mint az alapértelmezett me=2. frameref=3-mal a sebességbeli veszteség visszaesik 25%-30%-ra.
A me=4 egy nagyon alapos keresést használ, ami túl lassú a gyakorlati alkalmazáshoz.
4x4mv: Ez az opció engedélyezi a 8x4-es, 4x8-as és 4x4-es alpartíciók használatát a megjósolt makroblokkokban. A bekapcsolása viszonylag egyenletes 10%-15%-os sebességveszteséget jelent. Ez az opció eléggé hasztalan a kevés mozgást tartalmazó videókban, bár néhány gyors mozgású forrás, tipikusan a sok apró mozgó objektumot tartalmazó, várhatóan kb. 0.1dB-t javul.
bframes: Ha kódoltál már más codec-kel, rájöhettél, hogy a B-kockák nem mindig hasznosak. A H.264-nél ez megváltozott: új technikák és blokk típusok lehetnek a B-kockákban. Általában még a naív B-kocka választó algoritmus is jelentős PSNR hasznot hozhat. Azt is érdemes megjegyezni, hogy a B-kockák használata általában egy kicsit gyorsít a második lépésen és talán az egy lépéses kódolást is gyorsítja kicsit, ha az adaptív B-kocka döntés ki van kapcsolva.
Az adaptív B-kocka döntés kikapcsolásával (x264encopts nob_adapt opciója) ezen beállítás optimális értéke általában nem több, mint bframes=1, különben a gyors mozgású részek romolhatnak. Bekapcsolt adaptív B-kocka döntéssel (alapértelmezett tulajdonság) nyugodtan használhatsz magasabb értéket; a kódoló csökkenti a B-kockák használatát azokban a részekben, ahol amiatt sérülne a tömörítés. A kódoló ritkán választ 3 vagy 4 B-kockánál többet; ezen opció magasabb értékre állítása nagyon kicsi különbséget eredményez.
b_adapt: Megjegyzés: Ez alapértelmezetten be van kapcsolva.
Ezzel az opcióval a kódoló egy eléggé gyors döntési eljárást fog használni a B-kockák számának csökkentésére az olyan jelenetekben, amelyek nem profitálnak belőlük. Használhatod a b_bias-t a kódoló B-kocka-használatának nyomonkövetésére. Az adaptív B-kockák sebességbeli hátránya jelenleg elég szerény, de ilyen a potenciális minőségbeli javulás is. De általában nem árt. Jegyezd meg, hogy ez csak az első lépésben érinti a sebességet és a képkocka típus döntéseket. A b_adapt-nak és a b_bias-nak nincs hatása a következő lépésekre.
b_pyramid: Jó ha engedélyezed ezt az opciót, ha >=2 B-kockát használsz; ahogy a man oldal is írja, egy kicsi minőségi javulást kapsz sebességcsökkenés nélkül. Jegyezd meg, hogy ezen videók nem olvashatóak a 2005. március 5-nél korábbi libavcodec-alapú dekódolókkal.
weight_b: Általános esetekben ez az opció nem hoz sokat a konyhára. Bár az át- és az elsötétülő jeleneteknél, a súlyozott jóslás jelentős bitráta spórolást hoz. Az MPEG-4 ASP-ben az elsötétülés általában drága I-kockák sorozatával kerül legjobban elkódolásra; a B-kockákban használt súlyozott jóslással lehetséges ezek legalább részben a sokkal kisebb B-kockákkal történő lecserélése. A kódolási időben jelentkező plusz ráfordítás minimális, mivel nem kell külön döntéseket hozni. Ellentétben azzal, amire pár ember gondol, a dekódoló CPU igényét nem érinti jelentősen a súlyozott jóslás.
Sajnos a jelenlegi adaptív B-kocka döntési algoritmusnak van egy olayn érdekes tulajdonsága, hogy kerüli a B-kockákat az elsötétedéseknél. Amíg ez nem változik meg, jó ötlet lehet a nob_adapt opció hozzáadása az x264encopts-hoz, ha arra számítasz, hogy sötétedések jelentősen befolyásolják a videódat.
Két lépéses kódolás: Fentebb azt javasoltuk, hogy mindig használj két lépéses kódolást, azonban vannak indokok az elkerülése mellett is. Például ha élő TV adást mentesz és kódolsz valós időben, kénytelen vagy egy lépést használni. Az egy lépés nyilvánvalóan gyorsabb, mint a két lépéses; ha teljesen ugyan azokkal az opciókat használod mind a két lépésben, a két lépéses kódolás majdnem kétszer olyan lassú.
Mégis van pár nagyon jó indok a két lépéses kódolás használatára. Az egyik, hogy az egy lépés rátakontollja nem pszichikai, így gyakran ésszerűtlen döntéseket hoz, mert nem látja a nagy képet. Például tegyük fel, hogy van egy két perces videód, mely két eltérő félből áll. Az első fele nagyon gyors mozgású, 60 másodperces jelenet, ami magában kb. 2500kbps-t igényel, hogy megfelelően nézzen ki. Majd rögtön ez után egy sokkal kisebb igényű 60 másodperces jelenet jön, ami 300 kbps-sel is jól néz ki. Tegyük fel, hogy 1400kbps-t kérsz, ami elméletileg elég mind a két jelenethez. Az egy lépéses rátakontroll rengeteg "hibát" ejt egy ilyen esetben. Mindenek előtt az 1400kbps-t célozza meg mind a két szegmensben. Az első rész erőteljesen túl lesz kvantálva, emiatt elfogadhatatlan és túlzottan blokkos képet kapsz. A második szegmens pedig erőteljesen alul lesz kvantálva; tökéletesen néz ki, de az ezzel járó bitráta többlet teljesen ésszerűtlen. Amit még nehezebb elkerülni, az a két jelenet közötti átmenet problémája. A lassú mozgású rész első pár másodperce túlságosan túl lesz kvantálva, mert a rátakontroll még a videó első feléből származó bitráta igényre számít. Ez a túlkvantálási "hiba periódus" a kevés mozgást tartalmazó részt szörnyen rosszá teszi, tulajdonképpen kevesebb, mint 300kbps-t fog használni, ami a megfelelő kinézethez kellene. Több lehetőség is van az egy lépéses kódolás buktatóiból származó hibák csökkentésére, de összességében mégis növelik a bitráta félrebecslésének esélyét.
A többlépéses rátakontrollnak több előnye is van az egylépésessel szemben. Az első lépésből nyert statisztikai adatokból a kódoló egész jó pontossággal meg tudja jósolni egy bármilyen adott kocka bármilyen adott kvantálás melletti kódolásának "költségét" (bitekben). Ez a bitek sokkal ésszerűbb, jobban megtervezett elosztását eredményezi a drága (sok mozgású) és az olcsó (kevés mozgású) jelenetek között. Lásd a qcomp opciót lejjebb néhány ötletért, hogy hogyan tudod ezt a felosztást kedvedre változtatni.
Továbbá a két lépés nem tart kétszer annyi ideig, mint az egy. Az első lépés opcióit rá lehet hangolni a nagyobb sebességre és a gyengébb minőségre. Ha jól választod meg az opciókat, egy nagyon gyors első lépésed lehet. Az eredmény minősége a második lépésben kicsit alacsonyabb lesz mert a méret becslés kevésbé pontos, de a minőségi különbség normális esetben túl kicsi ahhoz, hogy észrevedd. Például próbáld meg a subq=1:frameref=1 opció hozzáadását a x264encopts első lépéséhez. Majd, a második lépésben használj lassabb, jobb minőséget biztosító opciókat: subq=6:frameref=15:4x4mv:me=3
Három lépéses kódolás? Az x264 lehetőséget nyújt tetszőleges számú egymás utáni lépések elvégzésére. Ha megadod a pass=1 opciót az első lépésben, majd pass=3-at használsz az egyik következő lépésben, a következő lépés beolvassa az előző statisztikáját és megírja a sajátját. Egy ezt követő lépésnek már nagyon jó alapjai lesznek, nagyon pontos döntéseket tud hozni a képkocka méretre vonatkozóan a választott kvantálás mellett. A gyakorlatban az össz minőségi nyereség ebből közel van a nullához és lehetséges, hogy egy harmadik lépés kissé még rontja is a globális PSNR-t az előző lépéshez képest. Az átlagos felhasználásban a három lépés akkor segít, ha két lépéssel rossz bitráta jóslást kaptál vagy ronda átmeneteket a jelenetek között. Ilyen dolog csak a nagyon rövid klippeknél fordulhat elő. Van még pár speciális eset is, amikor a három (vagy több) lépés jól jöhet a haladó felhasználóknak, de a rövidítés végett ezeket az eseteket nem tárgyaljuk ebben a leírásban.
qcomp: A qcomp a "drága", sok mozgást és az "olcsó", kevés mozgást tartalmazó jelenetekhez használt bitek arányát szabályozza. Extrém esetben a qcomp=0 az igazi konstans bitrátát célozza meg. Ezzel a sok mozgású részek borzasztóan fognak kinézni, míg a kevés mozgást tartalmazó részek valószínűleg tökéletesen fognak kinézni, de a hasonló kinézethez szükséges bitráta többszörösét fogják felhasználni. A másik extrém véglet a qcomp=1 majdnem konstans kvantálási paramétert ér el (QP). A konstans QP nem néz ki rosszul, de a legtöbb ember úgy gondolja, hogy ésszerűbb egy kis bitrátát feláldozni a roppant drága jeleneteknél (ahol a minőségromlás nem olyan észrevehető) és felhasználni őket a kitűnő minőségben is könnyebben kódolható jeleneteknél. A qcomp alapértelmezett értéke 0.6, ami eléggé alacsony sok ember ízléséhez képest (0.7-0.8 a leggyakrabban használt).
keyint: A keyint kizárólag a a fájlon belüli keresést rontja a kódolási hatékonyság javára. Alapértelmezésként a keyint 250-re van állítva. Egy 25fps-es anyagnál ez garantálja a 10 másodpercen belüli pontossággal történő ugrást. Ha úgy gondolod, hogy fontos és hasznos lenne az 5 másodperces pontosság, állítsd be a keyint=125 értéket; ez egy kissé rontja a minőséget/bitrátát. Ha csak a minőség érdekel és a kereshetőség nem, beállíthatod magasabb értékre (észben tartva azt, hogy egyre csökkenő hasznot hoz, mely végül szinte észrevehetetlenül kicsi vagy akár nulla lesz). A videó folyam még így is fog tartalmazni kereshető pontokat, amíg van benne jelenet váltás.
deblockalpha, deblockbeta: Ez a rész egy kicsit vitatható lesz.
A H.264 egy egyszerű deblocking eljárást definiál az I-blokkokra, ami előre beállított erősséget és áteresztést használ a szóbanforgó blokk QP-je alapján. Alapértelmezettként a nagy QP blokkok erős szűrön mennek át, az alacsony QP blokkok nem kerülnek deblock-olásra semennyire sem. Az alapértelmezett értékek szerint előre beállított erősség jól megválasztott és jó eséllyel PSNR-optimális bármilyen videóhoz, amit csak próbálsz elkódolni. A deblockalpha és a deblockbeta paraméterekkel megadhatod az előre beállított deblocking áteresztés eltolását.
Sokan úgy gondolják, hogy jó ötlet nagy mértékben csökkenteni a deblocking szűrő erősségét (mondjuk -3-ra). Ez valójában szinte soha sem jó ötlet és a legtöbb esetben azok az emberek, akik ezt csinálják, nem is értik igazán, hogy hogyan működik a deblocking alapból.
Az első és legfontosabb dolog azt tudni a beépített deblocking szűrőről, hogy az alapértelmezett áteresztés majdnem mindig PSNR-optimális. Ritkább esetben nem optimális, az ideális eltolás plusz vagy mínusz 1. A deblocking paramétereinek nagy mértékben történő megváltoztatása majdnem garantáltan rontja a PSNR-t. A szűrő erősítése elmaszatol néhány részletet; a szűrő gyengítése a kockásodás láthatóságát növeli.
Tipikusan rossz ötlet a deblocking áteresztés csökkentése, ha a forrásod térbeli komplexitása alacsony (pl. nem túl részletes vagy zajos). A beépített szűrő remek munkát végez a felbukkanó mellékhatások elrejtése érdekében. Ha a forrásban térbeli komplexitása nagy, a mellékhatások még kevésbé láthatóak. Ez azért van, mert a gyűrűs haladás részletnek vagy zajnak látszik. Az emberi szem könnyen meglátja, ha egy részlet elmozdul, de nem olyan könnyű észrevenni, ha a zaj rosszul van reprezentálva. Ha szubjektív minőséghez ér, a zaj és a részletesség valamennyire felcserélhető. A deblocking szűrő erősségének csökkentésével a legvalószínűbb, hogy növeled a hibákat a gyűrűs mellékhatások hozzáadásával, de a szem nem veszi észre, mert összekeveri a mellékhatásokat és a részleteket.
Ez még nem igazolja a deblocking szűrő erősségének csökkentését. Általában jobb zajminőséget érhetsz el az utófeldolgozással. Ha a H.264 kódolásod túl foltos vagy maszatos, próbáld meg lejátszani a -vf noise kapcsolóval. A -vf noise=8a:4a-nak a gyenge mellékhatásokat el kell tüntetnie. Majdnem biztos, hogy jobb eredményt kapsz, mint a deblocking szűrővel való pepecseléssel.
A következő beállítások példák a különböző kódolási opciók kombinációjára, amik érintik a sebességet vagy a minőséget ugyan annál a cél bitrátánál.
Az összes kódolási beállítást egy 720x448 @30000/1001 fps-es minta videón teszteltük, a cél bitráta 900kbps volt, a gép pedig egy AMD-64 3400+ 2400 Mhz-en, 64 bit-es módban. Mindegyik kódolási beállítás tartalmazza a kódolási sebességet (képkocka per másodpercben) és a PSNR veszteséget (dB-ben) a "nagyon jó minőséghez" viszonyítva. Kérlek vedd figyelembe, hogy a forrásanyagodtól, a géped típusától és a fejlesztésektől függően különböző eredményeket kaphatsz.
Leírás | Kódolási opciók | sebesség (fps-ben) | relatív PSNR veszteség (dB-ben) |
---|---|---|---|
Nagyon jó minőség | subq=6:4x4mv:8x8dct:me=3:frameref=5:bframes=3:b_pyramid:weight_b | 6fps | 0dB |
Jó minőség | subq=5:4x4mv:8x8dct:frameref=2:bframes=3:b_pyramid:weight_b | 13fps | -0.89dB |
Gyors | subq=4:bframes=2:b_pyramid:weight_b | 17fps | -1.48dB |
A MEncoder képes VCD, SCVD és DVD formátumú
MPEG fájlok létrehozására a
libavcodec
könyvtár segítségével.
Ezek a fájlok a
vcdimager-rel
vagy a
dvdauthor-ral
együttműködve felhasználhatók szabványos lejátszókban lejátszható
lemezek készítéséhez.
A DVD, SVCD és VCD formátumok súlyos korlátokkal rendelkeznek. A kódolt képméretekből és a képarányokból csak nagyon kevés áll rendelkezésre. Ha a filmed nem felel meg ezeknek a követelményeknek, méretezned, vágnod vagy fekete keretet kell hozzáadnod a képhez, hogy kompatibilis legyen.
Formátum | Felbontás | V. Codec | V. Bitráta | Mintavételi ráta | A. Codec | A. Bitráta | FPS | Arány |
---|---|---|---|---|---|---|---|---|
NTSC DVD | 720x480, 704x480, 352x480, 352x240 | MPEG-2 | 9800 kbps | 48000 Hz | AC3,PCM | 1536 kbps (max) | 30000/1001, 24000/1001 | 4:3, 16:9 (csak 720x480-nál) |
NTSC DVD | 352x240[a] | MPEG-1 | 1856 kbps | 48000 Hz | AC3,PCM | 1536 kbps (max) | 30000/1001, 24000/1001 | 4:3, 16:9 |
NTSC SVCD | 480x480 | MPEG-2 | 2600 kbps | 44100 Hz | MP2 | 384 kbps (max) | 30000/1001 | 4:3 |
NTSC VCD | 352x240 | MPEG-1 | 1150 kbps | 44100 Hz | MP2 | 224 kbps | 24000/1001, 30000/1001 | 4:3 |
PAL DVD | 720x576, 704x576, 352x576, 352x288 | MPEG-2 | 9800 kbps | 48000 Hz | MP2,AC3,PCM | 1536 kbps (max) | 25 | 4:3, 16:9 (csak 720x576-nál) |
PAL DVD | 352x288[a] | MPEG-1 | 1856 kbps | 48000 Hz | MP2,AC3,PCM | 1536 kbps (max) | 25 | 4:3, 16:9 |
PAL SVCD | 480x576 | MPEG-2 | 2600 kbps | 44100 Hz | MP2 | 384 kbps (max) | 25 | 4:3 |
PAL VCD | 352x288 | MPEG-1 | 1152 kbps | 44100 Hz | MP2 | 224 kbps | 25 | 4:3 |
[a] Ezek a felbontások ritkán használatosak a DVD-ken, mert elég alacsony minőségűek. |
Ha a filmednek 2.35:1 méretaránya van (a legtöbb akció film), fekete keretet kell hozzáadnod vagy le kell vágnod a filmet 16:9-es méretarányra DVD vagy VCD készítéshez. Ha fekete keretet adsz hozzá, próbáld meg 16 pixel-es határra igazítani őket a kódolási teljesítményre való hatásuk minimalizálásához. Szerencsére a DVD-nek eléggé magas a bitrátája, nem kell aggódnod túlságosan a kódolás hatékonysága miatt, de az SVCD és a VCD bitráta-szegény, ezért erőfeszítéseket kell tenni az elfogadható minőségért is.
A DVD, VCD és SVCD eléggé alacsony GOP (Group of Pictures) méret értékekre korlátoz le. Egy 30 fps-es anyagnál a legnagyobb megengedett GOP méret 18. 25 vagy 24 fps-nél a maximum 15. A GOP méretét a keyint opcióval lehet beállítani.
A VCD videónak CBR-esnek kell lennie 1152 kbps-en. Ehhez a nagyon erős megkötéshez egy extrém alacsony, 327 kilobit-es vbv buffer méret társul. Az SVCD megengedi a bitráta változtatását 2500 kbps-ig és kicsit kevésbé korlátozó, 917 kilobit-es vbv buffer méretet engedélyez. A DVD videó bitrátája bárhol lehet 9800 kbps-ig (bár az általános bitráták ennek felénél vannak) és a vbv buffer méret is 1835 kilobit.
A MEncoder rendelkezik a kimeneti formátumot beállító kapcsolókkal. Ezen opciók használatával utasíthatod, hogy helyes típusú fájlt készítsen.
A VCD és SVCD opciókat xvcd-nek és xsvcd-nek hívják, mert kiterjesztett formátumúak. Nem teljesen kompatibilisek, főként mivel a kimenet nem tartalmaz scan offszet-eket. Ha SVCD CD képet kell készítened, add át a kimeneti fájlt a vcdimager-nek.
VCD:
-of mpeg -mpegopts format=xvcd
SVCD:
-of mpeg -mpegopts format=xsvcd
DVD:
-of mpeg -mpegopts format=dvd
DVD NTSC Pullup-pal:
-of mpeg -mpegopts format=dvd:telecine -ofps 24000/1001
Ez engedélyezi a 24000/1001 fps-es progresszív tartalom 30000/1001 fps-sel történő kódolását a DVD-előírások betartásával.
A -lavcopts aspect argumentuma használható a fájl képarányának elkódolásához. Lejátszás közben a képarányt a videó megfelelő méretűre állításához használják.
16:9 vagy "Widescreen"
-lavcopts aspect=16/9
4:3 vagy "Fullscreen"
-lavcopts aspect=4/3
2.35:1 vagy "Cinemascope" NTSC
-vf scale=720:368,expand=720:480 -lavcopts aspect=16/9
A helyes méretarány kiszámításához használd a 854/2.35 = 368-as kibővített NTSC szélességet.
2.35:1 vagy "Cinemascope" PAL
-vf scale="720:432,expand=720:576 -lavcopts aspect=16/9
A helyes méretarány kiszámításához használd a 1024/2.35 = 432-es kibővített PAL szélességet.
Ha az eredeti fájl audió mintavételi rátája nem ugyan olyan, mint ami a cél formátumban szükséges, mintavételi ráta konvertálást kell végrehajtani. Ez a -srate és -af lavcresample kapcsolók együttes használatával érhető el.
DVD:
-srate 48000 -af lavcresample=48000
VCD és SVCD:
-srate 44100 -af lavcresample=44100
A libavcodec
használható
VCD/SVCD/DVD kompatibilis videó készítéséhez a megfelelő opciókkal.
Következzék egy lista a -lavcopts-ban használható mezőkről, amiknek a megváltoztatására szükséged lehet a VCD, SVCD, vagy DVD kompatibilis film készítésekor:
acodec: mp2 a VCD-hez, SVCD-hez vagy PAL DVD-hez; ac3 a leggyakoribb DVD-hez. PCM audió is használható DVD-hez, de legtöbbször csak helypazarlás. Figyelj rá, hogy az MP3 audió ezen formátumok egyikével sem kompatibilis, de a lejátszóknak gyakran semmi gondot nem okoz a lejátszása.
abitrate: 224 VCD-nél; 384-ig SVCD-nél; 1536-ig DVD-nél, de általában a használt értékek a sztereónál 192 kbps-étől az 5.1 csatornás hang 384 kbps-éig változnak.
vcodec: mpeg1video VCD-hez; mpeg2video SVCD-hez; mpeg2video használatos általában a DVD-hez, de lehet mpeg1video is a CIF felbontásokhoz.
keyint: A GOP méret beállításához használható. 18 a 30fps-es anyagé vagy 15 a 25/24 fps-esé. A kereskedelmi előállítók a 12-es kulcskocka intervallumot preferálják. Lehetséges ezen érték nagyobbra állítása is a legtöbb lejátszóval való kompatibiliítás megtartása mellett. A 25-ös keyint soha nem okoz problémát.
vrc_buf_size: 327 VCD-nél, 917 SVCD-nél és 1835 DVD-nél.
vrc_minrate: 1152 VCD-nél. Elhagyható SVCD és DVD esetében.
vrc_maxrate: 1152 VCD-nél; 2500 SVCD-nél; 9800 DVD-nél. SVCD-hez és DVD-hez az egyéni kívánalmaidnak és igényeidnek megfelelően használhatsz magasabb értékeket is.
vbitrate: 1152 VCD-nél; legfeljebb 2500 SVCD-nél; legfeljebb 9800 DVD-nél. Az utóbbi két formátumnál a vbitrate egyéni igények szerint állítható be. Például szeretnéd, hogy 20 óra vagy akörüli anyag felférjen egy DVD-re, használhatod a vbitrate=400-at. Az eredmény videó minősége valószínűleg elég rossz lesz. Ha megpróbálod kisakkozni a lehető legjobb minőséget a DVD-n, használd a vbitrate=9800-at, de emlékezz rá, hogy emiatt kevesebb, mint egy órányi videód lehet egy egyrétegű DVD-n.
Általában ez a minimum -lavcopts egy videó elkódolásához:
VCD:
-lavcopts vcodec=mpeg1video:vrc_buf_size=327:vrc_minrate=1152:\ vrc_maxrate=1152:vbitrate=1152:keyint=15:acodec=mp2
SVCD:
-lavcopts vcodec=mpeg2video:vrc_buf_size=917:vrc_maxrate=2500:vbitrate=1800:\ keyint=15:acodec=mp2
DVD:
-lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=5000:\ keyint=15:acodec=ac3
Jobb minőségű kódoláshoz valószínűleg használni szeretnéd a lavcopts minőség-javító opcióit is, mint például a trell, mbd=2, vagy mások. Figyelj rá, hogy a qpel és a v4mv bár gyakran hasznosak MPEG-4 esetén, nem használhatóak MPEG-1 vagy MPEG-2-vel. Ha nagyon jó minőségű DVD kódolást akarsz készíteni, hasznos lehet a dc=10 opció hozzáadása a lavcopts-hoz. Ez segíti csökkenteni a blokkosodást a színtelen részeknél. Mindezt összerakva, itt egy példa jó minőségű DVD készítéséhez szükséges lavcopts-ra:
-lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=8000:\ keyint=15:trell:mbd=2:precmp=2:subcmp=2:cmp=2:dia=-10:predia=-10:cbp:mv0:\ vqmin=1:lmin=1:dc=10
A VCD és az SVCD támogatja az MPEG-1 layer II audiót, a
toolame
,
twolame
,
vagy a libavcodec
MP2
kódolójának felhasználásával.
A libavcodec MP2 messze nincs olyan jó, mint a másik két könyvtár,
azonban az mindig elérhető és használható.
A VCD csak konstans bitrátájú audiót (CBR) támogat, míg az SVCD
tudja a változó bitrátát (VBR) is.
De vigyázz a VBR-rel, mert néhány hibás asztali lejátszó sem támogatja.
A DVD audióhoz a libavcodec
AC3 codec-je használható.
Ez a rész néhány teljes parancsot mutat a VCD/SVCD/DVD kompatibilis videók készítéséhez.
mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=dvd -vf scale=720:576,\ harddup -srate 48000 -af lavcresample=48000 -lavcopts vcodec=mpeg2video:\ vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=5000:keyint=15:acodec=ac3:\ abitrate=192:aspect=16/9 -ofps 25 \ -omovie.mpg
movie.avi
mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=dvd -vf scale=720:480,\ harddup -srate 48000 -af lavcresample=48000 -lavcopts vcodec=mpeg2video:\ vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=5000:keyint=18:acodec=ac3:\ abitrate=192:aspect=16/9 -ofps 30000/1001 \ -omovie.mpg
movie.avi
Ha a forrás már AC3 audióval rendelkezik, használd a -oac copy kapcsolót az újrakódolása helyett.
mencoder -oac copy -ovc lavc -of mpeg -mpegopts format=dvd -vf scale=720:576,\ harddup -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:\ vbitrate=5000:keyint=15:aspect=16/9 -ofps 25 \ -omovie.mpg
movie.avi
Ha a forrás már AC3 audiót tartalmaz és NTSC @ 24000/1001 fps:
mencoder -oac copy -ovc lavc -of mpeg -mpegopts format=dvd:telecine \ -vf scale=720:480,harddup -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:\ vrc_maxrate=9800:vbitrate=5000:keyint=15:aspect=16/9 -ofps 24000/1001 \ -omovie.mpg
movie.avi
mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=xsvcd -vf \ scale=480:576,harddup -srate 44100 -af lavcresample=44100 -lavcopts \ vcodec=mpeg2video:mbd=2:keyint=15:vrc_buf_size=917:vrc_minrate=600:\ vbitrate=2500:vrc_maxrate=2500:acodec=mp2:abitrate=224 -ofps 25 \ -omovie.mpg
movie.avi
mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=xsvcd -vf \ scale=480:480,harddup -srate 44100 -af lavcresample=44100 -lavcopts \ vcodec=mpeg2video:mbd=2:keyint=18:vrc_buf_size=917:vrc_minrate=600:\ vbitrate=2500:vrc_maxrate=2500:acodec=mp2:abitrate=224 -ofps 30000/1001 \ -omovie.mpg
movie.avi
mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=xvcd -vf \ scale=352:288,harddup -srate 44100 -af lavcresample=44100 -lavcopts \ vcodec=mpeg1video:keyint=15:vrc_buf_size=327:vrc_minrate=1152:vbitrate=1152:\ vrc_maxrate=1152:acodec=mp2:abitrate=224 -ofps 25 \ -omovie.mpg
movie.avi
mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=xvcd -vf \ scale=352:240,harddup -srate 44100 -af lavcresample=44100 -lavcopts \ vcodec=mpeg1video:keyint=18:vrc_buf_size=327:vrc_minrate=1152:vbitrate=1152:\ vrc_maxrate=1152:acodec=mp2:abitrate=224 -ofps 30000/1001 \ -omovie.mpg
movie.avi
Számos publikus levelezési lista foglalkozik az MPlayerrel. Mindegyik nyelve az angol, kivéve, ha külön más van feltüntetve. Kérlek ne küldj más nyelvű vagy HTML leveleket! Ha valami nagyon nagy dolgot csatolsz és visszapattan a leveled, inkább töltsd fel valahova a mellékletet. Az alábbi linkekre kattintva iratkozhatsz fel a listákra. A listákon a Netikett szabályok érvényesek az írásra és a visszaidézésre, ugyan úgy, mint a usenet-en. Kérjük tartsd be őket, így sokkal könnyebb lesz a leveleidet olvasók élete. Ha nem ismernéd az etikettet: HOGYAN írjunk üzeneteket (angol nyelvű) vagy Magyar Netikett.
Az MPlayerrel kapcsolatos bejelentések listája. Iratkozz fel ha meg szeretnéd kapni a biztonsági és kiadási értesítéseket.
Az MPlayerrel kapcsolatos kérdésekkel foglalkozó általános levelezési lista. Kérjük olvasd el a teljes dokumentációt, mielőtt megírnád a problémádat vagy a kérésedet ide. Az MPlayer hiba jelentések is erre a listára tartoznak, de olvasd el az ismert hibákat és a hiba jelentési fejezetet először.
MPlayer-felhasznalok (magyar)
Magyar nyelvű lista. Téma? Nos, lássuk csak... Leginkább flame és RTFM kérdések :(
Matrox grafikus kártyákkal kapcsolatos kérdések listája, mga_vid, Matrox hivatalos béta vezérlői (XFree86 4.x.x-hez), matroxfb-TVout cucc.
A DVB nevű hardveres dekóder kártyával kapcsolatos dolgok (nem DXR3!).
A MEncoderrel kapcsolatos kérdésekkel foglalkozó általános levelezési lista. Kérjük olvasd el a teljes dokumentációt, mielőtt megírnád a problémádat vagy a kérésedet ide. A MEncoder hiba jelentések is erre a listára tartoznak, de olvasd el az ismert hibákat és a hiba jelentési fejezetet először.
Ez a lista az MPlayer fejlesztésével foglalkozik! Interfész/API változások, új függvénykönyvtárak, kód optimalizáció, configure változásai a téma itt. Javításokat küldj ide, ne hiba jelentéseket, felhasználói kérdéseket, új tulajdonság igényeket vagy flame-t ide, hogy alacsonyan tudjuk tartani a lista forgalmát.
Az összes változás az MPlayer kódjában automatikusan elküldődik erre a listára. Csak ezekkel a változásokkal kapcsolatos kérdések tartoznak erre a listára (ha nem érted, hogy egy változtatás miért kell vagy jobb javításod van vagy egy lehetséges hibát/problémát találtál a beküldött változtatásban).
Ez a lista az MPlayer dokumentációjával és weboldalával kapcsolatos kérdésekkel foglalkozik. A dokumentációval és a weboldallal kapcsolatos CVS logot is elküldjük ide.
Ez a lista az MPlayer dokumentációjának és a weboldalának fordításaival kapcsolatos megbeszéléseket tartalmazza. A dokumentáció és weboldal fordítások CVS logjait is megkapják a tagok.
Az MPlayer Cygwin és MinGW alatti portjaival kapcsolatos megbeszélések helye.
Az MPlayer G2-vel, a következő generációs videó lejátszóval foglalkozó lista.
Az MPlayer tükörszervereinek infrastruktúrájáról szóló beszélgetések.
MPlayer-MWN (INAKTÍV)
Az MPlayer Weekly News (MPlayer Heti Hírek) kiadásaival kapcsolatos dolgok.
MPlayer-os2 (INAKTÍV)
Az MPlayer OS/2-es portjával foglalkozó lista.
MPlayer-qt-codecs-porting (INAKTÍV)
A QuickTime codec-ek támogatásával foglalkozó lista.
Mindegyik listának kereshető archívuma van a http://www.mplayerhq.hu/cgi-bin/s-arch.cgi oldalon.
A jó hiba jelentések nagyon értékes hozzájárulások bármilyen szoftver fejlesztéséhez. De, akárcsak jó programot írni, jó probléma jelentést készíteni is némi munkába kerül. Kérlek vedd figyelembe, hogy a fejlesztők többsége roppant elfoglalt és valami hihetetlen mennyiségű levelet kap. Tehát miközben a visszajelzések kritikus és nagyon megbecsült az MPlayer fejlődése szempontjából, kérlek értsd meg, hogy minden általunk kért információt meg kell adnod és követned kell az ebben a dokumentumban leírt lépéseket.
Ha úgy érzed, hogy képes vagy rá, bátran állj neki és javítsd ki a hibát magad. Vagy talán már meg is tetted? Kérlek olvasd el ezt a rövid dokumentumot, hogy megtudd, hogyan kerülhet be a kódod az MPlayerbe. Az MPlayer-dev-eng levelezési listán lévő emberkék segítenek neked, ha kérdésed van.
Mindenek előtt kérlek, hogy mindig próbáld ki az MPlayer legújabb CVS verzióját, hátha az általad felfedezett hibát már kijavították benne. A fejlesztés borzasztó gyorsan halad, a legtöbb, hivatalos kiadásban meglévő problémát napokon vagy akár órákon belül jelentik, így csak a CVS-ből küldj hibajelentést. Ebbe beleértendőek az MPlayer bináris csomagjai is. A CVS utasításokat megtalálod ennek az oldalnak az alján vagy a README fájlban. Ha ez sem segít, olvasd el az ismert hibák listáját és a dokumentáció többi részét. Ha problémád még nem ismert vagy nem oldódott meg a leírásunk által, akkor kérjük jelentsd.
Kérlek ne küljd hibajelentést személyesen egy fejlesztőnek. Ez csapatmunka és így számos embert érdekelhet. Néha más felhasználók is belefutnak a te problémáidba, és esetleg tudják, hogy hogyan lehet megkerülni, még akkor is, ha hiba van az MPlayer kódjában.
Kérlek olyan részletesen írd le a problémádat, amilyen részletesen csak lehet. Végezz egy kis felderítő munkát, szűkítsd le azon körülmények körét, amelyek között a hiba előfordul. A hiba csak adott szituációban jön elő? Bizonyos fájlokra vagy fájl típusokra vonatkozóan? Csak egy codec esetén vagy független a használt codec-től? Mindegyik kimeneti vezérlővel elő tudod hozni? Minél több információt adsz meg, annál nagyobb az esély a hiba kijavítására. Kérlek ne felejtsd el mellékelni azon értékes információkat, amit lejjebb írunk, különben képtelenek vagyunk megfelelően megkeresni a problémádat.
Egy kitűnő és jól megírt útmutató kérdések publikus fórumokban történő feltevéséhez a How To Ask Questions The Smart Way (magyarul) Eric S. Raymond-tól. Van egy másik is, a How to Report Bugs Effectively című Simon Tatham-tól. Ha követed ezeket a leírásokat, kapsz segítséget. De kérlek értsd meg, hogy a levelezési listákat önként, a szabad időnkben nézzük. Van más dolgunk is, és nem tudjuk garantálni, hogy kapsz megoldást vagy egyáltalán választ a problémádra.
Iratkozz fel az MPlayer-users levelezési listára: http://mplayerhq.hu/mailman/listinfo/mplayer-users (vagy a magyar nyelvűre itt: http://mplayerhq.hu/mailman/listinfo/mplayer-felhasznalok) és küldd el a hibajelentéseidet a mailto:mplayer-users@mplayerhq.hu (illetve mailto:mplayer-felhasznalok@mplayerhq.hu) címre, ahol meg lehet vitatni.
Ha inkább azt szeretnéd, használhatod a vadi új Bugzillánkat is.
Ezen lista nyelve az angol (a -felhasznalok listáé természetesen magyar). Kövesd a szabványos Netiquette Irányelveket és ne küldj HTML levelet egyik levelezési listánkra se. Ha nem így teszel, akkor vagy egyszerűen figyelmen kívül hagynak vagy kitiltanak. Ha nem tudod mi az a HTML levél vagy hogy miért rossz az, olvasd el ezt a frankó leírást. Mindent részletesen megmagyaráz és tanácsokat ad a HTML kikapcsolásához. Szintén tartsd észben, hogy nem CC-zünk (carbon-copy) egyéneknek, így jól teszed, ha feliratkozol, hogy megkapd te is a választ.
A hibajelentésedhez csatolnod kell a log-ot, konfigurációs vagy minta fájlokat. Ha ezek közül valamelyik nagy, jobb ha feltöltöd az FTP szerverünkre tömörített formátumban (gzip és bzip2 a javasolt) és csak az elérési utat és a fájl nevet írod bele a hiba jelentésedbe. A levelezési listáinkon az üzenet mérete maximum 80k lehet, ha ennél nagyobb fájlod van, tömörítened kell, vagy feltöltened.
A Linux disztribúciód vagy operációs rendszered verziója, pl.:
Red Hat 7.1
Slackware 7.0 + 7.1-es fejlesztői csomagjai ...
kernel verziója:
uname -a
libc verziója:
ls -l /lib/libc[.-]*
gcc és ld verziója:
gcc -v ld -v
binutils verziója:
as --version
Ha a teljes képernyős lejátszással van gondod:
Ablakezelő tíusa és verziója
Ha az XVIDIX-szel van problémád:
X szín mélyésg:
xdpyinfo | grep "depth of root"
Ha csak a GUI a hibás:
GTK verziója
GLIB verziója
libpng verziója
GUI szituáció, ahol a hiba előjön
CPU infó (csak Linuxon működik):
cat /proc/cpuinfo
Videó kártya gyártója és modellje, pl.:
ASUS V3800U chip: nVidia TNT2 Ultra pro 32MB SDRAM
Matrox G400 DH 32MB SGRAM
Videó vezérlő típusa & verziója, pl.:
X built-in driver
nVidia 0.9.623
Utah-GLX CVS 2001-02-17
DRI from X 4.0.3
Hangkártya típusa & vezérlője, pl.:
Creative SBLive! Gold with OSS driver from oss.creative.com
Creative SB16 with kernel OSS drivers
GUS PnP with ALSA OSS emulation
Ha nem vagy biztos benne, csatold az lspci -vv kimenetét (Linux alatt).
Ha a ./configure futtatása közben fordult elő valami hiba, vagy valaminek az automatikus detektálása nem sikerült, olvasd el a configure.log fájlt. Ott megtalálod a választ, például ugyanazon függvénykönyvtár több verziója elszórva a rendszerben, vagy elfelejtetted telepíteni a fejlesztői csomagokat (amiknek -dev utótagjuk van). Ha úgy hiszed, hogy hibát találtál, csatold a configure.log fájlt a hibajelentésedhez.
Kérlek csatold a következő fájlokat:
config.h
config.mak
Csak ha valamelyik alábbi könyvtárban sikertelen a fordítás, csatold az alábbi fájlokat:
Gui/config.mak
libvo/config.mak
libao2/config.mak
Írd meg az MPlayer kimenetét az 1. szintű beszédességgel, de figyelj rá, hogy ne szerkeszd át a kimenetet, amikor beilleszted a levélbe. A fejlesztőknek szükségük van azokra az üzenetekre, hogy pontosan diagnosztizálják a problémát. A kimenetet átirányíthatod fájlba így:
mplayer -voptions
filename
> mplayer.log 2>&1
Ha a probléma egy vagy több fájl esetén specifikus, kérlek töltsd fel ide: ftp://mplayerhq.hu/MPlayer/incoming/
Tölts fel egy apró, a fájloddal megegyező nevű, de .txt kiterjesztésű szöveges fájlt is. Írd le a problémát, ami az adott fájllal jelentkezik és írd bele az e-mail címed valamint az MPlayer kimenetét 1. szintű beszédességgel. Általában a fájl első 1-5 MB-ja elég a hiba reprodukálásához, de a biztonság kedvéért:
dd if=yourfile
of=smallfile
bs=1024k count=5
Ez az első 5 megabájtot a 'your-file'-ból átírja a 'small-file'-ba. Ezután próbáld ki ezt a kicsi fájlt is és ha a hiba még mindig jelentkezik, akkor ez elegendő lesz nekünk. Kérlek soha ne küldj fájlokat mail-en keresztül! Töltsd fel és csak az FTP szerveren élő elérési utat/fájlnevet írd meg. Ha a fájl elérhető a neten, akkor a pontos URL beküldése is elegendő.
Az MPlayert a gdb-n belül kell futtatnod, és elküldeni a teljes kimenetet vagy ha van core dump-od az összeomlásról, abból is kiszedheted a hasznos információkat. Lássuk hogyan:
Fordítsd újra az MPlayert a debug-oló kód engedélyezésével:
./configure --enable-debug=3 make
majd futtasd az MPlayert a gdb-ben az alábbi paranccsal:
gdb ./mplayer
Most a gdb-ben vagy. Írd be:
run -vkapcsolok-az-mplayernek
fajlnev
és reprodukáld az összeomlást. Amint megtörtént, a gdb visszaadja a parancssort, ahol be kell írnod:
bt disass $pc-32 $pc+32 info all-registers
Ha készítettél egy megfelelő hibajelentést a fenti utasítások betartásával és biztos vagy benne, hogy az MPlayerben van a hiba és nem a fordítóban vagy hibás fájl miatt, már elolvastad a dokumentációt és nem tudtad javítani a problémát, a hang vezérlőid rendben vannak, akkor iratkozz fel az MPlayer-advusers listára és küldd el a hibajelentésedet oda a jobb és gyorsabb válaszért.
Fontold meg, ha kezdő kérdéseket vagy a leírásban megválaszolt kérdéseket küldesz be, vagy figyelmen kívül hagynak vagy elkezdenek flame-elni válaszolás helyett. Tehát ne flame-elj és csak akkor iratkozz fel az -advusers listára, ha tényleg tudod, hogy mit csinálsz és gyakorlott MPlayer felhasználónak vagy fejlesztőnek érzed magad. Ha megfelesz ezen kritériának, nem fog nehezedre esni, hogy kitaláld, hogy iratkozhatsz fel...
SIGILL (signal 4) P3-on 2.2.x kernelekkel:
Probléma: a 2.2.x kernelben nincs megfelelő (működő) SSE támogatás
Megoldás: frissítsd a kernelt 2.4.x-re
Tüneti kezelés: ./configure --disable-sse
Általános SIGILL (signal 4):
Probléma: az MPlayer nem ugyan azon a gépen fordítottad és futtattad (például P3-on fordítottad és Celeron futtattad)
Megoldás: ugyan azon a gépen fordítsd le az MPlayert, amelyiken futtatni fogod!
Tüneti kezelés: Ezt az egészet elfelejtheted, ha a --enable-runtime-cpudetection kapcsolót használod a konfigurálásnál vagy az egyes CPU utasítás készleteket letilthatod külön-külön a megfelelő kapcsolókkal (úgy mint --disable-mmx, --disable-3dnow, stb).
"Internal buffer inconsistency" (Belső buffer inkonzisztencia) a MEncoder futása közben:
Probléma: ismert hiba, mely akkor fordul elő, ha a lame < 3.90 gcc 2.96 vagy 3.x-val lett fordítva.
Megoldás: lame >=3.90 használata.
Tüneti kezelés: fordítsd le a lame-t a 2.95.x-es gcc-vel és távolíts el minden már telepített lame csomagot, valószínűleg gcc 2.96-tal fordították őket.
Elrontott MP2/MP3 hang PPC-n:
Probléma: ismert GCC fordítási hiba a PPC platformon, nincs még javítás.
Tüneti kezelés: használd az FFmpeg (lassú) MP1/MP2/MP3 dekóderét (-ac ffmpeg)
SIGSEGV (signal 11) a libmpeg2-ben, scaling+kódolásnál:
Probléma: ismert GCC 2.95.2 MMX hiba
Megoldás: frissíts 2.95.3-ra
Összeomlás stream-ek mentésekor:
Probléma: core dump
Tüneti kezelés: Ne pánikolj. Keresd meg a törülköződet!
Leggyakrabban: hibás audió vezérlő! - próbálj meg más vezérlőt használni, nézd meg az ALSA 0.9-et OSS emulációval a -ao oss kapcsolóval, próbáld ki a -ao sdl-t is, néha segít. Ha a fájl lejátszása jó a -nosound kapcsolóval, akkor biztos lehetsz benne, hogy a hangkártya (vezérlő) a hibás.
audió buffer problémák (a buffer méretét rosszul detektálja)
Tüneti kezelés: az MPlayer -abs kapcsolója
mintaráta problémák - talán a kártyád nem támogatja a fájlban használt mintarátát - próbáld ki a resampling szűrőt (-af resample=...)
lassú gép (CPU vagy VGA)
próbáld ki a -vo null kapcsolót, ha úgy jól működik, akkor lassú a VGA kártyád/vezérlőd
Tüneti kezelés: vegyél egy gyorsabb kártyát vagy olvasd el a tuningolási dokumentációt
Megpróbálhatod még a -framedrop-ot is
hibás fájl
Tüneti kezelés:
-ni vagy -nobps kapcsoló (a nem-átlapolt vagy hibás fájlokhoz)
and/or
-mc 0(szükséges a rosszul átlapolt VBS audiós fájlokhoz)
és/vagy
-delay vagy a +/- gombok futás közbeni beállításhoz
Ha egyik sem segít, légy szíves töltsd fel a fájlt, és megnézzük (és javítjuk).
a hangkártyád nem támogatja a 48kHz-es lejátszást
Tüneti kezelés: vegyél egy jobb hangkártyát... vagy próbáld meg csökkenteni az fps-t 10%-kal (-fps 27 kapcsoló egy 30fps-es filmnél) vagy használd a resample szűrőt
lassú gép (ha az A-V nem 0 körüli és a státusz sorban lévő utolsó szám emelkedik)
Tüneti kezelés: -framedrop
a fájlod nem támogatott audió codec-et használ
olvasd el a dokumentációt és segíts a támogatás elkészítésében
a fájlod egy nem támogatott videó codec-et használ
olvasd el a dokumentációt és segíts nekünk a támogatás elkészítésében
az automatikusan kiválasztott codec nem tudja dekódolni a fájlt, próbálj meg másik codec-et kiválasztani a -vc vagy -vfm kapcsolókkal
DivX 3.x fájlt akarsz lejátszani az OpenDivX dekódolóval vagy az XviD-del (-vc odivx) - telepítsd fel a DivX4Linux-ot és fordítsd újra a lejátszót
Első megjegyzés: a -fs -vm és -zoom kapcsolók csak ajánlások, (még) nem támogatja őket minden vezérlő. Tehát az nem hiba, ha ezek nem működnek. Csak egy pár vezérlő támogatja a scaling-et/nagyítást, ne várd ezt el az x11-től vagy a dga-tól.
OSD/felirat vibrálás.
x11 vezérlő: bocs, ez jelenleg nem javítható
xv vezérlő: használd a -double kapcsolót
Zöld kép mga_vid használatakor (-vo mga / -vo xmga).
az mga_vid rosszul detektálja a kártyád RAM-jának méretét, töltsd be újra a mga_ram_size kapcsolóval
Ezen dokumentum célja az MPlayer skin formátumának leírása. Az itt szereplő információk hibásak lehetnek, mert
Nem én írtam a GUI-t.
A GUI még nincs kész.
Én is tévedhetek.
Tehát ne lepődj meg nagyon, ha valami nem úgy működik, ahogy itt le van írva.
Köszönet Ponekker Zoltánnak a segítségéért.
Mohári András <mayday@freemail.hu>
Igazából ennek nincs köze a skin formátumához, de tudnod kell, hogy az MPlayernek nincs beépített skin-je, így legalább egy skin-nek telepítve kell lennie, hogy használni tudd a GUI-t.
Az alábbi könyvtárak kerülnek átvizsgálásra (sorrendben):
$(DATADIR)/Skin/
$(PREFIX)/share/mplayer/Skin/
~/.mplayer/Skin/
Figyelj rá, hogy az első elérési út változhat az MPlayer konfigurációjának megfelelően (lásd a configure script --prefix és --datadir kapcsolóit).
Minden skin a saját könyvtárába kerül telepítésre a fent felsorolt könyvtárakon belül, például:
$(PREFIX)/share/mplayer/Skin/default/
A képeknek truecolor-os (24 vagy 32 bpp) PNG-knek kell lenniük.
A fő ablakban és a playbar-on (lásd lejjebb) használhatsz transzparens képeket: Az #FF00FF (bíborvörös) színnel feltöltött területek teljesen transzparensek lesznek, ha az MPlayer-rel nézed. Ez azt jelenti, hogy formázott ablakjaid is lehetnek, ha az X szerverednek van XShape kiterjesztése.
A Skin-ek eléggé szabad formátumúak (nem mint például a Winamp/XMMS, fix formátumú skin-jei), tehát csak rajtad múlik, hogy valami igazán nagyot alkoss.
Jelenleg négy ablak van, amit dekorálni kell: a fő ablak, az alablak, a playbar és a skin menü (ami jobb kattintással aktiválható).
A fő ablak és/vagy a playbar az, ahol vezérelheted az MPlayert. Az ablak háttere egy kép. Ebbe az ablakba különböző elemeket lehet (és kell) tenni: gombok, potméterek (csúszkák) és címkék. Minden egyes elemnek meg kell adnod a pozícióját és a méretét.
Egy gombnak három állása van (lenyomott, felengedett, letiltott), így a képe függőlegesen három részre van osztva. Lásd a gomb elemet a részletekért.
Egy potmeternek (főként a kereső sáv és a hangerő/balansz állító) bármennyi fázisa lehet a képének egymás alatti tetszőleges feldarabolásával. Lásd a hpotmetert és potmetert a részletekért.
A címkék egy kicsit különlegesek: A megrajzolásukhoz szükséges karaktereket egy kép fájlból nyerjük és a képen lévő karaktereket egy betű leíró fájl írja le. Ez utóbbi egy sima szöveges fájl, ami megadja minden egyes betű x, y pozícióját és méretét a képen (a kép fájl és a hozzátartozó betű leíró fájl együtt alkot egy betűtípust). Lásd a dlabelt és az slabelt a részeltekért.
Az összes kép lehet teljes transzparens is, amint az a kép formátumokról szóló részben le van írva. Ha az X szerver nem támogatja az XShape kiterjesztést, a transzparensként megjelölt részek feketék lesznek. Ha használni akarod ezt a tulajdonságot, a fő ablak háttérképének 8-cal oszthatónak kell lennie.
Az alablak az, ahol a film megjelenik. Egy megadott képet tud megjeleníteni, ha nincs film betöltve (elég unalmas egy üres ablak :-)) Megjegyzés: a transzparens kép nem megengedett itt.
A skin menü csak az MPlayer vezérlésének egy módja menüpontok segítségével. Két kép kell a menühöz: az egyik a legjobb kép, ami a menüt mutatja normál állapotában, a másik a kiválasztott pont megjelenítésére lesz felhasználva. Ha kinyitod a menüt, az első kép látszódik. Ha az egeret az egyik menüpont fölé viszed, az aktuálisan kiválasztott pont bemásolódik a második képről az egér mutató alatti területre (a második képet soha sem lehet látni egészében).
Egy menüpontot a képen lévő poziciója és a mérete határoz meg (lásd a skin menü részt).
Van egy fontos dolog, amiről eddig nem beszéltünk: a gombokhoz, potméterekhez és menüpontokhoz tartozóan az MPlayer tudnia kell, hogy mit csináljon, ha rákattintanak. Ez üzenetekkel (eseményekkel) van megvalósítva. Minden elemhez meg kell adnod, hogy milyen üzenetet generál, amikor kattintanak rá.
A következő fájlokra lesz szükséges, hogy el tudj készíteni egy skin-t:
A konfigurációs fájl, aminek skin a neve, megmondja az MPlayernek, hogyan rakja össze a skin különböző részeit és hogy mit tegyen ha valahol kattintanak az ablakban.
A fő ablak háttérképe.
A fő ablakban lévő elemek képe (beleértve egy vagy több betű leíró fájlt, ami a címkék megrajzolásához kell).
Az alablakban megjelenítendő kép (opcionális).
Két kép a skin menünek (csak akkor szükséges, ha menüt akarsz csinálni).
A skin konfigurációs fájl kivételével a többi fájlt úgy nevezed el, ahogy csak akarod (de jegyezd meg, hogy a betű leíró fájlnak .fnt kiterjesztéssel kell rendelkeznie).
Amint fentebb már említettem, ez a skin konfigurációs fájl. Sor-orientált;
a megjegyzést tartalmazó sorok egy ';
' karakterrel kezdődnek
(csak szóközök és tab-ok lehetnek a ';
' előtt).
A fájl szekciókból áll. Minden szekció a skin egy alkalmazását írja le a következő formában:
section = szekció neve
.
.
.
end
Jelenleg csak egy alkalmazás van, vagyis csak egy szekciót kell készítened: a neve movieplayer.
Ebben a szekcióban minden ablakot egy blokk ír le a következő formában:
window = ablak neve
.
.
.
end
Ahol az ablak neve
ezen karakterláncok valamelyike lehet:
main - a főablak esetében
sub - az alablak esetében
menu - a skin menü esetében
playbar - a playbar esetében
(Az alablak és menü blokkok opcionálisak - nem kötelező menüt készítened vagy kidekorálni az alablakot.)
Egy ablak blokkon belül az ablak minden elemét definiálhatod, egyet egy sorban, ebbe a formában:
item = parameter
Ahol az item
egy karakterlánc, ami azonosítja az adott
típusú GUI elemet, a parameter
pedig egy numerikus vagy
szöveges érték (vagy értékek listája vesszővel elválasztva).
A fentieket összerakva a teljes fájl valahogy így néz ki:
section = movieplayer window = main ; ... főablak elemei ... end window = sub ; ... alablak elemei ... end window = menu ; ... menü elemei ... end window = playbar ; ... playbar elemei ... end end
Egy kép fájl nevét a hozzá vezető útvonal nélkül kell megadni - a képeknek
a Skin könyvtárban kell lenniük.
A fájl kiterjesztését megadhatod (de nem kötelező). Ha a fájl nem létezik,
az MPlayer megpróbálja betölteni a
<filename>.<ext> fájlt, ahol png
és PNG
kerül az <ext> helyére
(ebben a sorrendben). Az első megtalált fájlt fogja használni.
Végül pár szó a pozícionálásról. A fő ablak és az alablak a képernyő különböző
sarkaiba helyezhető az X
és Y
koordináták
megadásával. A 0
fent vagy bal oldalt van, a
-1
középen és a -2
jobb oldalt vagy lent,
ahogy az itt is látható:
(0, 0)----(-1, 0)----(-2, 0) | | | | | | (0,-1)----(-1,-1)----(-2,-1) | | | | | | (0,-2)----(-1,-2)----(-2,-2)
Egy példa a tisztánlátáshoz. Tegyük fel, hogy van egy main.png nevű fájlod, amit a fő ablakhoz használsz:
base = main, -1, -1
Az MPlayer megpróbálja betölteni a main, main.png, main.PNG fájlokat.
A következő bejegyzések használhatóak a
'window = main
' ... 'end
',
és a 'window = playbar
' ... 'end
'
blokkokban.
base = image, X, Y
Megadhatod vele a fő ablakban használt háttérképet.
Az ablak a megadott X, Y
pozícióban fog megjelenni
a képernyőn. Az ablak mérete a kép méretével lesz azonos.
Ezek a koordináták jelenleg nem működnek a megjelenítő ablak esetében.
A kép transzparens részei (#FF00FF színű) feketeként jelenik meg az XShape kiterjesztés nélküli X szerverek esetében. A kép szélességének 8-cal oszthatónak kell lennie.
button = image, X, Y, width, height, message
Egy width
* height
méretű gomb
megjelenítése az X, Y
pozícióban. A megadott message
üzenet akkor generálódik, amikor a gombot megnyomják. Az image
által
megadott képnek három részt kell tartalmaznia egymás alatt (a gomb állapotainak
megfelelően), így:
+-------------+ | benyomott | +-------------+ | felengedett | +-------------+ | letiltott | +-------------+
decoration = enable|disable
Engedélyezi vagy letiltja a főablakban az ablakkezelő dekorációját. Alapértelmezetten disable.
Ez nem működik a megjelenítő ablakban, nincs rá szükség.
hpotmeter = button, bwidth, bheight, phases, numphases, default, X, Y, width, height, message
vpotmeter = button, bwidth, bheight, phases, numphases, default, X, Y, width, height, message
Egy vízszintes (hpotmeter) vagy függőleges (vpotmeter) potméter megjelenítése
width
* height
méretben az
X, Y
pozícióban. A kép több különböző részre osztható a
potméter különböző fázisainak megfelelően (például lehet egy pot-od a hangerő
szabályozásához, ami zöldből pirosba vált, ahogy az értéke változik a minimumtól
a maximumig). A hpotmeter
-nek lehet egy gombja is, amit
vízszintesen lehet húzni. A paraméterek:
button
- a gombként használt kép
(három részt kell tartalmaznia egymás alatt, mint a
gomb esetében)
bwidth
, bheight
- a gomb
mérete
phases
- a hpotmeter különböző fázisaiban
használt kép neve. Speciális értékként a NULL
is
használható, ha nem akarsz ilyen képet. A képet függőlegesen
numphases
részre kell felosztani így:
+------------+ | 1. fázis | +------------+ | 2. fázis | +------------+ ... +------------+ | n. fázis | +------------+
numphases
- a phases
képen
lévő fázisok száma
default
- a hpotmeter alapértelmezett értéke
(0
és 100
között)
X
, Y
- a hpotmeter pozíciója
width
, height
- a hpotmeter
szélessége és magassága
message
- az üzenet, ami a hpotmeter
értékének megváltozásakor generálódik
potmeter = phases, numphases, default, X, Y, width, height, message
Egy hpotmeter
gomb nélkül. (Gondolom a megfordítása volt az
eredeti cél, de csak a vízszintes vonszolásra reagál.) A paraméterek leírását
lásd a hpotmeter-nél.
A phases
lehet NULL
, de ez eléggé haszontalan,
mivel akkor nem látod, hogy a potmeter
hova van állítva.
font = fontfile, fontid
Egy betűt definiál. A fontfile
a betű leíró fájl neve egy
.fnt kiterjesztéssel (a kiterjesztést ne add meg itt).
A fontid
-t a betűre történő hivatkozásokhoz lehet használni
(lásd dlabel és
slabel). 25 betűt lehet definiálni.
slabel = X, Y, fontid, "text"
Egy statikus címkét tesz ki az X, Y
pozícióba. A
text
szöveget jeleníti meg a fontid
-vel
azonosított betűtípussal. A szöveg egyszerű karakterlánc (az $x
változók nem működnek) amit dupla idézőjelek közé kell írni (de a " karakter
nem lehet a szöveg része). A címke a fontid
-vel
azonosított betűtípussal jelenik meg.
dlabel = X, Y, length, align, fontid, "text"
Egy dinamikus címkét tesz ki az X, Y
pozícióba. A címke
azért dinamikus, mert a szövege periódikusan frissül. A címke maximum hosszát
a length
szabályozza (a magassága egy karakter magasságával
egyezik meg). Ha a megjelenítendő szöveg szélesebb ennél, scrollozva lesz,
különben az align
paraméter által megadott módon pozícionálódik:
0
jobbra, 1
középre, 2
balra
igazítva.
A megjelenítendő szöveget a text
adja meg: dupla idézőjelek
közé kell írni (de a " karakter nem lehet része a szövegnek). A címke
a fontid
által meghatározott betűtípussal jelenik meg.
A szövegben a következő változókat használhatod:
Változó | Jelentés |
---|---|
$1 | lejátszási idő hh:mm:ss formátumban |
$2 | lejátszási idő mmmm:ss formátumban |
$3 | lejátszási idő hh formátumban (órák) |
$4 | lejátszási idő mm formátumban (percek) |
$5 | lejátszási idő ss formátumban (másodpercek) |
$6 | film hossza hh:mm:ss formátumban |
$7 | film hossza mmmm:ss formátumban |
$8 | film hossza h:mm:ss formátumban |
$v | hangerő xxx.xx% formátumban |
$V | hangerő xxx.xx formátumban |
$b | balansz xxx.xx% formátumban |
$B | balansz xxx.xx formátumban |
$$ | az $ karakter |
$a | egy karakter az audió típusnak megfelelően (nincs: n ,
mono: m , sztereo: t ) |
$t | sáv száma (a lejátszási listában) |
$o | fájlnév |
$f | fájlnév kisbetűsen |
$F | fájlnév nagybetűsen |
$T | egy karakter a folyam típusnak megfelelően (file: f ,
Video CD: v , DVD: d , URL: u ) |
$p | a p karakter (ha a film lejátszás alatt van és a betűtípusban van p karakter) |
$s | az s karakter (ha a film meg van állítva movie és a betűtípusban van s karakter) |
$e | az e karakter (ha a lejátszás szünetel és a betűtípusban van e karakter) |
$x | film szélessége |
$y | film magassága |
$C | használt codec neve |
Az $a, $T, $p, $s
és $e
változók mind karakterekkel térnek vissza, amiket speciális szimbólumként kell
megjeleníteni (például az e a pillanatállj szimbóluma, ami
általában valami ilyesmi: ||). Szükséged lesz egy normál karaktereket
tartalmazó betűtípusra és egy másikra a szimbólumokhoz. Lásd a
szimbólumokról szóló részt a
további információkért.
A következő bejegyzések használhatóak a
'window = sub
' . . . 'end
' blokkban.
base = image, X, Y, width, height
Az ablakban megjelenítendő kép. Az ablak a megadott
X, Y
pozícióban jelenik meg a képernyőn (0,0
a bal felső sarok). A -1
a középre, a -2
a jobbra (X
) és le (Y
) igazítást jelenti.
Az ablak akkora lesz, amekkora a kép. A width
és a height
az ablak méretét írják elő, opcionálisak (ha hiányoznak, az ablak
ugyan akkora méretű lesz, mint a kép).
background = R, G, B
Beállíthatod vele a háttér színét. Hasznos, ha a kép kisebb, mint az
ablak mérete. Az R
, G
és B
a szín vörös, zöld és kék komponensét adja meg (mindegyik decimális szám
0-tól 255-ig).
Amint korábban már említettem, a menü két kép segítségével kerül megjelenítésre.
A normál menü bejegyzések a base
elemmel megadott képen
láthatóak, míg az épp aktuálisan kiválasztott elem megjelenítése a
selected
elemről történik. Meg kell adnod minden egyes
menüpont pozícióját és méretét.
A következő bejegyzések használhatóak a
'window = menu
'. . .'end
' blokkban.
Amint azt már a skin elemeiről szóló részben is említettem, egy betűtípust egy kép és egy leíró fájl alkot. A karaktereket bárhová teheted a képen, de győződj meg róla, hogy a pozíciójuk és a méretük pontosan meg van adva a leíró fájlban.
A betű leíró fájl (az .fnt kiterjesztéssel) tartalmazhat
megjegyzéseket, melyek ';
'-vel kezdődő sorokban kapnak helyet.
A fájlban kell, hogy szerepeljenek az alábbi sorok:
image = image
Ahol az
a betűhöz használt
kép fájl neve (nem kell megadnod a kiterjesztést).
image
"char" = X, Y, width, height
Itt az X
és az Y
a
char
karakter pozícióját adja meg a képen (0,0
a bal felső sarok). A width
és a height
a karakter méretei pixelben.
Ez a példa az A, B, C karaktereket definiálja a font.png felhasználásával.
; Lehet "font" is a "font.png" helyett. image = font.png ; Három karakter elég a bemutatáshoz :-) "A" = 0,0, 7,13 "B" = 7,0, 7,13 "C" = 14,0, 7,13
Néhány karakternek speciális jelentése van, ha dlabel-ben
használva valamelyik változó tér vissza vele. Ezeket a karaktereket
szimbólumokként kell megjeleníteni, így például egy szép DVD logó jelenhet
meg a 'd
' karakter helyett egy DVD folyam esetén.
Az alábbi táblázat a szimbólumként megjeleníthető (és így külön betűtípust igénylő) karaktereket tartalmazza.
Karakter | Szimbólum |
---|---|
p | lejátszás |
s | stop |
e | pillanatállj |
n | nincs hang |
m | mono hang |
t | sztereó hang |
f | a folyam egy fájl |
v | a folyam egy Video CD |
d | a folyam egy DVD |
u | a folyam egy URL |
Az alábbi üzeneteket generálják a gombok, potméterek és menüpontok.
Néhány üzenet nem úgy működik, mint az elvárható lenne (vagy egyáltalán sehogy sem működik). Mint tudod, a GUI még fejlesztés alatt áll.
Lejátszás vezérlése:
ugrás a következő sávra a lejátszási listában.
Párt alkot az evPlaySwitchToPause
-val. Egy általános
lejátszás/szünet gomb készítéséhez használhatóak fel. Mind a két üzenetet
egy olyan gombhoz kell hozzárendelni, ami teljesen ugyan ott jelenik meg az
ablakban. Ez az üzenet megállítja a lejátszást és megjelenteti az
evPlaySwitchToPause
gombhoz tartozó képet (jelezve
ezzel, hogy a gombot meg lehet nyomni a lejátszás folytatásához).
Lejátszás elindítása.
Az evPauseSwitchToPlay
ellentéte. Ez az üzenet elkezdi a
lejátszást és megjelenteti az evPauseSwitchToPlay
gomb
képét (jelezve ezzel, hogy a gombot meg lehet nyomni a lejátszás megállításához).
Az előző sávra ugrik a lejátszási listában.
Lejátszás megállítása.
Seeking:
Visszalépés 10 másodperccel.
Visszalépés 1 perccel.
Visszalépés 10 perccel.
Előrelépés 10 másodperccel.
Előrelépés 1 perccel.
Előrelépés 10 perccel.
Ugrás a pozícióhoz (potméter tudja használni; a potméter relatív értékét (0-100%) használja).
Videó vezérlés:
Film ablak méretének felezése.
Film ablak méretének duplázása.
Teljes képernyős mód be-/kikapcsolása.
Film ablak normál méretének beállítása.
Audió vezérlés:
Audió buffer késleltetésének csökkentése.
Balansz csökkentése.
Hangerő csökkentése.
Audió buffer késleltetésének növelése.
Balansz növelése.
Hangerő növelése.
Hang ki-/bekapcsolása.
Balansz beállítása (potméter tudja használni; a potméter relatív értékét (0-100%) használja).
Hangerő beállítása (potméter tudja használni; a potméter relatív értékét (0-100%) használja).
Vegyes:
Programinformációs ablak megnyitása.
Aktuálisan használt felirat letiltása.
Equalizer be-/kikapcsolása.
Kilépés a programból.
Ablak összecsukása kis méretűvé.
Fájl betöltése (a fájl böngésző ablak megnyitásával, ahol kiválaszthatod a fájlt).
Ugyan azt csinálja, mint az evLoad
, de automatikusan elkezdi
lejátszani a fájlt, miután betöltötte.
Felirat fájl betöltése (a fájlválasztóval)
Audió fájl betöltése (a fájlválasztóval)
Üres üzenet, nincs hatása (kivéve talán a CVS verziót :-)).
Lejátszási lista ablak megnyitása/becsukása.
Megpróbálja megnyitni az adott DVD-ROM meghajtóban lévő lemezt.
Megpróbálja megnyitni az adott CD-ROM meghajtóban lévő lemezt.
Megnyitja a beállítások ablakot.
Beállítja a megjelenített kép arányát.
Megjeleníti az URL dialógus ablakot.
Megnyitja a skin böngésző ablakot.
A háttér: A GCC 2.95-ös sorozata egy hivatalos GNU kiadás és a GCC 2.95.3-as verziója a leghibamentesebb ebben a sorozatban. SOha nem tapasztaltunk fordítási problémákat, amik a gcc-2.95.3-ra lettek volna visszavezethetőek. A Red Hat Linux 7.0-tól kezdődően a Red Hat a GCC egy erősen patchelt CVS verzióját tette bele a disztribúciójába, és átnevezte 2.96-ra. A Red Hat azért vette bele ezt a verziót a disztribúciójába, mert a GCC 3.0 még nem volt kész abban az időben és szükségük volt egy fordítóra, ami jól működik a támogatott platformjaikon, beleértve az IA64-et és az s390-et. A Mandrake (most már Mandriva) követte a Red Hat példáját és elkezdte szállítani a GCC 2.96-ot a saját Linux-Mandrake 8.0 sorozatával.
A helyzet: A GCC csapat visszautasított bármiféle kapcsolatot a GCC 2.96-tal és kiadott egy hivatalos választ a GCC 2.96-ra. Sok fejlesztőnek problémái támadtak a GCC 2.96-tal és számos projekt, köztük az avifile, elkezdett más fordítókat javasolni. Érdekes link még a Linux kernel news flash a 2.4.17-es kernelről és a Voy Forum. Az MPlayer is szenvedett időszakos problémákkal, amik mind megoldódtak egy másik GCC verzióra való átállással. Számos projekt elkezdett "megkerüléseket" implementálni a 2.96 néhány hibájára, de mi nem vagyunk hajlandóak mások hibáit javítgatni, különösen mivel a javítások jelentősen rontják a teljesítményt.
A GCC 2.96 nem engedi meg a |
(pipe) karaktereket az assembler
kommentekben, mert támogatja mind az Intel, mind az AT&T szintaxisát és a
|
karakter egy szimbólum az Intel variánsban. A
probléma az, hogy jelzés nélkül figyelmen kívül hagyja a
teljes assembler blokkot. Ezt állítólag már javították, a GCC figyelmeztető üzenetet
ír ki a blokk kihagyása helyett.
A jelen: A Red Hat azt mondja, hogy a GCC 2.96-85 és ez utániak javítva lettek. Az ügy közben tovább bonyolódott, még mindig találunk olyan hibajelentéseket a levelezési listáinkon, amik más fordítóval eltűnnek. Mindegy, a továbbiakban ez már nem számít. Remélhetőleg a készülő GCC 3.x megoldja ezt az ügyet. Ha mégis 2.96-tal akarsz fordítani, add meg a --disable-gcc-checking kapcsolót a configure-nak. Emlékezz rá, hogy ezesetben a magad ura vagy és ne jelents semmilyen hibát. Ha mégis ezt teszed, csak kitiltást kaphatsz a levelezési listáról, mert már a soknál is több flame volt a GCC 2.96 miatt. Pihentessük az ügyet.
Ha problémáid vannak a GCC 2.96-tal, letöltheted a 2.96-85 csomagokat a Red Hat ftp szerveréről vagy egyszerűen használd a 3.0.4 csomagokat, amik a 7.2 és későbbi kiadásokban találhatóak. Letöltheted a gcc-3.2.3-37 csomagokat is (nem hivatalos, de jól működő) és telepítheted a már meglévő gcc-2.96 mellé. Az MPlayer meg fogja találni és inkább a 3.2-eset használja a 2.96 helyett. Ha nem akarod vagy nem tudod használni a bináris csomagokat, itt van, hogy tudod lefordítani forrásból a GCC 3-at:
Menj a
GCC tükröket tartalmazó
oldalára és töltsd le a gcc-core-XXX
.tar.gz
fájlt, ahol XXX
a verzió szám. Ebben benne van a
teljes C fordító és elegendő az MPlayerhez. Ha
C++, Java vagy valamelyik másik GCC funkció is kell neked, a
gcc-XXX
.tar.gz jobban megfelel
az igényeidnek.
Csomagold ki az archívot a
tar -xvzf gcc-core-XXX
.tar.gz
paranccsal!
A GCC nem a forrás könyvtárba kerül lefordításra, mint a legtöbb program, hanem kell neki egy kimeneti könyvtár valahol a forráson kívül. Így létre kell hoznod egy könyvtárat a
mkdir gcc-build
paranccsal.
Ezután elvégezheted a gcc konfigurálását a célkönyvtárból, azonban a configure a forrás könyvtárban van:
cd gcc-build
../gcc-3.XXX
/configure
Fordítsd le a GCC-t a következő parancs kiadásával a célkönyvtárban:
make bootstrap
Most már telepítheted a GCC-t (mint root) a
make install
parancs begépelésével.
Az MPlayer régebben tartalmazott forrást az OpenDivX projektből, ami tiltja a bináris továbbadását. Ezt a kódot eltávolítottuk a 0.90-pre1 verzióban és a visszamardó divx_vbr.c fájlt, ami az OpenDivX forrásából származik, GPL terjesztés alá vették a fejlesztői a 0.90pre9-es verzióra. Így már nyugodtan készíthetsz bináris csomagokat, ha úgy tartja kedved.
A bináris továbbterjesztés másik akadálya a fordítási időben történő CPU architektúrának megfelelő optimalizáció volt. Az MPlayer most már támogatja a futásidejű CPU keresést (add meg az --enable-runtime-cpudetection kapcsolót a configure parancsnak). Alapértelmezésként ki van kapcsolva, mert magában hordoz egy kicsi sebességcsökkenést, de így most már lehetséges olyan binárisok létrehozása, amelyek futnak az Intel kompatibilis CPU család különböző tagjain.
Nem igazán örülünk annak a ténynek, hogy az nVidia csak bináris vezérlőt biztosít (az XFree86-tal történő használathoz), ami gyakran hibás. Rengeteg jelentést kaptunk az mplayer-users listán olyan problémákról, amik ezekhez a zárt forráskódú vezérlőkhöz kapcslódtak és ezek gyenge minőségéhez, instabilitásához és a felhasználói tapasztalatlansághoz. Sok ilyen probléma/dolog ismételten feltűnik. Nem régen tárgyaltunk az nVidia-val és azt mondták, hogy ezek a hibák nem léteznek, az instabilitást a rossz AGP chip-ek okozzák és hogy ők nem kaptak jelentést vezérlő hibákról (mint a rózsaszín vonal). Így ha problémád van az nVidia kártyáddal, azt tanácsoljuk, hogy frissítsd az nVidia vezérlőd és/vagy vegyél egy új alaplapot vagy kérd meg az nVidia-t, hogy biztosítson nyílt-forráskódú vezérlőket. Bármelyik esetben, ha az nVidia bináris vezérlőjét használod és vezérlő problémáid vannak, kérlek emlékezz rá, hogy tőlünk nagyon kevés segítséget kaphatsz, mert nincs elég energiánk, hogy az ilyen ügyekben is segítsünk.
Joe Barr 2001. decemberében lett elég népszerűtlen, amikor egy csöppet sem kedves MPlayer áttekintést készített, MPlayer: Projekt a pokolból címmel. Úgy találta, hogy az MPlayert nehéz telepíteni és azt a következtetést vonta le, hogy a fejlesztők barátságtalanok és a dokumentáció nem teljes valamint sértő. Légy te a bíró! Tovább menve negatívan tett említést Árpiról a 10 Linux predictions for 2002 című cikkjében. Egy következő áttekintésben, melyben a xine-ról ír A streaming media player for the rest of us címmel, folytatja a bajkeverést. Irónikus módon ezen cikk végén idézi Günter Bartsch-sal, a xine eredeti szerzőjével történt eszmecseréjét, ami tökéletesen összefoglalja az egész szituációt:
Azonban kihangsúlyozta, hogy "meglepődött" az Mplayerről szóló írásomon és úgy gondolta, hogy az nem fair, emlékeztetve engem arra, hogy az is egy szabad szoftver projekt. "Ha nem szereted," mondja Bartsch, "szabad nem használnod."
Majdnem két évvel később, 2003. októberében írt egy másik áttekintést Mplayer revisited címmel (a hibás írásmódot megtartottam). Ebben az alábbi következtetésre jutott:
Azt mondanám, hogy van fejlődés a jellemzők számát tekintve, teljesítményben, és a dokumentációban. Még mindig nem a világ legkönnyebb telepítése, különösen az újoncoknak, de kicsit jobb, mint régen.
és
De ami még fontosabb, nem találtam semmilyen új, felhasználókat sértő megjegyzést. Úgy gondolom, ebben van egy kis részem, még akkor is, ha csak én gondolom így. Árpinak és a projekt többi tagjának is így gondolhatja, mert ügyeltek rá, hogy megemlékezzenek rólam a dokumentáció egy speciális részében, ami a tarball-ban is megtalálható. Mint ahogy az elején is mondtam, néhány dolog semmit sem változott.
Nem tudnánk ennél jobban összefoglalni a Joe Barr iránti érzéseinket: "Nem a legkorrektebb vagy legjobb utánajárás alapján megírt cikk a világon, de jobb, mint azelőtt volt." Talán a legközelebbi alkalommal már meg fogunk felelni egymás elvárásainak. Bár a beérésért járó köszönet csak az egyre múló időt illeti meg és talán az elfáradást a flame háborúkban.