Mercurial > mplayer.hg
view DOCS/Hungarian/encoding.html @ 6145:26cb8736927b
Gui and 64-bit issues patch from Gui and 64-bit issues
author | pontscho |
---|---|
date | Mon, 20 May 2002 13:39:23 +0000 |
parents | 796510223658 |
children | d22870b5fc95 |
line wrap: on
line source
<HTML> <HEAD> <STYLE> .text {font-family : Verdana, Arial, Helvetica, sans-serif; font-size : 14px;} </STYLE> </HEAD> <BODY BGCOLOR=white> <FONT CLASS="text"> <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/ASF/OGG/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.</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#2.2.1.9">töltsd le és installáld az <B>XViD</B>-et</A>. Nagyon hasznos nem-Linux rendszerű gépeken, és/vagy ha a DivX4-nél gyorsabb, de kb azonos minőségű enkódolásra van szükséged.</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> - <CODE>libjpeg</CODE> és <CODE>libpng</CODE> - lásd az <A HREF="documentation.html#1.3">Installálás</A> fejezetet</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>opcionálisan külső audio stream használata</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! 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> </UL> </P> <P><B><I>Tervezett funkciók</I></B> : <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> </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> 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 -divx4opts br=1100 -o movie.avi -pass 1<BR> 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 CLASS="text"> <CODE>rm frameno.avi</CODE></TD> <TD><FONT CLASS="text"> <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 CLASS="text"> <CODE>mencoder <file/DVD> -ovc frameno -o frameno.avi</CODE></TD> <TD><FONT CLASS="text"> <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 CLASS="text"> <CODE>mencoder <file/DVD> -oac copy -pass 1 -divx4opts br=<bitrate></CODE></TD> <TD><FONT CLASS="text"> <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 CLASS="text"> <CODE>mencoder <file/DVD> -oac copy -pass 2 -divx4opts br=<bitrate></CODE></TD> <TD><FONT CLASS="text"> <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> 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<BR> <CODE> mencoder -dvd 2 -divx4opts br=1100 -oac copy -o movie.avi -pass 1<BR> 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>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 -divx4opts br=1300 -vop scale=640: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ű. 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> </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 -idx 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>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> <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.3.6>2.4.3.6. Enkódolás több bemeneti file-ból (JPEG, PNG)</B></P> <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.5>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 -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 -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 -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 -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 -o kimenet.avi</CODE></P> <P><B><A NAME=2.4.4>2.4.4. Szintaxis</B></P> <P> <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 CLASS="text"> <I>-ss</I> időpont</TD> <TD><FONT CLASS="text"> enkódolás indítása a megadott időponttól (csak keyframe-től indulhat !) </TD> </TR> <TR> <TD><FONT CLASS="text"> <I>-endpos</I> időpont/időtartam</TD> <TD><FONT CLASS="text"> enkódolás megállítása a megadott idő letelte után, vagy adott időpont elérésekor. Lásd a manpage-t ! </TD> </TR> <TR> <TD><FONT CLASS="text"> <I>-o</I> filenév</TD> <TD><FONT CLASS="text"> kimeneti filenév megadása </TD> </TR> <TR> <TD><FONT CLASS="text"> <I>-sws</I> 0-2</TD> <TD><FONT CLASS="text"> átmérezetési módszer meghatározása<BR> 0 - fast bilinear<BR> 1 - bilinear<BR> 2 - bicubic (legjobb minőség)<BR> </TD> </TR> <TR> <TD><FONT CLASS="text"> <I>-ovc</I> codecnév</TD> <TD><FONT CLASS="text"> Enkódolás a megadott codec-kel (a codec nevek a codecs.conf-ból származnak). Példák :<BR> <B>help</B> - codecek listája<BR> <B>rawrgb</B> - ?<BR> <B>copy</B> - nincs enkódolás, csak stream másolás (most csak AVI/ASF-ből)<BR> <B>divx4</B> - enkódolás DivX4-be<BR> <B>lavc</B> - enkódolás egy libavcodec-ben lévő codec-kel<BR> <B>vfw</B> - enkódolás egy Windows-os DLL-lel<BR> </TD> </TR> <TR> <TD><FONT CLASS="text"> <I>-oac</I> codecnév</TD> <TD><FONT CLASS="text"> Enkódolás a megadott codec-kel (a codec nevek a codecs.conf-ból származnak). Példák :<BR> <B>help</B> - codecek listája<BR> <B>copy</B> - nincs enkódolás, csak stream másolás (most csak AVI/ASF-ből, és csak CBR audiot)<BR> <B>pcm</B> - tömörítetlen PCM<BR> <B>mp3lame</B> - MP3 enkódolás<BR> </TD> </TR> <TR> <TD><FONT CLASS="text"> <I>-divx4opts</I></TD> <TD><FONT CLASS="text"> Ha DivX4-be enkódolsz, itt megadhatod a paramétereket, pl :<BR> <CODE>-divx4opts br=1800:deinterlace:key=250</CODE><BR> Leghasznosabb opciók: <B>(a teljes lista a manpage-ban található !)</B><BR> <B>help</B> - segíccség<BR> <B>br</B>=XXX - bitráta megadása kbit-ben <4-16000> vagy bitben <16001-24000000><BR> <B>q</B>=XXXX - minőség (1-leggyorsabb, 5-legjobb - alapértelmezett)<BR> <B>key</B>=XXXX - keyframe-k közötti időintervallum<BR> </TD> </TR> <TR> <TD><FONT CLASS="text"> <I>-lavcopts</I></TD> <TD><FONT CLASS="text"> Ha egy libavcodec-es codec-kel enkódolsz, itt megadhatod a paramétereket, pl :<BR> <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> <B>help</B> - segíccség<BR> <B>vcodec</B>=XXX - video codec kiválasztása (a teljes lista a fenti libavcodec bekezdésben megtalálható)<BR> <B>vbitrate</B>=XXX - bitráta megadása kbit-ben <4-16000> vagy bitben <16001-24000000><BR> <B>vhq</B> - legjobb minőség (?)<BR> <B>keyint</B>=XXX - keyframe-k közötti időintervallum<BR> </TD> </TR> <TR> <TD><FONT CLASS="text"> <I>-lameopts</I></TD> <TD><FONT CLASS="text"> Ha MP3-ba kódolsz, itt adhatod meg a paramétereket, pl :<BR> <CODE>-lameopts q=3</CODE><BR> <CODE>-lameopts br=192:cbr</CODE><BR> Leghasznosabb opciók: <B>(a teljes lista a manpage-ban található !)</B><BR> <B>help</B> - törpítség<BR> <B>cbr</B> - <B>CBR</B>-es MP3 kiválasztása (az alapértelmezett a <B>VBR</B>)<BR> <B>br</B>=XXX - bitráta megadása kbit-ben <0-1024> (csak <B>CBR</B>-nél!)<BR> <B>q</B>=XXXX - minőség (0-legjobb, 9-leggyorsabb) (csak <B>VBR</B>-nél!)<BR> <B>vbr</B>=XXXX - VBR alüzemmód (3-ABR, ennek van a legjobb sebesség/minőség mutatója) (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> mencoder -dvd 2 -o title2.avi</CODE></P> <P>Ugyanez libavcodec-kel, MJPEG tömörítéssel :<BR> <CODE> 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> mencoder -dvd 2 -vop scale=640:480 -sws 2 -o title2.avi</CODE></P> <P>Enkódolás HTTP-ről :<BR> <CODE> mencoder http://mplayer.hq/example.avi -o example.avi</CODE></P> <P>Enkódolás standard bemenetről :<BR> <CODE> 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> cat *.vob | mencoder <options> -</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> mencoder -tv on:driver=v4l:width=640:height=480 <options></CODE></P> <P>Az összes opció listájához <B><I>lásd a MEncoder manpage-t !</I></B> <P> </FONT> </BODY> </HTML>