Mercurial > mplayer.hg
view DOCS/xml/cs/encoding-guide.xml @ 28287:dbebb78dda3c
Add VDPAU hardware accelerated decoding for MPEG1 and MPEG2 which will
be used by MPlayer.
Original patch by NVIDIA corporation.
author | cehoyos |
---|---|
date | Fri, 16 Jan 2009 02:14:25 +0000 |
parents | c81e83794b0e |
children | a785e0b7e1f2 |
line wrap: on
line source
<?xml version="1.0" encoding="utf-8"?> <!-- synced with r24549 --> <chapter id="encoding-guide"> <title>Enkódování s <application>MEncoder</application>em</title> <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://www.mplayerhq.hu/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-preparing-encode"> <title>Příprava na enkódování: Určení zdrojového materiálu a datového toku</title> <para> Předtím než i jen pomyslíte na enkódování filmu, budete muset učinit několik přípravných kroků. </para> <para> Prvním a nejdůležitějším krokem před enkódováním by mělo být zjištění druhu obsahu se kterým máte co do činění. Pokud vaše zdrojové video pochází z DVD nebo veřejné/kabelové/satelitní TV, bude uložen v jednom ze dvou formátů: NTSC v Severní Americe a Japonsku, PAL v Evropě, atd. Je ovšem důležité si uvědomit, že to je pouze formátování pro prezentaci v televizi a často <emphasis role="bold">neodpovídá</emphasis> originálnímu formátu filmu. Zkušenosti ukazují, že NTSC materiál je mnohem těžší enkódovat, jelikož musíme identifikovat více věcí ve zdrojovém videu. Abyste dosáhli uspokojivého výsledku, musíte znát původní formát. Nevezmete-li to správně v potaz, dostanete obraz plný nejrůznějších vad, včetně ošklivých kombinačních (proklad) artefaktů a zdvojených nebo dokonce zahozených snímků. Kromě toho, že budete mít nekvalitní obraz, artefakty rovněž snižují efektivitu kódování: Dosáhnete horší kvalitu na jednotku datového toku. </para> <sect3 id="menc-feat-dvd-mpeg4-preparing-encode-fps"> <title>Zjištění snímkové rychlosti zdroje</title> <para> Zde máte seznam běžných typů zdrojového materiálu, kde na který nejspíš narazíte a jejich volby: </para> <itemizedlist> <listitem><para> <emphasis role="bold">Standardní film</emphasis>: Vytvořený pro promítání v kině při 24fps. </para></listitem> <listitem><para> <emphasis role="bold">PAL video</emphasis>: Zaznamenáno PAL video kamerou s rychlostí 50 půlsnímků za sekundu. Půlsnímek sestává jen z lichých nebo sudých řádků daného snímku. Televize je navržena pro jejich střídavé zobrazování jako laciná forma analogové komprese. Lidské oko to pravděpodobně vykompenzuje, ale jakmile porozumíte prokládání, naučíte se jej vidět i v TV a už si ji neužijete. Dva půlsnímky <emphasis role="bold">netvoří</emphasis> úplný snímek, protože jsou zaznamenány s časovou odchylkou 1/50 sekundy a proto se nekryjí, dokud je zde pohyb. </para></listitem> <listitem><para> <emphasis role="bold">NTSC Video</emphasis>: Zaznamenáno NTSC video kamerou s rychlostí 60000/1001 půlsnímků za sekundu, nebo 60 půlsnímků za sekundu v době před barevnou televizí. Jinak obdobné PAL. </para></listitem> <listitem><para> <emphasis role="bold">Animovaný film</emphasis>: Obvykle kreslený při 24 snímcích za sekundu, ale rovněž bývá v některé variantě prměnné snímkové rychlosti. </para></listitem> <listitem><para> <emphasis role="bold">Počítačová grafika (CG)</emphasis>: Může mít jakoukoli snímkovou rychlost, ale některé jsou častější než jiné; 24 a 30 snímků za sekundu jsou typické pro NTSC a 25 snímků za sekundu zase pro PAL. </para></listitem> <listitem><para> <emphasis role="bold">Starý film</emphasis>: Různé nižší snímkové rychlosti. </para></listitem> </itemizedlist> </sect3> <sect3 id="menc-feat-dvd-mpeg4-preparing-encode-material"> <title>Určení zdrojového materiálu</title> <para> Filmy sestávající ze snímků jsou nazývány progresivní, zatímco ty složené z nezávislých půlsnímků buď prokládané, nebo jen video – ačkoli druhý termín je zavádějící. </para> <para> Abychom to ještě zkomplikovali, některé filmy mohou být směsí všeho výše uvedeného. </para> <para> Nejdůležitějším rozdílem mezi všemi těmito formáty je to, že základem některých jsou snímky a jiných půlsnímky. <emphasis role="bold">Vždy</emphasis>, když je film připravován pro promítání v televizi (včetně DVD), je převeden na půlsnímky. Různé metody jak toho lze dosáhnout jsou souhrnně nazývány "telecine" a nechvalně známé NTSC "3:2 pulldown" je jednou z variant. Pokud nebyl základ vašeho filmu rovněž půlsnímkový (se stejnou půlsnímkovou rychlostí), máte film v jiném formátu, než byl původně. </para> <itemizedlist> <title>Zde je několik běžných typů pulldown:</title> <listitem><para> <emphasis role="bold">PAL 2:2 pulldown</emphasis>: Je nejhezčí z nich. Každý snímek je zobrazován po dobu dvou půlsnímků tak, že se oddělí liché a sudé řádky a zobrazují se střídavě. Pokud měl originál 24 snímků za sekundu, zrychlí se film o 4%. </para></listitem> <listitem><para> <emphasis role="bold">PAL 2:2:2:2:2:2:2:2:2:2:2:3 pulldown</emphasis>: Každý 12 snímek je zobrazen po dobu tří půlsnímků, místo dvou. To odstraní nevýhodu 4% zrychlení, ale znesnadní obrácený proces. Obvykle je používán pouze u hudební produkce, jelikož zde by 4% zrychlení znatelně poškodilo hudební zážitek. </para></listitem> <listitem><para> <emphasis role="bold">NTSC 3:2 telecine</emphasis>: Snímky jsou zobrazovány po dobu 2 nebo 3 půlsnímků, čímž je dosaženo 2.5 krát vyšší půlsnímkové rychlosti, než je originální snímková rychlost. Výsledek je dále velmi mírně spomalen ze 60 půlsnímků za sekundu na 60000/1001 půlsnímků za sekundu, aby se dosáhlo NTSC půlsnímkové rychlosti. </para></listitem> <listitem><para> <emphasis role="bold">NTSC 2:2 pulldown</emphasis>: Používá se pro promítání 30fps materiálu na NTSC. Pěkné, stejně jako 2:2 PAL pulldown. </para></listitem> </itemizedlist> <para> Existují rovněž metody pro konverzi mezi NTSC a PAL videem, ale to již je nad rámec této příručky. Pokud se setkáte s takovým filmem a budete jej chtít enkódovat, bude pro vás nejlepší opatřit si jej v originálním formátu. Konverze mezi těmito formáty je vysoce destruktivní a nelze ji čistě zvrátit, takže výsledek velmi utrpí, pokud je vytvořen z konvertovaného materiálu. </para> <para> Když je video ukládáno na DVD, po sobě jdoucí páry půlsnímků jsou seskupovány do snímků, dokonce i když nejsou určeny pro zobrazení ve stejném okamžiku. Standard MPEG-2 použitý na DVD a digitální televizi poskytuje možnost jak pro enkódování originálních progresivních snímků, tak pro uložení informací do hlavičky snímku o počtu půlsnímků, po jejichž dobu by měl být daný snímek zobrazován. Pokud je použita tato metoda, film bývá často označen jako "soft-telecined", jelikož proces pouze řídí DVD přehrávač pro aplikaci pulldown na film spíše než že mění samotný film. Tento případ je velmi upřednostňován, jelikož může být snadno zvrácen (ve skutečnosti ignorován) enkodérem a proto poskytuje maximální kvalitu. Mnoho DVD a televizních produkčních společností však nepoužívá vhodné enkódovací techniky, ale místo toho produkují filmy s "hard telecine", kdy jsou ve skutečnosti půlsnímky duplikovány ve výsledném MPEG-2. </para> <para> Postupy pro tyto případy budou uvedeny <link linkend="menc-feat-telecine">později v této příručce</link>. Prozatím si řekneme několik návodů pro identifikaci o jaký typ materiálu jde: </para> <itemizedlist> <title>NTSC regiony:</title> <listitem><para> Pokud <application>MPlayer</application> při přehrávání vypíše, že se snímková rychlost změnila na 24000/1001 a již se to nezmění, pak se nejspíš jedná o progresivní obsah, který byl "soft telecinován". </para></listitem> <listitem><para> Pokud <application>MPlayer</application> ukazuje, že se snímková rychlost mění tam a zpět mezi 24000/1001 a 30000/1001 a někdy vidíte "combing", pak je zde několik možností. Segmenty 24000/1001 fps mají téměř jistě "soft telecinovaný" progresivní obsah, ale 30000/1001 fps části mohou mít buď hard-telecined 24000/1001 fps obsah, nebo se jedná o 60000/1001 půlsnímků za sekundu NTSC video. Použijte stejný postup jako v následujících dvou případech pro určení který z nich to je. </para></listitem> <listitem><para> Pokud <application>MPlayer</application> neukáže změnu snímkové rychlosti a všechny snímky jsou zubaté, je váš film ve formátu NTSC video s 60000/1001 půlsnímky za sekundu. </para></listitem> <listitem><para> Pokud <application>MPlayer</application> neukáže změnu snímkové rychlosti a dva snímky z pěti vypadají zubatě, má vaše video "hard telecinovaný" 24000/1001fps obsah. </para></listitem> </itemizedlist> <itemizedlist> <title>PAL regiony:</title> <listitem><para> Pokud není nikde vidět žádné zubatění, je váš film 2:2 pulldown. </para></listitem> <listitem><para> Pokud vidíte jak se objevuje a mizí zubatění každou půlsekundu, pak je váš film 2:2:2:2:2:2:2:2:2:2:2:3 pulldown. </para></listitem> <listitem><para> Pokud je zubatění vidět stále, je to PAL video s 50 půlsnímky za sekundu. </para></listitem> </itemizedlist> <note><title>Rada:</title> <para> <application>MPlayer</application> umí spomalit přehrávání videa pomocí volby -speed. Zkuste použít <option>-speed</option> 0.2 pro velmi pomalé přehrávání nebo opakovaně stiskejte klávesu "<keycap>.</keycap>" pro krokováníé po snímcích a najděte vzor, pokud jej nevidíte při plné rychlosti. </para> </note> </sect3> </sect2> <!-- ********** --> <sect2 id="menc-feat-dvd-mpeg4-2pass"> <title>Pevný kvantizer vs. více průchodů</title> <para> Enkódování vašeho videa je možné provést v široké škále kvality. S moderními video enkodéry a trochou předkodekové komprese (zmenšení a odšumování) je možné dosáhnout velmi dobré kvality v 700 MB, pro 90-110 minut dlouhé širokoúhlé video. Jinak lze všechna videa, snad kromě těch nejdelších, enkódovat v téměř perfektní kvalitě do 1400 MB. </para> <para> Jsou tři přístupy k enkódování videa: pevný datový tok (CBR), pevný kvantizer a víceprůchodový (ABR, neboli průměrovaný datový tok). </para> <para> Komplexnost snímků ve filmu a tím i počet bitů potřebných pro jejich komprimaci, se může velmi lišit od scény ke scéně. Moderní enkodéry se umí přizpůsobit těmto potřebám změnou datového toku. V jednoduchých režiměch, jako je CBR, však enkodéry neznají nároky na datový tok budoucích scén a tak nemohou překročit požadovaný střední datový tok na dlouhou dobu. Pokročilejší režimy, jako je víceprůchodové enkódování, umí vzít v potaz statistiky z předchozích režimů, což odstraní výše zmíněný problém. </para> <note><title>Poznámka:</title> <para> Většina kodeků, které podporují ABR enkódování, podporují pouze dvouprůchodové enkódování, zatímco ostatní jako <systemitem class="library">x264</systemitem>, <systemitem class="library">Xvid</systemitem> a <systemitem class="library">libavcodec</systemitem> podporují víceprůchodové enkódování, které s každým průchodem trochu zlepší kvalitu, ačkoli toto zlepšení již není viditelné, nebo měřitelné po asi čtvrtém průchodu. V této sekci budeme považovat dvouprůchodové a víceprůchodové enkódování za rovnocenné. </para> </note> <para> V každém z těchto režimů video kodek (jako je <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 enkodér filmu 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, bude videokodek 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 kodek nejnižší možný kvantizer pro každý makroblok (ten je nastaven pomocí <option>vqmin</option> pro <systemitem class="library">libavcodec</systemitem>, kde je výchozí 2). Jakmile nastavíte dostatečně nižší datový tok, takže je kodek 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. Všeobecně byste se měli úplně vyhnout CBR, pokud vám záleží na kvalitě. </para> <para> Při konstantním kvantizeru kodek používá kvantizer nastavený volbou <option>vqscale</option> (pro <systemitem class="library">libavcodec</systemitem>) 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 velkým počtem detailů budou častěji používány vyšší kvantizery a v pomalých nebo méně detailních scénách zase nižší kvantizery. Obvykle je důležitější množství pohybu než detailů. </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 různým způsobem <emphasis role="bold">velmi</emphasis> snižuje kvalitu. </para> <orderedlist> <listitem> <para> Komprese typu MPEG je 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> Připomeňme z předchozí části, že konečná velikost obrázku by měla mít jak šířku, tak výšku beze zbytku dělitelnou 16, čehož můžete dosáhnout pomocí ořezání, škálování, nebo kombinací obou. </para> <para> Při ořezávání byste se měli držet několika zásad, abyste předešli poškození svého filmu. Normální YUV formát 4:2:0, ukládá barvonosnou (chroma) informaci podvzorkovanou, čili hustota vzorkování barvy je poloviční oproti jasové (černobílé) složce v obou směrech. Prohlédněte si tento diagram, kde L označuje vzorkovací body jasu a C barvy. </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> Jak vidíte, řádky i sloupce obrázku se přirozeně párují. Při ořezávání tedy <emphasis>musí</emphasis> být hodnoty odsazení i rozměrů sudá čísla. Pokud nejsou, nebude se barvonosná informace zprávně krýt s jasovou. Teoreticky lze stříhat s lichým odsazením, ale to vyžaduje převzorkování barvy, což je potenciálně ztrátový úkon a není podporován filtrem crop. </para> <para> Dále, prokládané video je vzorkováno takto: </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" colname="col14"/> <colspec colnum="15" colname="col15"/> <colspec colnum="16" colname="col16"/> <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"/> <spanspec spanname="spa9-10" namest="col9" nameend="col10"/> <spanspec spanname="spa11-12" namest="col11" nameend="col12"/> <spanspec spanname="spa13-14" namest="col13" nameend="col14"/> <spanspec spanname="spa15-16" namest="col15" nameend="col16"/> <tbody> <row> <entry namest="col1" nameend="col8">Horní půlsnímek</entry> <entry namest="col9" nameend="col16">Spodní půlsnímek</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> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></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> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> </row> <row> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <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> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> </row> <row> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry spanname="spa9-10">C</entry> <entry spanname="spa11-12">C</entry> <entry spanname="spa13-14">C</entry> <entry spanname="spa15-16">C</entry> </row> <row> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <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> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></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> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> </row> <row> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <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> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> </row> <row> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry spanname="spa9-10">C</entry> <entry spanname="spa11-12">C</entry> <entry spanname="spa13-14">C</entry> <entry spanname="spa15-16">C</entry> </row> <row> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <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> Jak vidíte, tak se vzor opakuje každé 4 řádky, takže při ořezu prokládaného videa musí být odsazení v ose y a výška beze zbytku delitelné 4. </para> <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>). Spusťte <application>MPlayer</application> s volbou <option>-vf cropdetect</option> a on vám vypíše nastavení filtru crop pro ořezání okrajů. Měli byste nechat běžet film tak dlouho, dokud není použita celá plocha obrázku, abyste dostali správné hodnoty crop. </para> <para> Pak otestujte získané hodnoty z příkazového řádku <application>MPlayer</application>u vypisované <option>cropdetect</option>em a upravte obdélník podle potřeby. V tom vám pomůže filtr <option>rectangle</option>, který umožňuje interaktivně nastavit obdélník pro váš film. Nezapomeňte zachovat výše uvedená doporučení, abyste nepoškodili barevnou mapu. </para> <para> Škálování je obvykle nevhodné. Škálování prokládaného videa je obtížné a pokud chcete zachovat prokládání, měli byste se mu úplně vyhnout. Pokud mebudete škálovat, ale budete chtít používat rozměry v násobcích 16, budete muset oříznout i část obrazu. Neponechávejte ani malé černé okraje, jelikož se velmi špatně kódují! </para> <para> 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. Jak jsme již řekli, měli byste při ořezávání 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> </sect2> <!-- ********** --> <sect2 id="menc-feat-dvd-mpeg4-resolution-bitrate"> <title>Volba rozlišení a datového toku</title> <para> Pokud nebudete enkódovat v režimu konstantního kvantizeru, musíte zvolit velikost datového toku. Koncepce datového toku je velmi jednoduchá. Je to (průměrný) počet bitů spotřebovaný na jednu sekundu filmu. Normálně se datový tok udává v kilobitech (1000 bitů) za sekundu. Velikost vašeho filmu je pak datový tok násobený délkou filmu, plus malá režie (viz například sekci <link linkend="menc-feat-dvd-mpeg4-muxing-avi-limitations">kontejner AVI</link>). Ostatní parametry jako je škálování, ořezání atd. <emphasis role="bold">nezmění</emphasis> velikost souboru, pokud zároveň nezměníte datový tok! </para> <para> Datový tok se <emphasis role="bold">nemění</emphasis> proporcionálně k rozlišení. Jinými slovy, soubor 320x240 při 200 kbit/sek nebude mít stejnou kvalitu jako ten samý film při 640x480 a 800 kbitech/sek! Jsou pro to dva důvody: <orderedlist> <listitem><para> <emphasis role="bold">Dojem</emphasis>: MPEG artefakty jsou patrné tím více, čím jsou více zvětšené! Artefakty se objevují ve velikosti bloků (8x8). Vaše oko neodhalí chyby ve 4800 malých blocích tak snadno jako ve 1200 velkých (předpokládáme, že oboje budete škálovat na celou obrazovku). </para></listitem> <listitem><para> <emphasis role="bold">Teoretický</emphasis>: Když zmenšíte obrázek, ale stále použijete stejnou velikost bloků (8x8) pro frekvenční prostorovou transformaci, přesunete více dat do oblasti vyšších frekvencí. Zjednodušeně řečeno, každý pixel nyní obsahuje více detailů, než předtím. Dokonce i když připustíme, že jste zmenšili obraz obsahující 1/4 informací o daném prostoru, stále může obsahovat mnoho detailů v daném frekvenčním pásmu (předpokládáme, že vysoké frekvence byly v originálním 640x480 snímku ořezány). </para></listitem> </orderedlist> </para> <para> Dřívější návody doporučovaly volit datový tok a rozlišení rozpočítáním bitů na pixely, ale to obvykle není správně ze zmíněných důvodů. Mnohem lepším se zdá odhad, že je datový tok úměrný čtverci rozlišení, takže 320x240 při 400 kbit/sek by mělo být srovnatelné s 640x480 při 800 kbit/sek. Tato úměra však nebyla ověřena teoreticky ani empiricky. Navíc, vezmeme-li v úvahu to, že se filmy velmi liší šumem, počtem detailů, množstvím pohybu atd, je beznadějné vytvořit obecná doporučení pro počet bitů na délku diagonály (analogie bitů na pixel, avšak používá plochu obrazu). </para> <para> Tolik k obtížnosti volby datového toku a rozlišení. </para> <sect3 id="menc-feat-dvd-mpeg4-resolution-bitrate-compute"> <title>Výpočet rozlišení</title> <para> Následující kroky vás provedou výpočty rozlišení výsledného filmu tak, abyste příliš nesnížili kvalitu videa s přihlédnutím k několika typům informací o zdrojovém videu. 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> PSa je zobrazovaný poměr stran, jež je obvykle 4/3 nebo 16/9, </para></listitem> <listitem><para> PRdvd je poměr pixelů v DVD, který je roven 1.25=(720/576) pro DVD 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> a <systemitem>RozX = INT( RozY * PSo / 16) * 16</systemitem> </para> <para> Dobře, ale co je CQ? CQ odpovídá počtu bitů na pixel a na snímek po 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í na datovém toku, efektivitě video kodeku a 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í. S MPEG-4 ASP kodeky jako jsou <systemitem class="library">Xvid</systemitem> a <systemitem class="library">libavcodec</systemitem>, vede CQ pod 0.18 obvykle k velmi čtverečkovanému obrázku, 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 rip na 2 CD při standardních enkódovacích volbách. Pokročilejší volby podobné těm zmiňovaným zde pro <link linkend="menc-feat-mpeg4-lavc-example-settings"><systemitem class="library">libavcodec</systemitem></link> a <link linkend="menc-feat-xvid-example-settings"><systemitem class="library">Xvid</systemitem></link> by měly umožnit dosažení stejné kvality při CQ v rozsahu od 0.18 do 0.20 pro rip na 1 CD a 0.24 až 0.26 pro rip na 2 CD. S MPEG-4 ASP kodeky jako je <systemitem class="library">x264</systemitem>, můžete použít CQ v rozmezí 0.14 až 0.16 při standardních enkódovacích volbách a měli byste být schopni jít až na nízký od 0.10 do 0.12 s pokročilými <link linkend="menc-feat-x264-example-settings"><systemitem class="library">x264</systemitem> enkódovacími volbami</link>. </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. Také berte v potaz, jak jsme již řekli, že videa s nízkým rozlišením vyžadují vyšší CQ (v porovnání s např. DVD rozlišením), aby vypadala dobře. </para> </sect3> </sect2> <!-- ********** --> <sect2 id="menc-feat-dvd-mpeg4-filtering"> <title>Filtrování</title> <para> Naučit se používat video filtry <application>MEncoder</application>u je základem pro produkci dobrých videí. Veškeré úpravy videa jsou prováděny pomocí filtrů -- ořezání, škálování, úprava barev, odstranění šumu, zaostření, odstranění prokladu, telecinování, inverzní telecine a deblokování, abychom jmenovali alespoň některé. Spolu s vyčerpávajícím počtem podporovaných vstupních formátů je nabídka dostupných filtrů v <application>MEncoder</application>u jednou z jeho hlavních výhod oproti podobným aplikacím. </para> <para> Filtry jsou nahrávány v řadě za použití volby -vf : <screen>-vf filtr1=volby,filtr2=volby,...</screen> Většina filtrů přebírá několik číselných voleb oddělených dvojtečkou, ale syntaxe voleb se liší od filtru k filtru, takže si přečtěte manuál pro více informací o filtru který chcete použít. </para> <para> Filtry zpracovávají video v pořadí, v jakém jsou načteny. Například následující řada: <screen>-vf crop=688:464:12:4,scale=640:464</screen> nejprve vyřízne z obrázku oblast 688x464 s levým horním rohem v bodě (12,4) a výsledek pak zmenší na 640x464. </para> <para> Určité filtry potřebují být nahrány na začátku, nebo co nejblíž začátku řetězu filtrů, aby mohly využívat informace z video dekodéru, které budou ztraceny nebo znehodnoceny ostatními filtry. Nejdůležitější příklady jsou <option>pp</option> (postprocesing, pouze pokud provádí deblok nebo dering operace), <option>spp</option> (další postprocesor pro odstranění MPEG artefaktů), <option>pullup</option> (inverzní telecine) a <option>softpulldown</option> (pro konverzi soft telecine na hard telecine). </para> <para> Všeobecně byste měli filtrovat co nejméně je to možné, abyste zůstali co nejblíže DVD originálu. Ořezání je často nutné (vysvětleno výše), ale vyhněte se škálování videa. Ačkoli je zmenšení občas preferováno před použitím vyšších kvantizérů. My se musíme vyvarovat obou těchto případů: pamatujte, ž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 ostatních. Tyto korekce by měly být prováděny výhradně při přehrávání. </para> <para> Jednu věc byste však udělat mohli, a to protáhnout video velmi lehkým odšumovacím filtrem, jako je <option>-vf hqdn3d=2:1:2</option>. Zde je opět důvodem využití bitů k lepšímu účelu: proč jimi plýtvat na enkódování šumu, když si můžete šum přidat až při přehrávání? Zvýšením parametrů pro <option>hqdn3d</option> dále zvýší komprimovatelnost, ale pokud zvýšíte hodnoty příliš, riskujete zhoršení viditelnosti obrazu. Výše zmíněné hodnoty (<option>2:1:2</option>) jsou dost konzervativní; měli byste si zaexperimentovat s vyššími hodnotami a zhodnotit výsledky sami. </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-encoding-interlaced"> <title>Enkódování prokládaného videa</title> <para> Pokud je film, který chcete enkódovat, prokládaný (NTSC video nebo PAL video), budete si muset vybrat, zda jej chcete "odproložit" nebo ne. Zatímco odstranění prokladu učiní váš film použitelným na progresivně vykreslovaných zobrazovačích jako jsou počítačové monitory a projektory. Cenou za to je, snížení rychlosti z 50 nebo 60000/1001 půlsnímků za sekundu na 25 nebo 30000/1001 snímků za sekundu a zhruba polovina informací bude z vašeho filmu ztracena ve scénách s významným množstvím pohybu. </para> <para> Proto pokud enkódujete ve vysoké kvalitě pro archivační účely, doporučujeme ponechat film prokládaný. Vždy můžete provést odstranění prokladu při přehrávání pokud zobrazujete na progresivně zobrazujícím zařízení. Výkon současných počítačů nutí přehrávače používat filtr prokladu, což působí mírnou degradaci kvality obrazu. Budoucí přehrávače však budou schopny napodobovat chování prokládané TV obrazovky, odstraňovat proklad v plné půlsnímkové rychlosti a odvozovat 50 nebo 60000/1001 úplných snímků za sekundu z prokládaného videa. </para> <para> Když pracujete s prokládaným videem, musíte zvláště dbát na: </para> <orderedlist> <listitem><para> Výška a svislé odsazení pro ořezání musí být násobkem 4. </para></listitem> <listitem><para> Jakékoli svislé škálování musí být provedeno v prokládaném režimu. </para></listitem> <listitem><para> Postprocesní a odšumovací filtry nemusí pracovat podle očekávání, dokud nezařídíte, aby zpracovávaly najednou pouze jeden půlsnímek a mohou vám poškodit video při nesprávném použití. </para></listitem> </orderedlist> <para> S vědomím těchto souvislostí vám předkládáme první příklad: <screen> mencoder <replaceable>capture.avi</replaceable> -mc 0 -oac lavc -ovc lavc -lavcopts \ vcodec=mpeg2video:vbitrate=6000:ilme:ildct:acodec=mp2:abitrate=224 </screen> Povšimněte si voleb <option>ilme</option> a <option>ildct</option>. </para> </sect2> <!-- ********** --> <sect2 id="menc-feat-dvd-mpeg4-av-sync"> <title>Poznámky k Audio/Video synchronizaci</title> <para> <application>MEncoder</application>ovy audio/video synchronizační algoritmy byly navrženy se záměrem obnovy souborů s vadnou synchronizací. V některých případech však můžou působit zbytečné zahazování a duplikaci snímků a možná mírnou A/V desynchronizaci při použití s bezvadným vstupem (přirozeně tyto A/V synchronizační omezení projeví pouze pokud kopírujete zvukovou stopu při překódovávání videa, což je velmi doporučováno). Můžete však přepnout do základní A/V synchronizace s volbou <option>-mc 0</option>, nebo ji přidejte do svého konfiguračního souboru <systemitem>~/.mplayer/mencoder</systemitem> config file, aspoň pokud pracujete pouze s kvalitními zdroji (DVD, zachytávaná TV, vysoce kvalitní MPEG-4 ripy, atd) ale nikoli s vadnými ASF/RM/MOV soubory. </para> <para> Chcete-li si dále pohlídat podivné zahazování snímků a duplikaci, můžete použít <option>-mc 0</option> spolu s <option>-noskip</option>. To zamezí <emphasis>veškeré</emphasis> A/V synchronizaci a snímky se skopírují jedna k jedné, takže to nelze použít ve spojení s filtry, které v nestřženém okamžiku přidají nebo zahodí snímky, nebo pokud zdrojové video má proměnnou snímkovou rychlost! V tom případě není použití <option>-noskip</option> obecně doporučováno. </para> <para> O takzvaném "tříprůchodovém" enkódování zvuku podporovaném <application>MEncoder</application>em bylo hlášeno, že způsobuje A/V desynchronizaci. To nastává tehdy, pokud je použito v kombinaci s některými filtry, takže <emphasis>není</emphasis> v tuto chvíli doporučováno používat tříprůchodové enkódování zvuku. Tato vlastnost je zachována pouze z důvodu kompatibility a pro expertní uživatele, kteří vědí, kdy je bezpečné ji použít a kdy ne. Pokud jste o tomto režimu nikdy předtím neslyšeli, zapoměňte, že jsme se o něm vůbec zmínili! </para> <para> Existují rovněž hlášení o A/V desynchronizaci při enkódování ze stdin <application>MEncoder</application>em. Nedělejte to! Vždy použijte jako zdroj soubor nebo CD/DVD/atd zařízení. </para> </sect2> <!-- ********** --> <sect2 id="menc-feat-dvd-mpeg4-codec"> <title>Výběr video kodeku</title> <para> Výběr vhodného video kodeku k použití závisí na několika faktorech, jako je velikost, kvalita, schopnost přehrávání po síti, použitelnost nebo obliba, z nichž některé jsou čistě věcí osobního vkusu, jiné závisí na technických omezeních. </para> <itemizedlist> <listitem> <para> <emphasis role="bold">Účinost komprimace</emphasis>: Jednoduše můžeme říct, že většina kodeků novější generace je vytvořena tak, aby dosahovala vyšší kvality a komrimace než předchozí generace. Proto se autoři této příručky a mnoho jiných lidí, domnívají že neuděláte chybu, <footnote id='fn-menc-feat-dvd-mpeg4-codec-cpu'><para> Buďte však opartní: Dekódování MPEG-4 AVC videa v DVD rozlišení vyžaduje rychlý stroj (např.Pentium 4 nad 1.5GHz, nebo Pentium M nad 1GHz). </para></footnote> když zvolíte MPEG-4 AVC kodeky, jako <systemitem class="library">x264</systemitem> místo MPEG-4 ASP kodeků jako jsou <systemitem class="library">libavcodec</systemitem> MPEG-4, nebo <systemitem class="library">Xvid</systemitem>. (Pokročilé vývojáře kodeků by mohl zajímat názor Michaela Niedermayera na "<ulink url="http://guru.multimedia.cx/?p=10">proč mě štve MPEG4-ASP</ulink>".) Podobně byste měli dosáhnout lepší kvality použitím MPEG-4 ASP místo MPEG-2 kodeků. </para> <para> Novější kodeky, které jsou v rozsáhlém vývoji, mohou obsahovat chyby, kterých si dosud nikdo nevšiml a které mohou zničit výsledek. To je daň za použití nejnovější technologie. </para> <para> Navíc, v začátku používání nového kodeku se budete muset strávit nějaký čas seznámením se s jeho volbami, abyste se dověděli co kde nastavit pro dosažení požadované kvality obrazu. </para> </listitem> <listitem><para> <emphasis role="bold">Hardwarová kompatibilita</emphasis>: Obvykle trvá dlouhou dobu, než začnou stolní video přehrávače podporovat nejnovější videokodeky. Výsledkem toho je, že většina z nich podporuje pouze kodeky MPEG-1 (jako VCD, XVCD a KVCD), MPEG-2 (jako DVD, SVCD a KVCD) a MPEG-4 ASP (jako DivX, LMP4 z <systemitem class="library">libavcodec</systemitem>u a <systemitem class="library">Xvid</systemitem>) (Pozor: obvykle nejsou podporovány všechny vlastnosti (features) MPEG-4 ASP). Nahlédněte prosím do technických specifikací vašeho přehrávače (pokud jsou), nebo si vygooglete více informací. </para></listitem> <listitem> <para> <emphasis role="bold">Nejlepší kvalita na enkódovací čas</emphasis>: Kodeky, které již jsou zde nějakou dobu (jako <systemitem class="library">libavcodec</systemitem> MPEG-4 a <systemitem class="library">Xvid</systemitem>), jsou obvykle vysoce optimalizovány všemi druhy chytrých algoritmů a SIMD assembly kódem. Proto mají snahu dosahovat nejlepší poměr kvality na enkódovací čas. Mohou však mít některé velmi pokročilé volby, které, pokud jsou zapnuty, velmi spomalí enkódování při mizivém zisku. </para> <para> Pokud vám jde o rychlost, měli byste se držet výchozího nastavení video kodeku (ačkoli byste stejně měli zkusit ostatní volby zmíněné v dalších částech této příručky). </para> <para> Rovněž můžete zvážit použití kodeku, který umí vícevláknové zpracování, což je ovšem k něčemu jen uživatelům víceprocesorových strojů. <systemitem class="library">libavcodec</systemitem> MPEG-4 to umožňuje, ale nárůst rychlosti je omezený a dostanete nepatrně méně kvalitní obraz. Vícevláknový režim <systemitem class="library">Xvid</systemitem>, aktivovaný volbou <option>threads</option>, můžete využít ke zvýšení rychlosti enkódování — obvykle o 40–60% — s velmi malým nebo žádným zhoršením obrazu. <systemitem class="library">x264</systemitem> rovněž umožňuje vícevláknové enkódování, které v současnosti zrychluje enkódování asi o 94% na každé procesorové jádro, ale snížuje PSNR o 0.05dB. </para> </listitem> <listitem> <para> <emphasis role="bold">Osobní vkus</emphasis>: Zde jsme v rovině téměř iracionální: Ze stejného důvodu, pro který někteří setrvávali léta u DivX 3 i když novější kodeky již dělaly zázraky, preferují někteří lidé <systemitem class="library">Xvid</systemitem> nebo <systemitem class="library">libavcodec</systemitem> MPEG-4 před <systemitem class="library">x264</systemitem>. </para> <para> Udělejte si vlastní úsudek a neposlouchejte lidi, kteří přísahají na jediný kodek. Udělejte si několik vzorků ze surových zdrojů a porovnejte různé volby enkódování a kodeky, abyste nalezli ten, který vám vyhovuje nejlépe. Nejlepší kodek je ten, který nejlépe ovládáte a který vypadá nejlépe na vaší obrazovce <footnote id='fn-menc-feat-dvd-mpeg4-codec-playback'><para> Stejný film nemusí vypadat stejně na monitoru někoho jiného, nebo když je přehráván jiným dekodérem, takže si prověřujte své výtvory přehráváním na různých sestavách. </para></footnote>! </para> </listitem> </itemizedlist> <para> Seznam podporovaných kodeků najdete v sekci <link linkend="menc-feat-selecting-codec">výběr kodeků a nosných formátů</link>. </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 jak je. Dokonce i AC–3 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í AC–3 neznamená, že jej nebudete mít zítra. Připravte své DVD ripy na budoucnost zachováním AC–3 datových proudů. Datový proud AC–3 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 AC–3 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 129 je druhou zvukovou stopou v souboru). </para> <para> Někdy ovšem opravdu nemáte jinou možnost než dále komprimovat 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> <emphasis>Nepoužívejte</emphasis> <option>-nosound</option>, enkódujete-li soubor se zvukem, dokonce i v tom případě, že budete enkódovat a muxovat zvuk samostatně později. Ačkoli to může v ideálním případě fungovat, použití <option>-nosound</option> spíše skryje určité problémy v nastaveních enkódování na příkazovém řádku. Jinými slovy vám přítomnost zvukové stopy zajistí, pokud neuvidíte hlášky typu <quote>Příliš mnoho audio paketů ve vyrovnávací paměti</quote>, že budete schopni dosáhnout správné synchronizace. </para> <para> Musíte nechat <application>MEncoder</application> zpracovat zvuk. Můžete například skopírovat originální zvukovou stopu během enkódování pomocí <option>-oac copy</option>, nebo jej převést na "tenký" 4 kHz mono WAV PCM pomocí <option>-oac pcm -channels 1 -srate 4000</option>. Jinak v některých případech vytvoříte video soubor, který nebude synchronní se zvukem. Tyto případy nastávají tehdy, když počet videosnímků ve zdroji neodpovídá celkové délce zvukových vzorků, nebo pokud je zvuk přerušovaný či překrývaný díky chybějícím či nadbývajícím audio vzorkům. Správným způsobem jak toto řešit, je vložení ticha nebo odstřižení zvuku na těchto místech. <application>MPlayer</application> to však neumí, takže pokud demuxujete AC–3 zvuk a enkódujete jej zvláštní aplikací (nebo jej dumpnete do PCM <application>MPlayer</application>em), zůstanou zmíněné vady jak jsou a jediný způsob jak je opravit je zahodit/namnožit video snímky v těchto místech. Dokud <application>MEncoder</application> sleduje zvuk při enkódování videa, může provádět toto zahazování/duplikování (což je obvykle OK, jelikož nastává při černé obrazovce/změně scény), ale pokud <application>MEncoder</application> nevidí zvuk, zpracuje snímky jak jsou a ty pak nepasují na konečnou zvukovou stopu když například spojíte svou video a zvukovou stopu do Matroska souboru. </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-muxing"> <title>Muxování (multiplexování)</title> <para> Nyní, když máte své video enkódované, budete jej nejspíš chtít muxovat s jednou 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 nativně zapracovat zvuk a video 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 den 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-filter-issues"> <title>Zlepšování spolehlivosti muxování a A/V synchronizace</title> <para> Můžete se dostat do vážných problémů s A/V sychronizací, pokud se snažíte muxovat video a některé zvukové stopy, kdy bez ohledu na nastavení zpoždění zvuku nedosáhnete správné synchronizace. To může nastat, pokud použijete některé video filtry, které zahodí nebo zdvojí některé snímky, jako jsou filtry pro inverzi telecine. Velmi doporučujeme přidat videofiltr <option>harddup</option> na samý konec řetězu videofiltrů pro potlačení tohoto problému. </para> <para> Bez <option>harddup</option>, pokud chce <application>MEncoder</application> duplikovat snímek, závisí na muxeru, aby vložil značku do nosiče, takže bude poslední snímek zobrazen znovu, aby se dosáhlo synchronizace, přičemž se nezapíše žádný snímek. S <option>harddup</option>, <application>MEncoder</application> pustí poslední zobrazený snímek znovu do řetězu filtrů. To znamená, že enkodér obdrží stejný snímek dvakrát a comprimuje ho. To povede k o něco většímu souboru, ale nezpůsobí problémy při demuxování nebo remuxování do jiného nosného formátu. </para> <para> Rovněž nemáte jinou možnost než použít <option>harddup</option> s těmi nosnými formáty, které nejsou těsně spjaty s <application>MEncoder</application>em, jako jsou ty, které jsou podporovány přes <systemitem class="library">libavformat</systemitem>, které nemusí podporovat duplikaci na úrovni nosného formátu. </para> </sect3> <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 MB 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 AC–3. </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í Vorbis. 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, přečtěte si <ulink url="http://en.wikipedia.org/wiki/Telecine">článek na Wikipedii</ulink>. Je to 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šechna tato čí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 (např. 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/1001 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, podle výkonu hardware, 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> <para> Dalším způsobem jak zjistíte, že je váš zdroj telecinován, je přehrát jej s volbami <option>-vf pullup</option> a <option>-v</option> a uvidíte, jak <option>pullup</option> nachází vzor. Pokud je zdroj telecinován, mělibyste vidět na konzoli vzor 3:2 s opakujícím se <systemitem>0+.1.+2</systemitem> a <systemitem>0++1</systemitem>. Tato technika má tu výhodu, že nemusíte sledovat zdroj, abyste jej identifikovali, což se může hodit, pokud chcete automatizovat enkódovací proceduru, nebo ji provést vzdáleně přes pomalou linku. </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 (častoi 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 -oac copy -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 -oac copy -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> a <option>mplayer -vf help</option> abyste zjistili, které jsou k dispozici (grep pro "deint"), přečtěte si <ulink url="http://guru.multimedia.cx/deinterlacing-filters/">Deinterlacing filters comparison</ulink> od Michaela Niedermayera a vyhledejte <ulink url="http://www.mplayerhq.hu/design7/mailing_lists.html"> 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 -oac copy -vf yadif -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 -oac copy -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 -oac copy -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 -oac copy -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. Zní to 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 -oac copy -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íček 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 by 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ých pixelů 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ů ve <emphasis>snímku</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čí když budou 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>) na 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> </orderedlist> </sect2> </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í): </para> <!-- ********** --> <sect2 id="menc-feat-enc-libavcodec-video-codecs"> <title>Video kodeky <systemitem class="library">libavcodec</systemitem></title> <para> <informaltable frame="all"> <tgroup cols="2"> <thead> <row><entry>Jméno video 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>jpegls</entry> <entry>JPEG LS</entry> </row> <row> <entry>targa</entry> <entry>Targa obrázek</entry> </row> <row> <entry>gif</entry> <entry>GIF obrázek</entry> </row> <row> <entry>bmp</entry> <entry>BMP obrázek</entry> </row> <row> <entry>png</entry> <entry>PNG obrázek</entry> </row> <row> <entry>h261</entry> <entry>H.261</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, 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>RealVideo 1.0</entry> </row> <row> <entry>rv20</entry> <entry>RealVideo 2.0</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>ffvhuff</entry> <entry>FFmpeg modifikovaná huffyuv 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> <row> <entry>svq1</entry> <entry>Sorenson video 1</entry> </row> <row> <entry>flv</entry> <entry>Sorenson H.263 používaný ve Flash Video</entry> </row> <row> <entry>flashsv</entry> <entry>Flash Screen Video</entry> </row> <row> <entry>dvvideo</entry> <entry>Sony Digital Video</entry> </row> <row> <entry>snow</entry> <entry>Experimentální vlnkově orientovaný kodek z FFmpeg</entry> </row> <row> <entry>zbmv</entry> <entry>Zip Blocks Motion Video</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 <replaceable>titul2.avi</replaceable> -ovc lavc -lavcopts vcodec=mjpeg -oac copy </screen> </para></informalexample> </sect2> <!-- ********** --> <sect2 id="menc-feat-enc-libavcodec-audio-codecs"> <title>Audio kodeky <systemitem class="library">libavcodec</systemitem></title> <para> <informaltable frame="all"> <tgroup cols="2"> <thead> <row><entry>Jméno audio kodeku</entry><entry>Popis</entry></row> </thead> <tbody> <row> <entry>ac3</entry> <entry>Dolby Digital (AC-3)</entry> </row> <row> <entry>adpcm_*</entry> <entry>Adaptivní PCM formáty – viz pomocnou tabulku</entry> </row> <row> <entry>flac</entry> <entry>Free Lossless Audio Codec (FLAC)</entry> </row> <row> <entry>g726</entry> <entry>G.726 ADPCM</entry> </row> <row> <entry>libamr_nb</entry> <entry>3GPP Adaptive Multi-Rate (AMR) narrow-band</entry> </row> <row> <entry>libamr_wb</entry> <entry>3GPP Adaptive Multi-Rate (AMR) wide-band</entry> </row> <row> <entry>libfaac</entry> <entry>Advanced Audio Coding (AAC) – používá FAAC</entry> </row> <row> <entry>libgsm</entry> <entry>ETSI GSM 06.10 plný rozsah</entry> </row> <row> <entry>libgsm_ms</entry> <entry>Microsoft GSM</entry> </row> <row> <entry>libmp3lame</entry> <entry>MPEG-1 audio layer 3 (MP3) – používá LAME</entry> </row> <row> <entry>mp2</entry> <entry>MPEG-1 audio layer 2 (MP2)</entry> </row> <row> <entry>pcm_*</entry> <entry>PCM formáty – viz pomocnou tabulku</entry> </row> <row> <entry>adpcm_ima_wav</entry> <entry>IMA adaptivní PCM (4 bity na vzorek, komprese 4:1)</entry> </row> <row> <entry>sonic</entry> <entry>experimentální FFmpeg ztrátový kodek</entry> </row> <row> <entry>roq_dpcm</entry> <entry>Id Software RoQ DPCM</entry> </row> <row> <entry>sonicls</entry> <entry>experimentální FFmpeg bezztrátový kodek</entry> </row> <row> <entry>vorbis</entry> <entry>Vorbis</entry> </row> <row> <entry>wmav1</entry> <entry>Windows Media Audio v1</entry> </row> <row> <entry>wmav2</entry> <entry>Windows Media Audio v2</entry> </row> </tbody> </tgroup> </informaltable> Vprvním sloupci naleznate jména kodeků, které byste měli přiřadit parametru <literal>acodec</literal>, například: <option>-lavcopts acodec=ac3</option> </para> <informalexample><para> Příklad s kompresí AC–3: <screen> mencoder dvd://2 -o <replaceable>titul2.avi</replaceable> -oac lavc -lavcopts acodec=ac3 -ovc copy </screen> </para></informalexample> <para> Narozdíl od jejích videokodeků, audio kodeky z knihovny <systemitem class="library">libavcodec</systemitem> neprovádějí inteligentní rozdělení přidělených bitů, jelikož jim chybí byť jen minimální psychoakustický model (pokud vůbec), který obsahuje většina implementací ostatních kodeků. Vězte však, že všechny tyto kodeky zvuku jsou velmi rychlé a pracují bez potíží všude, kde máte <application>MEncoder</application> se zakompilovanou knihovnou <systemitem class="library">libavcodec</systemitem> (což je naprostá většina případů) a nezávisejí na externích knihovnách. </para> <sect3 id="menc-feat-enc-libavcodec-audio-codecs-pcmadpcm"> <title>Pomocná tabulka pro PCM/ADPCM formát</title> <para> <informaltable frame="all"> <tgroup cols="2"> <thead> <row><entry>Název PCM/ADPCM kodeku</entry><entry>Popis</entry></row> </thead> <tbody> <row> <entry>pcm_s32le</entry> <entry>signed 32-bit little-endian</entry> </row> <row> <entry>pcm_s32be</entry> <entry>signed 32-bit big-endian</entry> </row> <row> <entry>pcm_u32le</entry> <entry>unsigned 32-bit little-endian</entry> </row> <row> <entry>pcm_u32be</entry> <entry>unsigned 32-bit big-endian</entry> </row> <row> <entry>pcm_s24le</entry> <entry>signed 24-bit little-endian</entry> </row> <row> <entry>pcm_s24be</entry> <entry>signed 24-bit big-endian</entry> </row> <row> <entry>pcm_u24le</entry> <entry>unsigned 24-bit little-endian</entry> </row> <row> <entry>pcm_u24be</entry> <entry>unsigned 24-bit big-endian</entry> </row> <row> <entry>pcm_s16le</entry> <entry>signed 16-bit little-endian</entry> </row> <row> <entry>pcm_s16be</entry> <entry>signed 16-bit big-endian</entry> </row> <row> <entry>pcm_u16le</entry> <entry>unsigned 16-bit little-endian</entry> </row> <row> <entry>pcm_u16be</entry> <entry>unsigned 16-bit big-endian</entry> </row> <row> <entry>pcm_s8</entry> <entry>signed 8-bit</entry> </row> <row> <entry>pcm_u8</entry> <entry>unsigned 8-bit</entry> </row> <row> <entry>pcm_alaw</entry> <entry>G.711 A-LAW </entry> </row> <row> <entry>pcm_mulaw</entry> <entry>G.711 μ-LAW</entry> </row> <row> <entry>pcm_s24daud</entry> <entry>signed 24-bit D-Cinema Audio format</entry> </row> <row> <entry>pcm_zork</entry> <entry>Activision Zork Nemesis</entry> </row> <row> <entry>adpcm_ima_qt</entry> <entry>Apple QuickTime</entry> </row> <row> <entry>adpcm_ima_wav</entry> <entry>Microsoft/IBM WAVE</entry> </row> <row> <entry>adpcm_ima_dk3</entry> <entry>Duck DK3</entry> </row> <row> <entry>adpcm_ima_dk4</entry> <entry>Duck DK4</entry> </row> <row> <entry>adpcm_ima_ws</entry> <entry>Westwood Studios</entry> </row> <row> <entry>adpcm_ima_smjpeg</entry> <entry>SDL Motion JPEG</entry> </row> <row> <entry>adpcm_ms</entry> <entry>Microsoft</entry> </row> <row> <entry>adpcm_4xm</entry> <entry>4X Technologies</entry> </row> <row> <entry>adpcm_xa</entry> <entry>Phillips Yellow Book CD-ROM eXtended Architecture</entry> </row> <row> <entry>adpcm_ea</entry> <entry>Electronic Arts</entry> </row> <row> <entry>adpcm_ct</entry> <entry>Creative 16->4-bit</entry> </row> <row> <entry>adpcm_swf</entry> <entry>Adobe Shockwave Flash</entry> </row> <row> <entry>adpcm_yamaha</entry> <entry>Yamaha</entry> </row> <row> <entry>adpcm_sbpro_4</entry> <entry>Creative VOC SoundBlaster Pro 8->4-bit</entry> </row> <row> <entry>adpcm_sbpro_3</entry> <entry>Creative VOC SoundBlaster Pro 8->2.6-bit</entry> </row> <row> <entry>adpcm_sbpro_2</entry> <entry>Creative VOC SoundBlaster Pro 8->2-bit</entry> </row> <row> <entry>adpcm_thp</entry> <entry>Nintendo GameCube FMV THP</entry> </row> <row> <entry>adpcm_adx</entry> <entry>Sega/CRI ADX</entry> </row> </tbody> </tgroup> </informaltable> </para> </sect3> </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 pokud chcete mít svá videa dekódovatelná kodekem DivX5, budete muset zapnout podporu uzavřeného GOP, pomocí volby <systemitem class="library">libavcodec</systemitem>u <option>cgop</option>, ale budete také muset vypnout detekci scény, což není dobrý nápad, jelikož tak trochu zhoršíte efektivitu enkódování. </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 animované vido, 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 +25% č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-mpeg4-lavc-example-settings"> <title>Příklady nastavení enkódování</title> <para> Následující nastavení jsou příklady nastavení různých kombinací voleb enkodéru, které ovlivňují poměr rychlost versus kvalita při shodném cílovém datovém toku. </para> <para> Veškerá nastavení byla testována na video vzorku 720x448 @30000/1001 snímků za sekundu, cílový datový tok byl 900kbps a prováděly se na AMD-64 3400+ při 2400 MHz v režimu 64 bitů. Každá kombinace nastavení má uvedenu změřenou rychlost enkódování (ve snímcích za sekundu) a ztrátu PSNR (v dB) oproti nastavení "velmi vysoká kvalita". Rozumějte však že, v závislosti na vašem zdrojovém materiálu, typu počítače a pokrokům ve vývoji, můžete dospět k velmi odlišným výsledkům. </para> <para> <informaltable frame="all"> <tgroup cols="4"> <thead> <row> <entry>Popis</entry> <entry>Volby</entry> <entry>Rychlost [fps]</entry> <entry>Relativní ztráta PSNR [dB]</entry> </row> </thead> <tbody> <row> <entry>Velmi vysoká kvalita</entry> <entry><option>vcodec=mpeg4:mbd=2:mv0:trell:v4mv:cbp:last_pred=3:predia=2:dia=2:vmax_b_frames=2:vb_strategy=1:precmp=2:cmp=2:subcmp=2:preme=2:qns=2</option></entry> <entry>6</entry> <entry>0</entry> </row> <row> <entry>Vysoká kvalita</entry> <entry><option>vcodec=mpeg4:mbd=2:trell:v4mv:last_pred=2:dia=-1:vmax_b_frames=2:vb_strategy=1:cmp=3:subcmp=3:precmp=0:vqcomp=0.6:turbo</option></entry> <entry>15</entry> <entry>-0.5</entry> </row> <row> <entry>Rychlé enkódování</entry> <entry><option>vcodec=mpeg4:mbd=2:trell:v4mv:turbo</option></entry> <entry>42</entry> <entry>-0.74</entry> </row> <row> <entry>Enkódování v reálném čase</entry> <entry><option>vcodec=mpeg4:mbd=2:turbo</option></entry> <entry>54</entry> <entry>-1.21</entry> </row> </tbody> </tgroup> </informaltable> </para> </sect2> <!-- ********** --> <sect2 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> </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 PC kina. 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 id="menc-feat-dvd-mpeg4-example-crop"> 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 mimo úvodní a koncové titulky) 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í v ose y o 5 pixelů, protože je to liché číslo, což by nepříznivě ovlivnilo kvalitu. Místo toho zvýšíme odsazení v ose 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> Takto malé 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 -o <replaceable>Harry_Potter_2.avi</replaceable> -ovc lavc \ -lavcopts vcodec=mpeg4:vbitrate=2400:v4mv:mbd=2:trell:cmp=3:subcmp=3:autoaspect:vpass=1 \ -vf pullup,softskip,crop=720:352:0:62,hqdn3d=2:1:2 </screen> A průchod dva je stejný, jen nastavíme <option>vpass=2</option>: <screen> mencoder dvd://1 -ofps 24000/1001 -oac copy -o <replaceable>Harry_Potter_2.avi</replaceable> -ovc lavc \ -lavcopts vcodec=mpeg4:vbitrate=2400:v4mv:mbd=2:trell:cmp=3:subcmp=3:autoaspect:vpass=2 \ -vf pullup,softskip,crop=720:352:0:62,hqdn3d=2:1:2 </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 tyto volby vypustit, pokud je primárním cílem kvalita. Volby <option>cmp=3:subcmp=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 <replaceable>Harry_Potter_2.avi</replaceable> -vf spp,noise=9ah:5ah,eq2=1.2 -autoq 3 </screen> </para> </sect2> </sect1> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1 id="menc-feat-xvid"> <title>Enkódování pomocí kodeku <systemitem class="library">Xvid</systemitem> </title> <para> <systemitem class="library">Xvid</systemitem> je svobodná knihovna pro enkódování MPEG-4 ASP video datových proudů. Před začátkem enkódování budete muset <link linkend="xvid"> nastavit <application>MEncoder</application> pro její podporu</link>. </para> <para> Tato příručka se zaměřuje na poskytování stejného druhu informací jako příručka enkódování s x264. Takže prosím začněte přečtením <link linkend="menc-feat-x264-encoding-options-intro">první části</link> této příručky. </para> <!-- ********** --> <sect2 id="menc-feat-xvid-intro"> <title>Jaké volby by měly být použity, abychom dosáhli nejlepších výsledků?</title> <para> Začněte prosím pročtením sekce <systemitem class="library">Xvid</systemitem> v manuálové stránce <application>MPlayer</application>u. Tato část má být doplněním man stránky. </para> <para> Výchozí nastavení Xvid jsou dobrým kompromisem mezi rychlostí a kvalitou, takže je můžete bez obav použít, pokud vám nebude něco v dalším textu jasné. </para> </sect2> <!-- ********** --> <sect2 id="menc-feat-xvid-encoding-options"> <title>Volby pro enkódování s <systemitem class="library">Xvid</systemitem></title> <itemizedlist> <listitem><para> <emphasis role="bold">vhq</emphasis> Tato volba ovlivní rozhodovací algoritmus makrobloku, kde vyšší nastavení znamená lepší rozhodování. Výchozí nastavení mohou být bezpečně použita pro každé enkódování, zatímco vyšší nastavení vždy pomohou PSNR, ale je znatelně pomalejší. Poznamenejme, že lepší PSNR nemusí nutně znamenat, že bude obraz vypadat lépe, ale udává, že je blíže originálu. Vypnutí této volby viditelně zrychlí enkódování; pokud je pro vás rychlost kritická, pak to stojí za to. </para></listitem> <listitem><para> <emphasis role="bold">bvhq</emphasis> Tato volba provádí to samé co vhq, ale v B-snímcích. Má zanedbatelný vliv na rychlost a trochu vylepšuje kvalitu (kolem +0.1dB PSNR). </para></listitem> <listitem><para> <emphasis role="bold">max_bframes</emphasis> Větší počet povolených po sobě jdoucích B-snímků obvykle zvyšuje komprimovatelnost, ačkoli to může vést k většímu počtu blokových artefaktů. Výchozí nastavení je dobrým kompromisem mezi komprimovatelností a kvalitou, ale můžete ji zvýšit nad 3, pokud toužíte po nízkém datovém toku. Můžete ji rovněž snížit na 1 nebo 0, pokud vám jde o perfektní kvalitu, ale v tom případě byste se měli ujistit, že máte nastaven dostatečně vysoký datový tok, aby byla jistota, že komrimátor nebude zvyšovat kvantizer, aby jej dosáhl. </para></listitem> <listitem><para> <emphasis role="bold">bf_threshold</emphasis> Tato volba ovládá B-snímkovou citlivost enkodéru, kdy vyšší hodnota vede k častějšímu použití B-snímků (a naopak). Má být použita spolu s <option>max_bframes</option>; pokud jste blázen do datového toku, měli byste zvýšit jak <option>max_bframes</option>, tak <option>bf_threshold</option>, nebo naopak můžete zvýšit <option>max_bframes</option> a snížit <option>bf_threshold</option>, takže bude enkodér používat více B-snímků pouze na místech, které je <emphasis role="bold">opravdu</emphasis> potřebují. Nízká hodnota <option>max_bframes</option> a vysoká <option>bf_threshold</option> asi není nejrozumnější volbou, jelikož přinutí enkodér umísťovat B-snímky na místa, které z nich nebudou těžit, ale sníží se jejich vizuální kvalita. Pokud však potřebujete být kompatibilní s domácími přehrávači, které podporují pouze staré DivX profily (ty podporují pouze 1 po sobě jdoucí B-snímek), je to vaše jediná cesta ke zvýšení komprimovatelnosti pomocí B-snímků. </para></listitem> <listitem><para> <emphasis role="bold">trellis</emphasis> Optimalizuje proces kvantizace pro dosažení nejlepšího kompromisu mezi PSNR a datovým tokem, což umožňuje znatelnou úsporu bitů. Ušetřené bity budou využity v jiných částech videa, což zvýší celkovou vizuální kvalitu. Měli byste ji vždy mít zapnutou, jelikož její kvalitativní přínos je značný. Dokonce i když potřebujete vyšší rychlost, nevypínejte ji, dokud jste nevypli <option>vhq</option> a nezredukovali ostatní volby náročné na CPU na minimum. </para></listitem> <listitem><para> <emphasis role="bold">hq_ac</emphasis> Aktivuje metodu odhadu s menšími náklady na koeficienty, což trochu zmenší výstupní soubor (okolo 0,15 až 0,19%, což odpovídá zvýšení PSNR o méně než 0.01dB) při zanedbatelném vlivu na rychlost. Je proto doporučeno ponechat ji vždy zapnutou. </para></listitem> <listitem><para> <emphasis role="bold">cartoon</emphasis> Volba navržená pro lepší enkódování kresleného obsahu. Nemá vliv na rychlost, pouze doladí heuristiku pro výběr režimu pro tento druh obsahu. </para></listitem> <listitem> <para> <emphasis role="bold">me_quality</emphasis> Tato volba ovládá přesnost vyhledávání pohybu. Čím vyšší <option>me_quality</option>, tím bude přesnější odhad původního pohybu a výsledný snímek přesněji zachytí originální pohyb. </para> <para> Výchozí nastavení je nejlepší ve všech případech; takže ji nedoporučujeme vypínat, pokud nepotřebujete za každou cenu zvýšit rychlost, jelikož všechny bity ušetřené dobrým odhadem pohybu mohou být použity jinde a zvýšit tak celkovou kvalitu. Každopádně nechoďte níž než na 5, a když, tak jen jako poslední možnost. </para> </listitem> <listitem><para> <emphasis role="bold">chroma_me</emphasis> Zlepšuje odhad pohybu tím, že bere v potaz i chroma (barevnou) informaci, zatímco samotné <option>me_quality</option> používá pouze černobílou (luma). To spomalí enkódování o 5-10%, ale docela vylepší vizuální kvalitu omezením blokových artefaktů a zmenší velikost souboru asi o 1.3%. Pokud vám jde hlavně o rychlost, měli byste tuto volbu vypnout dříve, než začnete snižovat <option>me_quality</option>. </para></listitem> <listitem><para> <emphasis role="bold">chroma_opt</emphasis> Je určena spíše ke zvýšení kvality barev a vyčištění bílých/černých okrajů, než k vylepšení koprimovatelnosti. To vám může pomoci omezit "red stairs" efekt. </para></listitem> <listitem><para> <emphasis role="bold">lumi_mask</emphasis> Zkouší přiřadit nižší datový tok částem obrázku, které lidské oko dobře nevidí, což umožní enkodéru použít ušetřené bity na důležitějších místech obrázku. Kvalita výsledku značně závisí na osobních preferencích a na typu a nastavení monitoru použitého pro prohlížení (typicky to nebude vypadat dobře pokud je jasný, nebo je to TFT monitor). </para></listitem> <listitem> <para> <emphasis role="bold">qpel</emphasis> Zvýší počet možných vektorů pohybu zvýšením přesnosti vyhledávání pohybu z poloviny pixelu na čtvrtinu pixelu. Ideou je nalezení lepších vektorů pohybu, které naoplátku sníží datový tok (což zvýší kvalitu). Vektory pohybu s přesností na čtvrt pixelu však vyžadují pro sebe pár bitů navíc a výsledné vektory ne vždy dávají (o mnoho) lepší výsledky. Docela často vydá kodek bity na vyšší přesnost, ale dosáhne jen malého nebo žádného zvýšení kvality. Naneštěstí není způsob jak zjistit možný zisk <option>qpel</option> předem, takže musíte enkódovat s a bez ní, abyste měli jistotu. </para> <para> <option>qpel</option> může až zdvojnásobit čas enkódování a vyžaduje až o 25% více výpočetního výkonu pro dekódování. Volba není podporována všemi stolními přehrávači. </para> </listitem> <listitem><para> <emphasis role="bold">gmc</emphasis> Pokouší se ušetřit bity v panoramatických scénách použitím jediného vektoru pohybu pro celý snímek. To téměř vždy zvýší PSNR, ale znatelně zpomalí enkódování (stejně jako dekódování). V každém případě byste ji měli používat pouze pokud máte <option>vhq</option> nastavené na maximum. GMC v <systemitem class="library">Xvid</systemitem> je mnohem sofistikovanější než v DivX, ale je podporována jen několika stolními přehrávači. </para></listitem> </itemizedlist> </sect2> <!-- ********** --> <sect2 id="menc-feat-xvid-encoding-profiles"> <title>Enkódovací profily</title> <para> Xvid podporuje enkódovací profily pomocí volby <option>profile</option>, což je využíváno pro k zařazení omezení nastavení Xvid videoproudu tak, aby byl přehratelný na všem, co podporuje vybraný profil. Omezení se vstahují k rozlišením, datovému toku a různým MPEG-4 vlastnostem. Následující tabulka ukazuje, co který profil podporuje. </para> <informaltable> <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" colname="col14"/> <colspec colnum="15" colname="col15"/> <colspec colnum="16" colname="col16"/> <colspec colnum="17" colname="col17"/> <spanspec spanname="spa2-5" namest="col2" nameend="col5"/> <spanspec spanname="spa6-11" namest="col6" nameend="col11"/> <spanspec spanname="spa12-17" namest="col12" nameend="col17"/> <tbody> <row> <entry></entry> <entry spanname="spa2-5">Simple</entry> <entry spanname="spa6-11">Advanced Simple</entry> <entry spanname="spa12-17">DivX</entry> </row> <row> <entry>Název profilu</entry> <entry>0</entry> <entry>1</entry> <entry>2</entry> <entry>3</entry> <entry>0</entry> <entry>1</entry> <entry>2</entry> <entry>3</entry> <entry>4</entry> <entry>5</entry> <entry>Handheld</entry> <entry>Portable NTSC</entry> <entry>Portable PAL</entry> <entry>Home Theater NTSC</entry> <entry>Home Theater PAL</entry> <entry>HDTV</entry> </row> <row> <entry>Šířka [pixely]</entry> <entry>176</entry> <entry>176</entry> <entry>352</entry> <entry>352</entry> <entry>176</entry> <entry>176</entry> <entry>352</entry> <entry>352</entry> <entry>352</entry> <entry>720</entry> <entry>176</entry> <entry>352</entry> <entry>352</entry> <entry>720</entry> <entry>720</entry> <entry>1280</entry> </row> <row> <entry>Výška [pixely]</entry> <entry>144</entry> <entry>144</entry> <entry>288</entry> <entry>288</entry> <entry>144</entry> <entry>144</entry> <entry>288</entry> <entry>288</entry> <entry>576</entry> <entry>576</entry> <entry>144</entry> <entry>240</entry> <entry>288</entry> <entry>480</entry> <entry>576</entry> <entry>720</entry> </row> <row> <entry>Snímková rychlost [fps]</entry> <entry>15</entry> <entry>15</entry> <entry>15</entry> <entry>15</entry> <entry>30</entry> <entry>30</entry> <entry>15</entry> <entry>30</entry> <entry>30</entry> <entry>30</entry> <entry>15</entry> <entry>30</entry> <entry>25</entry> <entry>30</entry> <entry>25</entry> <entry>30</entry> </row> <row> <entry>Max průměrný datový tok [kbps]</entry> <entry>64</entry> <entry>64</entry> <entry>128</entry> <entry>384</entry> <entry>128</entry> <entry>128</entry> <entry>384</entry> <entry>768</entry> <entry>3000</entry> <entry>8000</entry> <entry>537.6</entry> <entry>4854</entry> <entry>4854</entry> <entry>4854</entry> <entry>4854</entry> <entry>9708.4</entry> </row> <row> <entry>Nejvyšší průměrný datový tok za poslední 3 sekundy [kbps]</entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry>800</entry> <entry>8000</entry> <entry>8000</entry> <entry>8000</entry> <entry>8000</entry> <entry>16000</entry> </row> <row> <entry>Max. B-snímků</entry> <entry>0</entry> <entry>0</entry> <entry>0</entry> <entry>0</entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry>0</entry> <entry>1</entry> <entry>1</entry> <entry>1</entry> <entry>1</entry> <entry>2</entry> </row> <row> <entry>MPEG kvantizace</entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry>X</entry> <entry>X</entry> <entry>X</entry> <entry>X</entry> <entry>X</entry> <entry>X</entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> </row> <row> <entry>Adaptivní kvantizace</entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry>X</entry> <entry>X</entry> <entry>X</entry> <entry>X</entry> <entry>X</entry> <entry>X</entry> <entry>X</entry> <entry>X</entry> <entry>X</entry> <entry>X</entry> <entry>X</entry> <entry>X</entry> </row> <row> <entry>Enkódování prokládaného</entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry>X</entry> <entry>X</entry> <entry>X</entry> <entry>X</entry> <entry>X</entry> <entry>X</entry> <entry></entry> <entry></entry> <entry></entry> <entry>X</entry> <entry>X</entry> <entry>X</entry> </row> <row> <entry>Čtvrtpixelová přesnost</entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry>X</entry> <entry>X</entry> <entry>X</entry> <entry>X</entry> <entry>X</entry> <entry>X</entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> </row> <row> <entry>Globální kompenzace pohybu</entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry>X</entry> <entry>X</entry> <entry>X</entry> <entry>X</entry> <entry>X</entry> <entry>X</entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> </row> </tbody> </tgroup> </informaltable> </sect2> <!-- ********** --> <sect2 id="menc-feat-xvid-example-settings"> <title>Příklady nastavení enkódování</title> <para> Následující nastavení jsou příklady nastavení různých kombinací voleb enkodéru, které ovlivňují poměr rychlost versus kvalita při shodném cílovém datovém toku. </para> <para> Veškerá nastavení byla testována na video vzorku 720x448 @30000/1001 snímků za sekundu, cílový datový tok byl 900kbps a prováděly se na AMD-64 3400+ při 2400 MHz v režimu 64 bitů. Každá kombinace nastavení má uvedenu změřenou rychlost enkódování (ve snímcích za sekundu) a ztrátu PSNR (v dB) oproti nastavení "velmi vysoká kvalita". Rozumějte však že, v závislosti na vašem zdrojovém materiálu, typu počítače a pokrokům ve vývoji, můžete dospět k velmi odlišným výsledkům. </para> <informaltable frame="all"> <tgroup cols="4"> <thead> <row><entry>Popis</entry><entry>Volby</entry><entry>Rychlost [fps]</entry><entry>Relativní ztráta PSNR [dB]</entry></row> </thead> <tbody> <row> <entry>Velmi vysoká kvalita</entry> <entry><option>chroma_opt:vhq=4:bvhq=1:quant_type=mpeg</option></entry> <entry>16</entry> <entry>0</entry> </row> <row> <entry>Vysoká kvalita</entry> <entry><option>vhq=2:bvhq=1:chroma_opt:quant_type=mpeg</option></entry> <entry>18</entry> <entry>-0.1</entry> </row> <row> <entry>Rychlé enkódování</entry> <entry><option>turbo:vhq=0</option></entry> <entry>28</entry> <entry>-0.69</entry> </row> <row> <entry>Enkódování v reálném čase</entry> <entry><option>turbo:nochroma_me:notrellis:max_bframes=0:vhq=0</option></entry> <entry>38</entry> <entry>-1.48</entry> </row> </tbody> </tgroup> </informaltable> </sect2> </sect1> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1 id="menc-feat-x264"> <title>Enkódování <systemitem class="library">x264</systemitem> kodekem</title> <para> <systemitem class="library">x264</systemitem> je svobodná knihovna pro enkódování H.264/AVC video proudů. Pře zahájením enkódování budete muset <link linkend="codec-x264-encode">nastavit její podporu v <application>MEncoder</application>u</link>. </para> <!-- ********** --> <sect2 id="menc-feat-x264-encoding-options"> <title>Enkódovací volby x264</title> <para> Začněte prosím prohlídkou sekce <systemitem class="library">x264</systemitem> man stránky <application>MPlayer</application>u. Tato sekce je zamýšlena jako doplněk manuálové stránky. Zde naleznete tipy, které volby budou nejspíše zajímat většinu lidí. Man stránka je více uhlazená, ale také více vyčerpávající a občas nabízí mnohem lepší technické detaily. </para> <sect3 id="menc-feat-x264-encoding-options-intro"> <title>Úvodem</title> <para> Tato příručka pokrývá dvě hlavní kategorie enkódovacích voleb: </para> <orderedlist> <listitem><para> Volby které mění dobu enkódování za kvalitu </para></listitem> <listitem><para> Volby které mohou být použitelné pro naplnění různých osobních preferencí a speciálních požadavků </para></listitem> </orderedlist> <para> Nakonec jen vy můžete rozhodnout, které volby jsou nejlepší pro vaše účely. Rozhodování v první kategorii voleb je nejjednodušší: stačí když zhodnotíte zda změny kvality ospravedlní rychlostní rozdíly. Druhá skupina voleb může být mnohem subjektivnější záležitostí a v úvahu může přijít více faktorů. Poznamenejme, že některé volby "osobních preferencí a speciálních požadavků" mohou také značně ovlivnit kvalitu nebo rychlost enkódování, ale to není jejich hlavní funkce. Několik voleb "osobních preferencí" může dokonce způsobit změny, po kterých se někomu zdá být výsledek lepší a jinému horší. </para> <para> Než budeme pokračovat, poznamenejme, že tento návod používá jediné měřítko kvality: celkový PSNR. Stručné vysvětlení co je to PSNR, naleznete <ulink url="http://en.wikipedia.org/wiki/PSNR">ve Wikipedii pod heslem PSNR</ulink>. Celkové PSNR je poslední hlášené PSNR číslo při zařazení volby <option>psnr</option> v <option>x264encopts</option>. Kdykoli píšeme o PSNR, je jedním z předpokladů tohoto sdělení to, že jsou použity shodné datové toky. </para> <para> Téměř všechny komentáře v tomto návodu předpokládají, že enkódujete dvouprůchodově. Při porovnávání voleb jsou zde dva hlavní důvody pro použití dvouprůchodového enkódování. Zaprvé, dvouprůchodové enkódování vám získá zhruba 1dB PSNR, což je znatelný rozdíl. Zadruhé, testování voleb pomocí přímého porovnání kvality v jednoprůchodových výsledcích je pochybné, jelikož se datový tok značně liší s každým enkódováním. Není vždy snadné určit, zda se změnila kvalita díky změně voleb, nebo z větší části odpovídají změnám datového toku. </para> </sect3> <sect3 id="menc-feat-x264-encoding-options-speedvquality"> <title>Volby které primárně ovlivňují rychlost a kvalitu</title> <itemizedlist> <listitem> <para> <emphasis role="bold">subq</emphasis>: Z voleb, které umožňují vyměnit čas za kvalitu, jsou obvykle nejdůležitější <option>subq</option> a <option>frameref</option> (viz níže). Máte-li zájem ovlivnit jak rychlost, tak kvalitu, jsou to první volby, které byste měli zvážit. Ve smyslu rychlosti se spolu volby <option>frameref</option> a <option>subq</option> velmi silně ovlivňují. Zkušenosti ukazují, že při jednom referenčním snímku si <option>subq=5</option> vezme asi o 35% více času než <option>subq=1</option>. Při 6 referenčních snímcích naroste spomalení nad 60%. Vliv <option>subq</option> na PSNR se zdá být poměrně stálý, bez ohledu na počet referenčních snímků. Typicky <option>subq=5</option> získá 0.2-0.5 dB celkového PSNR přes <option>subq=1</option>. To je obvykle již viditelné. </para> <para> Režim <option>subq=6</option> je pomalejší a vede k vyšší kvalitě za rozumnou cenu. Oproti <option>subq=5</option> obvykle získává 0.1-0.4 dB celkového PSNR za cenu ztráty rychlosti 25%-100%. Narozdíl od ostatních úrovní <option>subq</option> nezávisí chování <option>subq=6</option> tolik na <option>frameref</option> a <option>me</option>. Místo toho závisí efektivita <option>subq=6 </option> hlavně na počtu použitých B-snímků. Při běžném použití to znamená, že <option>subq=6</option> má velký vliv jak na rychlost, tak na kvalitu v komplexních, velmi pohyblivých scénách, ale nemusí mít takový vliv ve scénách s malým pohybem. Poznamenejme, že stále doporučujeme nastavit <option>bframes</option> na nenulovou hodnotu (viz níže). </para> <para> <option>subq=7</option> je nejpomalejší, s nejvyšší kvalitou. V porovnání s <option>subq=6</option>, obvykle získá 0.01–0.05 dB globálního PSNR za zpomalení v rozmezí 15%–33%. Jelikož je poměr získané kvality ku ztrátě rychlosti docela malý, měli byste tuto volbu používat pouze pokud chcete ušetřit každý možný bit a doba enkódování není problém. </para> </listitem> <listitem> <para> <emphasis role="bold">frameref</emphasis>: Výchozí nastavení <option>frameref</option> je 1, ale nemělo by to být bráno tak, že je rozumné nastavovat jej na 1. Pouhé zvýšení <option>frameref</option> na 2 získá okolo 0.15dB PSNR s 5-10% spomalením, což je zřejmě dobrý obchod. <option>frameref=3</option> získá kolem 0.25dB PSNR navíc k <option>frameref=1</option>, což již může být viditelný rozdíl. <option>frameref=3</option> je asi o 15% pomalejší než <option>frameref=1</option>. Naneštěstí se zisk rychle vytrácí. Při <option>frameref=6</option> můžete očekávat zisk pouze 0.05-0.1 dB nad <option>frameref=3</option> při dodatečném 15% zpomalení. Nad <option>frameref=6</option> je zisk kvality obvykle velmi malý (ačkoli byste měli mít na paměti, že se to může výrazně lišit v závislosti na zdrojovém materiálu). V poměrně typickém případě zlepší <option>frameref=12</option> celkový PSNR o pouhé 0.02dB nad <option>frameref=6</option>, při spomalení o 15%-20%. Při tak vysokých hodnotách <option>frameref</option> lze říct pouze jedinou dobrou věc, a to že jejich další zvyšování téměř nikdy <emphasis role="bold">nesníží</emphasis> PSNR, ale další zisk kvality je stěží měřitelný, natož viditelný. </para> <note><title>Poznámka:</title> <para> Zvýšení <option>frameref</option> na nemístně vysokou hodnotu <emphasis role="bold">může</emphasis> a <emphasis role="bold">obvykle taky sníží</emphasis> efektivitu kódování, pokud vypnete CABAC. Se zapnutým CABAC (výchozí chování) se zdá být možnost nastavit <option>frameref</option> "příliš vysoko" příliš vzdálená na to, abyste se tím museli trápit a v budoucnu mohou optimalizace tuto možnost zcela vyloučit. </para> </note> <para> Pokud vám záleží na rychlosti, bývá vhodným kompromisem použít nízké hodnoty <option>subq</option> a <option>frameref</option> v prvním průchodu a zvýšit je ve druhém. Typicky to má zanedbatelný záporný vliv na konečnou kvalitu: Pravděpodobně stratíte méně než 0.1dB PSNR, což by měl být až příliš malý rozdíl, než aby byl vidět. Odlišné hodnoty <option>frameref</option> však mohou místy ovlivnit volbu typu snímku. Nejspíš to budou ojedinělé případy, ale chcete-li si být zcela jisti, zjistěte, jestli vaše video obsahuje buď blýskavé vzory přes celou obrazovku, nebo rozsáhlé krátkodobé změny, které by mohly vynutit I-snímek. Nastavte <option>frameref</option> pro první průchod tak, aby byl dostatečně velký pro pokrytí doby bliknutí (nebo změny). Například, pokud scéna přepíná tam a zpět mezi dvěma obrázky přes tři snímky, nastavte <option>frameref</option> pro první průchod na 3 a více. Tento případ je nejspíš zcela ojedinělý v hraných filmech, ale občas se vyskytuje v záznamech z videoher. </para> </listitem> <listitem> <para> <emphasis role="bold">me</emphasis>: Tato volba je určena pro výběr metody vyhledávání pohybu. Změnou této volby jednoduše měníte poměr kvalita-versus-rychlost. Volba <option>me=dia</option> je jen o málo procent rychlejší než výchozí vyhledávání za cenu pod 0.1dB globálního PSNR. Výchozí nastavení (<option>me=hex</option>) je rozumným kompromisem mezi rychlostí a kvalitou. Volba <option>me=umh</option> získá o trošku méně než 0.1dB globální PSNR, při spomalení, které se liší v závislosti na <option>frameref</option>. Při vysokých hodnotách <option>frameref</option> (řekněme 12 nebo tak), je <option>me=umh</option> asi o 40% pomalejší než výchozí <option> me=hex</option>. Při <option>frameref=3</option>, klesne způsobené spomalení na 25%-30%. </para> <para> Volba <option>me=esa</option> používá tak rozsáhlé vyhledávání, že je příliš pomalá pro praktické využití. </para> </listitem> <listitem><para> <emphasis role="bold">partitions=all</emphasis>: Tato volba zapíná použití bloků 8x4, 4x8 a 4x4 v predikovaných makroblocích (navíc k výchozím blokům). Její aktivace vede k poměrně stálé 10%-15% ztrátě rychlosti. Tato volba je poměrně neužitečná ve zdroji obsahujícím pouze pomalý pohyb, naproti tomu u některých zdrojů s rychlým pohybem, přesněji zdrojů s velkým množstvím malých pohyblivých objektů, můžete očekávat zisk okolo 0.1dB. </para></listitem> <listitem> <para> <emphasis role="bold">bframes</emphasis>: Použitelnost B-snímků je ve většině ostatních kodeků diskutabilní. V H.264 se to změnilo: jsou zde nové techniky a typy bloků pro použití v B-snímcích. Obvykle i naivní algoritmus pro výběr B-snímku může zajistit znatelný zisk PSNR. Také je zajímavé, že pokud vypnete adaptivní rozhodování o B-snímku (<option>nob_adapt</option>), zvýší obvykle enkódování s <option>bframes</option> o trochu rychlost enkódování. </para> <para> S vypnutým adaptivním rozhodováním o B-snímku (<option>x264encopts</option> - volba <option>nob_adapt</option>), optimální hodnota tohoto nastavení nebývá obvykle vyšší než <option>bframes=1</option>, jinak mouhou utrpět velmi pohyblivé scény. Se zapnutým adaptivním rozhodováním o B-snímku (výchozí chování), je obvykle bezpečné použít vyšší hodnoty; enkodér se pokusí snížit použití B-snímků ve scénách, kde by snížily kompresi. Enkodér zřídka použije více než 3 nebo 4 B-snímky; nastavení této volby na vyšší hodnotu bude mít jen nepatrný vliv. </para> </listitem> <listitem> <para> <emphasis role="bold">b_adapt</emphasis>: Poznámka: Výchozí je zapnuto. </para> <para> Je-li tato volba zapnuta, bude enkodér používat rychlou heuristiku pro snížení počtu B-snímků ve scénách, kde by jejich použitím příliš nezískaly. Můžete použít <option>b_bias</option> pro nastavení jak přátelský bude enkodér k B-snímkům. Spomalení působené adaptivními B-snímky je nyní spíše malé, ale stejně tak potenciální zisk kvality. Obvykle však nijak neškodí. Poznamenejme, že ovlivňuje rychlost a rozhodování o typu snímku pouze v prvním průchodu. <option>b_adapt</option> a <option>b_bias</option> nemají žádný vliv v následných průchodech. </para> </listitem> <listitem><para> <emphasis role="bold">b_pyramid</emphasis>: Pokud používáte >=2 B-snímky, můžete také zapnout tuto volbu; jak říká man stránka, dostanete malé zvýšení kvality bez ztráty rychlosti. Poznamenejme, že tato videa nelze číst dekodéry založenými na libavcodec staršími než 5. března 2005. </para></listitem> <listitem> <para> <emphasis role="bold">weight_b</emphasis>: V typických případech tato volba nepřináší velký zisk. V prolínacích nebo stmívacích scénách však vážená predikce umožňuje poměrně velkou úsporu datového toku. V MPEG-4 ASP bývá stmívání obvykle nejlépe kódováno jako série velkých I-snímků; použití vážené predikce v B-snímcích umožňuje změnit alespoň některé z nich na rozumně menší B-snímky. Spomalení enkódování se zdá být minimální, pokud nějaké je. Rovněž, v rozporu s tím, co si někteří lidé mohou myslet, požadavky dekodéru na CPU nejsou váženou predikcí ovlivněny, ostatní možnosti jsou stejně náročné. </para> <para> Naneštěstí má aktuálně algoritmus adaptivního rozhodování o B-snímcích výraznou tendenci vyvarovat se B-snímků při stmívání. Dokud se to nezmění, bude dobré přidat <option>nob_adapt</option> do x264encopts, pokud očekáváte, že stmívání bude mít znatelný vliv ve vašem konkrétním klipu. </para> </listitem> <listitem id="menc-feat-x264-encoding-options-speedvquality-threads"> <para> <emphasis role="bold">threads</emphasis>: Tato volba umožňuje vytvořit více vláken pro enkódování na více procesorech. Jejich počet si můžete nastavit ručně, nebo raději nastavte <option>threads=auto</option> a ponechte <systemitem class="library">x264</systemitem> detekovat kolik máte procesorů k dispozici a zvolit vhodný počet vláken. Pokud máte víceprocesorový stroj, měli byste tuto volbu uvážit, jelikož dokáže lineárně zvýšit rychlost podle počtu procesorových jader (okolo 94% na jádro) při velmi malém snížení kvality (asi 0,005dB pro duální procesor a okolo 0,01dB pro čtyřprocesorový stroj). </para> </listitem> </itemizedlist> </sect3> <sect3 id="menc-feat-x264-encoding-options-misc-preferences"> <title>Volby náležející různým preferencím</title> <itemizedlist> <listitem> <para> <emphasis role="bold">Dvouprůchodové enkodování</emphasis>: Výše jsme doporučovali vždy používat dvouprůchodové enkódování, ale stále existují důvody proč jej nepoužít. Například pokud zachytáváte TV vysílání a enkódujete v reálném čase, nemáte jinou možnost, než použít jeden průchod. Jeden průchod je samozřejmě rychlejší než dva; pokud použijete stejné volby v obou průchodech, pak je dvouprůchodové enkódování téměř dvakrát pomalejší. </para> <para> Stále jsou však velmi dobré důvody pro použití dvouprůchodového režimu. Volič datového toku v jednoprůchodovém režimu není oduševnělý a často dělá nerozumné volby, protože nevidí celkový obraz. Předpokládejme, že máte například dvouminutové video skládající se ze dvou částí. První polovina je vysoce pohyblivá scéna dlouhá 60 sekund, která samostatně vyžaduje kolem 2500kbps, aby vypadala slušně. Hned za ní následuje méně náročná 60 sekundová scéna, která vypadá dobře při 300kbps. Vyžádáte si 1400kbps, což je teoreticky dostatečné pro pokrytí obou scén. Jednoprůchodový volič datového toku v tom případě učiní několik "chyb". První blok může skončit těžce překvantizovaný, takže bude nepoužitelně a zbytečně čtverečkovaný. Druhá část bude velmi podkvantizovaná; to může vypadat dobře, ale spotřeba bitů na tento vzhled je nerozumně vysoká. Čeho se dá ještě hůře vyvarovat je problém přechodu mezi těmito scénami. První sekundy málo pohyblivé poloviny budou těžce překvantizovány, protože volič toku stále očekává nároky na datový tok, se kterými se potýkal v první polovině videa. Tato "chybová doba" překvantizované málo pohyblivé scény bude vypadat neskutečně špatně a skutečně použije méně než 300kbps, které by potřebovala, aby vypadala dobře. Existují způsoby pro zmírnění nástrah jednoprůchodového enkódování, ale ty mohou tíhnout ke zvyšování nepřesnosti datového toku. </para> <para> Víceprůchodový volič datového toku nabízí velké výhody oproti jednomu průchodu. Díky statistikám generovaným v prvním průchodu může enkodér určit, s rozumnou přesností, bitovou náročnost enkódování každého snímku při jakémkoli kvantizéru. To umožňuje mnohem racionálnější, lépe naplánovanou spotřebu bitů mezi drahými (hodně pohyblivými) a levnými (málo pohyblivými) scénami. Několik nápadů jak upravit tuto spotřebu podle svého naleznete níže viz <option>qcomp</option>. </para> <para> Navíc dva průchody nemusí trvat dvakrát tak dlouho jako jeden. Můžete upravit volby prvního průchodu pro nejvyšší rychlost a nižší kvalitu. Pokud si dobře zvolíte své volby, můžete mít velmi rychlý první průchod. Výsledná kvalita ve druhém průchodu bude trochu horší, protože predikce velikosti je méně přesná, ale rozdíl v kvalitě je obvykle příliž malý, aby byl vidět. Zkuste např. přidat <option>subq=1:frameref=1</option> do <option>x264encopts</option> prvnímu průchodu. Pak ve druhém průchodu použijte pomalejší volby pro vyšší kvalitu: <option>subq=6:frameref=15:partitions=all:me=umh</option> </para> </listitem> <listitem><para> <emphasis role="bold">Tříprůchodové enkódování</emphasis>? x264 nabízí možnost provádět větší počet následných průchodů. Pokud zadáte <option>pass=1</option> v prvním průchodu a pak použijete <option>pass=3</option> v následujícím průchodu, pak tento průchod jak načte statistiky z předchozího, tak zapíše své vlastní. Další průchod po něm pak bude mít velmi dobrou základnu pro vysoce přesnou predikci velikosti snímků při zvoleném kvantizéru. V praxi se celková kvalita z toho vzešlá blíží nule a je možné, že třetí průchod bude mít horší celkový PSNR než jeho předchúdce. Při běžném použití tři průchody pomůžou, pokud dostanete buď špatnou predikci datového toku, nebo špatně vypadající přechody mezi scénami po použití pouze dvou průchodů. To se nejspíš může stát v extrémně krátkých klipech. Je rovněž několik zvláštních případů, ve kterých jsou tři a více průchodů dobré pro pokročilé uživatele, ale pro stručnost se zde těmito případy zabývat nebudeme. </para></listitem> <listitem><para> <emphasis role="bold">qcomp</emphasis>: <option>qcomp</option> mění poměr počtu bitů alokovaných "drahým" velmi pohyblivým snímkům k "levným" málo pohyblivým snímkům. V jednom extrému, <option>qcomp=0</option> vede k čistě konstantnímu datovému toku. Což typicky činí velmi pohyblivé scény velmi ošklivé, zatímco scény s malým pohybem vypadají perfektně, ale spotřebovávají mnohem větší datový tok, než by potřebovaly k tomu, aby ještě vypadaly skvěle. Ve druhém extrému, <option>qcomp=1</option>, dostanete téměř konstantní kvantizační parametr (QP). Konstantní QP nevypadá špatně, ale většina lidí soudí, že je rozumnější snížit trochu datový tok v extrémně náročných scénách (kde snížení kvality není tak vidět) a realokovat je do scén, které je snadnější enkódovat při excelentní kvalitě. Výchozí hodnota <option>qcomp</option> je 0.6, což může být, podle některých lidí poněkud málo (běžně se rovněž používá 0.7-0.8). </para></listitem> <listitem><para> <emphasis role="bold">keyint</emphasis>: <option>keyint</option> je výhradně pro výměnu míry převinutelnosti za efektivitu kódování. Výchozí hodnota <option>keyint</option> je 250. V materiálu 25 snímků za sekundu to zajišťuje schopnost převíjení s 10 sekundovou přesností. Pokud soudíte, že bude důležité a užitečné být schopen převíjet s přesností 5 sekund, nastavte <option>keyint=125</option>; to ovšem trochu sníží kvalitu/datový tok. Pokud vám jde jen o kvalitu, nikoli převinutelnost, můžete si nastavit mnohem vyšší hodnoty (rozumějte že zisk z toho klesá a může být neznatelný až žádný). Video proud bude stále mít převíjecí body, pokud jsou zde nějaké změny scény. </para></listitem> <listitem> <para> <emphasis role="bold">deblock</emphasis>: Tato věc začíná být trochu kontroverzní. </para> <para> H.264 definuje jednoduchou deblokovací proceduru I-bloků, která používá přednastavených sil a prahů závislých na QP daného bloku. Výchozí je, že bloky s vysokým QP jsou filtrovány silně a bloky s nízkým QP nejsou deblokovány vůbec. Přednastavené síly definované standardem jsou dobře zvoleny a vyváženy tak, že jsou optimální z hlediska PSNR pro libovolné video, které zkoušíte enkódovat. Volba <option>deblock</option> umožňuje nastavit offsety přednastaveným deblokovacím prahům. </para> <para> Zdá se, že si mnoho lidí myslí, že je dobré snížit sílu deblokovacího filtru o vysokou hodnotu (řekněme, -3). To však není téměř nikdy dobrý nápad a v mnoha případech lidé, kteří to dělají, nerozumí dobře tomu, jak pracuje výchozí deblokování. </para> <para> První a nejdůležitější věc, kterou byste měli vědět o in-loop deblokovacím filtru, je, že výchozí prahy jsou téměř vždy optimální z hlediska PSNR. V řídkých případech, kdy nejsou, je ideální offset plusmínus 1. Úprava deblokovacích parametrů o větší hodnotu téměř zaručeně poškodí PSNR. Zesílení filtru setře více detailů; oslabení filtru povede k zvýšené viditelnosti blokování. </para> <para> Rozhodně je hloupost snižovat deblokovací prahy pokud má vaše video převážně nízkou plošnou komplexnost (čili málo detailů nebo šumu). In-loop filtr odvádí téměř výbornou práci v ukrývání artefaktů, které se mohou vyskytnout. Pokud má zdroj vysokou plšnou komplexnost, pak jsou artefakty méně viditelné. To proto, že kroužkování vypadá podobně jako detail nebo šum. Lidské oko snadno rozpozná, pokud je odstraněn detail, ale ne už tak snadno pozná, že je šum reprezentován špatně. Když příjde na subjektivní kvalitu, pak jsou detaily a šum do jisté míry zaměnitelné. Oslabením deblokovacího filtru nejspíše zvýšíte chybu, přidáním kroužkových artefaktů, ale oko si toho nevšimne, jelikož je zamění za detaily. </para> <para> <emphasis role="bold">Ani to</emphasis> však neospravedlňuje oslabení deblokovacího filtru. Obecně dostanete kvalitnější šum pomocí postprocesingu. Pokud vaše H.264 videa vypadají příliš neostře nebo rozmazaně, zkuste si pohrát s <option>-vf noise</option> při přehrávání. Volba <option>-vf noise=8a:4a</option> by měla skrýt většinu středně silných artefaktů. Téměř určitě to bude vypadat lépe, než výsledky, které byste mohli dosáhnout pohráváním si s deblokovacím filtrem. </para> </listitem> </itemizedlist> </sect3> </sect2> <!-- ********** --> <sect2 id="menc-feat-x264-example-settings"> <title>Příklady nastavení enkódování</title> <para> Následující nastavení jsou příklady nastavení různých kombinací voleb enkodéru, které ovlivňují poměr rychlost versus kvalita při shodném cílovém datovém toku. </para> <para> Veškerá nastavení byla testována na video vzorku 720x448 @30000/1001 snímků za sekundu, cílový datový tok byl 900kbps a prováděly se na AMD-64 3400+ při 2400 MHz v režimu 64 bitů. Každá kombinace nastavení má uvedenu změřenou rychlost enkódování (ve snímcích za sekundu) a ztrátu PSNR (v dB) oproti nastavení "velmi vysoká kvalita". Rozumějte však že, v závislosti na vašem zdrojovém materiálu, typu počítače a pokrokům ve vývoji, můžete dospět k velmi odlišným výsledkům. </para> <informaltable frame="all"> <tgroup cols="4"> <thead> <row> <entry>Popis</entry> <entry>Volby</entry> <entry>Rychlost [fps]</entry> <entry>Relativní ztráta PSNR [dB]</entry> </row> </thead> <tbody> <row> <entry>Velmi vysoká kvalita</entry> <entry><option>subq=6:partitions=all:8x8dct:me=umh:frameref=5:bframes=3:b_pyramid:weight_b</option></entry> <entry>6</entry> <entry>0</entry> </row> <row> <entry>Vysoká kvalita</entry> <entry><option>subq=5:8x8dct:frameref=2:bframes=3:b_pyramid:weight_b</option></entry> <entry>13</entry> <entry>-0.89</entry> </row> <row> <entry>Rychlé enkódování</entry> <entry><option>subq=4:bframes=2:b_pyramid:weight_b</option></entry> <entry>17</entry> <entry>-1.48</entry> </row> </tbody> </tgroup> </informaltable> </sect2> </sect1> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1 id="menc-feat-video-for-windows"> <title> Enkódování rodinou kodeků <systemitem class="library">Video For Windows</systemitem> </title> <para> Video for Windows poskytuje jednoduché enkódování pomocí binárních videokodeků. Můžete enkódovat následujícími kodeky (pokud jich máte víc, řekněte nám to prosím!) </para> <para> Pamatujte, že podpora těchto kodeků je velmi experimentální a některé z nich nemusí pracovat správně. Některé kodeky budou pracovat pouze v určitých barevných prostorech. Pokud kodek selže, zkuste <option>-vf format=bgr24</option> a <option>-vf format=yuy2</option>. </para> <!-- ********** --> <sect2 id="menc-feat-enc-vfw-video-codecs"> <title>Podporované kodeky Video for Windows</title> <para> <informaltable frame="all"> <tgroup cols="4"> <thead> <row> <entry>Název souboru videokodeku</entry> <entry>Popis (FourCC)</entry> <entry>md5sum</entry> <entry>Poznámka</entry> </row> </thead> <tbody> <row> <entry>aslcodec_vfw.dll</entry> <entry>Alparysoft bezztrátový kodek vfw (ASLC)</entry> <entry>608af234a6ea4d90cdc7246af5f3f29a</entry> <entry></entry> </row> <row> <entry>avimszh.dll</entry> <entry>AVImszh (MSZH)</entry> <entry>253118fe1eedea04a95ed6e5f4c28878</entry> <entry>vyžaduje <option>-vf format</option></entry> </row> <row> <entry>avizlib.dll</entry> <entry>AVIzlib (ZLIB)</entry> <entry>2f1cc76bbcf6d77d40d0e23392fa8eda</entry> <entry></entry> </row> <row> <entry>divx.dll</entry> <entry>DivX4Windows-VFW</entry> <entry>acf35b2fc004a89c829531555d73f1e6</entry> <entry></entry> </row> <row> <entry>huffyuv.dll</entry> <entry>HuffYUV (bezztrátový) (HFYU)</entry> <entry>b74695b50230be4a6ef2c4293a58ac3b</entry> <entry></entry> </row> <row> <entry>iccvid.dll</entry> <entry>Cinepak Video (cvid)</entry> <entry>cb3b7ee47ba7dbb3d23d34e274895133</entry> <entry></entry> </row> <row> <entry>icmw_32.dll</entry> <entry>Motion Wavelets (MWV1)</entry> <entry>c9618a8fc73ce219ba918e3e09e227f2</entry> <entry></entry> </row> <row> <entry>jp2avi.dll</entry> <entry>ImagePower MJPEG2000 (IPJ2)</entry> <entry>d860a11766da0d0ea064672c6833768b</entry> <entry><option>-vf flip</option></entry> </row> <row> <entry>m3jp2k32.dll</entry> <entry>Morgan MJPEG2000 (MJ2C)</entry> <entry>f3c174edcbaef7cb947d6357cdfde7ff</entry> <entry></entry> </row> <row> <entry>m3jpeg32.dll</entry> <entry>Morgan Motion JPEG Codec (MJPG)</entry> <entry>1cd13fff5960aa2aae43790242c323b1</entry> <entry></entry> </row> <row> <entry>mpg4c32.dll</entry> <entry>Microsoft MPEG-4 v1/v2</entry> <entry>b5791ea23f33010d37ab8314681f1256</entry> <entry></entry> </row> <row> <entry>tsccvid.dll</entry> <entry>TechSmith Camtasia Screen Codec (TSCC)</entry> <entry>8230d8560c41d444f249802a2700d1d5</entry> <entry>shareware chyba na windows</entry> </row> <row> <entry>vp31vfw.dll</entry> <entry>On2 Open Source VP3 Codec (VP31)</entry> <entry>845f3590ea489e2e45e876ab107ee7d2</entry> <entry></entry> </row> <row> <entry>vp4vfw.dll</entry> <entry>On2 VP4 Personal Codec (VP40)</entry> <entry>fc5480a482ccc594c2898dcc4188b58f</entry> <entry></entry> </row> <row> <entry>vp6vfw.dll</entry> <entry>On2 VP6 Personal Codec (VP60)</entry> <entry>04d635a364243013898fd09484f913fb</entry> <entry></entry> </row> <row> <entry>vp7vfw.dll</entry> <entry>On2 VP7 Personal Codec (VP70)</entry> <entry>cb4cc3d4ea7c94a35f1d81c3d750bc8d</entry> <entry>vadné FourCC?</entry> </row> <row> <entry>ViVD2.dll</entry> <entry>SoftMedia ViVD V2 kodek VfW (GXVE)</entry> <entry>a7b4bf5cac630bb9262c3f80d8a773a1</entry> <entry></entry> </row> <row> <entry>msulvc06.DLL</entry> <entry>MSU Lossless kodek (MSUD)</entry> <entry>294bf9288f2f127bb86f00bfcc9ccdda</entry> <entry> Dekódovatelný <application>Window Media Player</application>em, <application>MPlayer</application>em nikoli (zatím). </entry> </row> <row> <entry>camcodec.dll</entry> <entry>CamStudio lossless video kodek (CSCD)</entry> <entry>0efe97ce08bb0e40162ab15ef3b45615</entry> <entry>sf.net/projects/camstudio</entry> </row> </tbody> </tgroup> </informaltable> První pole obsahuje názvy kodeků, které by měly být zadány parametru <literal>codec</literal>, například: <option>-xvfwopts codec=divx.dll</option> Kód FourCC používaný jednotlivými kodeky jsou uvedeny v závorce. </para> <informalexample> <para> Příklad převodu ISO DVD upoutávku na VP6 flash video soubor s použitím compdata nastavení datového toku: <screen> mencoder -dvd-device <replaceable>zeiram.iso</replaceable> dvd://7 -o <replaceable>upoutavka.flv</replaceable> \ -ovc vfw -xvfwopts codec=vp6vfw.dll:compdata=onepass.mcf -oac mp3lame \ -lameopts cbr:br=64 -af lavcresample=22050 -vf yadif,scale=320:240,flip \ -of lavf </screen> </para> </informalexample> </sect2> <sect2 id="menc-feat-video-for-windows-bitrate-settings"> <title>Použití vfw2menc pro vytvoření souboru s nastavením kodeku.</title> <para> Pro enkódování s Video for Windows kodeky, budete muset nastavit datový tok a další volby. Funkčnost je potvrzena na platformně x86 na *NIX i Windows. </para> <para> Nejprve musíte sestavit program <application>vfw2menc</application>. Ten je umístěn v podadresáři <filename class="directory">TOOLS</filename> zdrojových kódů MPlayeru. Pro sestavení na Linuxu můžete použít <application>Wine</application>: <screen>winegcc vfw2menc.c -o vfw2menc -lwinmm -lole32</screen> Pro sestavení na Windows v <application>MinGW</application> nebo <application>Cygwin</application> použijte: <screen>gcc vfw2menc.c -o vfw2menc.exe -lwinmm -lole32</screen> Pro sestavení v <application>MSVC</application> budete potřebovat getopt. Getopt lze najít v originálním <application>vfw2menc</application> archivu dostupném na stránkách: <ulink url="http://oss.netfarm.it/mplayer-win32.php">MPlayer on win32</ulink> projektu. </para> <informalexample> <para> Níže uvádíme příklad s VP6 kodekem. <screen> vfw2menc -f VP62 -d vp6vfw.dll -s firstpass.mcf </screen> To otevře dialogové okno VP6 kodeku. Pro druhý průchod opakujte tento krok, ale použijte <option>-s <replaceable>secondpass.mcf</replaceable></option>. </para> </informalexample> <para> Uživatelé Windows mohou použít <option>-xvfwopts codec=vp6vfw.dll:compdata=dialog</option>, aby dostali dialogové okno kodeku před zahájením enkódování. </para> </sect2> </sect1> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1 id="menc-feat-quicktime-7"> <title>Použití <application>MEncoder</application>u pro vytvoření <application>QuickTime</application>-kompatibilních souborů</title> <sect2 id="menc-feat-quicktime-7-why-use-it"> <title>Proč by někdo chtěl vytvářet <application>QuickTime</application>-kompatibilní soubory?</title> <para> Je několik důvodů, proč můžete chtít vytvářet <application>QuickTime</application>-kompatibilní soubory. </para> <itemizedlist> <listitem><para> Chcete, aby byl každý počítačový anlfabet schopen sledovat vaše videa na jakékoli rozšířené platformě (Windows, Mac OS X, Unixy …). </para></listitem> <listitem><para> <application>QuickTime</application> je schopen využít více harwarových i softwarových urychlovacích funkcí Mac OS X, než platformně nezávislý přehrávač, jako <application>MPlayer</application> nebo <application>VLC</application>. To znamená, že vaše soubory mají šanci na plynulé přehrávání na starších strojích s G4. </para></listitem> <listitem><para> <application>QuickTime</application> 7 podporuje H.264, kodek nové generace, který poskytuje podstatně lepší kvalitu obrazu, než předchozí generace kodeků (MPEG-2, MPEG-4 …). </para></listitem> </itemizedlist> </sect2> <sect2 id="menc-feat-quicktime-7-constraints"> <title><application>QuickTime</application> 7 omezení</title> <para> <application>QuickTime</application> 7 podporuje H.264 video a AAC zvuk, ale nepodporuje je, pokud jsou namuxovány v AVI kontejneru. Můžete však použít <application>MEncoder</application> pro enkódování videa a zvuku a pak použít externí program, např. <application>mp4creator</application> (součást <ulink url="http://mpeg4ip.sourceforge.net/">MPEG4IP suite</ulink>) pro přemuxování do MP4 kontejneru. </para> <para> Podpora H.264 v <application>QuickTime</application> je omezená, takže se budete muset vzdát některých pokročilých vlastností. Pokud enkódujete video s vlastnostmi, které <application>QuickTime</application> 7 nepodporuje, budou přehrávače založené na <application>QuickTime</application> zobrazovat pouze hezky bílou obrazovku, místo očekávaného videa. </para> <itemizedlist> <listitem><para> <emphasis role="bold">B-snímky</emphasis>: <application>QuickTime</application> 7 podporuje maximálně 1 B-snímek, čili <option>-x264encopts bframes=1</option>. To znamená, že <option>b_pyramid</option> a <option>weight_b</option> nebudou mít žádný efekt, jelikož vyžadují, aby <option>bframes</option> bylo vyšší než 1. </para></listitem> <listitem><para> <emphasis role="bold">Makrobloky</emphasis>: <application>QuickTime</application> 7 nepodporuje 8x8 DCT makrobloky. Tato volba (<option>8x8dct</option>) je výchozí vypnuto, takže se ujistěte, že ji explicitně nezapnete. To také znamená, že volba <option>i8x8</option> nebude mít žádný efekt, jelikož vyžaduje <option>8x8dct</option>. </para></listitem> <listitem><para> <emphasis role="bold">Poměr stran</emphasis>: <application>QuickTime</application> 7 nepodporuje SAR (sample aspect ratio) informace v MPEG-4 souborech; předpokládá, že SAR=1. Přečtěte si <link linkend="menc-feat-quicktime-7-scale">sekci o škálování</link>, abyste to obešli. </para></listitem> </itemizedlist> </sect2> <sect2 id="menc-feat-quicktime-7-crop"> <title>Ořez</title> <para> Řekněme, že chcete ripnout svou nově zakoupenou kopii "Letopisů Narnie". Vaše DVD je region 1, což znamená že je v NTSC. Příklad níže lze aplikovat na PAL, jen musíte vynechat <option>-ofps 24000/1001</option> a použijete trošku jiné <option>crop</option> a <option>scale</option> rozměry. </para> <para> Po spuštění <option>mplayer dvd://1</option>, postupujete podle pokynů uvedených v sekci <link linkend="menc-feat-telecine">Jak si poradit s telecine a prokladem v NTSC DVD</link> a zjistíte, že je to 24000/1001 fps progresivní video. To poněkud zjednoduší proces, jelikož nepotřebujete použít inverzní telecine filtr jako <option>pullup</option> nebo filtr odstranění prokladu jako <option>yadif</option>. </para> <para> Dále potřebujete odstřihnout černé okraje na zhora a zdola obrazu, podle postupu uvedeného v <link linkend="menc-feat-dvd-mpeg4-example-crop">této</link> předešlé sekci. </para> </sect2> <sect2 id="menc-feat-quicktime-7-scale"> <title>Škálování</title> <para> Další krok je opravdu srdcervoucí. <application>QuickTime</application> 7 nepodporuje MPEG-4 videa se vzorkovým poměrem stran jiným než 1, takže budete muset obraz roztáhnout (to vyplýtvá spoustu diskového prostoru) nebo zmenšit (čímž ztratíme některé detaily ze zdrojového videa) na čtvercové pixely. Ať zvolíte jakkoli, je to velmi neefektivní, ale nelze se tomu vyhnout, pokud chcete, aby se video dalo přehrávat pomocí <application>QuickTime</application> 7. <application>MEncoder</application> může provést vhodné zvětšení nebo zmenšení uvedením buď <option>-vf scale=-10:-1</option> nebo <option>-vf scale=-1:-10</option>. Takto naškálujete video na správnou šířku pro ořezanou výšku, zarovnanou na nejbližší násobek 16 pro optimální kompresi. Pamatujte, že pokud ořezáváte, měli byste nejprve ořezávat, potom škálovat: <screen>-vf crop=720:352:0:62,scale=-10:-1</screen> </para> </sect2> <sect2 id="menc-feat-quicktime-7-avsync"> <title>A/V synchronizace</title> <para> Protože budete muxovat do odlišného nosného formátu, měli byste vždy použít volbu <option>harddup</option>, abyste se ujistili, že duplikované snímky budou duplikovány ve video výstupu. Bez této volby <application>MEncoder</application> jen vloží do video proudu značky pro duplikované snímky a je jen na přehrávači, aby zobrazil snímek dvakrát. Naneštěstí tato "měkká duplikace" nepřežije přemuxování, takže se zvuk může pomalu rozjíždět s videem. </para> <para> Celý řetěz filtrů pak vypadá takto: <screen>-vf crop=720:352:0:62,scale=-10:-1,harddup</screen> </para> </sect2> <sect2 id="menc-feat-quicktime-7-bitrate"> <title>Datový tok</title> <para> Jako vždy je výběr datového toku otázkou technických parametrů zdroje, jak jsou objasněny <link linkend="menc-feat-dvd-mpeg4-resolution-bitrate">zde</link>, stejně jako otázkou vkusu. Tento film je dost akční a obsahuje mnoho detailů, ale H.264 video vypadá dobře při mnohem menším datovém toku než XviD nebo jiné MPEG-4 kodeky. Po dlouhém experimentování se autor této příručky rozhodl enkódovat tento film při 900kbps a myslí, že vypadá dobře. Můžete snížit datový tok, pokud potřebujete ušetřit místo, nebo jej zvýšit, chcete-li zvýšit kvalitu. </para> </sect2> <sect2 id="menc-feat-quicktime-7-example"> <title>Příklad enkódování</title> <para> Nyní jste připraveni enkódovat video. Jelikož nám leží na srdci kvalita, samozřejmě použijeme víceprůchodové enkódování. Chcete-li poněkud urychlit enkódování, můžete přidat volbu <option>turbo</option> do prvního průchodu; to snižuje <option>subq</option> a <option>frameref</option> na 1. Pro zvýšení diskového prostoru, můžete použít volbu <option>ss</option> pro odstranění prvních několika sekund videa. (Zjistil jsem, že tento konkrétní film má 32 sekund log a titulků.) <option>bframes</option> může být 0 nebo 1. Ostatní volby jsou dokumentovány v <link linkend="menc-feat-x264-encoding-options-speedvquality">Enkódování s <systemitem class="library">x264</systemitem> kodekem</link> a v man stránce. <screen>mencoder dvd://1 -o /dev/null -ss 32 -ovc x264 \ -x264encopts pass=1:turbo:bitrate=900:bframes=1:\ me=umh:partitions=all:trellis=1:qp_step=4:qcomp=0.7:direct_pred=auto:keyint=300 \ -vf crop=720:352:0:62,scale=-10:-1,harddup \ -oac faac -faacopts br=192:mpeg=4:object=2 -channels 2 -srate 48000 \ -ofps 24000/1001</screen> Pokud máte víceprocesorový stroj, nenechte si ujít příležitost podstatně zvýšit enkódování zapnutím <link linkend="menc-feat-x264-encoding-options-speedvquality-threads"> <systemitem class="library">x264</systemitem> vícevláknového režimu</link> přidáním <option>threads=auto</option> do <option>x264encopts</option> na příkazovém řádku. </para> <para> Druhý průchod je stejný, jen nastavíte výstupní soubor a nastavíte <option>pass=2</option>. <screen>mencoder dvd://1 <emphasis role="bold">-o narnia.avi</emphasis> -ss 32 -ovc x264 \ -x264encopts <emphasis role="bold">pass=2</emphasis>:turbo:bitrate=900:frameref=5:bframes=1:\ me=umh:partitions=all:trellis=1:qp_step=4:qcomp=0.7:direct_pred=auto:keyint=300 \ -vf crop=720:352:0:62,scale=-10:-1,harddup \ -oac faac -faacopts br=192:mpeg=4:object=2 -channels 2 -srate 48000 \ -ofps 24000/1001</screen> </para> <para> Výsledné AVI by mělo perfektně hrát v <application>MPlayer</application>u, ale <application>QuickTime</application> jej nepřehraje, jelikož nepodporuje H.264 muxovaný v AVI. Takže dalším krokem je přemuxovat video do MP4 konteineru. </para> </sect2> <sect2 id="menc-feat-quicktime-7-remux"> <title>Přemuxování do MP4</title> <para> Existuje spousta způsobů, jak remuxovat AVI do MP4. Můžete použít <application>mp4creator</application>, který je součástí <ulink url="http://mpeg4ip.sourceforge.net/">MPEG4IP suite</ulink>. </para> <para> Nejprve demuxujte AVI do oddělených zvukových a video proudů, pomocí <application>MPlayer</application>u. <screen>mplayer narnia.avi -dumpaudio -dumpfile narnia.aac mplayer narnia.avi -dumpvideo -dumpfile narnia.h264</screen> Jména souborů jsou důležitá; <application>mp4creator</application> vyžaduje, aby AAC zvukové proudy byly pojmenovány <systemitem>.aac</systemitem> a H.264 video proudy zase <systemitem>.h264</systemitem>. </para> <para> Nyní použijte <application>mp4creator</application> pro vytvoření nového MP4 souboru ze zvukového a video proudů. <screen>mp4creator -create=narnia.aac narnia.mp4 mp4creator -create=narnia.h264 -rate=23.976 narnia.mp4</screen> Narozdíl od enkódovacího kroku, musíte zadat snímkovou rychlost jako desetinné číslo (např. 23.976), nikoli zlomek (např. 24000/1001). </para> <para> Tento <systemitem>narnia.mp4</systemitem> soubor by měl být přehratelný jakoukoli <application>QuickTime</application> 7 aplikací, jako je <application>QuickTime Player</application> nebo <application>iTunes</application>. Pokud plánujete sledovat video ve webovém prohlížeči s <application>QuickTime</application> pluginem, měli byste rovněž označkovat film, aby jej <application>QuickTime</application> plugin mohl začít přehrávat už v době stahování. <application>mp4creator</application> umí vytvořit značkovací (hint) stopy: <screen>mp4creator -hint=1 narnia.mp4 mp4creator -hint=2 narnia.mp4 mp4creator -optimize narnia.mp4</screen> Můžete ověřit výsledek, abyste se ujistili, že značkovací stopy byly vytvořeny úspěšně: <screen>mp4creator -list narnia.mp4</screen> Měli byste vidět seznam stop: 1 zvukovou, 1 video a 2 značkovací stopy. <screen>Track Type Info 1 audio MPEG-4 AAC LC, 8548.714 secs, 190 kbps, 48000 Hz 2 video H264 Main@5.1, 8549.132 secs, 899 kbps, 848x352 @ 23.976001 fps 3 hint Payload mpeg4-generic for track 1 4 hint Payload H264 for track 2 </screen> </para> </sect2> <sect2 id="menc-feat-quicktime-7-metadata"> <title>Přidání stop s meta daty</title> <para> Pokud chcete přidat stopy, které se objevují v iTunes, můžete použít <ulink url="http://atomicparsley.sourceforge.net/">AtomicParsley</ulink>. <screen>AtomicParsley narnia.mp4 --metaEnema --title "The Chronicles of Narnia" --year 2005 --stik Movie --freefree --overWrite</screen> Volba <option>--metaEnema</option> odstraňuje existující metadata (<application>mp4creator</application> vkládá své jméno do "encoding tool" tagu) a <option>--freefree</option> uvolní místo po smazaných metadatech. Volba <option>--stik</option> nastaví typ videa (jako Film nebo TV šou), což iTunes používá pro sdružování podobných video souborů. Volba <option>--overWrite</option> přepisuje původní soubor; bez ní vytvoří <application>AtomicParsley</application> nový automaticky pojmenovaný soubor ve stejném adresáři a ponechá původní soubor nedotčen. </para> </sect2> </sect1> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1 id="menc-feat-vcd-dvd"> <title>Použití <application>MEncoder</application>u k vytváření VCD/SVCD/DVD-kompatibilních souborů.</title> <sect2 id="menc-feat-vcd-dvd-constraints"> <title>Omezení Formátů</title> <para> <application>MEncoder</application> je schopen vytvořit soubory ve formátu MPEG pro VCD, SCVD a DVD pomocí knihovny <systemitem class="library">libavcodec</systemitem>. Tyto soubory pak mohou být použity ve spojení s programem <ulink url="http://www.gnu.org/software/vcdimager/vcdimager.html">vcdimager</ulink> nebo <ulink url="http://dvdauthor.sourceforge.net/">dvdauthor</ulink> pro vytváření disků přehratelných na stolním přehrávači. </para> <para> Formáty DVD, SVCD a VCD mají silná omezení. K dispozici máte pouze malý výběr velikostí enkódovaného obrazu a poměrů stran. Pokud váš film nesplňuje tyto požadavky, budete jej muset škálovat, ořezat nebo přidat černé okraje, aby byl kompatibilní. </para> <sect3 id="menc-feat-vcd-dvd-constraints-resolution"> <title>Omezení Formátů</title> <informaltable frame="all"> <tgroup cols="9"> <thead> <row> <entry>Formát</entry> <entry>Rozlišení</entry> <entry>V. kodec</entry> <entry>V. dat. tok</entry> <entry>Vzork. kmitočet</entry> <entry>A. kodec</entry> <entry>A. dat. tok</entry> <entry>FPS</entry> <entry>Poměr stran</entry> </row> </thead> <tbody> <row> <entry>NTSC DVD</entry> <entry>720x480, 704x480, 352x480, 352x240</entry> <entry>MPEG-2</entry> <entry>9800 kbps</entry> <entry>48000 Hz</entry> <entry>AC–3,PCM</entry> <entry>1536 kbps (max)</entry> <entry>30000/1001, 24000/1001</entry> <entry>4:3, 16:9 (pouze pro 720x480)</entry> </row> <row> <entry>NTSC DVD</entry> <entry>352x240<footnote id='fn-rare-resolutions'><para> Tato rozlišení jsou zřídka použita pro DVD, protože mají docela nízkou kvalitu.</para></footnote></entry> <entry>MPEG-1</entry> <entry>1856 kbps</entry> <entry>48000 Hz</entry> <entry>AC–3,PCM</entry> <entry>1536 kbps (max)</entry> <entry>30000/1001, 24000/1001</entry> <entry>4:3, 16:9</entry> </row> <row> <entry>NTSC SVCD</entry> <entry>480x480</entry> <entry>MPEG-2</entry> <entry>2600 kbps</entry> <entry>44100 Hz</entry> <entry>MP2</entry> <entry>384 kbps (max)</entry> <entry>30000/1001</entry> <entry>4:3</entry> </row> <row> <entry>NTSC VCD</entry> <entry>352x240</entry> <entry>MPEG-1</entry> <entry>1150 kbps</entry> <entry>44100 Hz</entry> <entry>MP2</entry> <entry>224 kbps</entry> <entry>24000/1001, 30000/1001</entry> <entry>4:3</entry> </row> <row> <entry>PAL DVD</entry> <entry>720x576, 704x576, 352x576, 352x288</entry> <entry>MPEG-2</entry> <entry>9800 kbps</entry> <entry>48000 Hz</entry> <entry>MP2,AC–3,PCM</entry> <entry>1536 kbps (max)</entry> <entry>25</entry> <entry>4:3, 16:9 (pouze pro 720x576)</entry> </row> <row> <entry>PAL DVD</entry> <entry>352x288<footnoteref linkend='fn-rare-resolutions'/></entry> <entry>MPEG-1</entry> <entry>1856 kbps</entry> <entry>48000 Hz</entry> <entry>MP2,AC–3,PCM</entry> <entry>1536 kbps (max)</entry> <entry>25</entry> <entry>4:3, 16:9</entry> </row> <row> <entry>PAL SVCD</entry> <entry>480x576</entry> <entry>MPEG-2</entry> <entry>2600 kbps</entry> <entry>44100 Hz</entry> <entry>MP2</entry> <entry>384 kbps (max)</entry> <entry>25</entry> <entry>4:3</entry> </row> <row> <entry>PAL VCD</entry> <entry>352x288</entry> <entry>MPEG-1</entry> <entry>1152 kbps</entry> <entry>44100 Hz</entry> <entry>MP2</entry> <entry>224 kbps</entry> <entry>25</entry> <entry>4:3</entry> </row> </tbody> </tgroup> </informaltable> <para> Pokud má vaše video poměr stran 2.35:1 (většina současných akčních filmů), budete muset přidat černé okraje, nebo ořezat video na 16:9, abyste mohli vytvořit DVD nebo VCD. Pokud přidáváte černé okraje, zkuste je napasovat do 16 pixelových okrajů, abyste minimalizovali vliv na výkon enkódování. Naštěstí má DVD dostatečně vysoký datový tok, takže se nemusíte příliš zabývat efektivitou enkódování, ale u SVCD a VCD je k dispozici jen malý datový tok, takže vyžaduje větší snahu pro dosažení přijatelné kvality. </para> </sect3> <sect3 id="menc-feat-vcd-dvd-constraints-gop"> <title>Omezení velikosti GOP</title> <para> DVD, VCD a SVCD vás rovněž omezují na relativně nízké GOP (skupina obrázků) velikosti. Pro materiál 30 snímků za sekundu je největší povolená GOP velikost 18. Pro 25 nebo 24 snímků/s je maximum 15. Velikost GOP je nastavena pomocí volby <option>keyint</option>. </para> </sect3> <sect3 id="menc-feat-vcd-dvd-constraints-bitrate"> <title>Omezení datového toku</title> <para> VCD video musí být CBR při 1152 kbps. Tento velmi omezující požadavek je zde spolu s velmi malou vbv vyrovnávací pamětí 327 kilobitů. SVCD umožňuje proměnné datové toky až do 2500 kbps a poněkud méně omezující velikost vbv bufferu 917 kilobitů. Datové toky pro DVD mohou být libovolné až do 9800 kbps (ačkoli typické datové toky jsou asi poloviční) a velikost vbv buferu je 1835 kilobitů. </para> </sect3> </sect2> <!-- ********** --> <sect2 id="menc-feat-vcd-dvd-output"> <title>Výstupní volby</title> <para> <application>MEncoder</application> má volby pro ovládání výstupního formátu. Pomocí těchto voleb jej můžete instruovat, aby použil správný typ souboru. </para> <para> Volby pro VCD a SVCD se nazývají xvcd a xsvcd, protože to jsou rozšířené formáty. Nejsou přesně kompatibilní hlavně proto, že výstup neobsahuje skenovací offsety. Pokud potřebujete generovat SVCD obraz, měli byste protáhnout výstupní soubor programem <ulink url="http://www.gnu.org/software/vcdimager/vcdimager.html">vcdimager</ulink>. </para> <para> VCD: <screen>-of mpeg -mpegopts format=xvcd</screen> </para> <para> SVCD: <screen>-of mpeg -mpegopts format=xsvcd</screen> </para> <para> DVD (s časovými značkami v každém snímku, je-li to možné): <screen>-of mpeg -mpegopts format=dvd:tsaf</screen> </para> <para> DVD s NTSC Pullup: <screen>-of mpeg -mpegopts format=dvd:tsaf:telecine -ofps 24000/1001</screen> Toto umožňuje enkódovat 24000/1001 fps progresivní materiál při 30000/1001 fps při zachování slučitelnosti s DVD. </para> <sect3 id="menc-feat-vcd-dvd-output-aspect"> <title>Poměr stran</title> <para> Argument aspect z <option>-lavcopts</option> se používá pro zakódování poměru stran souboru. Během přehrávání je pak tato hodnota použita pro obnovení videa na správnou velikost. </para> <para> 16:9 neboli "Widescreen" <screen>-lavcopts aspect=16/9</screen> </para> <para> 4:3 neboli "Fullscreen" <screen>-lavcopts aspect=4/3</screen> </para> <para> 2.35:1 neboli "Cinemascope" NTSC <screen>-vf scale=720:368,expand=720:480 -lavcopts aspect=16/9</screen> Pro výpočet správné velikosti pro škálování, použijte rozšířenou NTSC šířku 854/2.35 = 368 </para> <para> 2.35:1 neboli "Cinemascope" PAL <screen>-vf scale=720:432,expand=720:576 -lavcopts aspect=16/9</screen> Pro výpočet správné velikosti pro škálování, použijte rozšířenou PAL šířku 1024/2.35 = 432 </para> </sect3> <sect3 id="menc-feat-vcd-dvd-a-v-sync"> <title>Zachování A/V synchronizace</title> <para> Aby byla zachována synchronizace zvuku s videem během enkódování, musí <application>MEncoder</application> zahazovat nebo duplikovat snímky. To funguje celkem dobře při muxování do AVI souboru, ale téměř s jistotou neudrží A/V synchronizaci s jinými muxery jako MPEG. To je důvodem pro nutnost přidání video fitru <option>harddup</option> na konec řetězu filtrů, abychom se tomuto problému vyhnuli. Více technických informací o <option>harddup</option> naleznete v sekci <link linkend="menc-feat-dvd-mpeg4-muxing-filter-issues">Zlepšení muxování a A/V synchronizace</link>, nebo v man stránce. </para> </sect3> <sect3 id="menc-feat-vcd-dvd-output-srate"> <title>Převod vzorkovacího kmitočtu</title> <para> Pokud není vzorkovací kmitočet zvuku takový, jaký je vyžadován cílovým formátem, je nutný převod vzorkovacího kmitočtu. To zajišťuje použití volby <option>-srate</option> spolu se zvukovým filtrem <option>-af lavcresample</option>. </para> <para> DVD: <screen>-srate 48000 -af lavcresample=48000</screen> </para> <para> VCD a SVCD: <screen>-srate 44100 -af lavcresample=44100</screen> </para> </sect3> </sect2> <!-- ********** --> <sect2 id="menc-feat-vcd-dvd-lavc"> <title>Použití libavcodec pro enkódování VCD/SVCD/DVD</title> <sect3 id="menc-feat-vcd-dvd-lavc-intro"> <title>Úvodem</title> <para> <systemitem class="library">libavcodec</systemitem> můžete použít pro vytvoření videa kompatibilního s VCD/SVCD/DVD použitím příslušných voleb. </para> </sect3> <sect3 id="menc-feat-vcd-dvd-lavc-options"> <title>lavcopts</title> <para> Zde máte seznam polí v <option>-lavcopts</option>, která je nutné změnit, abyste dostali video vhodné pro VCD, SVCD, nebo DVD: </para> <itemizedlist> <listitem><para> <emphasis role="bold">acodec</emphasis>: <option>mp2</option> pro VCD, SVCD nebo PAL DVD; <option>ac3</option> je obecně používán pro DVD. PCM zvuk může být rovněž použitý pro DVD, ale většinou je to velké plýtvání místem. Poznamenejme, že MP3 není slučitelné s žádným z těchto formátů, ale přehrávače s jeho přehrátím obvykle nemají problém. </para></listitem> <listitem><para> <emphasis role="bold">abitrate</emphasis>: 224 pro VCD; do 384 pro SVCD; do 1536 pro DVD, ale obvykle se hodnoty pohybují od 192 kbps pro stereo do 384 kbps pro 5.1 kanálový zvuk. </para></listitem> <listitem><para> <emphasis role="bold">vcodec</emphasis>: <option>mpeg1video</option> pro VCD; <option>mpeg2video</option> pro SVCD; <option>mpeg2video</option> je obvykle použitý pro DVD, ale můžete použít také <option>mpeg1video</option> pro CIF rozlišení. </para></listitem> <listitem><para> <emphasis role="bold">keyint</emphasis>: Použitý pro nastavení velikosti GOP. 18 pro 30fps materiál, nebo 15 pro 25/24 fps materiál. Zdá se, že komerční producenti preferují interval mezi klíčovými snímky 12. Je možné použít vyšší hodnotu a stále být kompatibilní s většinou přehrávačů. <option>keyint</option> na 25 by neměla nikdy způsobit potíže. </para></listitem> <listitem><para> <emphasis role="bold">vrc_buf_size</emphasis>: 327 pro VCD, 917 pro SVCD a 1835 pro DVD. </para></listitem> <listitem><para> <emphasis role="bold">vrc_minrate</emphasis>: 1152, pro VCD. Může být vynecháno pro SVCD a DVD. </para></listitem> <listitem><para> <emphasis role="bold">vrc_maxrate</emphasis>: 1152 pro VCD; 2500 pro SVCD; 9800 pro DVD. Pro SVCD a DVD, můžete použít nižší hodnoty v závislosti na vašich osobních preferencích a potřebách. </para></listitem> <listitem><para> <emphasis role="bold">vbitrate</emphasis>: 1152 pro VCD; do 2500 pro SVCD; do 9800 pro DVD. Pro dva poslední formáty by mělo být vbitrate nastaveno podle vlastního uvážení. Například pokud trváte na umístění asi 20 hodin na DVD, mohli byste použít vbitrate=400. Výsledná kvalita bude nejspíš hrozná. Pokud se pokoušíte dosáhnout maximální možné kvality na DVD, použijte vbitrate=9800, ale pak se vám nevejde ani celá hodina záznamu na jednovrstvé DVD. </para></listitem> <listitem><para> <emphasis role="bold">vstrict</emphasis>: Pro vytváření DVD by mělo být použito <option>vstrict</option>=0. Bez této volby vytvoří <application>MEncoder</application> datový proud, který některé stolní přehrávače neumí správně dekódovat. </para></listitem> </itemizedlist> </sect3> <sect3 id="menc-feat-vcd-dvd-lavc-examples"> <title>Příklady</title> <para> Toto je typická minimální sada <option>-lavcopts</option> pro enkódování videa: </para> <para> VCD: <screen> -lavcopts vcodec=mpeg1video:vrc_buf_size=327:vrc_minrate=1152:\ vrc_maxrate=1152:vbitrate=1152:keyint=15:acodec=mp2 </screen> </para> <para> SVCD: <screen> -lavcopts vcodec=mpeg2video:vrc_buf_size=917:vrc_maxrate=2500:vbitrate=1800:\ keyint=15:acodec=mp2 </screen> </para> <para> DVD: <screen> -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=5000:\ keyint=15:vstrict=0:acodec=ac3 </screen> </para> </sect3> <sect3 id="menc-feat-vcd-dvd-lavc-advanced"> <title>Pokročilé volby</title> <para> Pro vyšší kvalitu enkódování můžete také přidat kvalitu zlepšující volby do lavcopts, jako je <option>trell</option>, <option>mbd=2</option> a další. Poznamenejme, že <option>qpel</option> a <option>v4mv</option>, které jsou často dobré pro MPEG-4, nejsou použitelné s MPEG-1 nebo MPEG-2. Pokud se snažíte vytvořit DVD s velmi vasokou kvalitou, může být vhodné přidat <option>dc=10</option> do lavcopts. Takto to můžete pomoci omezit oběvování bloků ve stálobarevných plochách. Podtrženo sečteno, zde máte příklad nastavení lavcopts pro DVD s vyšší kvalitou: </para> <para> <screen> -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=8000:\ keyint=15:trell:mbd=2:precmp=2:subcmp=2:cmp=2:dia=-10:predia=-10:cbp:mv0:\ vqmin=1:lmin=1:dc=10:vstrict=0 </screen> </para> </sect3> </sect2> <!-- ********** --> <sect2 id="menc-feat-vcd-dvd-audio"> <title>Enkódování zvuku</title> <para> VCD a SVCD podporují zvuk MPEG-1 layer II. Použít můžete <systemitem class="library">toolame</systemitem>, <systemitem class="library">twolame</systemitem>, nebo MP2 enkodér z <systemitem class="library">libavcodec</systemitem>u. MP2 libavcodecu je dalek toho, aby byl stejně dobrý jako druhé dvě knihovny, avšak měl by být vždy po ruce. VCD podporuje pouze zvuk s konstantním datovým tokem (CBR), zatímco SVCD podporuje také proměnný datový tok (VBR). Používejte VBR opatrně, jelikož některé mizerné stolní přehrávače jej nemusí dobře podporovat. </para> <para> Pro DVD zvuk se používá AC–3 kodek z <systemitem class="library">libavcodec</systemitem>. </para> <sect3 id="menc-feat-vcd-dvd-audio-toolame"> <title>toolame</title> <para> Pro VCD a SVCD: <screen>-oac toolame -toolameopts br=224</screen> </para> </sect3> <sect3 id="menc-feat-vcd-dvd-audio-twolame"> <title>twolame</title> <para> Pro VCD a SVCD: <screen>-oac twolame -twolameopts br=224</screen> </para> </sect3> <sect3 id="menc-feat-vcd-dvd-audio-lavc"> <title>libavcodec</title> <para> Pro DVD s 2 kanálovým zvukem: <screen>-oac lavc -lavcopts acodec=ac3:abitrate=192</screen> </para> <para> Pro DVD s 5.1 kanálovým zvukem: <screen>-channels 6 -oac lavc -lavcopts acodec=ac3:abitrate=384</screen> </para> <para> Pro VCD a SVCD: <screen>-oac lavc -lavcopts acodec=mp2:abitrate=224</screen> </para> </sect3> </sect2> <!-- ********** --> <sect2 id="menc-feat-vcd-dvd-all"> <title>Spojení všeho dohromady</title> <para> Tato sekce obsahuje kompletní příkazy pro vytvoření VCD/SVCD/DVD kompatibilních videí. </para> <sect3 id="menc-feat-vcd-dvd-all-pal-dvd"> <title>PAL DVD</title> <para> <screen> mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=dvd:tsaf \ -vf scale=720:576,harddup -srate 48000 -af lavcresample=48000 \ -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=5000:\ keyint=15:vstrict=0:acodec=ac3:abitrate=192:aspect=16/9 -ofps 25 \ -o <replaceable>film.mpg</replaceable> <replaceable>film.avi</replaceable> </screen> </para> </sect3> <sect3 id="menc-feat-vcd-dvd-all-ntsc-dvd"> <title>NTSC DVD</title> <para> <screen> mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=dvd:tsaf \ -vf scale=720:480,harddup -srate 48000 -af lavcresample=48000 \ -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=5000:\ keyint=18:vstrict=0:acodec=ac3:abitrate=192:aspect=16/9 -ofps 30000/1001 \ -o <replaceable>film.mpg</replaceable> <replaceable>film.avi</replaceable> </screen> </para> </sect3> <sect3 id="menc-feat-vcd-dvd-all-pal-ac3-copy"> <title>PAL AVI obsahující AC–3 zvuk do DVD</title> <para> Pokud již má zdroj AC–3 zvuk, použijte -oac copy místo reenkódování. <screen> mencoder -oac copy -ovc lavc -of mpeg -mpegopts format=dvd:tsaf \ -vf scale=720:576,harddup -ofps 25 \ -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=5000:\ keyint=15:vstrict=0:aspect=16/9 -o <replaceable>film.mpg</replaceable> <replaceable>film.avi</replaceable> </screen> </para> </sect3> <sect3 id="menc-feat-vcd-dvd-all-ntsc-ac3-copy"> <title>NTSC AVI obsahující AC–3 zvuk do DVD</title> <para> Pokud již má zdroj AC–3 zvuk a video je NTSC @ 24000/1001 fps: <screen> mencoder -oac copy -ovc lavc -of mpeg -mpegopts format=dvd:tsaf:telecine \ -vf scale=720:480,harddup -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:\ vrc_maxrate=9800:vbitrate=5000:keyint=15:vstrict=0:aspect=16/9 -ofps 24000/1001 \ -o <replaceable>film.mpg</replaceable> <replaceable>film.avi</replaceable> </screen> </para> </sect3> <sect3 id="menc-feat-vcd-dvd-all-pal-svcd"> <title>PAL SVCD</title> <para> <screen> mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=xsvcd -vf \ scale=480:576,harddup -srate 44100 -af lavcresample=44100 -lavcopts \ vcodec=mpeg2video:mbd=2:keyint=15:vrc_buf_size=917:vrc_minrate=600:\ vbitrate=2500:vrc_maxrate=2500:acodec=mp2:abitrate=224 -ofps 25 \ -o <replaceable>film.mpg</replaceable> <replaceable>film.avi</replaceable> </screen> </para> </sect3> <sect3 id="menc-feat-vcd-dvd-all-ntsc-svcd"> <title>NTSC SVCD</title> <para> <screen> mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=xsvcd -vf \ scale=480:480,harddup -srate 44100 -af lavcresample=44100 -lavcopts \ vcodec=mpeg2video:mbd=2:keyint=18:vrc_buf_size=917:vrc_minrate=600:\ vbitrate=2500:vrc_maxrate=2500:acodec=mp2:abitrate=224 -ofps 30000/1001 \ -o <replaceable>film.mpg</replaceable> <replaceable>film.avi</replaceable> </screen> </para> </sect3> <sect3 id="menc-feat-vcd-dvd-all-pal-vcd"> <title>PAL VCD</title> <para> <screen> mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=xvcd -vf \ scale=352:288,harddup -srate 44100 -af lavcresample=44100 -lavcopts \ vcodec=mpeg1video:keyint=15:vrc_buf_size=327:vrc_minrate=1152:\ vbitrate=1152:vrc_maxrate=1152:acodec=mp2:abitrate=224 -ofps 25 \ -o <replaceable>film.mpg</replaceable> <replaceable>film.avi</replaceable> </screen> </para> </sect3> <sect3 id="menc-feat-vcd-dvd-all-ntsc-vcd"> <title>NTSC VCD</title> <para> <screen> mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=xvcd -vf \ scale=352:240,harddup -srate 44100 -af lavcresample=44100 -lavcopts \ vcodec=mpeg1video:keyint=18:vrc_buf_size=327:vrc_minrate=1152:\ vbitrate=1152:vrc_maxrate=1152:acodec=mp2:abitrate=224 -ofps 30000/1001 \ -o <replaceable>film.mpg</replaceable> <replaceable>film.avi</replaceable> </screen> </para> </sect3> </sect2> </sect1> </chapter>