Mercurial > mplayer.hg
view DOCS/Hungarian/encoding.html @ 8310:171c99ff2649
.depend should be ignored.
author | diego |
---|---|
date | Thu, 28 Nov 2002 23:14:48 +0000 |
parents | 2ceab365858d |
children | be6f1b281620 |
line wrap: on
line source
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML> <HEAD> <LINK REL="stylesheet" TYPE="text/css" HREF="../default.css"> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-2"> </HEAD> <BODY> <H2><A NAME=2.4>2.4 Enkódolás a MEncoderrel</A></H2> <P>A rendelkezésre álló opciók és példák teljes listáját lásd a man page-ben.</P> <H3><A NAME=2pass>2.4.1 2, 3 menetes DivX4 enkódolása</A></H3> <P><U><B>2 menetes enkódolás:</B></U> az elnevezés onnan jön, hogy ezzel a módszerrel a file <I>kétszer</I> 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.</P> <P>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:<BR> <CODE> rm frameno.avi</CODE> - töröld ezt a file-t, ami egy esetleges előző 3 menetes enkódolásból származhat<BR> <CODE> mencoder -dvd 2 -ovc lavc -lavcopts vcodec=mpeg4:opciók -oac copy -o film.avi -pass 1<BR> <CODE> mencoder -dvd 2 -ovc lavc -lavcopts vcodec=mpeg4:opciók -oac copy -o film.avi -pass 2<BR> <P><U><B>3 menetes enkódolás:</B></U> 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 <B>MEncoder</B> 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ő:</P> <OL> <LI>egy esetleges előző 3 menetes enkódolásból származó file törlése, mely konfliktolhat a most következővel <P><CODE>rm frameno.avi</CODE></P></LI> <LI>Első menet: <P><CODE>mencoder <file/DVD> -ovc frameno -oac mp3lame -lameopts vbr=3:opciók -o frameno.avi</CODE></P> <P>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 <CODE>-lameopts</CODE> 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.</P></LI> <LI>Második menet: <P><CODE>mencoder <file/DVD> -oac copy -pass 1 -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=<bitráta></CODE></P> <P>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.</P></LI> <LI>Harmadik menet: <P><CODE>mencoder <file/DVD> -oac copy -pass 2 -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=<bitráta></CODE></P> <P>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 <CODE>frameno.avi</CODE>-ban levő audio belekerül a célfileba.. és kész is az egész!</P></LI> </OL> <H4>Példa a 3 menetes enkódolásra:</H4> <P><CODE> rm frameno.avi</CODE> - esetlegesen egy előző enkódolásbol származó file törlése (bezavar a most következőnek)<BR> <CODE> mencoder -dvd 2 -ovc frameno -o frameno.avi -oac mp3lame -lameopts vbr=3:opciók<BR> mencoder -dvd 2 -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=1100 -oac copy -o movie.avi -pass 1<BR> mencoder -dvd 2 -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=1100 -oac copy -o movie.avi -pass 2</CODE> </P> <P><U><B>2, vagy 3 menetes enkódolás a libavcodec 2 menetes kódjával:</B></U> 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.</P> <UL> <LI><B>2 menetes enkódolás:</B><BR> <CODE>rm -f lavc_stats.txt<BR> mencoder -dvd 2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 (audio-opciók) -o movie.avi<BR> mencoder -dvd 2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=2 (audio-opciók) -o movie.avi</CODE></LI> <LI><B>3 menetes enkódolás:</B><BR> <CODE>rm -f frameno.avi lavc_stats.txt<BR> mencoder -dvd 2 -ovc frameno (audio-opciók) -o frameno.avi<BR> mencoder -dvd 2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 -oac copy -o movie.avi<BR> mencoder -dvd 2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=2 -oac copy -o movie.avi</CODE></LI> </UL> <H3><A NAME=rescaling>2.4.2 Filmek átméretezése</A></H3> <P>Gyakran előjön a filmek átméretezésének igénye. Ennek sok oka lehet, például a fileméret csökkentése, illetve a szükséges hálózati sávszélesség csökkentése. A legtöbb ember átméretezést hajt végre DVD-k vagy SVCD-k DivX AVI-ba történő konvertálása során. <B>Ez helytelen.</B> Mielőtt te is ilyen megoldásra vetemednél, olvasd el az <A HREF="#aspect">Aspect ratio megőrzése</A> fejezetet.</P> <P>Az átméretezést a <I>'scale'</I> nevű video filter végzi: <CODE>-vop scale=X:Y</CODE>. A minőségét pedig az <CODE>-sws</CODE> opcióval lehet megadni (lásd a manpage-t). Alapértelmezett a 0: gyors bilinear.</P> <P>Használata:<BR> <CODE> mencoder sample-svcd.mpg -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=1300 -vop scale=640:480 -oac copy -o output.avi</CODE></P> <H3><A NAME=copying>2.4.3 Stream másolása</A></H3> <P>A <B>MEncoder</B> kétféleképpen tudja a bemeneti stream-eket kezelni: <B>enkódolja</B> vagy csak <B>átmásolja</B> őket. Ez a rész a <B>másolásról</B> szól.</P> <UL> <LI><B>Video stream-ek</B> (<CODE>-ovc copy</CODE> opció): érdekes dolgokat lehet vele csinálni :)<BR> Mint például FLI vagy VIVO vagy MPEG1 video másolása AVI file-ba! Persze az ilyen videokat csak az <B>MPlayer</B> 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).</LI> <LI><B>Audio stream-ek</B> (<CODE>-oac copy</CODE> opció): egyértelmű. Lehetséges az audio streamet egy külső fileból (MP3, AC3, Vorbis) is venni, ehhez az <CODE>-audiofile <filenév></CODE> opciót kell használni.</LI> </UL> <H3><A NAME=fixing>2.4.4 Hibás index-szel rendelkező AVI-k rendbehozása</A></H3> <P>A legkönnyebb dolog a világon. Egyszerűen átmásoljuk a video és audio streameket, és közben a <B>MEncoder</B> 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.</P> <P>A parancs: <CODE>mencoder -idx input.avi -ovc copy -oac copy -o output.avi</CODE></P> <H3><A NAME=libavcodec>2.4.5 Enkódolás a <I>libavcodec</I> codec-ekkel</A></H3> <P>A <A HREF="codecs.html#libavcodec">libavcodec</A>-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:</P> <UL> <LI>mjpeg - Motion JPEG</LI> <LI>h263 - H263</LI> <LI>h263p - H263 Plus</LI> <LI>mpeg4 - DivX4</LI> <LI>msmpeg4 - a régi DivX</LI> <LI>msmpeg4v2 - Micro$oft MPEG4 v2 (a DivX alias MP43 elődje)</LI> <LI>rv10 - egy régi RealVideo codec</LI> <LI>mpeg1video - MPEG1 video :)</LI> </UL> <P>Az első oszlopban felsorolt codec-eket kell átadni a <CODE>vcodec</CODE> opciónak, pl: <CODE>-lavcopts vcodec=msmpeg4</CODE></P> <P>Egy példa, MJPEG tömörítéssel:<BR> <CODE> mencoder -dvd 2 -o title2.avi -ovc lavc -lavcopts vcodec=mjpeg -oac copy</CODE></P> <H3><A NAME=image_files>2.4.6 Enkódolás több bemeneti file-ból (JPEG, PNG)</A></H3> <P>A <B>MEncoder</B> 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.</P> <P><B><I>A folyamat magyarázata</I></B></P> <P>Először a <B>MEncoder</B> <I>dekódolja</I> a bemeneti fileokat a <CODE>libjpeg</CODE> segítségével (PNG-k dekódolását a libpngvel végzi). </P> <P>A <B>MEncoder</B> 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> <P><B><I>Példák</I></B></P> <P>Az <CODE>-mf</CODE> opció magyarázata a lenti összefoglaló <A HREF=#2.4.3>Opciók</A> fejezetben, illetve a manpage-ben található.</P> <P><I>DivX4 film létrehozása az aktuális könyvtárban található összes JPEG fileból:</I><BR> <CODE>mencoder \*.jpg -mf on:w=800:h=600:fps=25 -ovc divx4 -oac copy -o kimenet.avi</CODE></P> <P><I>DivX4 film létrehozása néhány JPEG fileból:</I><BR> <CODE>mencoder frame001.jpg,frame002.jpg -mf on:w=800:h=600:fps=25 -ovc divx4 -oac copy -o kimenet.avi</CODE></P> <P><I>MJPEG (Motion JPEG) film létrehozása az aktuális könyvtárban található összes JPEG fileból:</I><BR> <CODE>mencoder \*.jpg -mf on:w=800:h=600:fps=25 -ovc copy -oac copy -o kimenet.avi</CODE></P> <P><I>Tömörítetlen film létrehozása az aktuális könyvtárban található összes PNG fileból:</I><BR> <CODE>mencoder \*.png -mf on:w=800:h=600:fps=25:type=png -ovc raw -oac copy -o kimenet.avi</CODE></P> <P><I>MPNG (Motion PNG) film létrehozása az aktuális könyvtárban található összes PNG fileból:</I><BR> <CODE>mencoder \*.png -mf on:w=800:h=600:fps=25:type=png -ovc copy -oac copy -o kimenet.avi</CODE></P> <H3><A NAME=vobsub>2.4.7 DVD feliratok VOBsub formátumúvá alakítása</A></H3> <P>A <B>MEncoder</B> képes DVD-ről kivonni a feliratot, és átalakítani Vobsub formátumú felirattá. Ezek egy <CODE>.idx</CODE> és egy <CODE>.sub</CODE> kiterjesztésű file-ból állnak, gyakran egyetlen <CODE>.rar</CODE> archívba tömörítve. Az <B>MPlayer</B> képes az ilyen feliratok megjelenítésére a <CODE>-vobsub</CODE> és <CODE>-vobsubid</CODE> opciókkal.</P> <P>Az alap filenevet (tehát kiterjesztés nélkül) a <CODE>-vobsubout</CODE> opcióval adhatod meg. Az index számot amin el lesz tárolva a felirat, pedig a <CODE>-vobsuboutindex</CODE> opcióval.</P> <P>Ha a bemeneti file nem DVD, használd az <CODE>-ifo</CODE> opciót, amivel megadhatod hogy melyik file legyen <CODE>.idx</CODE>-é alakítva.</P> <P>Ha a bemeneti file nem DVD, de nincs meg hozzá az <CODE>.ifo</CODE> file, használd a <CODE>-vobsubid</CODE> opciót a használandó nyelv azonosítójának kiválasztásához.</P> <P>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> <P><B>Példák</B></P> <P><I>Két felirat másolása DVD-ről, 3 menetes enkódolás közben</I><BR> <CODE>rm subtitles.idx subtitles.sub</CODE><BR> <CODE>mencoder -dvd 1 -vobsubout subtitles -vobsuboutindex 0 -sid 2 -o frameno.avi -ovc frameno -oac mp3lame -lameopts vbr=3</CODE><BR> <CODE>mencoder -dvd 1 -oac copy -ovc divx4 -pass 1</CODE><BR> <CODE>mencoder -dvd 1 -oac copy -ovc divx4 -pass 2 -vobsubout subtitles -vobsuboutindex 1 -sid 5</CODE></P> <P><I>Francia nyelvű felirat másolása MPEG-ből</I><BR> <CODE>rm subtitles.idx subtitles.sub</CODE><BR> <CODE>mencoder movie.mpg -ifo movie.ifo -vobsubout subtitles -vobsuboutindex 0 -vobsuboutid fr -sid 1</CODE></P> <H3><A NAME=aspect>2.4.8 Aspect ratio megőrzése</A></H3> <P>A DVD-k és az SVCD-k (tehát az MPEG1/2 file-ok) tartalmazzák azt az értéket amiből a lejátszó tudni fogja merre és mennyire kell a képet széthúzni, hogy ne tojásfejű emberek ugráljanak a képen (például: 480x480 + 4:3 = 640x480). Viszont amikor az ilyen file-okat AVI-ba (DivX) konvertáljuk, szembe találjuk magunkat a problémával miszerint az AVI formátum nem képes ezt az értéket (aspect ratio) eltárolni. A filmek felbontásának átméretezése undorító, és időigényes feladat, kell hát legyen egy jobb megoldás!</P> <P>Van is.</P> <P>Az MPEG4 formátumnak egyik egyedülálló tulajdonsága, hogy beleírható az aspect ratio értéke (csakúgy mint az MPEG1/2 file-oknál). Ennek egyetlen hátulütője, hogy jelenleg az MPlayer az egyetlen lejátszó amelynek megvan ez a képessége.</P> <P>A használata csakis a <B>libavcodec</B> <CODE>mpeg4</CODE> codec-ével lehetséges.</P> <P>Semmiképpen ne felejtsd el levágni a film tetejéről és aljáról a fekete sávokat. Lásd TODO.</P> <H4>Használata:</H4> <P><CODE>$ mencoder sample-svcd.mpg -ovc lavc -lavcopts vcodec=mpeg4:aspect=16.0/9.0 -vop crop=714:548:0:14 -oac copy -o output.avi</CODE></P> </BODY> </HTML>