diff options
author | gabrov <gabrov@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2005-04-24 22:09:53 +0000 |
---|---|---|
committer | gabrov <gabrov@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2005-04-24 22:09:53 +0000 |
commit | 4b75c84e8bd480a97d7430db2d16ddd18b377594 (patch) | |
tree | 3a8d578b3f68ca8916c552a65e32753016eb6e16 /DOCS/xml | |
parent | 9390a34f0f5b416fc238c55a35f2799431032ed5 (diff) | |
download | mpv-4b75c84e8bd480a97d7430db2d16ddd18b377594.tar.bz2 mpv-4b75c84e8bd480a97d7430db2d16ddd18b377594.tar.xz |
synced with 1.55 (initial translation)
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@15255 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'DOCS/xml')
-rw-r--r-- | DOCS/xml/hu/mencoder.xml | 2336 |
1 files changed, 2336 insertions, 0 deletions
diff --git a/DOCS/xml/hu/mencoder.xml b/DOCS/xml/hu/mencoder.xml new file mode 100644 index 0000000000..79ab61f248 --- /dev/null +++ b/DOCS/xml/hu/mencoder.xml @@ -0,0 +1,2336 @@ +<?xml version="1.0" encoding="iso-8859-2"?> +<!-- synced to 1.55 --> +<chapter id="mencoder"> +<title>Kódolás a <application>MEncoder</application>rel</title> + +<para> +A <application>MEncoder</application> összes használható kapcsolójához és +a példákhoz kérlek nézd meg a man oldalt. Mindennapi példákért és a számos +kódolási paraméter bővebb leírásáért olvasd el a +<ulink url="../../tech/encoding-tips.txt">kódolási tippeket</ulink>, amiket +számos levelezési lista szálból gyűjtöttünk össze az MPlayer-users-ről. +Kereshetsz az +<ulink url="http://mplayerhq.hu/pipermail/mplayer-users/">archívumban</ulink> +a rengeteg beszélgetés között, melyek a <application>MEncoder</application>rel +történő kódolást több szempontból vizsgálják és kiemelik a problémákat vele +kapcsolatban. +</para> + +<sect1 id="menc-feat-mpeg4"> +<title>Két menetes MPEG-4 ("DivX") kódolás</title> + +<para> +A név abból a tényből ered, hogy ez a módszer a fájlt <emphasis>kétszer</emphasis> +kódolja át. Az első kódolás (szinkronizációs lépés) létrehoz pár ideiglenes, +néhány megabájtos fájlt (<filename>*.log</filename>), ezeket ne töröld le +még (az AVI-t letörölheted). A második lépésben, a két menetes kimenet +fájl lesz létrehozva, az ideiglenes fájlok bitrátájának felhasználásával. Az +eredmény fájlnak sokkal jobb lesz a képminősége. Ha most hallasz erről először, +nézz meg pár a neten elérhető leírást. +</para> + +<example> +<title>audió sáv másolása</title> +<para> +Egy DVD két menetes kódolása MPEG-4 ("DivX") AVI-ba az audió sáv +másolásával. +<screen> +mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 -oac copy -o <replaceable>movie.avi</replaceable> +mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=2 -oac copy -o <replaceable>movie.avi</replaceable> +</screen> +</para> +</example> + +<example> +<title>audió sáv kódolása</title> +<para> +Egy DVD két menetes kódolása MPEG-4 ("DivX") AVI-ba az audió sáv +MP3-ba alakításával. +<screen> +mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 -oac mp3lame -lameopts vbr=3 -o <replaceable>movie.avi</replaceable> +mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=2 -oac mp3lame -lameopts vbr=3 -o <replaceable>movie.avi</replaceable> +</screen> +</para> +</example> +</sect1> + +<sect1 id="menc-feat-mpeg"> +<title>Kódolás MPEG formátumba</title> +<para> +A <application>MEncoder</application> létre készíteni MPEG (MPEG-PS) formátumú +kimeneti fájlokat. Valószínűleg csak a +<link linkend="ffmpeg"><systemitem class="library">libavcodec</systemitem></link> +<emphasis>mpeg1video</emphasis> codec-jével hasznos ez, mert a lejátszók - az +<application>MPlayer</application> kivételével - MPEG-1 videó és MPEG-1 layer 2 (MP2) +audió folyamokra számítanak az MPEG fájlokban. +</para> + +<para> +Ez a tulajdonság jelenleg nem túl hasznos, emellett valószínűleg tele van hibával, +de fontos, mert a <application>MEncoder</application> jelenleg nem tud +MPEG-1 layer 2 (MP2) audióba kódolni, amit minden más lejátszó vár az MPEG fájlokban. +</para> + +<para> +A <application>MEncoder</application> kimeneti fájl formátumának megváltoztatásához +használd a <option>-of mpeg</option> kapcsolót. +</para> + +<para> +Példa: +<screen> +mencoder -of mpeg -ovc lavc -lavcopts vcodec=mpeg1video -oac copy <replaceable>egyéb_kapcsolók</replaceable> <replaceable>media.avi</replaceable> -o <replaceable>output.mpg</replaceable> +</screen> +</para> +</sect1> + + +<sect1 id="menc-feat-rescale"> +<title>Filmek átméretezése</title> + +<para> +Gyakran szükséged lehet a videó képméretének átméretezésére. Ennek több oka +lehet: fájl méretének csökkentése, hálózati sávszélesség, stb. A legtöbb ember +akkor is végez átméretezést, amikor DVD-ket vagy SVCD-ket konvertál DivX AVI-ba. +Ha át szeretnél méretezni, olvasd el a <link linkend="aspect">képméret arányok megtartásáról</link> +szóló részt. +</para> + +<para> +A méretezési eljárást a <literal>scale</literal> videó szűrő végzi: +<option>-vf scale=<replaceable>szélesség</replaceable>:<replaceable>magasság</replaceable></option>. +A minősége beállítható a <option>-sws</option> kapcsolóval. +Ha ez nincs megadva, akkor a <application>MEncoder</application> a 2: bicubic-et használja. +</para> + +<para> +Használat: +<screen> +mencoder <replaceable>input.mpg</replaceable> -ovc lavc -lavcopts vcodec=mpeg4 -vf scale=640:480 -o <replaceable>output.avi</replaceable> +</screen> +</para> +</sect1> + + +<sect1 id="menc-feat-streamcopy"> +<title>Stream másolás</title> + +<para> +<application>MEncoder</application> kétféleképpen tudja kezelni a folyamokat: +<emphasis role="bold">kódolni</emphasis> vagy <emphasis role="bold">másolni</emphasis> +tudja őket. Ez a rész a <emphasis role="bold">másolásról</emphasis> szól. +</para> + +<itemizedlist> +<listitem><para> + <emphasis role="bold">Videó stream</emphasis> (<option>-ovc copy</option> kapcsoló): + szép dolgokat lehet vele csinálni :) Például FLI vagy VIVO vagy + MPEG-1 videót tenni (nem konvertálni!) AVI fájlba! Természetesen csak az + <application>MPlayer</application> tudja lejátszani az ilyen fájlokat :) Ennek + valószínűleg gyakorlati haszna nincs. Ésszerűbben: a videó stream másolása + hasznos lehet például ha csak az audió stream-et kell kódolni (például + tömörítetlen PCM-et MP3-ba). + </para></listitem> +<listitem><para> + <emphasis role="bold">Audió stream</emphasis> (<option>-oac copy</option> kapcsoló): + őszintén szólva... Bele lehet mixelni egy külső audió fájlt (MP3, WAV) a + kimeneti stream-be. Használd a + <option>-audiofile <replaceable>fájlnév</replaceable></option> kapcsolót + ehhez. + </para></listitem> +</itemizedlist> +</sect1> + + +<sect1 id="menc-feat-enc-libavcodec"> +<title>Kódolás a <systemitem class="library">libavcodec</systemitem> codec családdal</title> + +<para> +A <link linkend="ffmpeg"><systemitem class="library">libavcodec</systemitem></link> +számos érdekes videó és audió formátumba történő egyszerű kódolást biztosít. +A következő codec-ekbe kódolhatsz (többé-kevésbé friss lista): + +<informaltable frame="all"> +<tgroup cols="2"> +<thead> +<row><entry>Codec neve</entry><entry>Leírás</entry></row> +</thead> +<tbody> +<row><entry>mjpeg</entry><entry> + Motion JPEG + </entry></row> +<row><entry>ljpeg</entry><entry> + Veszteségmentes JPEG + </entry></row> +<row><entry>h263</entry><entry> + H.263 + </entry></row> +<row><entry>h263p</entry><entry> + H.263+ + </entry></row> +<row><entry>mpeg4</entry><entry> + ISO szabvány MPEG-4 (DivX 5, XVID kompatibilis) + </entry></row> +<row><entry>msmpeg4</entry><entry> + Szabvány előtti MPEG-4 variáns az MS-től, v3 (AKA DivX3) + </entry></row> +<row><entry>msmpeg4v2</entry><entry> + Szabvány előtti MPEG-4 az MS-től, v2 (régi asf fájlokban használják) + </entry></row> +<row><entry>wmv1</entry><entry> + Windows Media Video, 1-es verzió (AKA WMV7) + </entry></row> +<row><entry>wmv2</entry><entry> + Windows Media Video, 2-es verzió (AKA WMV8) + </entry></row> +<row><entry>rv10</entry><entry> + egy régi RealVideo codec + </entry></row> +<row><entry>mpeg1video</entry><entry> + MPEG-1 videó + </entry></row> +<row><entry>mpeg2video</entry><entry> + MPEG-2 videó + </entry></row> +<row><entry>huffyuv</entry><entry> + veszteségmentes tömörítés + </entry></row> +<row><entry>asv1</entry><entry> + ASUS Video v1 + </entry></row> +<row><entry>asv2</entry><entry> + ASUS Video v2 + </entry></row> +<row><entry>ffv1</entry><entry> + az FFmpeg veszteségmentes videó codec-je + </entry></row> +</tbody> +</tgroup> +</informaltable> + +Az első oszlop a codec neveket tartalmazza, amit a <literal>vcodec</literal> opció után +kell megadni, például: <option>-lavcopts vcodec=msmpeg4</option> +</para> + +<informalexample> +<para> +Egy példa MJPEG tömörítéssel: +<screen>mencoder dvd://2 -o title2.avi -ovc lavc -lavcopts vcodec=mjpeg -oac copy</screen> +</para> +</informalexample> +</sect1> + + +<sect1 id="menc-feat-enc-images"> +<title>Kódolás több bemeneti képfájlból (JPEG, PNG, TGA, SGI)</title> + +<para> +A <application>MEncoder</application> képes egy vagy több JPEG, PNG vagy TGA fájlból +film létrehozására. Egy egyszerű framecopy-val MJPEG (Motion JPEG), +MPNG (Motion PNG) vagy MTGA (Motion TGA) fájlokat tud létrehozni. +</para> + +<orderedlist> +<title>A folyamat leírása:</title> +<listitem><para> + A <application>MEncoder</application> <emphasis>dekódolja</emphasis> a bemeneti + képe(ke)t a <systemitem class="library">libjpeg</systemitem>-gel (ha PNG-ket + dekódol, akkor a <systemitem class="library">libpng</systemitem>-vel). + </para></listitem> +<listitem><para> + Ezután a <application>MEncoder</application> a dekódolt képeket a kiválasztott + videó tömörítőnek adja át (DivX4, XviD, FFmpeg msmpeg4, stb.). + </para></listitem> +</orderedlist> + +<formalpara> +<title>Példák</title> +<para> +A <option>-mf</option> kapcsoló magyarázata a man oldalon található. + +<informalexample> +<para> +Egy MPEG-4-es fájl létrehozása az aktuális könyvtárból található összes JPEG fájlból: +<screen> +mencoder mf://*.jpg -mf w=800:h=600:fps=25:type=jpg -ovc lavc -lavcopts vcodec=mpeg4 -oac copy -o <replaceable>output.avi</replaceable> +</screen> +</para> +</informalexample> + +<informalexample> +<para> +Egy MPEG-4 fájl létrehozása néhány JPEG fájlból az aktuális könyvtárban: +<screen> +mencoder mf://<replaceable>frame001.jpg,frame002.jpg</replaceable> -mf w=800:h=600:fps=25:type=jpg -ovc lavc -lavcopts vcodec=mpeg4 -oac copy -o <replaceable>output.avi</replaceable> +</screen> +</para> +</informalexample> + +<informalexample> +<para> +Egy Motion JPEG (MJPEG) fájl készítése az aktuális könyvtár összes JPEG fájlából: +<screen> +mencoder mf://*.jpg -mf w=800:h=600:fps=25:type=jpg -ovc copy -oac copy -o <replaceable>output.avi</replaceable> +</screen> +</para> +</informalexample> + +<informalexample> +<para> +Egy tömörítetlen fájl létrehozása az aktuális könyvtár összes PNG fájlából: +<screen> +mencoder mf:// -mf w=800:h=600:fps=25:type=png -ovc raw -oac copy -o <replaceable>output.avi</replaceable> +</screen> +</para> +</informalexample> + +<note><para> +A szélességnek 4 egész többszörösének kell lennie, ez a RAW RGB AVI formátum megszorítása. +</para></note> + +<informalexample> +<para> +Egy Motion PNG (MPNG) fájl létrehozása az aktuális könyvtár PNG fájlaiból: +<screen> +mencoder mf://*.png -mf w=800:h=600:fps=25:type=png -ovc copy -oac copy -o <replaceable>output.avi</replaceable> <!-- +--></screen> +</para> +</informalexample> + +<informalexample> +<para> +Egy Motion TGA (MTGA) fájl létrehozása az aktuális könyvtár összes TGA fájlából: +<screen> +mencoder mf://*.tga -mf w=800:h=600:fps=25:type=tga -ovc copy -oac copy -o <replaceable>output.avi</replaceable><!-- +--></screen> +</para> +</informalexample> + +</para> +</formalpara> +</sect1> + + +<sect1 id="menc-feat-extractsub"> +<title>DVD felirat elmentése VOBsub fájlba</title> + +<para> +A <application>MEncoder</application> képes a feliratok kiszedésére +a DVD-kből és elmentésére VOBsub formátumú fájlokba. Ezek két fájlból +állnak, <filename>.idx</filename> és <filename>.sub</filename> kiterjesztéssel, +és általában egy <filename>.rar</filename> archívba vannak becsomagolva. +Az <application>MPlayer</application> le tudja ezeket játszani a +<option>-vobsub</option> és a <option>-vobsubid</option> kapcsolókkal. +</para> + +<para> +Meg kell adnod a kimeneti fájlok fájlnevét (az <filename>.idx</filename> vagy +<filename>.sub</filename> kiterjesztés nélkül) a +<option>-vobsubout</option> kapcsolóval és az ezen felirathoz tartozó +indexet a kimeneti fájlokban a <option>-vobsuboutindex</option>-szel. +</para> + +<para> +Ha a bemenet nem DVD, akkor a <option>-ifo</option> kapcsolót kell +használnod ahhoz, hogy megadd, hogy <filename>.ifo</filename> fájl +szükséges a kimeneti <filename>.idx</filename> elkészítéséhez. +</para> + +<para> +Ha a bemenet nem DVD és nincs <filename>.ifo</filename> fájlod, +a <option>-vobsubid</option> kapcsolót kell használnod, hogy megadd, +milyen nyelv id-t kell beletenni az <filename>.idx</filename> fájlba. +</para> + +<para> +Mindkét esetben az éppen futó felirat hozzáíródik a <filename>.idx</filename> +és <filename>.sub</filename> fájlokhoz, amennyiben azok már léteznek. Így +ezeket le kell törölnöd, mielőtt nekiállnál. +</para> + +<example> +<title>Két felirat másolása egy DVD-ről két menetes kódolás közben</title> +<screen> +rm subtitles.idx subtitles.sub +mencoder dvd://1 -oac copy -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 -vobsubout subtitles -vobsuboutindex 0 -sid 2 +mencoder dvd://1 -oac copy -ovc lavc -lavcopts vcodec=mpeg4:vpass=2 -vobsubout subtitles -vobsuboutindex 1 -sid 5<!-- +--></screen> +</example> + +<example> +<title>Francia felirat másolása egy MPEG fájlból</title> +<screen> +rm subtitles.idx subtitles.sub +mencoder <replaceable>movie.mpg</replaceable> -ifo <replaceable>movie.ifo</replaceable> -vobsubout subtitles -vobsuboutindex 0 -vobsuboutid fr -sid 1<!-- +--></screen> +</example> + +</sect1> + +<sect1 id="aspect"> +<title>Képarány megtartása</title> +<para> +A DVD-s és az SVCD-s (pl. MPEG-1/2) fájlokban van egy képméret arány érték, ami +leírja, hogy a lejátszónak hogyan kell méreteznie a videó stream-et, így az +embereknek nem lesz tojás fejük (pl.: 480x480 + 4:3 = 640x480). Ennek ellenére AVI-ba +(DivX) történő kódoláskor figyelembe kell venned, hogy az AVI fejléc nem tárolja ezt +az értéket. A film átméretezése undorító és időigényes, kell, hogy legyen egy jobb +megoldás! +</para> + +<para>Van is.</para> + +<para> +Az MPEG-4-nek van egy egyedülálló sajátossága: a videó stream tartalmazhatja a szükséges +képarányt. Igen, úgy mint az MPEG-1/2 (DVD, SVCD) és a H.263 fájlok. Sajnos azonban +<emphasis role="bold">nincs</emphasis> olyan videó lejátszó, mely az MPEG-4 ezen attribútumát +támogatná, kivéve az <application>MPlayer</application>t. +</para> + +<para> +Ez a tulajdonság csak a +<link linkend="ffmpeg"><systemitem class="library">libavcodec</systemitem></link> +<systemitem>mpeg4</systemitem> codec-jével használható. Tartsd észben: habár az +<application>MPlayer</application> hibátlanul lejátsza a létrehozott fájlt, +a többi lejátszó rossz képarányt fog használni. +</para> + +<para> +Ajánlott levágni a fekete sávokat a film képe felett és alatt. +Lásd a man oldalt a <systemitem>cropdetect</systemitem> és a +<systemitem>crop</systemitem> szűrők használatához. +</para> + +<para> +Használat +<screen>mencoder <replaceable>sample-svcd.mpg</replaceable> -ovc lavc -lavcopts vcodec=mpeg4:autoaspect -vf crop=714:548:0:14 -oac copy -o <replaceable>output.avi</replaceable></screen> +</para> +</sect1> + +<sect1 id="custommatrices"><title>Egyedi inter/intra matricák</title> + +<para> +A <link linkend="ffmpeg"><systemitem class="library">libavcodec</systemitem></link> +ezen képességével egyedi inter (I-frame/kulcs frame) és intra +(P-frame/jósolt frame) matricákat állíthatsz be. Több codec támogatja ezt: az +<systemitem>mpeg1video</systemitem> és <systemitem>mpeg2video</systemitem> +a jelentések szerint működik. +</para> + +<para> +Ennek egy tipikus felhasználása a <ulink url="http://www.kvcd.net/">KVCD</ulink> +által javasolt matricák beállítása. +</para> + +<para> +Egy <emphasis role="bold">KVCD "Notch" Kvantálási Mátrix:</emphasis> +</para> + +<para> +Intra: +<screen> + 8 9 12 22 26 27 29 34 + 9 10 14 26 27 29 34 37 +12 14 18 27 29 34 37 38 +22 26 27 31 36 37 38 40 +26 27 29 36 39 38 40 48 +27 29 34 37 38 40 48 58 +29 34 37 38 40 48 58 69 +34 37 38 40 48 58 69 79 +</screen> + +Inter: +<screen> +16 18 20 22 24 26 28 30 +18 20 22 24 26 28 30 32 +20 22 24 26 28 30 32 34 +22 24 26 30 32 32 34 36 +24 26 28 32 34 34 36 38 +26 28 30 32 34 36 38 40 +28 30 32 34 36 38 42 42 +30 32 34 36 38 40 42 44 +</screen> +</para> + +<para> +Használat: +<screen> +$ mencoder <replaceable>input.avi</replaceable> -o <replaceable>output.avi</replaceable> -oac copy -ovc lavc -lavcopts inter_matrix=...:intra_matrix=... +</screen> +</para> + +<para> +<screen> +$ mencoder <replaceable>input.avi</replaceable> -ovc lavc -lavcopts +vcodec=mpeg2video:intra_matrix=8,9,12,22,26,27,29,34,9,10,14,26,27,29,34,37, +12,14,18,27,29,34,37,38,22,26,27,31,36,37,38,40,26,27,29,36,39,38,40,48,27, +29,34,37,38,40,48,58,29,34,37,38,40,48,58,69,34,37,38,40,48,58,69,79 +:inter_matrix=16,18,20,22,24,26,28,30,18,20,22,24,26,28,30,32,20,22,24,26, +28,30,32,34,22,24,26,30,32,32,34,36,24,26,28,32,34,34,36,38,26,28,30,32,34, +36,38,40,28,30,32,34,36,38,42,42,30,32,34,36,38,40,42,44 -oac copy -o svcd.mpg +</screen> +</para> +</sect1> + +<sect1 id="menc-feat-dvd-mpeg4"> +<title>Nagyon jó minőségű MPEG-4 ("DivX") rip készítése DVD filmből</title> + +<para> + Egy gyakran feltett kérdés: "Hogyan készíthetem el a legjobb minőségű + DVD rip-et egy adott méretben? A másik kérdés: "Hogyan készíthetem el a + lehető legjobb minőségű DVD rip-et? Nem érdekel a fájl méret, csak a + legjobb minőséget akarom." +</para> + +<para> + Az utóbbi kérdés talán kicsit rosszul van megfogalmazva. Hiszen ha nem + érdekel a fájl méret, akkor miért nem másolod át az egész MPEG-2 videó + stream-et a DVD-ről egy az egyben? Az AVI fájlod 5GB körül fogja végezni, + fogd és vidd, de ha a legjobb minőséget akarod és nem érdekel a méret, + akkor biztos, hogy ez lesz a legjobb lehetőséged. +</para> + +<para> + Valójában egy DVD MPEG-4-be történő átkódolásának az oka pont az, hogy + <emphasis role="bold">érdekel</emphasis> a fájl mérete. +</para> + +<para> + Nehéz egy általános receptet adni a jó minőségű DVD rip-ek készítéséhez. + Számos szempontot figyelembe kell venni és meg kell értened ezeket a + részleteket, különben elégedetlen leszel a végeredménnyel. Kicsit körbejárjuk + ezen dolgok közül néhányat és utána példát is adunk. Feltételezzük, hogy a + <systemitem class="library">libavcodec</systemitem>-et használod a videó + kódolásához, habár az elmélet bármilyen codec-kel használható. +</para> + +<para> + Ha ez túl sok neked, akkor talán jobb, ha a sok nagyszerű frontend + valamelyikét használod, amik fel vannak sorolva a + kapcsolódó projektek oldalán a + <ulink url="http://mplayerhq.hu/homepage/design7/projects.html#mencoder_frontends">MEncoder részben</ulink>. + Így nagyon jó minőségű rip-eket készíthetsz túl sok gondolkodás nélkül, + mert ezen eszközök legtöbbje úgy lett megtervezve, hogy jó döntéseket + hozzon. +</para> + +<sect2 id="menc-feat-dvd-mpeg4-2pass"> +<title>Konstant kvantálás vs. két menet</title> + +<para> + Három féle megközelítése van egy videó kódolásának: konstans bitráta (CBR), + konstans kvantálás, és két lépéses kódolás (ABR vagy átlagos bitráta). +</para> + +<para> + Ezen módok mindegyikében a <systemitem class="library">libavcodec</systemitem> + a videó képkockákat 16x16 pixel nagyságú macroblock-okra osztja, majd egy + kvantálást végez mindegyik macroblock-on. Minél alacsonyabb a kvantálás, annál + jobb a minőség és nagyobb a bitráta. A <systemitem class="library">libavcodec</systemitem> + által egy adott macroblockhoz a megfelelő kvantáló kiválasztására használt módszer + változó és nagymértékben tuningolható. (Ez egy extrém túl-egyszerűsítése a + tulajdonképpeni folyamatnak, de az alap koncepciót hasznos megérteni.) +</para> + +<para> + Ha előírsz egy konstans bitrátát, a <systemitem class="library">libavcodec</systemitem> + elkódolja a videót, figyelmen kívül hagyva a részleteket amennyire csak + lehetséges és a legkisebb mértékben, amennyire szükséges, hogy a megadott + bitrátánál alacsonyabban maradjon. Ha tényleg nem érdekel a fájl méret, + használhatsz CBR-t és megadhatsz egy bitrátát vagy hagyhatod határozatlanul. + (A gyakorlatban ez egy kellően magas értéket jelent, ami nem szab gátat, pl. + 10000Kbit.) Ha nincs különösebb megkötés a bitrátára vonatkozóan, az eredmény + az lesz, hogy a <systemitem class="library">libavcodec</systemitem> a lehető + legalacsonyabb kvantálást fogja használni minden egyes macroblock-hoz (amint + ez a <option>vqmin</option>-ben meg van adva, ami alapértelmezésként 2). Amint + előírsz egy megfelelően alacsony bitrátát, ami a <systemitem class="library">libavcodec</systemitem>et + magasabb kvantálás használatára kényszeríti, majdnem biztos, hogy rontod a + videód minőségét. + Ahhoz, hogy ezt elkerüld, valószínűleg downscale-t kell végrehajtani a + videón, az alábbiakban szereplő módszernek megfelelően. Általában igaz, + hogy jobb ha kerülöd a CBR-t, ha számít a minőség. +</para> + +<para> + Konstans kvantálással a <systemitem + class="library">libavcodec</systemitem> ugyan azt a kvantálót használja, amit + a <option>vqscale</option> kapcsolóval megadtál, minden macroblock-nál. Ha + a lehető legjobb minőségű rip-et szeretnéd, szintén a bitráta kihagyásával, + használhatod a <option>vqscale=2</option> kapcsolót. Ez ugyan azt a bitrátát + és PSNR-t (peak signal-to-noise ratio) szolgáltatja, mint a CBR a + <option>vbitrate</option>=végtelen kapcsolóval és a alapértelmezett 2-es + <option>vqmin</option>-nal. +</para> + +<para> + A konstans kvantálás problémája, hogy a megadott kvantálót alkalmazza, akár + szükséges a macroblock-hoz, akár nem. Lehet, hogy használható lenne egy + nagyobb kvantálás is a mackroblock-on a vizuális minőség feláldozása nélkül + is. Miért pazarolnánk a biteket szükségtelenül alacsony kvantálóra? A + CPU-d annyi ciklusa lehet, amennyi időd csak van, de a merevlemezed véges. +</para> + +<para> + Két lépéses kódolásban az első lépés úgy rip-eli a filmet, mintha CBR lenne, + de megtartja a tulajdonságok listáját minden egyes képkockánál. Ezeket az + adatokat használja fel aztán a második lépésben a használni kívánt kvantálót + meghatározó intelligens döntésekben. Gyors akciónál vagy kis részletességű + jeleneteknél magasabb kvantálót használ, lassú mozgásnál vagy nagy + részletességű jeleneteknél alacsonyabbat. +</para> + +<para> + Ha használod a <option>vqscale=2</option> kapcsolót, akkor biteket pazarolsz. + Ha a <option>vqscale=3</option> kapcsolót adod meg, akkor nem a legjobb minőségű + rip-et kapod. Tegyük fel, hogy egy DVD-t rip-elsz <option>vqscale=3</option>-mal, + és az eredmény 1800Kbit. Ha két lépéses kódolást csinálsz <option>vbitrate=1800</option> + kapcsolóval, az kimeneti videó <emphasis role="bold">jobb minőségű</emphasis> lesz + <emphasis role="bold">ugyanolyan bitrátával</emphasis>. +</para> + +<para> + Mivel most meggyőződtél róla, hogy a két lépéses kódolás a megfelelő módszer, + az igazi kérdés az, hogy milyen bitrátát ajánlott használni? A válasz az, hogy + nincs egyszerű válasz. Valószínűleg olyan bitrátát akarsz választani, ami a + legjobb egyensúlyt biztosítja a minőség és a fájl méret között. Ez viszont a + forrás videótól függően változik. +</para> + +<para> + Ha a méret nem számít, egy jó kiindulási pont minden nagyon jó minőségű + rip-hez egy 2000Kbit körüli érték, plusz-mínusz 200Kbit. + A gyors akciókhoz és a nagy részletességű videókhoz vagy ha sas szemed + van, akkor választhatsz 2400-at vagy 2600-at. + Néhány DVD-nél nem fogsz különbséget felfedezni 1400Kbit-en sem. Jó ötlet + az egyes fejezeteket különböző bitrátával megnézni, hogy meglásd a + különbséget. +</para> + +<para> + Ha egy bizonyos méretet céloztál be, valahogy ki kell számítanod a bitrátát. + De ezelőtt azt kell megtudnod, hogy mennyi helyet kell fenntartanod az + audió sáv(ok)nak, így először <link linkend="menc-feat-dvd-mpeg4-audio">ezeket + kell lerippelned</link>. + A következő egyenlettel tudod kiszámítani a bitrátát: + <systemitem>bitráta = (cél_méret_Mbyteokban - hang_mérete_Mbyteokban) * + 1024 * 1024 / hossz_másodpercben * 8 / 1000</systemitem> + Például egy két órás film 702 Mbájtos CD-re való összenyomásához, 60 + Mbájtnyi hang sávval, a videó bitrátájának + <systemitem>(702 - 60) * 1024 * 1024 / (120*60) * 8 / 1000 = + 740kbps</systemitem>-nek kell lennie. +</para> + +</sect2> + + +<sect2 id="menc-feat-dvd-mpeg4-constraints"> +<title>Megszorítások a hatékony kódoláshoz</title> + +<para> + Az MPEG-típusú tömörítés természetéből adódóan számos megszorítás + van, amit követned kell a maximális minőség érdekében. + Az MPEG 16x16 makroblokknak nevezett négyzetre osztja fel a videót, + mindegyik 4 darab 8x8 blokk luma (intenzitás) információt és két + fél-felbontású 8x8 chroma (szín) blokkot tartalmaz (egy a vörös-világoskék + tengelyen, a másik a kék-sárga tengelyen). + Ha a film szélessége és magassága nem 16 többszöröse, a kódoló akkor is + elegendő 16x16-os makroblokkot fog használni, hogy lefedje a teljes + képet, a maradék hely veszendőbe megy. + Így ha a minőség maximalizálása a cél egy fix fájlmérettel, akkor + eléggé rossz ötlet nem 16 valamelyik többszörösét használni méretként. +</para> + +<para> + A legtöbb DVD-n van valamekkora fekete sáv a sarkokban. Ha ezeket + békén hagyod, akkor több módon is ronthatják a minőséget. +</para> + +<orderedlist> +<listitem> +<para> + Az MPEG-típusú tömörítés szintén nagyban függ a frekvencia tartományok + transzformálásától is, általában a Diszkrét Koszinusz Transzformációt + (DCT) használják, ami hasonló a Fourier transzformációhoz. Ez a fajta + kódolás hatékony a minták és a sima átmenetek átalakításához, de + nehezen bírkózik meg az éles élekkel. Ezek elkódolásához sokkal több + bitre van szüksége, különben egy gyűrűsödésnek nevezett mellékhatás + jelenik meg. +</para> + +<para> + A frekvencia transzformáció (DCT) külön hajtódik végre minden egyes + makroblokkon (tulajdonképpen minden blokkon), így ez a probléma csak + akkor jelentkezik, ha az éles él a blokkon belül van. Ha a fekete + határ épp olyan pixel határon kezdődik, ami 16 többszöröse, akkor nincs + probléma. Habár a fekete határok a DVD-ken ritkán vannak szépen + eligazítva, így a gyakorlatban majdnem mindig vágni kell, hogy + elkerüld ez a büntetést. +</para> +</listitem> +</orderedlist> + +<para> + A frekvencia tartományok kódolása mellett az MPEG-típusú tömörítés + mozgó vektorokat használ a képkockák közötti változások ábrázolásához. + A mozgó vektorok természetesen kevésbé hatékonyak a sarkokból érkező + új tartalomnál, mert az még nincs jelen az előző képkockán. Amíg a + tartalom a sarkok felé terjed ki, a mozgó vektoroknak nincs problémájuk + a tartalom kifelé mozgásával. Habár a fekete határok megjelenésekor + lehetnek gondok: +</para> + +<orderedlist continuation="continues"> +<listitem> +<para> + Minden egyes makroblokknál az MPEG-típusú kódolás egy vektort is eltárol, + mely azt mondja meg, hogy az előző képkocka melyik részét kell átmásolni + ebbe a makroblokkba a következő kocka megbecsléséhez. Csak a megmaradt + különbséget kell elkódolni. Ha a makroblokkot kettéosztja a kép széle + és a fekete sáv, akkor a kép többi részének mozgó vektorai felül fogják + írni a fekete sávot. Ez azt jelenti, hogy sok bitet kell elpazarolni + vagy a határ felülírt részének újrafeketítéséhez vagy (inkább) a + mozgó vektor nem kerül felhasználásra és így a makroblokk összes + változását expliciten el kell kódolni. Mindkét esetben jelentősen + romlik a kódolás hatékonysága. +</para> + +<para> + Ez a probléma szintén csak akkor jelentkezik, ha a fekete sáv nem 16 + többszörösű pixel-határon van. +</para> +</listitem> + +<listitem> +<para> + Végül tegyük fel, hogy van egy makroblokkunk a kép belsejében és + egy objektum mozog be ebbe a blokkba a kép sarka felől. Az MPEG-típusú + kódolás nem tudja azt mondani, hogy "másold át azt a részt, ami a kép + belsejében van, de a fekete sávot ne". Így a fekete sáv is átmásolódik + és így rengeteg bitet kell feláldozni a kép ott lévő részének + újrakódolásához. +</para> + +<para> + Ha a kép tovább fut az elkódolt terület sarka felé, az MPEG-nek speciális + optimalizációi vannak az kép szélén lévő pixelek ismétlődő másolására, + ha a mozgó vektorok a kódolt területen kívülről jönnek. Ez a tulajdonság + haszontalanná válik, ha a filmen fekete sávok vannak. Az első két + problémával ellentétben itt nem segít a 16 többszörösére való igazítás. +</para> +</listitem> + +<listitem> +<para> + Habár a sávok teljesen feketék és soha nem változnak, mindenképpen + egy kis plusz munkát igényelnek, mivel több macroblokk van. +</para> +</listitem> +</orderedlist> + +<para> + A fenti okok miatt javasolt, hogy teljesen vágd le a fekete sávokat. + Továbbá ha a kép sarkainál zaros/torz rész van, ennek a levágása is + javít a kódolási hatékonyságon. A keményvonalas videósok, akik az eredeti + tartalmat akarják megtartani, amennyire csak lehet, biztos tiltakozni + fognak ez ellen, de ha nem tervezed konstant kvantálás használatát, akkor + a vágás miatt nyert minőségjavulás jelentősen nagyobb lesz, mint a sarkok + levágása miatti információvesztés. +</para> +</sect2> + + +<sect2 id="menc-feat-dvd-mpeg4-crop"> +<title>Vágás és méretezés</title> + +<para> + Emlékezz rá az előző fejezetből, hogy a végső képméret, amibe kódolsz, + 16 többszöröse ajánlott, hogy legyen (mind szélességben, mind magasságban). + Ezt vágással, méretezéssel vagy ezek kombinációjával érheted el. +</para> + +<para> + Vágásnál van egy pár ökölszabály, amit jó ha betartasz, ha nem akarsz + kárt tenni a filmben. + A normál YUV formátum 4:2:0, a chroma (szín) információkat almintaként + tárolja, pl. a chroma csak fele annyiszor kerül mintázásra minden + irányban, mint a luma (intenzítás) információk. + Tanulmányozd ezt a diagramot, ahol L jelenti a luma mintázási pontokat + és C a chroma-kat! +</para> + +<informaltable> +<?dbhtml table-width="40%" ?> +<?dbfo table-width="40%" ?> +<tgroup cols="8" align="center"> +<colspec colnum="1" colname="col1"/> +<colspec colnum="2" colname="col2"/> +<colspec colnum="3" colname="col3"/> +<colspec colnum="4" colname="col4"/> +<colspec colnum="5" colname="col5"/> +<colspec colnum="6" colname="col6"/> +<colspec colnum="7" colname="col7"/> +<colspec colnum="8" colname="col8"/> +<spanspec spanname="spa1-2" namest="col1" nameend="col2"/> +<spanspec spanname="spa3-4" namest="col3" nameend="col4"/> +<spanspec spanname="spa5-6" namest="col5" nameend="col6"/> +<spanspec spanname="spa7-8" namest="col7" nameend="col8"/> + <tbody> + <row> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + </row> + <row> + <entry spanname="spa1-2">C</entry> + <entry spanname="spa3-4">C</entry> + <entry spanname="spa5-6">C</entry> + <entry spanname="spa7-8">C</entry> + </row> + <row> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + </row> + <row> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + </row> + <row> + <entry spanname="spa1-2">C</entry> + <entry spanname="spa3-4">C</entry> + <entry spanname="spa5-6">C</entry> + <entry spanname="spa7-8">C</entry> + </row> + <row> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + </row> + </tbody> +</tgroup> +</informaltable> + +<para> + Amint láthatod, a kép sorai és oszlopai természetszerűleg párokba + rendeződnek. Így a vágási eltolásodnak és a méreteidnek páros + számoknak <emphasis>kell</emphasis> lenniük. + Ha nem, akkor a chroma nem fog rendes sort alkotni a luma-val. + Elméletben lehetséges a vágás páratlan eltolással, de ehhez a + chroma újramintázása szükséges, ami egy veszteséges művelet és + nem is támogatja a vágó szűrő. +</para> + +<para> + Továbbá az átlapolt videót a következőképpen mintázzák: +</para> + +<informaltable> +<?dbhtml table-width="80%" ?> +<?dbfo table-width="80%" ?> +<tgroup cols="16" align="center"> +<colspec colnum="1" colname="col1"/> +<colspec colnum="2" colname="col2"/> +<colspec colnum="3" colname="col3"/> +<colspec colnum="4" colname="col4"/> +<colspec colnum="5" colname="col5"/> +<colspec colnum="6" colname="col6"/> +<colspec colnum="7" colname="col7"/> +<colspec colnum="8" colname="col8"/> +<colspec colnum="9" colname="col9"/> +<colspec colnum="10" colname="col10"/> +<colspec colnum="11" colname="col11"/> +<colspec colnum="12" colname="col12"/> +<colspec colnum="13" colname="col13"/> +<colspec colnum="14" |