view DOCS/Hungarian/encoding.html @ 8200:3ae71e4f2858

disable dr1 for huffyuv (422P & stride hack & dr1 -> bad )
author michael
date Fri, 15 Nov 2002 00:12:38 +0000
parents ccd95b547f6d
children 2ceab365858d
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 <B>MEncoder</B> (<B>MPlayer</B>'s Movie Encoder) egy egyszerű film
  enkóder, az MPlayer által lejátszható formátumok
  (<B>AVI/ASF/OGG/DVD/VCD/VOB/MPG/MOV/VIV/FLI/RM/NUV/NET/PVA</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>


<H3><A NAME=compilation>2.4.1 Fordítás</A></H3>

<P>
  <UL>
    <LI><B>OPCIONÁLIS</B> - olvasd el az <B>MPlayer</B> fordítási útmutatóját.</LI>
    <LI><B>OPCIONÁLIS (CSAK LINUX)</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> - <A HREF="codecs.html#xvid">töltsd le és
      installáld az <B>XViD</B>-et</A>. Nem túl hasznos, a libavcodec
      <I>mpeg4</I> codec-e sokkal gyorsabban és jobb minőségben kódol.</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#libavcodec">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>A lame 3.90 előtti verzióit NE GCC 2.96-TAL FORDÍTSD! Nem fognak
      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> - <CODE>libjpeg</CODE> és <CODE>libpng</CODE> -
      lásd az <A HREF="documentation.html#installation">Installálás</A> 
      fejezetet</LI>
  </UL>
</P>

<P>Kész. Mint minden bizonnyal tudod, más enkódolóknak szükségük van az
  <I>avifile</I> könyvtárra. A <B>MEncoder</B>-nek egyáltalán nincs.</P>

<H3><A NAME=features>2.4.2 MEncoder funkciók</A></H3>

<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>opcionálisan külső audio stream használata</LI>
    <LI>1, 2 vagy 3 menetes enkódolás</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! Viszont a
      <B>MEncoderrel</B> által létrehozott CBR AVI-k teljesen lejátszhatatlanok
      Win32 lejátszókkal :)</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>a video filter réteg használata (crop, expand, flip, postprocess,
      rotate, scale, RGB/YUV konverzió)</LI>
    <LI>a kimeneti file-ba bele tudja kódolni mind a DVD/VOBsub, mind a
      szöveges feliratokat</LI>
    <LI>DVD feliratok külső VOBsub file-ba történő rippelése</LI>
  </UL>
</P>

<H4>Tervezett funkciók:</H4>

<UL>
  <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 (BSD-n már kész?)</LI>
</UL>

<H4><A NAME=2pass>2.4.2.1 2, 3 menetes DivX4 enkódolása</A></H4>

<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 -ovc lavc -lavcopts
    vcodec=mpeg4:opciók -oac copy -o film.avi -pass 1<BR>
  <CODE>&nbsp;&nbsp;&nbsp;&nbsp;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 &lt;file/DVD&gt; -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 &lt;file/DVD&gt; -oac copy -pass 1 -ovc lavc -lavcopts
      vcodec=mpeg4:vbitrate=&lt;bitráta&gt;</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 &lt;file/DVD&gt; -oac copy -pass 2 -ovc lavc -lavcopts
      vcodec=mpeg4:vbitrate=&lt;bitráta&gt;</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>&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 -oac mp3lame -lameopts vbr=3:opciók<BR>
  &nbsp;&nbsp;&nbsp;&nbsp;mencoder -dvd 2 -ovc lavc
    -lavcopts vcodec=mpeg4:vbitrate=1100 -oac copy -o movie.avi -pass 1<BR>
  &nbsp;&nbsp;&nbsp;&nbsp;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>


<H4><A NAME=rescaling>2.4.2.2 Átméretezés</A></H4>

<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>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>&nbsp;&nbsp;&nbsp;&nbsp;mencoder sample-svcd.mpg -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=1300 -vop
  scale=640:480 -oac copy -o output.avi</CODE></P>

<H4><A NAME=copying>2.4.2.3 Stream másolása</A></H4>

<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 &lt;filenév&gt;</CODE> opciót kell
    használni.</LI>
</UL>

<H4><A NAME=fixing>2.4.2.4 Hibás index-szel rendelkező AVI-k rendbehozása</A></H4>

<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>


<H4><A NAME=libavcodec>2.4.2.5 Enkódolás a <I>libavcodec</I> codec-ekkel</A></H4>

<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>&nbsp;&nbsp;&nbsp;&nbsp;mencoder -dvd 2 -o title2.avi -ovc lavc
    -lavcopts vcodec=mjpeg -oac copy</CODE></P>


<H4><A NAME=image_files>2.4.2.6 Enkódolás több bemeneti file-ból (JPEG, PNG)</A></H4>

<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>
  &nbsp;&nbsp;<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>
  &nbsp;&nbsp;<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>
  &nbsp;&nbsp;<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>
  &nbsp;&nbsp;<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>
  &nbsp;&nbsp;<CODE>mencoder \*.png -mf on:w=800:h=600:fps=25:type=png -ovc copy -oac copy
  -o kimenet.avi</CODE></P>


<H4><A NAME=vobsub>2.4.2.7  DVD feliratok VOBsub formátumúvá alakítása</A></H4>

<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>
  &nbsp;&nbsp;<CODE>rm subtitles.idx subtitles.sub</CODE><BR>
  &nbsp;&nbsp;<CODE>mencoder -dvd 1 -vobsubout subtitles -vobsuboutindex 0
    -sid 2 -o frameno.avi -ovc frameno -oac mp3lame -lameopts vbr=3</CODE><BR>
  &nbsp;&nbsp;<CODE>mencoder -dvd 1 -oac copy -ovc divx4 -pass 1</CODE><BR>
  &nbsp;&nbsp;<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>
  &nbsp;&nbsp;<CODE>rm subtitles.idx subtitles.sub</CODE><BR>
  &nbsp;&nbsp;<CODE>mencoder movie.mpg -ifo movie.ifo -vobsubout subtitles
    -vobsuboutindex 0 -vobsuboutid fr -sid 1</CODE></P>

<H3><A NAME=options>2.4.3 Opciók</A></H3>

<P>A rendelkezésre álló összes opció listája példákkal együtt a manpage-ben
  található.</P>

</BODY>
</HTML>