view DOCS/Hungarian/encoding.html @ 3859:686ba9f9393c

scaling only works with YV12
author gabucino
date Fri, 28 Dec 2001 22:14:18 +0000
parents 66da035c4ee2
children 7510f142e7aa
line wrap: on
line source

<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/NET</B>) más - MPlayerrel lejátszható -
formátumokba kódolására.
Jelenleg béta verzió, és csak <B>DivX4</B> (1 vagy 2 menet) videoba, és
<B>PCM</B>/<B>MP3</B>/<B>VBRMP3</B> audioba tud kódolni. Rendelkezik továbbá
stream másoló képességgel. A közeljövőben tervezzük vágó, átméretező filterek
beépítését, és hasonlókat.</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.
      És mivel jelenleg ez az egyetlen módszer, a MEncoder csak Linuxon
      működik.</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>
    <LI><B>OPCIONÁLIS</B> -Futtasd a <CODE>./configure-t</CODE> az opcionális paramétereiddel
      (az <CODE>--enable-tv</CODE> opció bekapcsolja a V4L tunerekről
      grabbelő kódot), és ird be : <CODE>make mencoder</CODE>, aztán
      <CODE>make install</CODE>.</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>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 vagy 2 menetes <B>DivX4</B> video</LI>
    <LI><B>VBR</B> MP3 audio</LI>
    <LI>PCM audio</LI>
    <LI>stream másolás (csak CBR audiot)</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>VBR audio stream másolás</LI>
    <LI>még szélesebb skálája a be/kimeneti formátumoknak, codec-eknek
      (VOB file-ok DivX4/Indeo5/VIVO videoval... :)</LI>
  </UL>
</P>

<P><B><A NAME=2.4.3.1>2.4.3.1.  2 menetes DivX4 enkódolása</B></P>

<P>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;mencoder -dvd 2 -ovc divx4 -oac mp3lame -divx4opts br=1100
-o movie.avi -pass 1<BR>
&nbsp;&nbsp;&nbsp;&nbsp;mencoder -dvd 2 -ovc divx4 -oac mp3lame -divx4opts br=1100 -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.</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 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 :</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>

<TABLE BORDER=0>
<TR>
  <TD>&nbsp;&nbsp;</TD>
  <TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>
    <I>-o</I> filenév</TD>
  <TD>&nbsp;&nbsp;</TD>
  <TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>
    kimeneti filenév megadása
  </TD>
</TR>
<TR>
  <TD>&nbsp;&nbsp;</TD>
  <TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>
    <I>-x</I> szélesség pixelben</TD>
  <TD>&nbsp;&nbsp;</TD>
  <TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>
    kimeneti video átméretezése megadott szélességre
  </TD>
</TR>
<TR>
  <TD>&nbsp;&nbsp;</TD>
  <TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>
    <I>-y</I> magasság pixelben</TD>
  <TD>&nbsp;&nbsp;</TD>
  <TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>
    kimeneti video átméretezése megadott magasságúra
  </TD>
</TR>
<TR>
  <TD>&nbsp;&nbsp;</TD>
  <TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>
    <I>-sws</I> 0-2</TD>
  <TD>&nbsp;&nbsp;</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>&nbsp;&nbsp;</TD>
  <TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>
    <I>-ovc</I> codecnév</TD>
  <TD>&nbsp;&nbsp;</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)<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>
  </TD>
</TR>
<TR>
  <TD>&nbsp;&nbsp;</TD>
  <TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>
    <I>-oac</I> codecnév</TD>
  <TD>&nbsp;&nbsp;</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>&nbsp;&nbsp;</TD>
  <TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>
    <I>-divx4opts</I></TD>
  <TD>&nbsp;&nbsp;</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>&nbsp;&nbsp;</TD>
  <TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>
    <I>-lavcopts</I></TD>
  <TD>&nbsp;&nbsp;</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>&nbsp;&nbsp;</TD>
  <TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>
    <I>-lameopts</I></TD>
  <TD>&nbsp;&nbsp;</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 -ffourcc mjpg</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>