A MEncoder (MPlayer's Movie Encoder) egy egyszerű film enkóder, az MPlayer által lejátszható formátumok (AVI/ASF/OGG/DVD/VCD/VOB/MPG/MOV/VIV/FLI/RM/NUV/NET/PVA) más - MPlayerrel lejátszható - formátumokba kódolására. Sokféle codec-kel tud enkódolni, például DivX4-gyel (1 vagy 2 menetes), a libavcodec-et alkotó codec-ekkel, audiot tekintve pedig PCM/MP3/VBR MP3 a választék. Rendelkezik továbbá stream másoló, és video átméretező képességgel.
lame
bináris nem elég. Mégvalami: minél kevesebb
optimalizációt használsz a lame fordításánál, annál jobb lesz a minősége.
A minőséget a fordítás utáni make test
paranccsal
ellenőrizheted. A kiírt számnak 30-nál kevesebbnek kell lennie.
Azért ne ess pánikba ha pl 400 fölötti értéket kapsz, nem
valószínű hogy hallod a különbséget. Jaigen, ha a fordítód nem tudja
a tesztet lefuttatni.. Nos, töröld már le azt a nyavajás GCC 2.96-ot.libjpeg
és libpng
-
lásd az Installálás
fejezetetKész. Mint minden bizonnyal tudod, más enkódolóknak szükségük van az avifile könyvtárra. A MEncoder-nek egyáltalán nincs.
-ofps
opcióval (hasznos ha 29.97fps-es
VOB-ot kódolsz 24fps-es AVI-ba)2 menetes enkódolás: az elnevezés onnan jön, hogy ezzel a módszerrel a file kétszer lesz enkódolva. Az első menet néhány pár Mb-os ideiglenes (*.log) file-t hoz létre, amiket egyelőre nem szabad törölni (az AVI törölhető, ugyanolyan mintha -pass opciók nélkül keletkezett volna). A második menetben keletkezik a tényleges 2 menetes DivX, az ideiglenes file-ok adataiből. A keletkező file az egy menetesekhez képest sokkal jobb minőséggel és kisebb mérettel bír. Ha most hallassz erről először, jobb ha keresel a neten egy útmutatót.
A következő példa egy DVD 2 menetes DivX4 AVI-ba történő enkódolását
mutatja be. Csak két parancs szükséges: 3 menetes enkódolás: ez egyfajta bővített kétmenetes
enkódolás. A különbség abban áll hogy itt az audio enkódolása külön
menetben történik, ezáltal lehetővé válik annak megbecslése hogy az adott
filmet milyen bitrátával kell tömöríteni hogy ráférjen egy 650, 700 vagy
800Mb-os CD-re, és ezt a MEncoder ki is számolja. Továbbá, ilyenkor
az audio csak egyszer kerül enkódolásra, ellentétben a 2 menetes móddal.
A használata a következő: Egy csak audiot tartalmazó AVI file jön létre, ami a kért formátumban
tartalmazza az audio streamet. Ha akarod használhatod a
Alias a DivX4 video enkódolás első menete. Opcionálisan megadhatod azt
a bitrate-et amit a MEncoder az előző menet végén kiírt, lásd
feljebb. Alias a DivX4 video enkódolás második menete. Opcionálisan megadhatod
azt a bitrate-et amit a MEncoder az előző menet végén kiírt, lásd
feljebb. Ebben a menetben a 2, vagy 3 menetes enkódolás a libavcodec 2 menetes kódjával:
Használata esetén elképzelhető, hogy az átlagos bitráta jobban fog
közelíteni a megadotthoz, mint a DivX4-es módszer esetén. Gyakran előjön a filmek átméretezésének igénye. Ennek oka sokféle lehet,
például a fileméret csökkentése, vagy SVCD-ből DivX-be kódolás. A rippelt
DVD-ket legtöbbször átméretezik (például egy 4:3-as DVD-t 640x480-ra),
különösen akkor ha a cél az 1 CD-s méret és ezzel együtt a jó minőség is.
Az SVCD-k képmérete 480x480, és a lejátszóprogramok az ezen fileok
fejlécében található aspektusinformáció alapján számítják ki a megjelenítendő
kép méretét (pl.: 480x480 + 4:3 = 640x480). Ezért AVI (DivX) file-okba
történő kódolásnál figyelembe kell venni azt is, hogy az AVI file-ok ezen
információ eltárolására nem képesek. Így az egyetlen megoldás az átméretezés. Az átméretezést a 'scale' nevű video filter végzi:
Használata: A MEncoder kétféleképpen tudja a bemeneti stream-eket kezelni:
enkódolja vagy csak átmásolja őket. Ez a rész a másolásról
szól. A legkönnyebb dolog a világon. Egyszerűen átmásoljuk a video és audio
streameket, és közben a MEncoder létrehozza a megfelelő indexet is.
Ez persze nem tudja kijavítani az esetleges hibákat a video és/vagy audio
stream-ekben, viszont a hibásan interleave-elt fileokat igen. A parancs: A libavcodec-kel egyszerűen lehet kódolni
jónéhány érdekes video és audio formátumba (jelenleg az audio codec-ek nem
támogatottak). A következő codec-ekkel lehet enkódolni: Az első oszlopban felsorolt codec-eket kell átadni a
Egy példa, MJPEG tömörítéssel: A MEncoder képes több JPEG vagy PNG file-ból filmet létrehozni.
Egyszerű framecopy használatával pedig MJPEG (Motion JPEG) vagy MPNG
(Motion PNG) filmek hozhatók létre. A folyamat magyarázata Először a MEncoder dekódolja a bemeneti fileokat a
A MEncoder ezután a kiválasztott kimeneti codecnek adja a
dekódolt képet (pl DivX4, Xvid, ffmpeg msmpeg4, stb). Vigyázat: a PNG
dekóder jelenleg csak RGB formátumú képek kiadására képes, így nem
használható olyan codecekkel amelyek YUV formátumot várnak. Ilyen
például a DivX4, vagy az ffmpeg-beli msmpeg4. Példák Az DivX4 film létrehozása az aktuális könyvtárban található összes JPEG fileból: DivX4 film létrehozása néhány JPEG fileból: MJPEG (Motion JPEG) film létrehozása az aktuális könyvtárban található összes JPEG fileból: Tömörítetlen film létrehozása az aktuális könyvtárban található összes PNG fileból: MPNG (Motion PNG) film létrehozása az aktuális könyvtárban található összes PNG fileból: A MEncoder képes DVD-ről kivonni a feliratot, és átalakítani
Vobsub formátumú felirattá. Ezek egy Az alap filenevet (tehát kiterjesztés nélkül) a Ha a bemeneti file nem DVD, használd az Ha a bemeneti file nem DVD, de nincs meg hozzá az Minden egyes futás hozzáfűzi a kimenetet az esetlegesen már létező
kimeneti file-hoz, így ajánlott körülnézni indítás előtt. Példák Két felirat másolása DVD-ről, 3 menetes enkódolás közben Francia nyelvű felirat másolása MPEG-ből A rendelkezésre álló összes opció listája példákkal együtt a manpage-ben
található.
rm frameno.avi
- töröld ezt a file-t,
ami egy esetleges előző 3 menetes enkódolásból származhat
mencoder -dvd 2 -ovc lavc -lavcopts
vcodec=mpeg4:opciók -oac copy -o film.avi -pass 1
mencoder -dvd 2 -ovc lavc -lavcopts
vcodec=mpeg4:opciók -oac copy -o film.avi -pass 2
rm frameno.avi
mencoder <file/DVD> -ovc frameno -oac mp3lame -lameopts vbr=3:opciók -o frameno.avi
-lameopts
opciót. Ha ez egy hosszabb film, e menet végén a
MEncoder kiírja hogy mekkora bitrate-tel tömöríts a következő menetekben
hogy a film ráférjen egy 650, 700 vagy 800Mb-os CD-re.mencoder <file/DVD> -oac copy -pass 1 -ovc lavc -lavcopts
vcodec=mpeg4:vbitrate=<bitráta>
mencoder <file/DVD> -oac copy -pass 2 -ovc lavc -lavcopts
vcodec=mpeg4:vbitrate=<bitráta>
frameno.avi
-ban levő audio
belekerül a célfileba.. és kész is az egész!Példa a 3 menetes enkódolásra:
rm frameno.avi
- esetlegesen egy előző
enkódolásbol származó file törlése (bezavar a most következőnek)
mencoder -dvd 2 -ovc frameno
-o frameno.avi -oac mp3lame -lameopts vbr=3:opciók
mencoder -dvd 2 -ovc lavc
-lavcopts vcodec=mpeg4:vbitrate=1100 -oac copy -o movie.avi -pass 1
mencoder -dvd 2 -ovc lavc
-lavcopts vcodec=mpeg4:vbitrate=1100 -oac copy -o movie.avi -pass 2
rm -f lavc_stats.txt
mencoder -dvd 2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 (audio-opciók) -o
movie.avi
mencoder -dvd 2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=2 (audio-opciók) -o
movie.avi
rm -f frameno.avi lavc_stats.txt
mencoder -dvd 2 -ovc frameno (audio-opciók) -o frameno.avi
mencoder -dvd 2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 -oac copy -o
movie.avi
mencoder -dvd 2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=2 -oac copy -o
movie.avi2.4.3.2 Átméretezés
-vop scale=X:Y
. A minőségét pedig az -sws
opcióval
lehet megadni (lásd a manpage-t). Alapértelmezett a 0: gyors bilinear.
mencoder sample-svcd.mpg -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=1300 -vop
scale=640:480 -oac copy -o output.avi
-ovc copy
opció): érdekes dolgokat
lehet vele csinálni :)
Mint például FLI vagy VIVO vagy MPEG1 video másolása AVI file-ba!
Persze az ilyen videokat csak az MPlayer tudja lejátszani :) És
ezeknek a haszna gyakorlatilag nulla. A racionális felhasználása ennek
például amikor csak az audio stream-et kell enkódolni (pl tömörítetlen
PCM-et MP3-ba).-oac copy
opció): egyértelmű.
Lehetséges az audio streamet egy külső fileból (MP3, AC3, Vorbis) is venni,
ehhez az -audiofile <filenév>
opciót kell
használni.2.4.3.4 Hibás index-szel rendelkező AVI-k rendbehozása
mencoder -idx input.avi -ovc copy -oac copy -o output.avi
2.4.3.5 Enkódolás a libavcodec codec-ekkel
vcodec
opciónak, pl: -lavcopts vcodec=msmpeg4
mencoder -dvd 2 -o title2.avi -ovc lavc
-lavcopts vcodec=mjpeg -oac copy
2.4.3.6 Enkódolás több bemeneti file-ból (JPEG, PNG)
libjpeg
segítségével (PNG-k dekódolását a libpngvel végzi).
-mf
opció magyarázata a lenti összefoglaló
Opciók fejezetben, illetve a manpage-ben található.
mencoder \*.jpg -mf on:w=800:h=600:fps=25 -ovc divx4 -oac copy -o
kimenet.avi
mencoder frame001.jpg,frame002.jpg -mf on:w=800:h=600:fps=25 -ovc divx4 -oac copy -o
kimenet.avi
mencoder \*.jpg -mf on:w=800:h=600:fps=25 -ovc copy -oac copy
-o kimenet.avi
mencoder \*.png -mf on:w=800:h=600:fps=25:type=png -ovc raw -oac copy -o
kimenet.avi
mencoder \*.png -mf on:w=800:h=600:fps=25:type=png -ovc copy -oac copy
-o kimenet.avi
2.4.3.7 DVD feliratok VOBsub formátumúvá alakítása
.idx
és egy
.sub
kiterjesztésű file-ból állnak, gyakran egyetlen
.rar
archívba tömörítve. Az MPlayer képes az ilyen
feliratok megjelenítésére a -vobsub
és -vobsubid
opciókkal.-vobsubout
opcióval adhatod meg. Az index számot amin el lesz tárolva a felirat,
pedig a -vobsuboutindex
opcióval.-ifo
opciót, amivel
megadhatod hogy melyik file legyen .idx
-é alakítva..ifo
file,
használd a -vobsubid
opciót a használandó nyelv azonosítójának
kiválasztásához.
rm subtitles.idx subtitles.sub
mencoder -dvd 1 -vobsubout subtitles -vobsuboutindex 0
-sid 2 -o frameno.avi -ovc frameno -oac mp3lame -lameopts vbr=3
mencoder -dvd 1 -oac copy -ovc divx4 -pass 1
mencoder -dvd 1 -oac copy -ovc divx4 -pass 2 -vobsubout
subtitles -vobsuboutindex 1 -sid 5
rm subtitles.idx subtitles.sub
mencoder movie.mpg -ifo movie.ifo -vobsubout subtitles
-vobsuboutindex 0 -vobsuboutid fr -sid 1
2.4.4 Opciók