mpv/DOCS/Hungarian/encoding.html

389 lines
17 KiB
HTML

<HTML>
<BODY BGCOLOR=white>
<FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>
<P><B><A NAME=2.4>2.4. Enkódolás a MEncoderrel</A></B></P>
<P><B><A NAME=2.4.1>2.4.1. Bevezető</B></P>
<P>A <B>MEncoder</B> (<B>MPlayer</B>'s Movie Encoder) egy egyszerű film
enkóder, az MPlayer által lejátszható formátumok
(<B>AVI/DVD/VCD/VOB/MPG/MOV/VIV/FLI/RM/NUV/NET</B>) más - MPlayerrel lejátszható -
formátumokba kódolására.
Sokféle codec-kel tud enkódolni, például <B>DivX4</B>-gyel (1 vagy 2 menetes),
a libavcodec-et alkotó codec-ekkel, audiot tekintve pedig
<B>PCM</B>/<B>MP3</B>/<B>VBR MP3</B> a választék. Rendelkezik továbbá stream
másoló, és video átméretező képességgel.</P>
<P><B><A NAME=2.4.2>2.4.2. Fordítás</B></P>
<P>
<UL>
<LI>olvasd el az <B>MPlayer</B> fordítási útmutatóját, mivel információt
tartalmaz arról hogy hogyan installálj <I>libdvdread-et</I> a <B>DVD</B>
támogatáshoz, stb.</LI>
<LI><B>OPCIONÁLIS</B> - töltsd le a legújabb <B>DivX4linux</B> könyvtárat például
<A HREF="http://avifile.sourceforge.net/download.htm">innen</A>, és
installáld HELYESEN. Ez szükséges a DivX4 (1/2 menetes) enkódoláshoz.</LI>
<LI><B>OPCIONÁLIS</B> - ha a libavcodec codec-ekkel is akarsz enkódolni,
installáld a libavcodec-et, ahogyan az a <A HREF="codecs.html#2.2.1.2">libavcodec
fejezetben</A> le van írva.</LI>
<LI><B>OPCIONÁLIS</B> -töltsd és fordítsd le a <B>libmp3lame-t</B> (a lame 3.89bétából vagy
CVS-ből).<BR>
<B>NE GCC 2.96-TAL FORDÍTSD ! Nem fog helyesen működni !</B><BR>
Ez szükségeltetik a CBR/VBR MP3 audio enkódoláshoz. Egy
egyszerű <CODE>lame</CODE> 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 <CODE>make test</CODE> paranccsal
ellenőrizheted. A kiírt számnak <B>30</B>-nál kevesebbnek kell lennie.
Azért ne ess pánikba ha pl <B>400</B> 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 <B>GCC 2.96</B>-ot.</LI>
</UL>
</P>
<P>Kész. Mint minden bizonnyal tudod, más enkódolóknak szüksége van az
<I>avifile</I> könyvtárra. A <B>MEncoder</B>-nek egyáltalán nincs.</P>
<P><B><A NAME=2.4.3>2.4.3. MEncoder funkciók</B></P>
<P>
<UL>
<LI>enkódolás az összes file formátumból amit az <B>MPlayer</B> lejátszani
képes</LI>
<LI>az ffmpeg/libavcodec által támogatott összes codec használata kódolásra
is</LI>
<LI>enkódolás <B>V4L kompatibilis TV tunerekről</B></LI>
<LI>enkódolása/multiplexelése interleaved AVI-knak, megfelelő index-szel</LI>
<LI>1, 2 vagy 3 menetes <B>DivX4</B> video</LI>
<LI><B>VBR</B> MP3 audio - <B>FONTOS</B> : a VBR-es mp3-ak nem minden
körülmények között lejátszhatóak windows rendszereken! Ha windows-on
(is) lejátszandó AVI-t akarsz létrehozni, csinálj CBR-es mp3-at!</LI>
<LI>PCM audio</LI>
<LI>stream másolás</LI>
<LI>bemeneti file A/V szinkronizálása (PTS-alapú, az -mc 0 opcióval
kikapcsolható)</LI>
<LI>FPS javítás az <CODE>-ofps</CODE> opcióval (hasznos ha 29.97fps-es
VOB-ot kódolsz 24fps-es AVI-ba)</LI>
<LI>kép átméretezése</LI>
</UL>
</P>
<P><B><I>Tervezett funkciók</I></B> :
<UL>
<LI>audio külön file-ból vétele (AC3, MP3, OGG)</LI>
<LI>még szélesebb skálája a be/kimeneti formátumoknak, codec-eknek
(VOB file-ok DivX4/Indeo5/VIVO videoval... :)</LI>
<LI>audio enkódolása v4l-ről</LI>
</UL>
</P>
<P><B><A NAME=2.4.3.1>2.4.3.1. 2, 3 menetes DivX4 enkódolása</B></P>
<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>&nbsp;&nbsp;&nbsp;&nbsp;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>&nbsp;&nbsp;&nbsp;&nbsp;mencoder -dvd 2 -divx4opts br=1100
-o movie.avi -pass 1<BR>
&nbsp;&nbsp;&nbsp;&nbsp;mencoder -dvd 2 -divx4opts br=1100
-o movie.avi -pass 2</CODE></P>
<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>
<P>
<TABLE>
<TR>
<TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>
<CODE>rm frameno.avi</CODE></TD>
<TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>
<B>egy esetleges előző 3 menetes enkódolásból származó file törlése,
mely konfliktolhat a most következővel</B></TD>
</TR>
<TR>
<TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>
<CODE>mencoder &lt;file/DVD&gt; -ovc frameno -o
frameno.avi</CODE></TD>
<TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>
<B><U>Első menet</U> : 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.</B></TD>
</TR>
<TR>
<TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>
<CODE>mencoder &lt;file/DVD&gt; -oac copy -pass 1
-divx4opts br=&lt;bitrate&gt;</CODE></TD>
<TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>
<B><U>Második menet</U> : 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.</B></TD>
</TR>
<TR>
<TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>
<CODE>mencoder &lt;file/DVD&gt; -oac copy -pass 2
-divx4opts br=&lt;bitrate&gt;</CODE></TD>
<TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>
<B><U>Harmadik menet</U> : 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!</B></TD>
</TR>
</TABLE>
</P>
<P><B>Példa a 3 menetes enkódolásra :</B></P>
<P><CODE>&nbsp;&nbsp;&nbsp;&nbsp;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>&nbsp;&nbsp;&nbsp;&nbsp;mencoder -dvd 2 -ovc frameno
-o frameno.avi<BR>
<CODE>&nbsp;&nbsp;&nbsp;&nbsp;mencoder -dvd 2
-divx4opts br=1100 -oac copy -o movie.avi -pass 1<BR>
&nbsp;&nbsp;&nbsp;&nbsp;mencoder -dvd 2 -divx4opts
br=1100 -oac copy -o movie.avi -pass 2</CODE>
</P>
<P><B><A NAME=2.4.3.2>2.4.3.2. Átméretezés</B></P>
<P>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.</P>
<P>A <B>MEncoder</B> képes nagyításra, ha a képeket YV12 formátumban kapja
(azaz például az ffdivx, odivx meghajtókkal, vagy mpeg1/2-t). A kimeneti file
képméretét az <CODE>-x</CODE> és <CODE>-y</CODE> opciókkal lehet megadni.
Ezenkívül 3 féle átméretezőszűrő közül is lehet választani, <I>0 : gyors
bilinear</I>, <I>1 : bilinear</I>, <I>2 : bicubic</I> (ennek van a legjobb
minősége). Ezt az <CODE>-sws</CODE> opcióval lehet megadni. Alapértelmezett
a 0 : gyors bilinear.</P>
<P>Az átméretezés egyszerű :<BR>
<CODE>&nbsp;&nbsp;&nbsp;&nbsp;mencoder sample-svcd.mpg -divx4opts br=1300 -x 640 -y 480 -sws 2 -o output.avi</CODE></P
<P><B><A NAME=2.4.3.3>2.4.3.3. Stream másolása</B></P>
<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>
<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ű.</LI>
</UL>
</P>
<P><B><A NAME=2.4.3.4>2.4.3.4. Hibás index-szel rendelkező AVI-k rendbehozása</B></P>
<P>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 input.avi -ovc copy -oac copy -o output.avi</CODE></P>
<P><B><A NAME=2.4.3.5>2.4.3.5. Enkódolás a <I>libavcodec</I> codec-ekkel</B></P>
<P>A <A HREF="codecs.html#2.2.1.2">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>
<P>
<UL>
<LI>mjpeg - Motion JPEG</LI>
<LI>h263p - H263 Plus</LI>
<LI>mpeg4 - DivX4</LI>
<LI>msmpeg4 - a régi DivX</LI>
<LI>rv10 - egy régi RealVideo codec</LI>
<LI>mpeg1video - MPEG1 video :)</LI>
</UL>
</P>
<P>Az első oszlopban felsorolt codec-eket kell átadni a
<CODE>vcodec</CODE> opciónak, pl : <CODE>-lavcopts vcodec=msmpeg4</CODE></P>
<P><B><A NAME=2.4.4>2.4.4. Szintaxis</B></P>
<P>&nbsp;&nbsp;<CODE>mencoder [opciók] [bemeneti file] [opciók] ...</P>
<P><B><A NAME=2.4.5>2.4.5. Opciók</B></P>
<P>Megj.: az összes rendelkezésre álló opcióhoz <B>olvasd el a manpage-t !</B></P>
<P>
Tekintve hogy a <B>MEncoder</B> alapjában véve ugyanarra a kódra épül amire
az <B>MPlayer</B>, sok olyan <B>MPlayer</B> opció van ami enkódolásnál is
használható. Például a <CODE>-sid</CODE> itt arra használható hogy a DVD
feliratokat bekódold a keletkező AVI-ba. Vagy a <CODE>-noidx</CODE> opcióval
itt is figyelmen kívül hagyható az esetleges hibás index a bemeneti AVI-ban.
</P>
<TABLE BORDER=1>
<TR>
<TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>
<I>-o</I> filenév</TD>
<TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>
kimeneti filenév megadása
</TD>
</TR>
<TR>
<TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>
<I>-x</I> szélesség pixelben</TD>
<TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>
kimeneti video átméretezése megadott szélességre
</TD>
</TR>
<TR>
<TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>
<I>-y</I> magasság pixelben</TD>
<TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>
kimeneti video átméretezése megadott magasságúra
</TD>
</TR>
<TR>
<TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>
<I>-sws</I> 0-2</TD>
<TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>
átmérezetési módszer meghatározása<BR>
&nbsp;&nbsp;0 - fast bilinear<BR>
&nbsp;&nbsp;1 - bilinear<BR>
&nbsp;&nbsp;2 - bicubic (legjobb minőség)<BR>
</TD>
</TR>
<TR>
<TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>
<I>-ovc</I> codecnév</TD>
<TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>
Enkódolás a megadott codec-kel (a codec nevek a codecs.conf-ból származnak). Példák :<BR>
&nbsp;&nbsp;<B>help</B> - codecek listája<BR>
&nbsp;&nbsp;<B>null</B> - a kimeneti AVI-ban nem lesz video stream<BR>
&nbsp;&nbsp;<B>raw</B> - tömörítetlen video létrehozása<BR>
&nbsp;&nbsp;<B>rawrgb</B> - ?<BR>
&nbsp;&nbsp;<B>copy</B> - nincs enkódolás, csak stream másolás (most csak AVI/ASF-ből)<BR>
&nbsp;&nbsp;<B>divx4</B> - enkódolás DivX4-be<BR>
&nbsp;&nbsp;<B>lavc</B> - enkódolás egy libavcodec-ben lévő codec-kel<BR>
&nbsp;&nbsp;<B>vfw</B> - enkódolás egy Windows-os DLL-lel<BR>
</TD>
</TR>
<TR>
<TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>
<I>-oac</I> codecnév</TD>
<TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>
Enkódolás a megadott codec-kel (a codec nevek a codecs.conf-ból származnak). Példák :<BR>
&nbsp;&nbsp;<B>help</B> - codecek listája<BR>
&nbsp;&nbsp;<B>copy</B> - nincs enkódolás, csak stream másolás (most csak AVI/ASF-ből, és csak CBR audiot)<BR>
&nbsp;&nbsp;<B>pcm</B> - tömörítetlen PCM<BR>
&nbsp;&nbsp;<B>mp3lame</B> - MP3 enkódolás<BR>
</TD>
</TR>
<TR>
<TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>
<I>-divx4opts</I></TD>
<TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>
Ha DivX4-be enkódolsz, itt megadhatod a paramétereket, pl :<BR>
&nbsp;&nbsp;<CODE>-divx4opts br=1800:deinterlace:key=250</CODE><BR>
Leghasznosabb opciók: <B>(a teljes lista a manpage-ban található !)</B><BR>
&nbsp;&nbsp;<B>help</B> - segíccség<BR>
&nbsp;&nbsp;<B>br</B>=XXX - bitráta megadása kbit-ben &lt;4-16000&gt; vagy bitben &lt;16001-24000000&gt;<BR>
&nbsp;&nbsp;<B>q</B>=XXXX - minőség (1-leggyorsabb, 5-legjobb - alapértelmezett)<BR>
&nbsp;&nbsp;<B>key</B>=XXXX - keyframe-k közötti időintervallum<BR>
</TD>
</TR>
<TR>
<TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>
<I>-lavcopts</I></TD>
<TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>
Ha egy libavcodec-es codec-kel enkódolsz, itt megadhatod a paramétereket, pl :<BR>
&nbsp;&nbsp;<CODE>-lavcopts vcodec=msmpeg4:vbitrate=1800:vhq:keyint=250</CODE><BR>
Leghasznosabb opciók: <B>(a teljes lista a manpage-ban található !)</B><BR>
&nbsp;&nbsp;<B>help</B> - segíccség<BR>
&nbsp;&nbsp;<B>vcodec</B>=XXX - video codec kiválasztása (a teljes lista a fenti libavcodec bekezdésben megtalálható)<BR>
&nbsp;&nbsp;<B>vbitrate</B>=XXX - bitráta megadása kbit-ben &lt;4-16000&gt; vagy bitben &lt;16001-24000000&gt;<BR>
&nbsp;&nbsp;<B>vhq</B> - legjobb minőség (?)<BR>
&nbsp;&nbsp;<B>keyint</B>=XXX - keyframe-k közötti időintervallum<BR>
</TD>
</TR>
<TR>
<TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>
<I>-lameopts</I></TD>
<TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>
Ha MP3-ba kódolsz, itt adhatod meg a paramétereket, pl :<BR>
&nbsp;&nbsp;<CODE>-lameopts q=3</CODE><BR>
&nbsp;&nbsp;<CODE>-lameopts br=192:cbr</CODE><BR>
Leghasznosabb opciók: <B>(a teljes lista a manpage-ban található !)</B><BR>
&nbsp;&nbsp;<B>help</B> - törpítség<BR>
&nbsp;&nbsp;<B>cbr</B> - <B>CBR</B>-es MP3 kiválasztása (az alapértelmezett a <B>VBR</B>)<BR>
&nbsp;&nbsp;<B>br</B>=XXX - bitráta megadása kbit-ben &lt;0-1024&gt; (csak <B>CBR</B>-nél!)<BR>
&nbsp;&nbsp;<B>q</B>=XXXX - minőség (0-legjobb, 9-leggyorsabb) (csak <B>VBR</B>-nél!)<BR>
</TD>
</TR>
</TABLE>
<P><B><A NAME=2.4.6>2.4.6. Példák</B></P>
<P>A <B>MEncoder</B> használata a legkönnyebb dolog a Földön.</P>
<P>A DVD 2-es fejezetének enkódolása :<BR>
<CODE>&nbsp;&nbsp;&nbsp;&nbsp;mencoder -dvd 2 -o title2.avi</CODE></P>
<P>Ugyanez libavcodec-kel, MJPEG tömörítéssel :<BR>
<CODE>&nbsp;&nbsp;&nbsp;&nbsp;mencoder -dvd 2 -o title2.avi -ovc lavc -lavcopts vcodec=mjpeg</CODE></P>
<P>A DVD 2-es fejezetének enkódolása, átméretezéssel :<BR>
<CODE>&nbsp;&nbsp;&nbsp;&nbsp;mencoder -dvd 2 -x 640 -y 480 -sws 2 -o title2.avi</CODE></P>
<P>Enkódolás HTTP-ről :<BR>
<CODE>&nbsp;&nbsp;&nbsp;&nbsp;mencoder http://mplayer.hq/example.avi -o example.avi</CODE></P>
<P>Enkódolás standard bemenetről :<BR>
<CODE>&nbsp;&nbsp;&nbsp;&nbsp;rar p test-SVCD.rar | mencoder -divx4opts br=800 -ofps 24 -pass 1 -- -</CODE></P>
<P>Több VOB file enkódolása :<BR>
<CODE>&nbsp;&nbsp;&nbsp;&nbsp;cat *.vob | mencoder &lt;options&gt; -</CODE></P>
<P>Enkódolás tuner-ről (a tuner opciók a <A HREF="documentation.html#2.5">TV input</A> fejezetben találhatóak) :<BR>
<CODE>&nbsp;&nbsp;&nbsp;&nbsp;mencoder -tv on:driver=v4l:width=640:height=480 &lt;options&gt;</CODE></P>
<P>Az összes opció listájához <B><I>lásd a MEncoder manpage-t !</I></B>
<P>
</FONT>
</BODY>
</HTML>