A <application>MEncoder</application> használatának alapjai 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, vagy a nagyon régi dolgok után itt, 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. Codec és konténer formátum kiválasztása A kódoláshoz az audió és videó codec-ek a és 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 neveLeírás mp3lame kódol VBR, ABR vagy CBR MP3-at LAME-mel lavc a libavcodec egyik 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 neveLeírás lavc a libavcodec egyik 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 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 neveLeí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 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 libavformat kapcsolójával írhatsz elő. 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 mkv Matroska nyílt audió/videó 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. kódolás Macromedia Flash formátumba Egy Macromedia Flash videó létrehozása, mely lejátszható web böngészőben a Macromedia Flash plugin-nel: mencoder bemenet.avi -o kimenet.flv -of lavf \ -oac mp3lame -lameopts abr:br=56 -srate 22050 -ovc lavc \ -lavcopts vcodec=flv:vbitrate=500:mbd=2:mv0:trell:v4mv:cbp:last_pred=3 Bemeneti fájl vagy eszköz kiválasztása 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 részszám vagy 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 szintaxist, a -szal együtt, amit a lemásolt DVD gyökérkönyvtárának elérési útja követ. A és 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 kapcsolót. Például a 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 csatornaszám eszközt fájlnévként és a kapcoslót a mentési beállítások megadásához. A DVB hasonlóképpen működik. Két menetes MPEG-4 ("DivX") kódolás 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 vagy Windows alatt a NUL-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. 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:mbd=2:trell:vpass=2 \ -oac copy -o kimenet.avi 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 -o /dev/null mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell:vpass=2 \ -oac mp3lame -lameopts vbr=3 -o kimenet.avi Kódolás Sony PSP videó formátumba A MEncoder támogatja a Sony PSP videó formátumába történő kódolást, de a PSP szoftverének változatától függően különböző korlátok vannak. Nyugodt lehetsz, ha a következő korlátokat figyelembe veszed: Bitráta: nem lépheti át az 1500kbps-t, bár az utóbbi verziók elég jól támogatnak bármilyen bitrátát, feltéve, hogy a fejlécben nem túl nagy érték van megadva. Méretek: a PSP videó szélességének és magasságának 16-tal oszthatónak kell lennie és az eredmény szélesség * magasság értékének <= 64000 kell lennie. Bizonyos körülmények között lehetséges a nagyobb felbontás PSP-vel történő lejátszása is. Audió: a mintavételezési frekvenciának 24kHz-nek kell lennie az MPEG-4 videóknál és 48kHz-nek a H.264-nél. kódolás PSP-be mencoder -ofps 30000/1001 -af resample=24000 -vf harddup -of lavf \ -oac lavc -ovc lavc -lavcopts aglobal=1:vglobal=1:vcodec=mpeg4:acodec=aac \ -lavfopts format=psp \ bemenet.video -o kimenet.psp Figyelj rá, hogy beállíthatod a videó címét a kapcsolóval. Kódolás MPEG formátumba 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 kapcsolót. Példa: mencoder bemenet.avi -of mpeg -ovc lavc -lavcopts vcodec=mpeg1video \ -oac copy egyéb_kapcsolók -o kimenet.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 bemenet.avi -of mpeg -mpegopts format=mpeg1:tsaf:muxrate=2000 \ -o kimenet.mpg -oac lavc -lavcopts acodec=mp2:abitrate=224 -ovc lavc \ -lavcopts vcodec=mpeg1video:vbitrate=1152:keyint=15:mbd=2:aspect=4/3 Ugyan ez a libavformat MPEG muxer-ének használatával: mencoder input.avi -o VCD.mpg -ofps 25 -vf scale=352:288,harddup -of lavf \ -lavfopts format=mpg -oac lavc -lavcopts acodec=mp2:abitrate=224 -ovc lavc \ -lavcopts vcodec=mpeg1video:vrc_buf_size=327:keyint=15:vrc_maxrate=1152:vbitrate=1152:vmax_b_frames=0 Tanács: Ha valamilyen okból kifolyólag a videó minőség a második lépésben nem kielégítő, ajánlott újrafuttatnod a videó kódolásod egy másik cél bitrátával, feltéve, hogy elmentetted az előző lépés statisztikát tartalmazó fájlját. Ez azért lehetséges, mert a statisztika fájl elsődleges célja minden egyes képkocka komplexitásának feljegyzése, ami nem függ erőteljesen a bitrátától. Azonban vedd figyelembe, hogy akkor kapod a legjobb minőséget, ha a lépések cél bitrátája nem különbözik nagy mértékben. Filmek átméretezése 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: . A minősége beállítható a kapcsolóval. Ha ez nincs megadva, akkor a MEncoder a 2: bicubic-et használja. Használat: mencoder bemenet.mpg -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell \ -vf scale=640:480 -o kimenet.avi Stream másolás 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 ( 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 ( kapcsoló): őszintén szólva... Bele lehet mixelni egy külső audió fájlt (MP3, WAV) a kimeneti stream-be. Használd a kapcsolót ehhez. A használatával végrehajtott egyik konténer formátumból másikba történő másoláshoz szükséges lehet a 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: mencoder bemenet.nsv -oac copy -fafmttag 0x706D \ -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell -o kimenet.avi Kódolás több bemeneti képfájlból (JPEG, PNG, TGA, stb.) A MEncoder képes egy vagy több JPEG, PNG, TGA vagy más képfá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 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:mbd=2:trell -oac copy -o kimenet.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:mbd=2:trell -oac copy -o kimenet.avi Egy MPEG-4 fájl létrehozása JPEG fájlok explicit listájából (az aktuális könyvtárban lévő lista.txt tartalmazza a forrásként felhasználandó fájlokat, soronként egyet): mencoder mf://@lista.txt -mf w=800:h=600:fps=25:type=jpg \ -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell -oac copy -o kimenet.avi Különböző típusú képeket is használhatsz, függetlenül a használt módszertől — egyedi fájlnevek, helyettesítő karakterek vagy fájl lista — feltéve természetesen, hogy a képméretek azonosak. Így például a cím kép lehet egy PNG fájl, majd a bemutató készülhet JPEG fényképekből. 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 kimenet.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://*.png -mf w=800:h=600:fps=25:type=png -ovc raw -oac copy -o kimenet.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 kimenet.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 kimenet.avi DVD felirat elmentése VOBsub fájlba 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 és a kapcsolókkal. Meg kell adnod a kimeneti fájlok fájlnevét (az .idx vagy .sub kiterjesztés nélkül) a kapcsolóval és az ezen felirathoz tartozó indexet a kimeneti fájlokban a -szel. Ha a bemenet nem DVD, akkor a 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 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. 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:mbd=2:trell:vpass=2 \ -vobsubout subtitles -vobsuboutindex 1 -sid 5 Francia felirat másolása egy MPEG fájlból rm subtitles.idx subtitles.sub mencoder movie.mpg -ifo movie.ifo -vobsubout subtitles -vobsuboutindex 0 \ -vobsuboutid fr -sid 1 -nosound -ovc copy Képarány megtartása 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 kevés videó lejtászó van az MPlayeren kívül, ami támogatná ezt az attribútumot. 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ó lehet, hogy 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 mencoder sample-svcd.mpg -vf crop=714:548:0:14 -oac copy -ovc lavc \ -lavcopts vcodec=mpeg4:mbd=2:trell:autoaspect -o kimenet.avi