A MEncoder 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
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ásmp3lameKódol VBR, ABR vagy CBR MP3-at LAME-mellavcA libavcodec valamelyik audió codec-jét használja
faacFAAC AAC audió kódolótoolameMPEG Audio Layer 2 kódolótwolametooLAME alapú MPEG Audio Layer 2 kódolópcmTömörítetlen PCM audiócopyNem kódol újra, csak másolja a tömörített kockákat
Videó codec-ek:
Videó codec neveLeíráslavcA libavcodec valamelyik videó codec-jét használja
xvidXviD, MPEG-4 Advanced Simple Profile (ASP) codecx264x264, MPEG-4 Advanced Video Coding (AVC), AKA H.264 codecnuvnuppel video, néhány realtime alkalmazás használjarawTömörítetlen videó képkockákcopyNem kódol újra, csak másolja a tömörített kockákatframenoA 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áslavfA libavformat által
támogatott valamelyik konténeraviAudio-Video InterleavedmpegMPEG-1 és MPEG-2 PSrawvideonyers videó folyam (nincs keverés - csak egy videó folyam)rawaudionyers 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 kapcsolóval
tudsz megadni a libavformat-nek.
libavformat konténer neveLeírásmpgMPEG-1 és MPEG-2 PSasfAdvanced Streaming FormataviAudio-Video InterleavedwavWaveform AudioswfMacromedia FlashflvMacromedia Flash videormRealMediaauSUN AUnutNUT nyílt konténer (kísérleti és még nem a specifikációnak megfelelő)movQuickTimemp4MPEG-4 formátumdvSony 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:
mencoder bemenet.avi -o kimenet.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
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 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.aviaudió 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.aviKó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 -ovc lavc \
-lavcopts acodec=mp2:abitrate=224:vcodec=mpeg1video:vbitrate=1152:keyint=15:mbd=2:aspect=4/3
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.aviStream másolásMEncoder 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.aviKódolás több bemeneti képfájlból (JPEG, PNG, TGA, SGI)
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 MEncoderdekó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
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.aviDVD 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 5Francia 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
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
libavcodecmpeg4 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
mencoder sample-svcd.mpg -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell:autoaspect -vf crop=714:548:0:14 -oac copy -o kimenet.avi