Mercurial > mplayer.hg
view DOCS/xml/cs/mencoder.xml @ 15235:856baee3ef2b
updates
author | diego |
---|---|
date | Fri, 22 Apr 2005 10:33:02 +0000 |
parents | 93c3668ccd22 |
children | 005485a358d8 |
line wrap: on
line source
<?xml version="1.0" encoding="iso-8859-2"?> <!-- Synced with: 1.52 --> <chapter id="mencoder"> <title>Enkódování s <application>MEncoder</application>em</title> <para> Úplný seznam dostupných voleb a příkladů pro <application>MEncoder</application> naleznete v man stránce. Řadu užitečných příkladů a podrobných návodů pro použití mnoha enkódovacích voleb naleznete v <ulink url="../../tech/encoding-tips.txt">tipech pro enkódování</ulink>, které byly získány z několika diskusí v konferenci MPlayer-users. Prohledejte <ulink url="http://mplayerhq.hu/pipermail/mplayer-users/">archivy</ulink>, chcete-li bohatost diskusí o všech aspektech a problémech vztažených k enkódování <application>MEncoder</application>em. </para> <sect1 id="menc-feat-mpeg4"> <title>Dvouprůchodové enkódování MPEG-4 ("DivX")</title> <para> Název vychází z faktu, že soubor je enkódován <emphasis>dvakrát</emphasis>. První enkódování (dubbed pass) vytvoří dočasné soubory (<filename>*.log</filename>) velikosti několika megabajtů, které zatím nemažte (můžete smazat AVI). Ve druhém průchodu je vytvořen dvouprůchodový výstupní soubor s použitím řízení datového toku z dočasných souborů. Výsledný soubor bude mít lepší kvalitu obrazu. Pokud jste o tom teď slyšeli poprvé, měli byste si prostudovat některé návody dostupné na netu. </para> <example> <title>kopírování zvukové stopy</title> <para> Dvouprůchodové enkódování DVD do MPEG-4 ("DivX") AVI zatímco se zvuk pouze zkopíruje. <screen> mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 -oac copy -o <replaceable>film.avi</replaceable> mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=2 -oac copy -o <replaceable>film.avi</replaceable> </screen> </para> </example> <example> <title>enkódování zvukové stopy</title> <para> Dvouprůchodové enkódování DVD do MPEG-4 ("DivX") AVI a současně enkódování zvukové stopy do MP3. <screen> mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 -oac mp3lame -lameopts vbr=3 -o <replaceable>film.avi</replaceable> mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=2 -oac mp3lame -lameopts vbr=3 -o <replaceable>film.avi</replaceable> </screen> </para> </example> </sect1> <sect1 id="menc-feat-mpeg"> <title>Enkódování do MPEG formátu</title> <para> <application>MEncoder</application> umí vytvořit výstupní soubor formátu MPEG (MPEG-PS). To je pravděpodobně použitelné pouze s <emphasis>mpeg1video</emphasis> kodekem z <link linkend="ffmpeg"><systemitem class="library">libavcodec</systemitem></link>, protože přehrávače – s výjimkou <application>MPlayer</application>u – očekávají MPEG-1 video a MPEG-1 layer 2 (MP2) audio proudy v MPEG souborech. </para> <para> Tato vlastnost nyní není moc užitečná, pomiňme že má asi mnoho chyb, ale hlavně proto, že <application>MEncoder</application> v současnosti neumí enkódovat MPEG-1 layer 2 (MP2) zvuk, který všechny ostatní přehrávače očekávají v MPEG souborech. </para> <para> Výstupní souborový formát <application>MEncoder</application>u změníte použitím volby <option>-of mpeg</option>. </para> <para> Example: <screen> mencoder -of mpeg -ovc lavc -lavcopts vcodec=mpeg1video -oac copy <replaceable>další_volby</replaceable> <replaceable>media.avi</replaceable> -o <replaceable>výstup.mpg</replaceable> </screen> </para> </sect1> <sect1 id="menc-feat-rescale"> <title>Škálování (změna velikosti) filmů</title> <para> Často potřebujeme změnit velikost obrázků ve filmu a to z mnoha důvodů: zmenšení souboru, zátěže sítě atd. Mnoho lidí dokonce mění velikost při převodu DVD nebo SVCD do DivX AVI. Pokud si přejete video přeškálovat, přečtěte si sekci <link linkend="aspect">Zachování poměru stran</link>. </para> <para> Samotný proces škálování je prováděn video filtrem <literal>scale</literal>: <option>-vf scale=<replaceable>šířka</replaceable>:<replaceable>výška</replaceable></option>. Jeho kvalita může být nastavena volbou <option>-sws</option>. Pokud ji neuvedete, <application>MEncoder</application> použije 2: bikubickou. </para> <para> Použití: <screen> mencoder <replaceable>vstup.mpg</replaceable> -ovc lavc -lavcopts vcodec=mpeg4 -vf scale=640:480 -o <replaceable>výstup.avi</replaceable> </screen> </para> </sect1> <sect1 id="menc-feat-streamcopy"> <title>Proudové kopírování</title> <para> <application>MEncoder</application> může zpracovat vstupní datové proudy dvěma způsoby: <emphasis role="bold">enkóduje</emphasis> je, nebo je <emphasis role="bold">kopíruje</emphasis>. Tato část je o <emphasis role="bold">kopírování</emphasis>. </para> <itemizedlist> <listitem><para> <emphasis role="bold">Video proud</emphasis> (volba <option>-ovc copy</option>): můžete dělat pěkné věci :) Jako umístění (nikoli konverze!) FLI nebo VIVO nebo MPEG-1 videa do AVI souboru! Samozřejmě takové soubory přehraje pouze <application>MPlayer</application> :) A proto to nejspíš nemá žádnou rozumnou hodnotu. A teď vážně: kopírování video proudu může být užitečné například tehdy, když má být enkódován pouze zvuk (např. nekomprimovaný PCM do MP3). </para></listitem> <listitem><para> <emphasis role="bold">Audio proud</emphasis> (volba <option>-oac copy</option>): jednoduché. Je možné vzít externí zvukový soubor (MP3, WAV) a namultiplexovat jej do výstupního proudu. K tomu použijte volbu <option>-audiofile <replaceable>soubor</replaceable></option>. </para></listitem> </itemizedlist> </sect1> <sect1 id="menc-feat-enc-libavcodec"> <title>Enkódování s rodinou kodeků <systemitem class="library">libavcodec</systemitem> </title> <para> <link linkend="ffmpeg"><systemitem class="library">libavcodec</systemitem></link> zajišťuje jednoduché enkódování do mnoha zajímavých video a audio formátů. Můžete enkódovat do následujících kodeků (více méně aktuální): <informaltable frame="all"> <tgroup cols="2"> <thead> <row><entry>Jméno kodeku</entry><entry>Popis</entry></row> </thead> <tbody> <row><entry>mjpeg</entry><entry> Motion JPEG </entry></row> <row><entry>ljpeg</entry><entry> Lossless (bezztrátový) 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> standardní ISO MPEG-4 (DivX 5, XVID kompatibilní) </entry></row> <row><entry>msmpeg4</entry><entry> prvotní MPEG-4 varianta od MS, v3 (DivX3) </entry></row> <row><entry>msmpeg4v2</entry><entry> prvotní MPEG-4 od MS, v2 (použitý ve starých asf souborech) </entry></row> <row><entry>wmv1</entry><entry> Windows Media Video, verze 1 (WMV7) </entry></row> <row><entry>wmv2</entry><entry> Windows Media Video, verze 2 (WMV8) </entry></row> <row><entry>rv10</entry><entry> starý RealVideo kodek </entry></row> <row><entry>mpeg1video</entry><entry> MPEG-1 video </entry></row> <row><entry>mpeg2video</entry><entry> MPEG-2 video </entry></row> <row><entry>huffyuv</entry><entry> bezztrátová komprese </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> bezztrátový video kodek z FFmpeg </entry></row> </tbody> </tgroup> </informaltable> První pole obsahuje názvy kodeků, které můžete přiřadit konfiguračnímu parametru <literal>vcodec</literal>, např: <option>-lavcopts vcodec=msmpeg4</option> </para> <informalexample> <para> Příklad, s MJPEG kompresí: <screen>mencoder dvd://2 -o titul2.avi -ovc lavc -lavcopts vcodec=mjpeg -oac copy</screen> </para> </informalexample> </sect1> <sect1 id="menc-feat-enc-images"> <title>Enkódování z množství vstupních obrázkových souborů (JPEG, PNG, TGA, SGI)</title> <para> <application>MEncoder</application> je schopen vytvořit film z jednoho nebo více JPEG, PNG nebo TGA souborů. Pomocí jednoduchého snímkového kopírování může vytvořit MJPEG (Motion JPEG), MPNG (Motion PNG) nebo MTGA (Motion TGA) soubory. </para> <orderedlist> <title>Vysvětlení procesu:</title> <listitem><para> <application>MEncoder</application> <emphasis>dekóduje</emphasis> vstupní soubor(y) pomocí knihovny <systemitem class="library">libjpeg</systemitem> (když dekóduje PNG, použije <systemitem class="library">libpng</systemitem>). </para></listitem> <listitem><para> Potom <application>MEncoder</application> nakrmí dekódovaný snímek do zvoleného video kompresoru (DivX4, XviD, FFmpeg msmpeg4, atd). </para></listitem> </orderedlist> <formalpara> <title>Příklady</title> <para> Vysvětlení volby <option>-mf</option> je v man stránce. <informalexample> <para> Vytvoření MPEG-4 souboru ze všech JPEG souborů v aktuálním adresáři: <screen> mencoder mf://*.jpg -mf w=800:h=600:fps=25:type=jpg -ovc lavc -lavcopts vcodec=mpeg4 -oac copy -o <replaceable>výstup.avi</replaceable> </screen> </para> </informalexample> <informalexample> <para> Vytvoření MPEG-4 souboru z některých JPEG souborů v aktuálním adresáři: <screen> mencoder mf://<replaceable>snímek001.jpg,snímek002.jpg</replaceable> -mf w=800:h=600:fps=25:type=jpg -ovc lavc -lavcopts vcodec=mpeg4 -oac copy -o <replaceable>výstup.avi</replaceable> </screen> </para> </informalexample> <informalexample> <para> Vytvoření Motion JPEG (MJPEG) souboru ze všech JPEG souborů v aktuálním adresáři: <screen> mencoder mf://*.jpg -mf w=800:h=600:fps=25:type=jpg -ovc copy -oac copy -o <replaceable>výstup.avi</replaceable> </screen> </para> </informalexample> <informalexample> <para> Vytvoření nekomprimovaného souboru ze všech PNG souborů v aktuálním adresáři: <screen> mencoder mf:// -mf w=800:h=600:fps=25:type=png -ovc raw -oac copy -o <replaceable>výstup.avi</replaceable> </screen> </para> </informalexample> <note><para> Šířka musí být celé číslo násobek 4, to je dáno omezením RAW RGB AVI formátu. </para></note> <informalexample> <para> Vytvoření Motion PNG (MPNG) souboru ze všech PNG souborů v aktuálním adresáři: <screen> mencoder mf://*.png -mf w=800:h=600:fps=25:type=png -ovc copy -oac copy -o <replaceable>výstup.avi</replaceable> <!-- --></screen> </para> </informalexample> <informalexample> <para> Vytvoření Motion TGA (MTGA) souboru ze všech TGA souborů v aktuálním adresáři: <screen> mencoder mf://*.tga -mf w=800:h=600:fps=25:type=tga -ovc copy -oac copy -o <replaceable>výstup.avi</replaceable><!-- --></screen> </para> </informalexample> </para> </formalpara> </sect1> <sect1 id="menc-feat-extractsub"> <title>Extrakce DVD titulků do VOBsub souboru</title> <para> <application>MEncoder</application> je schopen vyextrahovat titulky z DVD do VOBsub formátovaných souborů. Ty sestávají ze dvou souborů zakončených <filename>.idx</filename> a <filename>.sub</filename> a jsou obvykle zabaleny v jediném <filename>.rar</filename> archivu. <application>MPlayer</application> je umí přehrávat s pomocí voleb <option>-vobsub</option> a <option>-vobsubid</option>. </para> <para> Zadejte základní jméno (čili bez přípony <filename>.idx</filename> nebo <filename>.sub</filename>) výstupních souborů pomocí volby <option>-vobsubout</option> a index pro tyto titulky ve zbývajících souborech pomocí <option>-vobsuboutindex</option>. </para> <para> Pokud není vstup z DVD, měli byste použít <option>-ifo</option> pro indikaci <filename>.ifo</filename> souboru nutného k vytvoření výsledného <filename>.idx</filename> souboru. </para> <para> Pokud vstup není z DVD a nemáte <filename>.ifo</filename> soubor, budete muset použít volbu <option>-vobsubid</option> k nastavení, pro které id jazyka se má vytvořit <filename>.idx</filename> soubor. </para> <para> Každým spuštěním se přidají běžící titulky pokud soubory <filename>.idx</filename> a <filename>.sub</filename> již existují. Takže byste je měli všechny odstranit dříve než začnete. </para> <example> <title>Kopírování dvojích titulků z DVD během dvouprůchodového enkódování</title> <screen> rm titulky.idx titulky.sub mencoder dvd://1 -oac copy -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 -vobsubout titulky -vobsuboutindex 0 -sid 2 mencoder dvd://1 -oac copy -ovc lavc -lavcopts vcodec=mpeg4:vpass=2 -vobsubout titulky -vobsuboutindex 1 -sid 5<!-- --></screen> </example> <example> <title>Kopírování francouzských titulků z MPEG souboru</title> <screen> rm titulky.idx titulky.sub mencoder <replaceable>film.mpg</replaceable> -ifo <replaceable>film.ifo</replaceable> -vobsubout titulky -vobsuboutindex 0 -vobsuboutid fr -sid 1<!-- --></screen> </example> </sect1> <sect1 id="aspect"> <title>Zachování poměru stran</title> <para> DVD a SVCD (čili MPEG-1/2) soubory obsahují hodnotu poměru stran, popisující, jak by měl přehrávač škálovat video proud, takže lidé nebudou mít šišaté hlavy (př.: 480x480 + 4:3 = 640x480). Pokud ovšem enkódujeme do AVI (DivX) souborů, mějte na paměti, že AVI hlavičky neukládají tuto hodnotu. Přeškálování videa je odporné a časově náročné, takže musí být lepší způsob! </para> <para>A zde jej máte</para> <para> MPEG-4 má unikátní vlastnost: video proud může obsahovat svůj požadovaný poměr stran. Ano, přesně jako MPEG-1/2 (DVD, SVCD) a H.263 soubory. Naneštěstí, <emphasis role="bold">žádný</emphasis> video přehrávač nepodporuje tento atribut MPEG-4, s výjimkou <application>MPlayer</application>u. </para> <para> Tato vlastnost může být použita pouze s kodekem <systemitem>mpeg4</systemitem> z <link linkend="ffmpeg"><systemitem class="library">libavcodec</systemitem></link>u. Mějte na paměti: ačkoli <application>MPlayer</application> korektně přehraje vytvořený soubor, ostatní přehrávače použijí špatný poměr stran. </para> <para> Opravdu byste měli oříznout černé okraje nad a pod filmem. Nastudujte si použití filtrů <systemitem>cropdetect</systemitem> a <systemitem>crop</systemitem> v man stránce. </para> <para> Použití <screen>mencoder <replaceable>vzorové-svcd.mpg</replaceable> -ovc lavc -lavcopts vcodec=mpeg4:autoaspect -vf crop=714:548:0:14 -oac copy -o <replaceable>výstup.avi</replaceable></screen> </para> </sect1> <sect1 id="custommatrices"><title>Uživatelské inter/intra matice</title> <para> Díky této vlastnosti <link linkend="ffmpeg"><systemitem class="library">libavcodec</systemitem></link>u můžete nastavit uživatelskou inter (I-snímky/klíčové snímky) a intra (P-snímky/predikované (rozumějte vypočítané) snímky) matice. To je podporováno mnoha kodeky: <systemitem>mpeg1video</systemitem> a <systemitem>mpeg2video</systemitem> jsou hlášeny jako funkční. </para> <para> Typické použití této vlastnosti je nastavení matic preferovaných <ulink url="http://www.kvcd.net/">KVCD</ulink> specifikacemi. </para> <para> <emphasis role="bold">Kvantizační Matice KVCD "Notch":</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> Použití: <screen> $ mencoder <replaceable>vstup.avi</replaceable> -o <replaceable>výstup.avi</replaceable> -oac copy -ovc lavc -lavcopts inter_matrix=...:intra_matrix=... </screen> </para> <para> <screen> $ mencoder <replaceable>vstup.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>Vytvoření MPEG-4 ("DivX") ripu DVD filmu ve vysoké kvalitě</title> <para> Velmi častou otázkou je "Jak mohu vytvořit rip v nejvyšší možné kvalitě pro danou velikost?". Další otázkou je "Jak vytvořím DVD rip v nejvyšší možné kvalitě? Velikost souboru mě nezajímá, chci tu nejvyšší kvalitu." </para> <para> Druhá otázka je poněkud špatně položená. Konec konců, pokud je vám lhostejná velikost souboru, proč prostě nezkopírujete celý MPEG-2 video proud z DVD? Jistěže vaše AVI bude mít kolem 5 GB, ale pokud chcete nejvyšší kvalitu a na velikosti nezáleží, je to jistě nejlepší volba. </para> <para> Ve skutečnosti, důvodem převodu DVD do MPEG-4 je právě to, že vám na velikosti souboru <emphasis role="bold">záleží</emphasis>. </para> <para> Je těžké nabídnout kuchařku jak vytvořit DVD rip ve velmi vysoké kvalitě. Je nutné uvážit množství faktorů a měli byste rozumět těmto detailům, jinak budete asi zklamáni výsledkem. Níže prozkoumáme některé z těchto věcí a pak se podíváme na příklad. Předpokládáme, že použijete <systemitem class="library">libavcodec</systemitem> pro enkódování videa, ačkoli teorie je stejná i pro ostatní kodeky. </para> <para> Pokud je toho na vás moc, asi byste měli použít některý z pěkných frontendů, které jsou zmíněny v <ulink url="http://mplayerhq.hu/homepage/design7/projects.html#mencoder_frontends">sekci MEncoder</ulink> na naší stránce odvozených projektů. Takto budete schopni dosahovat vysoce kvalitních ripů bez velkého přemýšlení, protože většina těchto nástrojů je navržena tak, aby dělala vhodná rozhodnutí za vás. </para> <sect2 id="menc-feat-dvd-mpeg4-2pass"> <title>Pevný kvantizer vs. dva průchody</title> <para> Jsou tři přístupy k enkódování videa: pevný datový tok (CBR), pevný kvantizer a dvouprůchodový (ABR, nebili průměrovaný datový tok). </para> <para> V každém z těchto režimů <systemitem class="library">libavcodec</systemitem> rozbije videosnímek na makrobloky 16x16 pixelů a potom na každý makroblok aplikuje kvantizer. Čím je nižší kvantizer, tím je vyšší kvalita a datový tok. Metoda, kterou <systemitem class="library">libavcodec</systemitem> používá pro určení jaký kvantizer použít pro daný makroblok, se liší a je vysoce ovlivnitelná. (Toto je extrémní zjednodušení daného procesu, ale je vhodné rozumět základnímu principu.) </para> <para> Pokud nastavíte konstantní datový tok, <systemitem class="library">libavcodec</systemitem> bude enkódovat video tak, že zahodí detaily podle potřeby a jen tolik, aby se udržel pod zadaným datovým tokem. Pokud je vám opravdu lhostejná velikost souboru, můžete také použít CBR a nastavit datový tok na nekonečno. (V praxi to znamená nastavit hodnotu tak vysoko, aby nijak neomezovala, jako 10000 Kbitů.) Bez reálného omezení datového toku použije <systemitem class="library">libavcodec</systemitem> nejnižší možný kvantizer pro každý makroblok (ten je nastaven pomocí <option>vqmin</option>, výchozí je 2). Jakmile nastavíte dostatečně nižší datový tok, takže je <systemitem class="library">libavcodec</systemitem> přinucen použít vyšší kvantizer, pak téměř jistě snížíte kvalitu svého videa. Abyste se tomu vyhnuli, měli byste zvážit zmenšení videa podle postupu popsaného později v této příručce. </para> <para> Při konstantním kvantizeru <systemitem class="library">libavcodec</systemitem> používá kvantizer nastavený volbou <option>vqscale</option> na každý makroblok. Pokud chcete maximálně kvalitní rip, opět bez ohledu na datový tok, můžete použít <option>vqscale=2</option>. To povede ke stejnému datovému toku a PSNR (odstup signál–šum) jako CBR s <option>vbitrate</option>=infinity a výchozím <option>vqmin</option> rovným 2. </para> <para> Problém s konstantní kvantizací je ten, že používá zadaný kvantizer ať to daný makroblok potřebuje či nikoli. Je totiž možné použít vyšší kvantizer na makroblok bez obětování viditelné kvality. Proč tedy plýtvat bity s nemístně nízkým kvantizerem? Váše CPU má tolik cyklů, kolik máte času, ale na harddisku máte jen určitý počet bitů. </para> <para> Při dvouprůchodovém enkódování se v prvním průchodu projde film jakoby měl být CBR, ale vlastnosti každého snímku se zaznamenají do logu. Tato data jsou pak použita při druhém průchodu pro inteligentní stanovení použitého kvantizeru. V rychlých scénách nebo scénách s malým počtem detailů budou častěji používány vyšší kvantizery a v pomalých nebo detailních scénách zase nižší kvantizery. </para> <para> Pokud použijete <option>vqscale=2</option>, plýtváte bity. Pokud použijete <option>vqscale=3</option>, pak nedostanete nejkvalitnější možný rip. Dejme tomu, že ripujete DVD při <option>vqscale=3</option> a výsledkem je 1800Kbit. Pokud provedete dvouprůchodové enkódování s <option>vbitrate=1800</option>, výsledné video bude mít <emphasis role="bold">vyšší kvalitu</emphasis> při <emphasis role="bold">stejném datovém toku</emphasis>. </para> <para> Jelikož jsme vás nyní přesvědčili, že dvouprůchodový režim je správná volba, skutečnou otázkou je, jaký datový tok použít? Odpověď je, že není jediná odpověď. Ideálně byste měli zvolit takový datový tok, který zajistí nejlepší rovnováhu mezi kvalitou a velikostí souboru. Ten bude pokaždé jiný v závislosti na zdrojovém videu. </para> <para> Pokud na velikosti souboru nezáleží, pak je dobrý startovní můstek pro rip s velmi vysokou kvalitou je kolem 2000 Kbitů plus-mínus 200 Kbitů. Pro rychlé akční nebo vysoce detailní zdrojové video, nebo máte-li velmi kritické oko, se budete rozhodovat mezi 2400 nebo 2600. U některých DVD nepoznáte rozdíl při 1400 Kbitech. Je vhodné experimentovat se scénami při různých datových tocích, abyste pro to dostali cit. </para> <para> Pokud se snažíte o určitou velikost, budete muset nějak spočítat datový tok. Ale ještě předtím musíte zjistit, kolik místa byste měli rezervovat pro zvukové(ou) stopy(u), takže byste si <link linkend="menc-feat-dvd-mpeg4-audio">je měli ripnout</link> jako první. Můžete si pak spočítat datový tok pomocí následující rovnice: <systemitem>datový_tok = (požadovaná_velikost_v_Mbajtech - velikost_zvuku_v_Mbajtech) * 1024 * 1024 / délka_v_sek * 8 / 1000</systemitem> Například abyste nacpali dvouhodinový film na 702MB CD, se 60MB zvukovou stopou, bude muset být datový tok videa: <systemitem>(702 - 60) * 1024 * 1024 / (120*60) * 8 / 1000 = 740kbps (kilobitů za sekundu)</systemitem> </para> </sect2> <sect2 id="menc-feat-dvd-mpeg4-constraints"> <title>Omezení pro efektivní enkódování</title> <para> Ze samé podstaty komprese typu MPEG vyplývají určitá omezení, která byste měli ctít, pokud chcete maximální kvalitu. MPEG rozdělí video na čtverce 16x16 nazývané makrobloky, které se skládají ze čtyř bloků 8x8 jasové (luma) složky a dvou bloků 8x8 barevné (chroma) složky v polovičním rozlišení (jeden pro osu červená-cyan (modrozelená) a druhý pro osu modrá-žlutá). Dokonce i když šířka a výška vašeho videa nejsou násobky 16, použije enkodér dostatek 16x16 makrobloků, aby pokryl celou oblast obrazu a zabere místo navíc, které přijde vniveč. Takže chcete-li maximalizovat kvalitu při dané velikosti souboru, není dobrý nápad používat rozměry které nejsou násobky 16. </para> <para> Většina DVD má také různě velké černé okraje videa. Ponechání těchto ploch může různým způsobem snížit kvalitu. </para> <orderedlist> <listitem> <para> Komprese typu MPEG je rovněž velmi závislá na plošných frekvenčních transformacích, konkrétně Diskrétní Kosinové Transformaci (DCT), která se podobá Fourierově transformaci. Tento druh enkódování je efektivní na reprezentaci opakujících se vzorů a pozvolné přechody, ale má potíže s ostrými přechody. Chcete-li je enkódovat, musíte použít mnoho bitů, jinak se objeví artefakty známé jako kroužkování. </para> <para> Frekvenční transformace (DCT) je provedena zvlášť pro každý makroblok (ve skutečnosti na každý blok), takže problém nastane pouze tehdy, je-li ostrý přechod uvnitř bloku. Pokud vaše černé okraje začínají přesně na hranicích násobků 16 pixelů, pak to není problém. Černé okraje jsou však na DVD jen málokdy pěkně umístěny, takže je v praxi budete muset vždy odstranit, abyste se vyhnuli tomuto problému. </para> </listitem> </orderedlist> <para> Navíc k plošně frekvenčním transformacím používá komprese typu MPEG vektory pohybu k popisu změn od jednoho snímku ke druhému. Vektory pohybu přirozeně pracují méně efektivně s novým obsahem přicházejícím zpoza okrajů snímku, protože ten nebyl přítomen na předchozím snímku. Dokud se obraz rozšiřuje směrem k okrajům snímku, nemají s tím vektory pohybu žádný problém, ale jsou-li zde černé okraje, může problém nastat: </para> <orderedlist continuation="continues"> <listitem> <para> Komprese typu MPEG ukládá pro každý makroblok vektor, identifikující která část předchozího obrázku by měla být zkopírována onoho makrobloku jako základ pro predikci následujícího snímku. Pouze zbývající odlišnosti musí být enkódovány. Pokud makroblok přesahuje okraj obrázku a obsahuje část černého okraje, vektory pohybu z ostatních částí obrázku přepíší černý okraj. To znamená mnoho bitů spotřebovaných buď na znovuzačernění, nebo se (spíš) vektory pohybu nepoužijí vůbec a všechny změny v tomto makrobloku se budou kódovat přímo. Jinými slovy se velmi sníží efektivita enkódování. </para> <para> Tento problém nastává opět jen v případě, že černé okraje nezačínají na lince jejíž pozice je násobkem 16. </para> </listitem> <listitem> <para> Nakonec zde máme makroblok uvnitř obrázku do nějž se posunuje objekt z okraje obrázku. Kódování typu MPEG neumí říct "zkopíruj to co je na obrázku, ale ne černý okraj." Takže se zkopíruje i černý okraj a spotřebuje se spousta bitů na enkódování té části obrázku, která tu měla být. </para> <para> Pokud se obrázek dostane úplně ven z enkódované oblasti, má MPEG speciální optimalizace pro opakované kopírování pixelů na okraj obrázku pokud přijde vektor pohybu zvenčí enkódované oblasti. Tato vlastnost bude k ničemu, pokud má film černé okraje. Na rozdíl od problémů 1 a 2 zde umístění okrajů na násobky 16 nepomůže. </para> </listitem> <listitem> <para> Navzdory tomu, že okraje jsou úplně černé a nikdy se nemění, je zde vždy alespoň minimální datový tok spotřebovaný na větší množství makrobloků. </para> </listitem> </orderedlist> <para> Ze všech těchto důvodů doporučujeme zcela odstranit černé okraje. Dále, pokud je na okraji obrázku oblast se šumem/zkreslením, jejím odstřižením se ještě zvýší efektivita enkódování. Videofilní puristé, kteří chtějí zůstat tak blízko originálu, jak je to jen možné, mohou protestovat proti tomuto ořezání, ale pokud nehodláte enkódovat s konstantním kvantizerem, kvalita kterou dostanete díky ořezání znatelně převýší množství ztracených informací na okrajích. </para> </sect2> <sect2 id="menc-feat-dvd-mpeg4-crop"> <title>Ořezávání a škálování</title> <para> Nativní DVD rozlišení je 720x480 pro NTSC a 720x576 pro PAL, ale je zde ještě příznak poměru stran, který udává, zda se jedná o obrazovku (full-screen)(4:3), nebo širokoúhlý film (wide-screen)(16:9). Mnoho (jestli ne většina) širokoúhlých DVD není přesně 16:9, ale bude buď 1.85:1 anebo 2.35:1 (cinescope). To znamená, že zde budou ve videu černé okraje, které bude nutné odstřihnout. </para> <para> <application>MPlayer</application> poskytuje filtr pro detekci potřebného ořezu, který stanoví ořezový obdélník (<option>-vf cropdetect</option>). Protože MPEG-4 používá makrobloky 16x16, měli byste se ujistit, že oba rozměry videa jsou násobkem 16, jinak snížíte kvalitu, zvlášť při nízkých datových tocích. Můžete to zajistit zaokrouhlením šířky a výšky ořezového obdélníku dolů na nejbližší násobek 16. Při ořezávání byste měli zvýšit odsazení (offset) v ose y o polovinu rozdílu mezi starou a novou výškou, takže bude výsledné video bráno ze středu snímku. Z důvodu principu vzorkování DVD videa se ujistěte, že je odsazení sudé číslo. (Popravdě, přijměte jako pravidlo, nikdy nepoužívat liché hodnoty pro jakýkoli z parametrů při ořezávání a škálování videa.) Pokud nechcete zahodit těch několik pixelů navíc, můžete místo toho raději změnit velikost videa (škálovat). Na to se podíváme v příkladu níže. V praxi můžete nechat filtr <option>cropdetect</option> udělat všechnu práci zmíněnou výše, jelikož má volitelný parametr <option>round</option> (zaokrouhlení), jehož výchozí hodnota je 16. </para> <para> Rovněž buďte opatrní na "napůl černé" pixely na okrajích. Vždy je rovněž odstřihněte, jinak zde budete plýtvat bity, které můžete použít jinde. </para> <para> Poté co provedete vše, co jsme si doposud řekli, budete mít video, které asi nebude právě 1.85:1 nebo 2.35:1, ale někde poblíž. Můžete spočítat nový poměr stran ručně, ale <application>MEncoder</application> nabízí volbu pro <systemitem class="library">libavcodec</systemitem> nazývanou <option>autoaspect</option>, která to za vás udělá. Nezvětšujte video jen proto, abyste dosáhli čtvercových pixelů, pokud je vám milé místo na disku. Škálování by mělo být provedeno při přehrávání, kdy přehrávač použije poměr stran uložený v AVI pro zajištění správného rozlišení. Naneštěstí ne všechny přehrávače uplatňují tuto autoškálovací informaci, takže můžete přece jen chtít škálovat. </para> <para> Nejdřív byste si měli spočítat enkódovaný poměr stran: <systemitem>PSo = (Šo x (PSa / PRdvd )) / Vo</systemitem> <itemizedlist> <title>kde:</title> <listitem><para> Šo a Vo jsou šířka a výška ořezaného videa, </para></listitem> <listitem><para> PRdvd je poměr pixelů v DVD, který je roven 1.25=(720/576) pro DVD </para></listitem> <listitem><para> v PALu a 1.5=(720/480) pro DVD v NTSC, </para></listitem> </itemizedlist> </para> <para> Pak si můžete spočítat rozlišení X a Y podle určitého faktoru kvality komprese (CQ): <systemitem>RozY = INT(SQRT( 1000*Datový_tok/25/PSo/CQ )/16) * 16</systemitem> <systemitem>RozX = INT( RozY * PSo / 16) * 16</systemitem> </para> <para> Dobře, ale co je ten CQ? CQ odpovídá počtu bitů na pixel a na snímek v zakódování. Jinými slovy, čím vyšší je CQ, tím nižší je šance uvidět enkódovací artefakty. Pokud ovšem máte cílový rozměr vašeho filmu (1 nebo 2 CD například), máte jen omezené množství bitů, které můžete spotřebovat; takže je nutné najít vhodný kompromis mezi komprimovatelností a kvalitou. </para> <para> CQ závisí jak na datovém toku, tak na rozlišení filmu. Abyste zvýšili CQ, obvykle zmenšíte daný film, takže je datový tok spočítán ve funkci cílové velikosti a délky filmu, které jsou konstantní. CQ pod 0.18 obvykle vede k velmi čtverečkovanému obrazu, protože není dostatek bitů pro zakódování informací každého makrobloku (MPEG4, stejně jako mnoho jiných kodeků seskupuje pixely do bloků při komprimaci obrázku; pokud není dostatek bitů, jsou viditelné hranice těchto bloků). Proto je rozumné volit CQ v rozmezí 0.20 až 0.22 pro rip na 1 CD a 0.26 až 0.28 pro 2 CD. </para> <para> Prosíme berte v potaz, že CQ je jen informační pomůcka závisející na enkódovaném obsahu. CQ okolo 0.18 může být dostatečně dobrý pro Bergmana, na rozdíl od filmu jako je Matrix, který obsahuje mnoho rychlých scén. Na druhou stranu je zbytečné zvyšovat CQ výš než 0.30, jelikož budete plýtvat bity za minimální zisk kvality. </para> </sect2> <sect2 id="menc-feat-dvd-mpeg4-audio"> <title>Zvuk</title> <para> Zvuk je mnohem jednodušší problém k řešení: pokud prahnete po kvalitě, prostě jej nechte tak jak je. Dokonce i AC3 5.1 datové proudy mají nanejvýš 448Kbitů/s a stojí za každý bit. Možná jste v pokušení převést zvuk do Ogg Vorbis při vysoké kvalitě, ale jen proto, že dnes nemáte A/V receiver pro hardwarové dekódování AC3 neznamená, že jej nebudete mít zítra. Připravte své DVD ripy zachováním AC3 datových proudů. Datový proud AC3 můžete zachovat buď jeho zkopírováním přímo do video proudu <link linkend="menc-feat-mpeg4">během enkódování</link>. Také můžete extrahovat AC3 proud, abyste jej pak namixovali do nosičů jako je NUT nebo Matroska. <screen>mplayer <replaceable>zdrojový_soubor.vob</replaceable> -aid 129 -dumpaudio -dumpfile <replaceable>zvuk.ac3</replaceable></screen> vytáhne do souboru <replaceable>zvuk.ac3</replaceable> zvukovou stopu číslo 129 ze souboru <replaceable>zdrojový_soubor.vob</replaceable> (NB: DVD VOB soubory obvykle používají odlišné číslování audia, což znamená, že VOB zvuková stopa 120 je druhou zvukovou stopou v souboru). </para> <para> Někdy ovšem opravdu nemáte jinou možnost než dále zkomprimovat zvuk, aby vám zbylo více bitů na video. Většina lidí volí komprimaci buď pomocí MP3 nebo Vorbis audio kodeků. Zatímco ten druhý je efektivnější z prostorového hlediska, MP3 je lépe podporován hardwarovými přehrávači, ačkoli časy se mění. </para> <para> Nejdříve ze všeho budete muset převést DVD zvuk do WAV souboru, který pak použije zvukový kodek jako vstup. Například: <screen>mplayer <replaceable>zdrojový_soubor.vob</replaceable> -ao pcm:file=<replaceable>výsledný_zvuk.wav</replaceable> -vc dummy -aid 1 -vo null</screen> vylije druhou zvukovou stopu ze souboru <replaceable>zdrojový_soubor.vob</replaceable> do souboru <replaceable>výsledný_zvuk.wav</replaceable>. Měli byste normalizovat zvuk před enkódováním, protože DVD zvukové stopy jsou obvykle nahrávány při nízkých hlasitostech. Můžete například použít nástroj <application>normalize</application>, který je k dispozici ve většině distribucí. Pokud používáte Windows, stejnou práci udělá nástroj jako <application>BeSweet</application>. Komprimovat budete buď ve Vorbisu nebo MP3. Například: <screen>oggenc -q1 <replaceable>cílový_zvuk.wav</replaceable></screen> provede enkódování <replaceable>cílového_zvuku.wav</replaceable> s kvalitou 1, která přibližně odpovídá 80Kb/s a je to minimální kvalita na kterou byste měli enkódovat, pokud vám záleží na kvalitě. Poznamenejme, že <application>MEncoder</application> v současnosti neumí muxovat Vorbis zvukové stopy do výstupního souboru, protože podporuje pouze AVI a MPEG kontejnery jako výstup. Pro oba platí, že některé přehrávače mohou mít problémy s udržením audio/video synchronizace, pokud je přítomen VBR zvuk jako je Vorbis. Nemějte obavy, v tomto dokumentu vám ukážeme, jak to lze udělat pomocí programů třetích stran. </para> </sect2> <sect2 id="menc-feat-dvd-mpeg4-interlacing"> <title>Prokládání a Telecine</title> <para> Téměř veškeré filmy jsou natáčeny při 24 snímcích/s. Jelikož NTSC má snímkovou rychlost 30000/1001 snímků/s, je třeba provést úpravu těchto 24 snímků/s videí, aby měly správnou NTSC snímkovou rychlost. Tato úprava se jmenuje 3:2 pulldown a obecně je známa jako telecine (protože je pulldown často prováděn během přenosu filmu na video) a, jednoduše řečeno, pracuje tak, že se film zpomalí na 24000/1001 snímků/s a každý čtvrtý snímek se zopakuje. </para> <para> Naopak žádné speciální úpravy se neprovádějí videu pro PAL DVD, která běží při 25 snímcích/s. (Technicky lze na PAL provést telecine, tzv. 2:2 pulldown, ale v praxi se nepoužívá.) Film s 24 snímky/s je jednoduše přehráván rychlostí 25 snímků/s. Výsledkem je, že video běží o něco rychleji, ale pokud nejste vetřelec, tak si rozdílu ani nevšimnete. Většina filmů má navíc výškově korigovaný zvuk, takže při přehrávání 25 snímků/s vše zní jak má i přesto, že zvuk (a proto i celé video) má o 4% kratší dobu přehrávání než NTSC DVD. </para> <para> Jelikož video na PAL DVD nebylo upravováno, nemusíte si dělat starosti s jeho snímkovou rychlostí. Zdroj má 25 snímků/s, váš rip také. Pokud ovšem ripujete NTSC DVD film, musíte provést inverzní telecine. </para> <para> Filmy točené rychlostí 24 snímků/s jsou na NTSC DVD uloženy buď jako 30000/1001 po telecine, nebo jako progresivní (neprokládaný) se snímkovou 24000/1001 snímků/s, na kterých by měl provést telecine DVD přehrávač za letu. Není to ale zákon: některé TV série jsou prokládané (např. Buffy Lovec upírů), zatímco jiné jsou porůznu neprokládané nebo prokládané (např. Anděl, nebo 24 hodin). </para> <para> Doporučujeme, abyste si přečetli sekci o tom <link linkend="menc-feat-telecine">Jak si poradit s telecine a prokladem na NTSC DVD</link> a naučili se jak využít různé možnosti. </para> <para> Pokud ovšem většinou ripujete pouze filmy, nejspíš se setkáváte s neprokládaným nebo prokládaným videem 24 snímků/s. V tom případě můžete použít <option>pullup</option> filtr <option>-vf pullup,softskip</option>. </para> </sect2> <sect2 id="menc-feat-dvd-mpeg4-filtering"> <title>Filtrování</title> <para> Obecně byste měli filtrovat video tak málo, jak je to jen možné, abyste zůstali co nejblíž DVD originálu. Ořezání je často nutné (jak jsme již řekli), ale neškálujte video. Ačkoli zmenšení rozlišení je občas upřednostňováno před použitím vyšších kvantizerů, musíme se vyhnout oběma případům: pamatujme, že jsme se již na začátku rozhodli obětovat bity za kvalitu. </para> <para> Rovněž neupravujte gamu, kontrast, jas, atd. Co vypadá dobře na vaší obrazovce, nemusí vypadat dobře na jiných. Tato přizpůsobení by měla být prováděna pouze při přehrávání. </para> <para> Jednu věc byste však udělat měli, a to protáhnout video velmi lehkým odšumovací filtr, jako je <option>-vf hqdn3d=2:1:2</option>. Opět je to proto, abychom mohli některé bity lépe využít: proč s nimi plýtvat na šum, když si jej můžete přidat při přehrávání? Zvýšení parametrů pro <option>hqdn3d</option> ještě více zvýší komprimovatelnost, ale pokud to přeženete, riskujete zhoršení viditelnosti obrazu. Doporučené hodnoty okolo (<option>2:1:2</option>) jsou dost konzervativní; měli byste volně experimentovat s vyššími hodnotami a posoudit výsledek sami. </para> </sect2> <sect2 id="menc-feat-dvd-mpeg4-lavc-encoding-options"> <title>Enkódovací volby libavcodecu</title> <para> V ideálním případě byste asi chtěli jen říct enkodéru, aby se přepnul do režimu "vysoká kvalita" a šel na to. To by bylo jistě hezké, ale naneštěstí je to těžké zavést, jelikož různé volby enkódování vedou k různé kvalitě v závislosti na zdrojovém materiálu. To proto, že komprese závisí na vizuálních vlastnostech daného videa. Například anime a živá akce mají zcela rozdílné vlastnosti a tedy vyžadují odlišné volby pro dosažení optimálního enkódování. Dobrá zpráva je, že některé volby by nikdy neměly chybět, jako <option>mbd=2</option>, <option>trell</option> a <option>v4mv</option>. Podrobný popis obvyklých enkódovacích voleb naleznete níže. </para> <itemizedlist> <title>Volby k nastavení:</title> <listitem><para> <emphasis role="bold">vmax_b_frames</emphasis>: 1 nebo 2 je v pořádku, v závislosti na filmu. Poznamenejme, že libavcodec zatím nepodporuje uzavřený GOP (volba <option>cgop</option> zatím nepracuje), takže DivX5 nebude schopen dekódovat nic enkódovaného s B-snímky. </para></listitem> <listitem><para> <emphasis role="bold">vb_strategy=1</emphasis>: pomáhá ve scénách s rychlým pohybem. Vyžaduje vmax_b_frames >= 2. V některých videích může vmax_b_frames snížit kvalitu, ale vmax_b_frames=2 spolu s vb_strategy=1 pomůže. </para></listitem> <listitem><para> <emphasis role="bold">dia</emphasis>: okruh vyhledávání pohybu. Čím větší, tím lepší a pomalejší. Záporné hodnoty mají úplně jiný význam. Dobrými hodnotami jsou -1 pro rychlé enkódování, nebo 2-4 pro pomalejší. </para></listitem> <listitem><para> <emphasis role="bold">predia</emphasis>: předprůchod pro vyhledávání pohybu. Není tak důležitý jako dia. Dobré hodnoty jsou 1 (výchozí) až 4. Vyžaduje preme=2, aby byla opravdu k něčemu. </para></listitem> <listitem><para> <emphasis role="bold">cmp, subcmp, precmp</emphasis>: Porovnávací funkce pro odhad pohybu. Experimentujte s hodnotami 0 (výchozí), 2 (hadamard), 3 (dct) a 6 (omezení datového toku). 0 je nejrychlejší a dostatečná pro precmp. Pro cmp a subcmp je 2 dobrá pro anime a 3 zase pro živou akci. 6 může, ale nemusí být o něco lepší, ale je pomalá. </para></listitem> <listitem><para> <emphasis role="bold">last_pred</emphasis>: Počet prediktorů pohybu přebíraných z předchozího snímku. 1-3 nebo tak pomůžou za cenu menšího zdržení. Vyšší hodnoty jsou však pomalé a nepřináší žádný další užitek. </para></listitem> <listitem><para> <emphasis role="bold">cbp, mv0</emphasis>: Ovládá výběr makrobloků. Malá ztráta rychlosti za malý zisk kvality. </para></listitem> <listitem><para> <emphasis role="bold">qprd</emphasis>: adaptivní kvantizace založená na komplexnosti makrobloku. Může pomoci i uškodit v závislosti na videu a ostatních volbách. Toto může způsobovat artefakty, pokud nenastavíte vqmax na nějakou rozumně malou hodnotu (6 je dobrá, možná byste ale měli jít až na 4); vqmin=1 může také pomoci. </para></listitem> <listitem><para> <emphasis role="bold">qns</emphasis>: velmi pomalá, zvlášť v kombinaci s qprd. Tato volba nutí enkodér minimalizovat šum díky kompresi artefaktů, místo aby se snažil striktně zachovávat věrnost videa. Nepoužívejte ji, pokud jste již nezkusili všechno ostatní kam až to šlo a výsledek přesto není dost dobrý. </para></listitem> <listitem><para> <emphasis role="bold">vqcomp</emphasis>: Vylepšení ovládání datového toku. Dobré hodnoty se liší podle videa. Můžete to bezpečně ponechat jak to je, pokud chcete. Snížením vqcomp pustíte více bitů do scén s nízkou komplexností, zvýšením je pošlete do scén s vysokou komplexností (výchozí: 0.5, rozsah: 0-1. doporučený rozsah: 0.5-0.7). </para></listitem> <listitem><para> <emphasis role="bold">vlelim, vcelim</emphasis>: Nastaví jediný koeficient prahu eliminace pro jasové a barevné roviny. Ty jsou enkódovány odděleně ve všech MPEGu podobných algoritmech. Myšlenka stojící za těmito volbami je použití dobré heuristiky pro určení, zda je změna v bloku menší než vámi nastavený práh a v tom případě se blok enkóduje jako "nezměněný". To šetří bity a možná i zrychlí enkódování. vlelim=-4 a vcelim=9 se zdají být dobré pro hrané filmy, ale příliš nepomohou s anime; pokud enkódujete anime, měli byste je asi nechat beze změn. </para></listitem> <listitem><para> <emphasis role="bold">qpel</emphasis>: Odhad pohybu s přesností na čtvrt pixelu. MPEG-4 používá přesnost na půl pixelu jako výchozí při vyhledávání pohybu, proto je tato volba spojena s určitou režií, jelikož se do výstupního souboru ukládá více informací. Kompresní zisk/ztráta závisí na filmu, ale obvykle to není příliš efektivní na anime. qpel vždy způsobí zvýšení výpočetní náročnosti dekódování (v praxi +20% času CPU). </para></listitem> <listitem><para> <emphasis role="bold">psnr</emphasis>: neovlivní aktuální enkódování, ale zaznamená typ/velikost/kvalitu každého snímku do log souboru a na konci vypíše souhrnný PSNR (odstup signálu od šumu). </para></listitem> </itemizedlist> <itemizedlist> <title>Volby se kterými nedoporučujeme si hrát:</title> <listitem><para> <emphasis role="bold">vme</emphasis>: Výchozí je nejlepší. </para></listitem> <listitem><para> <emphasis role="bold">lumi_mask, dark_mask</emphasis>: Psychovizuálně adaptivní kvantizace. Nehrajte si s těmito volbami, pokud vám jde o kvalitu. Rozumné hodnoty mohou být efektivní ve vašem případě, ale pozor, je to velmi subjektivní. </para></listitem> <listitem><para> <emphasis role="bold">scplx_mask</emphasis>: Snaží se předcházet blokovým artefaktům, ale postprocesing je lepší. </para></listitem> </itemizedlist> </sect2> <sect2 id="menc-feat-dvd-mpeg4-example"> <title>Příklad</title> <para> Takže jste si koupili zbrusu novou kopii filmu Harry Potter a Tajemná komnata (širokoúhlou verzi samozřejmě) a chcete si toto DVD ripnout, takže si jej můžete přidat do svého Domácího kino-počítače PC. Je to region 1 DVD, takže je v NTSC. Níže uvedený příklad je stále vhodný i pro PAL, jen musíte vynechat <option>-ofps 24000/1001</option> (protože výstupní snímková rychlost je shodná se vstupní) a přirozeně budou rozdílné souřadnice pro ořez. </para> <para> Po spuštění <option>mplayer dvd://1</option>, postupujeme podle informací obsažených v sekci <link linkend="menc-feat-telecine">Jak naložit s telecine a prokladem v NTSC DVD</link> a zjistíme že je to 24000/1001 neprokládané video, takže nepotřebujeme použít inverzní telecine filtr, jako je <option>pullup</option> nebo <option>filmdint</option>. </para> <para> Dále musíme zjistit vhodný ořezový obdélník, takže použijeme filtr cropdetect: <screen>mplayer dvd://1 -vf cropdetect</screen> Ujistěte se, že jste přešli přes zaplněný snímek (nějakou jasnou scénu) a v konzoli <application>MPlayer</application>u uvidíte: <screen>crop area: X: 0..719 Y: 57..419 (-vf crop=720:362:0:58)</screen> Potom přehrajeme film s tímto filtrem, abychom otestovali jeho správnost: <screen>mplayer dvd://1 -vf crop=720:362:0:58</screen> A zjistíme, že to vypadá zcela v pořádku. Dále se ujistíme, že šířka i výška jsou násobky 16. Šířka je v pořádku, výška ovšem ne. Protože jsme nepropadli v sedmé třídě z matematiky, víme, že nejbližším násobkem 16 nižším než 362 je 352. </para> <para> Mohli bychom použít <option>crop=720:352:0:58</option>, ale bude lepší ustřihnout kousek nahoře i dole, takže zachováme střed. Zkrátili jsme výšku o 10 pixelů, ale nechceme zvýšit odsazení y o 5 pixelů, protože je to liché číslo, což by nepříznivě ovlivnilo kvalitu. Místo toho zvýšíme odsazení y o 4 pixely: <screen>mplayer dvd://1 -vf crop=720:352:0:62</screen> Další důvod pro odstřižení pixelů shora i zdola je to, že si můžeme být jisti odstřižením napůl černých pixelů pokud existují. Pokud je však vaše video telecinováno, ujistěte se, že máte v řetězu filtrů <option>pullup</option> filtr (nebo jiný filtr pro inverzi telecine, který hodláte použít) ještě před odstraněním prokladu a ořezem. (Pokud se rozhodnete zachovat vaše video prokládané, pak se ujistěte, že vaše vertikální odsazení (offset) je násobkem 4.) </para> <para> Pokud si děláte starosti se ztrátou těch 10 pixelů, možná raději snížíte rozměry na nejbližší násobek 16. Řetězec filtrů by pak vypadal asi takto: <screen>-vf crop=720:362:0:58,scale=720:352</screen> Takovéto zmenšení videa bude znamenat ztrátu malého množství detailů, což bude pravděpodobně stěží postřehnutelné. Zvětšování by naopak vedlo ke snížení kvality (pokud byste nezvýšili datový tok). Ořez odstraní tyto pixely úplně. To je jedna z věcí, kterou byste si měli uvážit pro každý případ zvlášť. Například pokud bylo DVD video vyrobeno pro televizi, měli byste se vyvarovat vertikálnímu škálování, jelikož počet řádků odpovídá originální nahrávce. </para> <para> Při prohlídce jsme zjistili, že video je poměrně akční, s vysokým počtem detailů, takže jsme zvolili datový tok 2400 Kbitů. </para> <para> Nyní jsme připraveni provést dvouprůchodové enkódování. Průchod jedna: <screen>mencoder dvd://1 -ofps 24000/1001 -oac copy -vf crop=720:352:0:62,hqdn3d=2:1:2 -ovc lavc \ -lavcopts vcodec=mpeg4:vbitrate=2400:v4mv:mbd=2:trell:cmp=3:subcmp=3:mbcmp=3:autoaspect:vpass=1 \ -o Harry_Potter_2.avi</screen> A průchod dva je stejný, jen nastavíme <option>vpass=2</option>: <screen>mencoder dvd://1 -ofps 24000/1001 -oac copy -vf crop=720:352:0:62,hqdn3d=2:1:2 -ovc lavc \ -lavcopts vcodec=mpeg4:vbitrate=2400:v4mv:mbd=2:trell:cmp=3:subcmp=3:mbcmp=3:autoaspect:vpass=2 \ -o Harry_Potter_2.avi</screen> </para> <para> Volby <option>v4mv:mbd=2:trell</option> velmi zvýší kvalitu za cenu časové náročnosti enkódování. Vcelku není důvod tuto volbu vypustit, pokud je primárním cílem kvalita. Volby <option>cmp=3:subcmp=3:mbcmp=3</option> vyberou porovnávací funkci, která poskytuje lepší kvalitu, než výchozí. S tímto parametrem můžete zkusit experimentovat (nahlédněte do man stránky pro seznam možných hodnot), jelikož různé funkce mohou mít velký vliv na kvalitu v závislosti na zdrojovém materiálu. Například pokud zjistíte, že <systemitem class="library">libavcodec</systemitem> produkuje příliš mnoho čtverečkových artefaktů, můžete zkusit zvolit experimentální NSSE jako porovnávací funkci přes <option>*cmp=10</option>. </para> <para> V případě tohoto filmu bude výsledné AVI dlouhé 138 minut a veliké kolem 3GB. A protože jste řekli, že na velikosti nezáleží, je to přijatelná velikost. Ale pokud byste jej chtěli menší, můžete zkusit nižší datový tok. Efekt zvyšování datového toku se totiž neustále snižuje, takže zatímco je zlepšení po zvýšení z 1800 Kbitů na 2000 Kbitů zjevné, nemusí být již tak velké nad 2000 Kbitů. Beze všeho s tím experimentujte, dokud nebudete spokojeni. </para> <para> Jelikož jsme protáhli video odšumovacím filtrem, měli bychom jej trochu přidat během přehrávání. To, spolu s <option>spp</option> post-procesním filtrem, znatelně zvýší vnímanou kvalitu a pomůže odstranit čtverečkové artefakty ve videu. S <application>MPlayer</application>ovou volbou <option>autoq</option> může být množství postprocesingu prováděného filtrem spp přizpůsobováno vytížení CPU. V tuto chvíli rovněž můžete provést korekci gama a/nebo barevnou korekci k dosažení nejlepších výsledků. Například: <screen>mplayer Harry_Potter_2.avi -vf spp,noise=9ah:5ah,eq2=1.2 -autoq 3</screen> </para> </sect2> <sect2 id="menc-feat-dvd-mpeg4-muxing"> <title>Muxování (multiplexování)</title> <para> Nyní, když máte své video enkódované, budete jej nejspíš chtít muxovat s jedním nebo více zvukovými stopami do nosného filmového formátu, jako je AVI, MPEG, Matroska nebo NUT. <application>MEncoder</application> je zatím schopen zvuk a video zapracovat pouze do nosných formátů MPEG a AVI. Například: <screen>mencoder -oac copy -ovc copy -o <replaceable>výstupní_film.avi</replaceable> -audiofile <replaceable>vstupní_audio.mp2</replaceable> <replaceable>vstupní_video.avi</replaceable></screen> To by mělo sloučit video soubor <replaceable>vstupní_video.avi</replaceable> a zvukový soubor <replaceable>vstupní_audio.mp2</replaceable> do AVI souboru <replaceable>výstupní_film.avi</replaceable>. Tento příkaz pracuje s MPEG-1 layer I, II a III (známým jako MP3) zvukem, WAV a také několika dalšími formáty zvuku. </para> <para> <application>MEncoder</application> obsahuje experimentální podporu pro <systemitem class="library">libavformat</systemitem>, což je knihovna z projektu FFmpeg, která podporuje muxování a demuxování celé řady nosných formátů. Například: <screen>mencoder -oac copy -ovc copy -o <replaceable>výstupní_film.asf</replaceable> -audiofile <replaceable>vstupní_audio.mp2</replaceable> <replaceable>vstupní_video.avi</replaceable> -of lavf -lavfopts format=asf</screen> To provede stejnou činnost jako předchozí příklad, avšak výstupním formátem bude ASF. Prosím berte na vědomí, že tato podpora je velmi experimentální (ale de ode dne lepší) a bude funkční pouze pokud jste zkompilovali <application>MPlayer</application> s podporou pro <systemitem class="library">libavformat</systemitem> (což znamená, že předkompilovaná binární verze nebude většinou fungovat). </para> <sect3 id="menc-feat-dvd-mpeg4-muxing-avi-limitations"> <title>Limitace nosného formátu AVI</title> <para> Ačkoli je to po MPEG-1 nejpodporovanější nosný formát, má AVI i jisté zásadní nedostatky. Snad nejviditelnější je režie. Na každý chunk AVI souboru je 24 bajtů ztraceno na hlavičky a index. To se projeví asi 5 MP na hodinu, neboli 1-2.5% prodloužení 700 MB filmu. Nevypadá to jako mnoho, ale může to znamenat rozdíl mezi možností použít video při 700 kbitech/s nebo 714 kbitech/s a tady se každý bit projeví na kvalitě. </para> <para> Navíc k této neefektivitě má AVI také následující hlavní omezení: </para> <orderedlist> <listitem> <para> Může být uchováván pouze obsah s konstantní snímkovou rychlostí. To je zvláště omezující, když má původní materiál, který chcete enkódovat, smíšený obsah. Například směs NTSC videa a filmového materiálu. Jistěže jsou zde cestičky, které umožní uložit obsah se smíšenou snímkovou rychlostí v AVI, ale ty zvyšují (již tak velkou) režii pětinásobně nebo víc, proto nejsou praktické. </para> </listitem> <listitem> <para> Zvuk v AVI musí mít buď konstantní datový tok (CBR) nebo konstantní velikost rámce (čili všechny rámce se dekódují na stejný počet vzorků). Naneštěstí ten nejefektivnější kodek, Vorbis, nesplňuje ani jeden z těchto požadavků. Pokud tedy plánujete uložit svůj film do AVI, budete muset použít méně efektivní kodek, jako MP3 nebo AC3. </para> </listitem> </orderedlist> <para> Z výše uvedených důvodů <application>MEncoder</application> zatím nepodporuje proměnnou snímkovou rychlost ani enkódování do Vorbisu. Nemusíte to však považovat za omezení, jestliže je <application>MEncoder</application> jediným nástrojem pro vaše enkódování. Nakonec je možné použít <application>MEncoder</application> pouze pro enkódování videa a pak použít externí nástroje pro enkódování zvuku a namuxování do jiného nosného formátu. </para> </sect3> <sect3 id="menc-feat-dvd-mpeg4-muxing-matroska"> <title>Muxování do nosného formátu Matroska</title> <para> Matroska je svobodný a otevřený standard nosného formátu, zaměřený na nabídku mnoha pokročilých vlastností, které starší nosné formáty, jako AVI, nemohou poskytnout. Například Matroska podporuje zvuk s proměnným datovým tokem (VBR), proměnné snímkové rychlosti (VFR), kapitoly, přílohy souborů, kód pro detekci chyb (EDC) a moderní A/V kodeky jako "Advanced Audio Coding" (AAC), "Vorbis" nebo "MPEG-4 AVC" (H.264), z nichž žádný nelze použít v AVI. </para> <para> Nástroje pro vytváření Matroska souborů jsou souhrnně nazvány <application>mkvtoolnix</application> a jsou dostupné pro většinu Unixových platforem a stejně tak <application>Windows</application>. Protože je Matroska otevřený standard, můžete najít jiné nástroje, které vám lépe padnou, ale protože mkvtoolnix je nejrozšířenější a je podporován přímo Matroska týmem, pokryjeme jen jejich použití. </para> <para> Asi nejsnazší způsob, jak začít s Matroskou je použít <application>MMG</application>, grafickou nadstavbu dodávanou s <application>mkvtoolnix</application> a řídit se <ulink url="http://www.bunkus.org/videotools/mkvtoolnix/doc/mkvmerge-gui.html">návodem k mkvmerge GUI (mmg)</ulink> </para> <para> Můžete rovněž muxovat zvukové a video soubory z příkazového řádku: <screen>mkvmerge -o <replaceable>výstup.mkv</replaceable> <replaceable>vstupní_video.avi</replaceable> <replaceable>vstupní_audio1.mp3</replaceable> <replaceable>vstupní_audio2.ac3</replaceable></screen> To spojí video soubor <replaceable>vstupní_video.avi</replaceable> a dva zvukové soubory <replaceable>vstupní_audio1.mp3</replaceable> a <replaceable>vstupní_audio2.ac3</replaceable> do Matroska souboru <replaceable>výstup.mkv</replaceable>. Matroska, jak jsme již řekli, umí mnohem víc než to, jako více zvukových stop (včetně doladění audio/video synchronizace), kapitoly, titulky, stříhání, atd... Detaily naleznete v dokumentaci k těmto aplikacím. </para> </sect3> </sect2> </sect1> <sect1 id="menc-feat-telecine"> <title>Jak naložit s telecine a prokladem v NTSC DVD</title> <sect2 id="menc-feat-telecine-intro"> <title>Představení</title> <formalpara> <title>Co je to telecine?</title> <para> Pokud moc nerozumíte tomu, co je napsáno v tomto dokumentu, doporučujeme navštívit tuto stránku: <ulink url="http://www.divx.com/support/guides/guide.php?gid=10">http://www.divx.com/support/guides/guide.php?gid=10</ulink> Na této adrese je srozumitelný a rozumně vyčerpávající popis co je to telecine. </para></formalpara> <formalpara> <title>Poznámka k číslům.</title> <para> Mnoho dokumentů, včetně výše odkazované příručky, udává hodnotu půlsnímků za sekundu NTSC videa jako 59.94 a odpovídající snímky za sekundu jako 29.97 (pro telecinované a prokládané video) a 23.976 (pro neprokládané). Pro jednoduchost některé dokumenty zaokrouhlují tyto hodnoty na 60, 30 a 24. </para></formalpara> <para> Přesně řečeno jsou všechny tyto čísla přibližná. Černobílé NTSC video mělo přesně 60 půlsnímků za sekundu, ale později byla zvolena hodnota 60000/1001, aby bylo možné přidat barevná data a zůstat kompatibilní se starými černobílými televizemi. Digitální NTSC (jak je na DVD) má rovněž rychlost 60000/1001 půlsnímků za sekundu. Z toho vyplývá, že prokládané a telecinované video má 30000/1001 snímků za sekundu; neprokládané video má 24000/1001 snímků za sekundu. </para> <para> Starší verze dokumentace <application>MEncoder</application>u a mnoho zpráv v archivu konference hovoří o 59.94, 29.97 a 23.976. Všechna dokumentace <application>MEncoder</application>u byla aktualizována a používá zlomkových hodnot. Vy byste je měli používat také. </para> <para> <option>-ofps 23.976</option> je nesprávně. Místo toho byste měli použít <option>-ofps 24000/1001</option>. </para> <formalpara> <title>Jak je používáno telecine.</title> <para> Veškeré video určené k zobrazení na NTSC televizi musí mít 60000/1001 půlsnímků za sekundu. Filmy vyráběné pro televizi jsou často natáčeny přímo ve 60000/1001 půlsnímcích za sekundu, ale většina filmů do kin je natáčena při 24 nebo 24000/1001 snímcích za sekundu. Když je film přepisován na DVD, je video upraveno pro televizi v procesu zvaném telecine. </para></formalpara> <para> Na DVD není video ve skutečnosti nikdy uloženo v 60000/1001 půlsnímcích za sekundu. Video jež bylo původně 60000/1001, bude mít každý pár půlsnímků zkombinován do podoby snímku s rychlostí 30000/1001 snímků za sekundu. Hardwarové DVD přehrávače pak čtou příznak, zabudovaný ve video proudu, který udává jestli první půlsnímek tvoří liché nebo sudé řádky. </para> <para> Obsah ve 24000/1001 snímcích za sekundu obvykle zůstává tak jak byl v době přepisu na DVD a DVD přehrávač musí provést telecine za letu. Někdy je však video telecinováno <emphasis>před</emphasis> uložením na DVD; dokonce i když mělo původně 24000/1001 snímků za sekundu, bude mít 60000/1001 půlsnímků za sekundu. Pokud je uložen na DVD, páry půlsnímků jsou zkombinovány do formy 30000/1001 snímků za sekundu. </para> <para> Když se podíváme na jednotlivé snímky vzniklé z videa o 60000/10001 půlsnímcích za sekundu, telecinovaného nebo ne, je zřetelně vidět toto prokládání jakmile je zde nějaký pohyb, jelikož jeden půlsnímek (řekněme liché řádky) reprezentuje časový okamžik o 1/(60000/1001) sekundy pozdější než ten druhý. Přehrávání prokládaného videa na počítači vypadá škaredě jak proto, že monitor má vyšší rozlišení, ale i protože video je zobrazováno snímek po snímku místo půlsnímek po půlsnímku. </para> <itemizedlist> <title>Poznámky:</title> <listitem><para> Tento odstavec platí pouze pro NTSC DVD, nikoli PAL. </para></listitem> <listitem><para> Řádky s příklady spuštění <application>MEncoder</application>u v dokumentu <emphasis role="bold">nejsou</emphasis> určeny pro opravdové použití. Obsahují pouze nutné minimum vyžadované pro enkódování příslušné ke kategorii videa. Jak dělat dobré DVD ripy nebo doladit <systemitem class="library">libavcodec</systemitem> pro maximální kvalitu není v záběru tohoto dokumentu. </para></listitem> <listitem><para> Poznámky pod čarou příslušné pro tuto příručku jsou linkovány takto: <link linkend="menc-feat-telecine-footnotes">[1]</link> </para></listitem> </itemizedlist> </sect2> <sect2 id="menc-feat-telecine-ident"> <title>Jak zjistit o jaký typ videa se jedná</title> <sect3 id="menc-feat-telecine-ident-progressive"> <title>Progresivní (neprokládané)</title> <para> Progresivní video je původně natočeno při 24000/1001 snímcích za sekundu a uloženo na DVD beze změn. </para> <para> Když přehrajete progresivní DVD v <application>MPlayer</application>u, <application>MPlayer</application> vypíše následující řádek jakmile začne přehrávat: <screen> demux_mpg: 24000/1001 fps progressive NTSC content detected, switching framerate.</screen> Od tohoto okamžiku by demux_mpg neměl nikdy říct že našel "30000/1001 fps NTSC obsah." </para> <para> Když sledujete progresivní video, neměli byste nikdy vidět žádný proklad. Dejte si ale pozor, jelikož je občas trošku telecine namixováno tam, kde byste to vůbec nečekali. Setkal jsem se s TV show na DVD, které měly sekundu telecine při každé změně scény nebo na zcela náhodných místech. Jednou jsem se díval na DVD, které bylo do půlky progresivní a od půlky telecinováno. Pokud chcete být <emphasis>opravdu</emphasis> důkladní, můžete oskenovat celý film: <screen>mplayer dvd://1 -nosound -vo null -benchmark</screen> Použití volby <option>-benchmark</option> nechá <application>MPlayer</application> přehrát film tak rychle, jak je to jen možné; stejně to ale, v závislosti na vašem stroji, chvíli potrvá. Vždy, když demux_mpg ohlásí změnu snímkové rychlosti, řádek těsně nad hlášením ukáže čas ve kterém ke změně došlo. </para> <para> Občas je progresivní video na DVD označeno jako "soft-telecine" protože je zamýšleno, aby telecine provedl DVD přehrávač. </para> </sect3> <sect3 id="menc-feat-telecine-ident-telecined"> <title>Telecinováno (přepsáno pro NTSC televizi)</title> <para> Telecinované video bylo původně natočeno při 24000/1001, ale bylo telecinováno <emphasis>před</emphasis> zápisem na DVD. </para> <para> <application>MPlayer</application> (nikdy) nehlásí žádnou změnu snímkové rychlosti, když přehrává telecinované video. </para> <para> Při sledování telecinovaného videa uvidíte prokladové artefakty, které jako by "blikaly": opakovaně mizí a objevují se. Blíže se na to můžete podívat: <orderedlist> <listitem> <screen>mplayer dvd://1</screen> </listitem> <listitem><para> Převiňte na část s pohybem. </para></listitem> <listitem><para> Použijte klávesu <keycap>.</keycap> pro krokování po jednom snímku. </para></listitem> <listitem><para> Sledujte vzor prokládaně vypadajících a progresivně vypadajících snímků. Pokud je vzor, který sledujete PPPII,PPPII,PPPII,..., pak je video telecinováno. Pokud vidíte jiný vzor, pak mohlo být video telecinováno použitím nějaké nestandardní metody; <application>MEncoder</application> neumí bezztrátově převést nestandardní telecine do progresivního. Pokud nevidíte žádný vzor, pak je video nejspíš prokládané. </para></listitem> </orderedlist> </para> <para> Někdy je telecinované video na DVD označeno jako "hard-telecine". Jelikož hard-telecine již je ve 60000/1001 půlsnímcích za sekundu, DVD přehrávač přehraje video bez jakýchkoli manipulací. </para> </sect3> <sect3 id="menc-feat-telecine-ident-interlaced"> <title>Prokládané</title> <para> Prokládané video bylo od samého začátku filmováno při 60000/1001 půlsnímcích za sekundu a uloženo na DVD ve 30000/1001 snímcích za sekundu. Efekt prokládání (často označovaný jako "roztřepení") je výsledkem skládání půlsnímků do snímků. Vzdálenost mezi půlsnímky má být 1/(60000/1001) sekundy a proto když jsou zobrazeny současně, je rozdíl jasně patrný. </para> <para> Stejně jako u telecinovaného videa by <application>MPlayer</application> neměl hlásit jakékoli změny snímkové rychlosti při přehrávání prokládaného obsahu. </para> <para> Když si prohlédnete video blíže pomocí krokování snímků pomocí klávesy <keycap>.</keycap>, uvidíte, že každý jednotlivý snímek je prokládaný. </para> </sect3> <sect3 id="menc-feat-telecine-ident-mixedpt"> <title>Smíšené progresivní a telecinované</title> <para> Veškerý obsah "smíšeného progresivního a telecinovaného" videa měl původně 24000/1001 snímků za sekundu, ale některé části prošly telecine. </para> <para> Když <application>MPlayer</application> přehrává tuto kategorii, bude (často i opakovaně) přepínat mezi "30000/1001 snímky/s NTSC" a "24000/1001 snímky/s progresivním NTSC". Sledujte spodek <application>MPlayer</application>ova výstupu, abyste zachytili tyto zprávy. </para> <para> Měli byste prověřit části se "30000/1001 snímky/s NTSC", abyste měli jistotu, že jsou skutečně telecinovány a ne jen prokládané. </para> </sect3> <sect3 id="menc-feat-telecine-ident-mixedpi"> <title>Smíšené progresivní a prokládané</title> <para> Ve "smíšeném progresivním a prokládaném" obsahu bylo progresivní a prokládané video splácáno dohromady. </para> <para> Tato kategorie vypadá jako "smíšené progresivní a telecine", dokud si neprohlédnete části se 30000/1001 snímky/s a neuvidíte, že nemají telecine vzor. </para> </sect3> </sect2> <sect2 id="menc-feat-telecine-encode"> <title>Jak enkódovat jednotlivé kategorie</title> <para> Jak jsem se zmínil na začátku, příklady příkazových řádků <application>MEncoder</application>u níže <emphasis role="bold">nejsou</emphasis> určeny pro praktické použití; pouze demonstrují, minimum voleb nutných k tomu, abyste správně enkódovali každou kategorii. </para> <sect3 id="menc-feat-telecine-encode-progressive"> <title>Progresivní</title> <para> Progresivní video nevyžaduje žádné speciální filtrování pro enkódování. Jediná volba, která by určitě neměla chybět je <option>-ofps 24000/1001</option>. Jinak se <application>MEncoder</application> pokusí enkódovat při 30000/1001 snímcích/s a bude opakovat snímky. </para> <para> <screen>mencoder dvd://1 -nosound -ovc lavc -ofps 24000/1001</screen> </para> <para> Často se stává, že video, které vypadá progresivně, má v sobě zamíchány kratičké telecinované části. Pokud si nejste jisti, je nejbezpečnější považovat video za <link linkend="menc-feat-telecine-encode-mixedpt">smíšené progresivní a telecinované</link>. Ztráta výkonu je jen malá <link linkend="menc-feat-telecine-footnotes">[3]</link>. </para> </sect3> <sect3 id="menc-feat-telecine-encode-telecined"> <title>Telecinované</title> <para> Telecine lze obrátit a dostat tak původní 24000/1001 obsah, za použití metody zvané inverzní telecine. <application>MPlayer</application> má několik filtrů právě pro tuto činnost; nejlepší z těchto filtrů, <option>pullup</option>, je popsán v části <link linkend="menc-feat-telecine-encode-mixedpt">smíšené progresivní a telecinované</link>. </para> </sect3> <sect3 id="menc-feat-telecine-encode-interlaced"> <title>Prokládané</title> <para> V praxi není většinou možné dostat kompletní progresivní video z prokládaného obsahu. Jediný způsob jak to udělat bez ztráty poloviny svislého rozlišení je zdvojením snímkové rychlosti a zkusit "odhadnout" co mám provést s odpovídajícími linkami každého z půlsnímků (má to ovšem i nevýhody – viz metoda 3). </para> <orderedlist> <listitem><para> Enkódujte video v prokládané formě. Obvykle prokládání způsobí těžkou újmu schopnosti enkodéru dobře komprimovat, ale <systemitem class="library">libavcodec</systemitem> má dvě volby určené právě pro lepší ukládání prokládaného videa: <option> ildct</option> a <option>ilme</option>. Rovněž velmi doporučujeme použití volby <option>mbd=2</option> <link linkend="menc-feat-telecine-footnotes">[2] </link> protože bude enkódovat makrobloky jako neprokládané tam, kde není žádný pohyb. Volba <option>-ofps</option> zde <emphasis role="bold">není</emphasis> nutná. <screen>mencoder dvd://1 -nosound -ovc lavc -lavcopts ildct:ilme:mbd=2</screen> </para></listitem> <listitem><para> Použijte filtr odstraňující proklad před enkódováním. Je jich zde několik, můžete si vybrat. Každý z nich má svá pro i proti. Prohlédněte si výstup <option>mplayer -pphelp</option> abyste zjistili, které jsou k dispozici (grep pro "deint") a vyhledejte <ulink url="http://www.mplayerhq.hu/homepage/design6/info.html#mailing_lists"> e-mailové konference MPlayeru</ulink>, kde naleznete mnoho diskusí o různých filtrech. Snímková rychlost se ani zde nemění, takže žádné <option>-ofps</option>. Odstranění proklady by rovněž mělo být provedeno po ořezání <link linkend="menc-feat-telecine-footnotes">[1]</link>, ale před škálováním. <screen>mencoder dvd://1 -nosound -vf pp=lb -ovc lavc</screen> </para></listitem> <listitem><para> Naneštěstí je tato volba vadná v <application>MEncoder</application>u; měla by dobře pracovat v <application>MEncoder G2</application>, ale ten tu zatím není. Stejně je určením <option> -vf tfields</option> vytvoření kompletního snímku z každého půlsnímku, což zvýší snímkovou rychlost na 60000/1001. Výhoda tohoto přístupu je v tom, že nepřijdete o žádná data; Protože však každý snímek pochází jen z jediného půlsnímku, musí být chybějící linky nějak dopočítány. Neexistuje mnoho dobrých metod, generujících chybějící data, takže výsledek bude trochu podobný tomu, když se použije některý filtr odstraňující proklad. Generováním chybějících linek vznikají další problémy tím, že se zdvojnásobí množství dat. Takže jsou potřeba vyšší datové toky pro enkódování, aby byla zachována kvalita a spotřebuje se více výkonu CPU jak pro enkódování, tak pro dekódování. tfields má několik různých voleb pro volbu způsobu generování chybějících linek. Pokud použijete tuto možnost, prostudujte si manuál a zvolte si volbu, která s vaším materiálem vypadá nejlépe. Poznamenejme, že při použití <option>tfields</option> <emphasis role="bold">musíte</emphasis> nastavit <option>-fps</option> a <option>-ofps</option> na dvojnásobek snímkové rychlosti originálu. <screen>mencoder dvd://1 -nosound -vf tfields=2 -ovc lavc -fps 60000/1001 -ofps 60000/1001</screen> </para></listitem> <listitem><para> Pokud plánujete výrazné zmenšování, můžete extrahovat a enkódovat jen jeden z půlsnímků. Samozřejmě přijdete o polovinu svislého rozlišení, ale pokud plánujete zmenšení ideálně na 1/2 originální velikosti, nebude na této ztrátě vůbec záležet. Výsledek bude progresivní soubor s 30000/1001 snímky za sekundu. Celý postup spočívá v použití <option>-vf field</option> a následném ořezu <link linkend="menc-feat-telecine-footnotes">[1]</link> a příslušném škálování. Pamatujte, že musíte nastavit scale tak, aby kompenzoval zmenšení svislého rozměru na polovinu. <screen>mencoder dvd://1 -nosound -vf field=0 -ovc lavc</screen> </para></listitem> </orderedlist> </sect3> <sect3 id="menc-feat-telecine-encode-mixedpt"> <title>Smíšené progresivní a telecinované</title> <para> Abychom převedli smíšené progresivní a telecinované video zcela na progresivní video, musí být telecinované části inverzně telecinovány. K tomu lze dospět třemi postupy popsanými níže.Poznamenejme, že byste měli <emphasis role="bold">vždy</emphasis> provést inverzní telecine před jakýmkoliv škálováním; a v případě, že přesně nevíte co děláte, také před ořezáním <link linkend="menc-feat-telecine-footnotes">[1]</link>. Volba <option>-ofps 24000/1001</option> je vyžadována, protože výstupní video bude mít 24000/1001 snímků za sekundu. </para> <itemizedlist> <listitem><para> <option>-vf pullup</option> je navržen tak, aby inverzně telecinoval, ale progresivní data nechával jak jsou. Pro správnou funkci <emphasis role="bold">musí</emphasis> být <option>pullup</option> následován filtrem <option>softskip</option>, jinak <application>MEncoder</application> zhavaruje. <option>pullup</option> je však nejčistší a nejpřesnější dostupnou metodou pro enkódování jak telecinovaného, tak "smíšeného progresivního a telecinovaného". <screen>mencoder dvd://1 -nosound -vf pullup,softskip -ovc lavc -ofps 24000/1001</screen> </para> </listitem> <listitem><para> Starší metodou je, spíše než inverzně telecinovat telecinované části, telecinovat progresivní části a poté inverzně telecinovat celé video. Zmatení? softpulldown je filtr, který projde celé video a převede celý soubor na telecinovaný. Pokud budeme následovat softpulldown buď <option>detc</option> nebo <option>ivtc</option>, bude konečný výsledek zcela progresivní. Nutná je volba <option>-ofps 24000/1001</option>. <screen>mencoder dvd://1 -nosound -vf softpulldown,ivtc=1 -ovc lavc -ofps 24000/1001</screen> </para> </listitem> <listitem><para> Osobně jsem nepoužil <option>-vf filmdint</option>, ale toto o něm (přibližně) řekl D Richard Felker III: <blockquote><para>Je to OK, ale IMO to zkouší až příliš často odstraňovat proklad místo provádění inverzního telecine (stejně jako settop DVD přehrávače & progresivní televize) což vede ke škaredému třepotání a dalším artefaktům. Pokud jej chcete používat, měli byste předtím alespoň trochu času věnovat ladění voleb a sledováním výstupu, abyste měli jistotu, že vám to něco nekazí.</para></blockquote> </para></listitem> </itemizedlist> </sect3> <sect3 id="menc-feat-telecine-encode-mixedpi"> <title>Smíšené progresivní a prokládané</title> <para> Máme dvě volby pro práci s touto kategorií, obě jsou však kompromisem. Měli byste se rozhodnout podle trvání/umístění každého typu. </para> <itemizedlist> <listitem><para> Považujte to za progresivní. Prokládané části budou vypadat prokládaně a některé z prokládaných políčen bude muset být zahozeno, což povede k nestejnoměrnému poskakování. Můžete proti tomu nasadit postprocesní filtr, pokud chcete, ale tím mírně degradujete progresivní části. </para> <para> Této volbě byste se měli rozhodně vyhnout, pokud chcete nakonec zobrazovat video na zobrazovači s prokládaným obrazem (přes TV kartu například). Pokud máte prokládané snímky ve videu s rychlostí 24000/1001 snímků za sekundu, budou telecinovány spolu s progresivními snímky. Polovina prokládaných "snímků" bude zobrazena po dobu trvání třech snímků (3/(60000/1001) sekund), což povede k poskakování. Efekt "cukání zpět" vypadá skutečně zle. Pokud se o to přece pokusíte, <emphasis role="bold">musíte</emphasis> použít filtr odstraňující proklad, jako je <option>lb</option> nebo <option>l5</option>. </para> <para> Špatnou volbou je to i pro progresivní zobrazovač. Ten zahodí páry po sobě jdoucích snímků, což povede k přerušování, které může být více viditelné, než při druhé metodě, která zobrazuje některé progresivní snímky dvakrát. Prokládané video se 30000/1001 snímky za sekundu je totiž poněkud trhané, protože by ve skutečnosti mělo být promítáno při 60000/1001 půlsnímcích za sekundu, takže zdvojení některých snímků není tak moc vidět. </para> <para> V každém případě je nejlepší posoudit obsah a způsob, jakým bude zobrazován. Pokud je vaše video z 90% progresivní a nikdy jej nebudete pouštět na televizi, měli byste volit progresivní přístup. Pokud je progresívní jen z poloviny, pravděpodobně jej bude lepší enkódovat jako ba bylo celé prokládané. </para> </listitem> <listitem><para> Pokládat jej za prokládané. Některé snímky v progresivních částech budou muset být duplikovány, což povede k nepravidelnému poskakování. Opět platí, že filtry pro odstranění prokladu mohou poněkud degradovat progresivní části. </para></listitem> </itemizedlist> </sect3> </sect2> <sect2 id="menc-feat-telecine-footnotes"> <title>Poznámky pod čarou</title> <orderedlist> <listitem><formalpara> <title>K ořezu:</title> <para> Video data na DVD jsou ukládána ve formátu zvaném YUV 4:2:0. V YUV videu jsou, jasová ("černobílá"; angl. luma) a barvonosná (angl. chroma) složka ukládány odděleně. Protože je lidské oko méně citlivé na změnu barvy, než na jas, připadá v YUV 4:2:0 obrázku pouze jeden barvonosný pixel na každé čtyři jasové pixely. V progresivním obrázku má každý čtverec 2x2 jasovými pixely právě jeden barvonosný pixel. Proto musíte ořezávat progresivní YUV 4:2:0 na sudé rozměry a používat sudé odsazení (offsety). Například <option>crop=716:380:2:26</option> je OK, ale <option>crop=716:380:3:26 </option> není. </para> </formalpara> <para> Když máte co do činění s prokládaným YUV 4:2:0, je situace mnohem komplikovanější. Místo každých čtyřech pixelů v <emphasis>rámu</emphasis> sdílejících barvonosný pixel, každé čtyři jasové pixely v každém <emphasis>půlsnímku</emphasis> sdílejí barvonosný pixel. Když jsou půlsnímky proloženy do snímku, každá linka má výšku jeden pixel. A nyní místo aby dané čtyři pixely tvořily čtverec, jsou první dva vedle sebe a druhé dva jsou vedle sebe o dvě linky níž. Dva pixely těsně pod nimi patří do jiného půlsnímku a proto sdílí jiný barvonosný pixel se dvěma jasovými pixely o dva řádky níž. Všechno tohle nás nutí mít svislé rozměry ořezání a odsazení bezezbytku dělitelné čtyřmi. Vodorovné stačí mohou zůstat jen sudé. </para> <para> Pro telecinované video doporučuji, abyste ořezání prováděli až po inverzi telecine. Jakmile je video progresivní, stačí řezat jen na sudé rozměry. Pokud si však přece jen chcete dopřát mírné zrychlení, které může poskytnout časný ořez, musíte svisle dodržet násobky čtyřech, jinak nebude mít filtr pro inverzi telecine správná data. </para> <para> Prokládané (nikoli telecinované) video musíte vždy ořezávat svisle násobky čtyř, pokud před ořezáním nepoužijete <option>-vf field</option>. </para> </listitem> <listitem><formalpara> <title>K volbám pro enkódování a kvalitě:</title> <para> Jen proto, že doporučuji <option>mbd=2</option> zde neznamená, že by tato volba nemohla být použita jinde. V kombinaci s <option>trell</option>, je <option>mbd=2</option> jednou ze dvou voleb <systemitem class="library">libavcodec</systemitem>u, které nejvíce zvyšují kvalitu a vy byste měli vždy použít alespoň tyto dvě, pokud není na škodu zpomalení rychlosti enkódování (např. při enkódování v reálném čase). Mnoho dalších voleb <systemitem class="library">libavcodec</systemitem>u zvyšuje kvalitu enkódování (a snižuje jeho rychlost), ale to je mimo zaměření tohoto textu. </para> </formalpara> </listitem> <listitem><formalpara> <title>K výkonu filtru pullup:</title> <para> Použití <option>pullup</option> je bezpečné (spolu se <option>softskip </option>) ne progresivní video a je to obvykle dobrá volba, pokud nebyl zdroj prověřen, že je celý progresivní. Ve většině případů je ztráta výkonu malá. V ojedinělých případech enkódování způsobí <option>pullup</option>, že je <application>MEncoder</application> o 50% pomalejší. Přidání zpracování zvuku a pokročilých <option>lavcopts</option> zastíní tento rozdíl tak, že rozdíl v rychlosti působený použitím <option>pullup</option> se sníží na 2%. </para> </formalpara> </listitem> <!-- Some further explanation, because of homonym problem in interlace and interleave translation. If anybody wants it in english, just ask. --> <listitem><formalpara> <title>K překladu:</title> <para> Překlad slov interlace a interleave je velmi obtížný, protože vede k jedinému českému ekvivalentu – prokládání. V prvním případě (interlace) se jedná o prokládání obrázku, kdy se z lichých a sudých řádků vytvoří dva půlsnímky, což je běžné v TV. Prokládání (interleave) je naproti tomu sloučení různého obsahu (zvuk, video) do jediného souboru – kontejneru (např. AVI) tak, že se každá složka rozdělí na malé části (tzv. chunky) a ty se pak jeden za druhým ukládají podle určitého vzoru. O to se stará muxer (multiplexer). Abychom dostali zpět jednotlivé složky, musíme poskládat proházené kousky zase zpět, o což se stará demuxer (demultiplexor). </para> </formalpara> </listitem> </orderedlist> </sect2> </sect1> </chapter>