MS home page VirtualDub - DivX 4.xx >
.

VirtualDub - DivX 4.xx

Software: VirtualDub

Úvodem

Metoda převodu pomocí programu VirtualDub patří mezi nejjednodušší nástroje převodu DVD do DivX. Tento postup je určený spíše pro začátečníky. Pro pokročilejší a zdatnější znalce existují lepší metody převodu (GordianKnot). Ale i s tímto návodem dosáhnete kvalitního výsledku, se kterým můžete být spokojeni. Nevýhodou může být, že další programy, potřebné ke kompletnímu převodu (zvuk, titulky), se spouští samostatně. Nejsou integrované do jednoho balíku.

Převod se skládá ze sedmi kroku:

  1. Instalace a základní nastavení
  2. Ripnutí DVD na HDD
  3. Vytvoření pseudo AVI souboru
  4. Nastavení VirtualDubu a vlastní převod
    1. Velikost a ořezání obrazu (Resolution, Cropping)
    2. Vlastní nastavení a převod
  5. Zpracování audia
  6. Spojení videa s audiem
  7. Rozdělení souboru (volitelně)
  8. Titulky

Krok0: Instalace a základní nastavení

Programy bez kterých se neobejdete při práci podle tohoto postupu:

Dříve než se pustíme do vlastního převodu, musíme provést před prvním použitím určitých programů jejich nastavení. Toto nastavení je vždycky popisováno v doprovodných souborech typu readme.txt přibalených k programu. Zkušenost ale ukazuje, že právě tyto soubory skoro nikdo nečte i když to jsou jedny z nejdůležitějších souborů, které popisují důležité nastavení programů a mají zásadní vliv na běh programu. Pozorně si tedy přečtěte instalační instrukce.

Nejdůležitější je nastavit VFAPI Convertor. Po rozbalení souboru VFAPIConv-1.04-EN.exe naleznete dva podadresáře: Codec a Reader. Adresář Reader obsahuje soubor VFAPIConv-EN.exe, který musíte spustit v případě použití VFAPI Converteru. Adresář Codec obsahuje instalační soubory. K nastavení programu dvakrát klikněte na soubor vfipset.bat a odpovězte yes na danou otázku.

Ještě malá poznámka. Ve VirtualDubu můžeme najít v seznamu compresních kodeků kodek VFAPI. Nemůžeme ho ale použít. Jednou nainstalovaný kodek umožňuje načíst soubory projektů z programů DVD2AVI, AviUtl, TMPG do VFAPI Convertoru a konvertovat je do tzv. pseudo avi souborů. Tyto soubory lze poté načíst libovolným programem, který rozumí avi.

Krok1: Ripnutí DVD na HDD

Pro ripnutí DVD dat na váš pevný disk použijeme program Smartripper ve verzi 2.4.1. Ten má oproti svým předchůdcům i integrované automatické vytvoření d2v souboru, který dále budeme potřebovat. Smartripper taktéž dokáže vytáhnout zvukovou stopu ve formátu ac3, kterou taktéž budeme potřebovat pro další zpracování. Jako alternativu můžeme použít program DVD Decrypter, který dokáže obdobné věci.

Krok2: Vytvoření pseudo AVI souboru

Dalším krokem je vytvoření DVD2AVI projektu. Tento krok můžeme vynechat, pokud máme vytvořený DVD2AVI projekt z programu SmartRipper 2.41. Je možné, že vytvoření DVD2AVI projektu ve verzi 2.41 může způsobovat problémy se synchronizací zvuku (Nemám zatím špatné zkušenosti). Popíšeme si tedy tvorbu projektu v programu DVD2AVI.

Prostřednictvím VFAPI Convertoru můžeme trasformovat vzniklý Projekt d2v, který nám vytvořil program Smartripper nebo program DVD2AVI.

Toto je malý prográmek od autorů TMPEG-Encoderu a umožňuje vytvoření tzv. pseudo avi souborů z projektů programů DVD2AVI, AviUtl.

Krátké vysvětlení jak to funguje: VFAPI se chová jako normální kompresní video kodek, ale on není vlastně kodek. Je to spíše takový balič. VFAPI dostává nekoprimovaná RGB data ze serverové aplikace (DVD2AVI, AviUtl, TMPG) a zabaluje je do AVI souboru. Tento soubor poté můžeme načíst v libovolném programu, který podporuje AVI.

V krátkosti objasním, co se děje s pseudo AVI souborem dále. Překonvertovaný projekt d2v, nahraný do programu podporující avi formát, se chová jako normální AVI soubor. Nyní řekněme, že program chce číst snímek 1000. Co se stane? VFAPI řekne Pluginu (d2vavi.vfp), že je potřeba snímek 1000. DVD2AVI dekóduje snímek 1000 z vob souboru a ten je přenesen prostřednictvím VFAPI Pluginu v nekomprimovaném formátu do VFAPI. VFAPI tento snímek zabali do avi formátu.

Před započetím konverze je nutno si přečíst soubor readme a provést nastavení VFAPI.

Spustíme nyní VFAPI Reader Codec (VFAPIConv-EN.exe).

Stiskneme tlačítko Add job a vybereme soubor d2v.

Po otevření d2v souboru se otevře okno. Jelikož zpracování zvuku děláme odděleně od zpracování videa, máme ve volbě Options: přístupné pouze položky Video Output a Video Output by VFAPI Reader Codec.

Po výběru místa uložení pseudo AVI souboru a klikneme na tlačítko OK. Po chvilce máme vytvořený pseudo AVI soubor, který můžeme načíst v libovolném encodovacím programu.

Ještě než se souborem začnete pracovat, je dobré se přesvědčit, že soubor je v pořádku. Otevřeme pseudo AVI soubor ve Windows Media Playeru. Spustíme přehrávání. Pokud se nám začne film přehrávat. Přehrávání bude trhané, ale nemusíte se strachovat a můžete pokračovat dále.

Krok3: Nastavení VirtualDubu a vlastní převod

Nyní jsme připraveni na nejtěžší část návodu. Ze všeho nejdříve spustíme program Virtualdub, poté musíme správně nastavit rozlišení (použití resize filtru) a ořezat video (nastavit tzv. cropping). Taktéž musíme nastavit samotný program VirtualDub, aby nám poskytl video v nejlepší kvalitě, jaké dokáže. Dúležité je správně nastavit tyto filtry.

Popis nastavení kodeku vysvětluje všechny jeho parametry. Převod používá dvouprůchodové metody s proměnlivým tokem (2pass VBR). Je nutné pouze nastavit příslušný bitrate.

3a) Velikost a ořezání obrazu (Resolution, Cropping)

Nejdříve si otevřete svůj avi soubor, který chcete zpracovávat. Můžeme to udělat prostřednictvím klávesové zkratky Ctrl+O. Poté otevřeme dialogové okno, které umožňuje přidávání a nastavování filtrů (Stiskneme Ctrl+F).

Stiskneme tlačítko Add a vybereme filtr resize a stiskneme OK.

 

Nastavíme požadované rozlišení a zvolíme filtr Precise bilinear. Proč právě ten a ne bicubic? Když usilujete o opravdový, vysoce kvalitní formát, jako Huffyuv, určitě by jste měli použít filtr Precise Bicubic, ale v případě DivX filtr Precise Bilinear provede zjemnění a dosáhneme nepatrně menšího souboru. Taktéž je o něco rychlejší při zpracování. Neaktivujte volbu Interlaced, ledaže máte Interlaced zdroj. Poté by jste měli použít filtr Deinterlaced.

V posledních verzích programu VirtualDub se začal objevovat filtr Lanzos. Je na vás který použijete. Musíte si vyzkoušet, který vám bude poskytovat nejlepší kvalitu.

Doporučení pro rozlišení a bitrate

Ještě než začneme s nastavováním velikosti obrazu a bitrate, povíme si jaké doporučení by jste měli zachovávat.

Každy chce dosáhnout filmu dokonalé kvality. Délka filmu závisí na zvoleném rozlišení a na použitém bitrate. Hodně záleží i na žánru filmu. Když bude film hodně akční, dostaneme při určité nastavení větší soubor, než bychom dostali při filmu, kde jsou pomalé scény. Taktéž filmy, které jsou "tmavší" se komprimují lépe. Mnohdy tedy stojíme před otazkou, jaký bitrate je nejlepší? Vězde, že kvality DVD nikdy nedosáhnete. DVD je prostě DVD. Vždycky se budeme pouze snažit, aby to vypadalo co nejlépe. Zvolený bitrate a rozlišení závisí na aktuálním filmu. Proto neexistuje pevně stanovený popis, jaký bitrate a rozlišení se mají použít. Aby jste se nemuseli strachovat o to, jak veliký soubor vám z toho vyleze, existují různé pomocné programy, které to spočítají za vás. Současné nástroje na převod obsahují v sobě zabudované tyto kalkulátory, které vám usnadní práci. Následující řádky vám pouze pomohou v rozhodování, jaké rozlišení můžete použít.

Pamatujte si, že DivX pracuje v režimu VBR (proměnlivý bitrate), takže pevně stanovená velikost souboru může být ve výsledku odlišná. Zvláště FlaskMpeg má ve zvyku vytvářet větší soubory, než očekáváme. Proto nastavujme o něco nižší bitrate než vypočtený. Ono nejhorší je, když výsledný nám soubor přesáhne kapacitu CD. Výsledné video by mělo mít rychlost dat okolo 80-150kb/s (Zjistíme to v informacích o souboru). Samozřejmě, že existují případy, kdy je rychlost dat vyšší. Bývá to zpravidla, když nastavíme větší bitrate. čím je bitrate větší, tím by mělo být video kvalitnější, ale náročnější na hardware a hlavně soubor bude větší.

Další otázkou je klíčování snímků (Keyframes). Pokud kódujete ve vysokém bitratu (pro 2CD a více), můžete klidně nastavit keyframes na každou sekundu. Budete mít menší problémy se "zamrznutými" snímky a s rychlým posuvem dopředu. Nicméně. pokud kódujete v nižším bitrate (na 1CD), měli by jste používat větší interval pro keyframy (okolo 5-10 sekund), jinak dostanete nižší kvalitu videa.

Měli by jste taktéž zvážit, že výsledná hodnota souboru taktéž závisí na zvoleném rozlišení. DivX pracuje lépe s filmy s nižším rozlišení. Taktéž je dobré se zbavit černých okrajů (nahoře a dole). Jaké rozlišení lze tedy doporučit?

Pro filmy v níže uvedených formátech je doporučeno používat následující rozlišení:

1:2.35: 720x304, 640x272, 576x240, 512x224, 480x208, 400x176
1:1.85: 720x384, 640x352, 576x304, 512x272, 480x256, 400x224
1:1.33: 720x544, 640x480, 576x432, 512x384, 480x368, 400x304

Všechna rozlišení jsou dělitelná 16. Proč dělitelná právě 16? Některé programy pracují korektně pouze s rozlišením, které je dělitelné 16.

 

Poté stiskneme tlačítko OK. Ještě musíme ořezat obraz (nastavit tzv. Cropping). Stiskneme tlačítko Cropping.

Zvyšujeme hodnoty Y1 offset a Y2 offset až se zbavíme úplně černých pruhů.

Nakonec stačí vše potvrdit stiskem tlačítka OK. Filtry tedy máme nastavené, takže je můžeme opustit. Pozor VirtualDub nezavíráme.

3b) Vlastní nastavení a převod

Máme spuštěný program VirtualDub, máme nastavené filtry a velikost obrazu. Nyní nám stačí správně nakonfigurovat kodek. V menu vybereme Video => Compression ... .

Vybereme kodek se jménem DivX Codec 4.12 a stiskneme tlačítko Configure.

Nyní si podrobněji popíšeme všechny nastavení, které kodek umožňuje. Doporučuji ponechat nastavení, jaké je vyobrazeno na obrázku (samozřejmě až na bitrate). Následující popis políček popisuje jejich význam.

Začneme nastavením General parameters:

Zde máme na výběr tři druhy kódovacích metod. Výběr se provádí v položce Variable bitrate mode:

Performance/quality - určuje kolik času zpotřebuje kodek na kódování každého snímku. Při nastavení na Slower kodek pracuje v nejlepší kvalitě. Je doporučeno v rámci zachování výsledné kvality ponechat zde hodnotu na slower. Pokud chcete použít kodek pro real-time zachytávání, měli by jste nastavit hodnotu na fastest. Tento parametr určuje přesnost hledání pohybových scén. Pokud nastavíte hodnotu na fastest, vypnete možnost hledání pohybu. Vyšší rychlost při nižší kvalitě (při tom samém bitratu). Nastavení fastest rovněž vypne scene change detection.

Output Video Bitrstream - stejně jako u starého kodeku se i zde zadává hodnota bitrate. Hodnotu můžete nastavit ručně, napsáním hodnoty, nebo nastavením posuvníku. Je důležité si vypočítat správný bitrate. Na to je vhodný nějaký DivX4 Bitrate Calculator. Já osbně používám ten, který je v packu GordianGnot. Zde si načtu d2v projekt, zadám velikost videa a možnosti audia a výsledný bitrate mám spočítaný.

Maximum keyframe interval - DivX 4.x kodek je kodek s VKI (Variable Keyframe Interval). To znamená, že umožňuje automaticky nastavovat klíčové snímky (keyframes) tam, kde je potřeba podle náročnosti scén. Za účelem lepší funkce zrychleného posunování videa dopředu a dozadu, můžete tuto hodnotu manuálně upravit . Základní nastavení je 300 snímků.

Max CPU Usage - Omezení maximálního využití procesoru při kódování. V praxi nemá moc význam.

Deinterlace - smysl deinterlace videa je pouze při prokládaném (Interlaced) videu. Je lepší ale používat filtr, který je součástí VirtualDubu. Poskytuje lepších výsledků.

Dalším nastavením je Decodings parameters:

Default postprocessing level - Přednastavená úroveň zpracování obrazu pro dekodér. Na rozdíl od DivX 3.x kodek DivX 4.X nabízí schopnost nastavení standardní urovně filtu při přehrávání. Toto nám usnadní práci. Již nebudeme muset při každém přehrávání ručně nastavovat úroveň. Vyšší hodnota = lepší obraz, větší náročnost na procesor. Tato položka ovlivní jen přehrávání, samotné kódování ne. Doporučené nastavení je mezi 2-4, záleží na vás.

Nyní k dalšímu nastavení hodnot a jejich vliv napřevod videa.

Quantizers - má největší vliv na velikost výsledného souboru, zvláště při metody 1-pass. Pokud jste znalí Nandubu, tak tam je použit název DRF. V podstatě je to stejné.
Maximum quantizer - maximální úroveň komprese. Vyšší číslo znamená větší kompresi snímků. Výsledkem je menší velikost souboryu, ale s horší kvalitou obrazu. Při metodě 1-pass by jste měli jít rozhodně níže, než je základní hodnota 12. Musíte si ale dávat pozor na možnost vzniku většího souboru.
Minimum quantizer - minimální úroveň komprese kterou můžeme dostat. Nižší čísla dávají lepší kvalitu, ale zvětšují pravděpodobnost vzniku velkého souboru. Pro rip na 1CD za použití metody 1-pass, nastavte hodnotu na 4. Pokud vidíte bloky v preview okně, tutuo hodnotu ještě zvažte.

Pokud nastavíte min quantizer = max quantizer, všechny ostatní parametry budou nepodstatné. Pokud nastavíte min quantizer > max quantizer, každý snímek bude kódován hodnotou maximálního quntizeru. Umění nastavit správné hodnoty si vyžádá určitou praxi.

Další nastavení ovládá rozpoznání a zpracování pohybu ve scénách.

Rate control averaging period - Určuje, jak rychle je zapomínána minulost pohybu. Větší hodnota produkuje lepší výsledky u rychlých scén, ale neměla by být o moc vetší vzhledem k délce sekvence. Znamená na kolik snímků (frames) se bude kodek dívat pro stanovení bitrate. Pokud předchozí snímek byl použit velká hodnota bitrate, kodek musí odhadnout bitrate pro následující snímky , aby se držel stanoveného datového toku (bitrate). Základní hodnota 2000 se zdá být rozumnou hodnotou, ale můžete experimentovat s nastavením vyšších hodnot a možná dosáhnete lepších výsledků. Nastavením vysokých hodnot ztrácí kodér schopnost přizpůsobit se ke změnám scén low/fast a tím nemožností dodržet stanovenou velikost souboru.

Rate control reaction period - Určuje, jak rychle se kodek adaptuje posledním scénám. Vyšší hodnota obvykle zlepšuje rychlé scény, zhoršuje pomalejší. Hodnotu necháme na 10.

Rate control up/down reaction - Určuje citlivost v reakci na rychlé či pomalé pohyby (jako Nandub). Vyšší hodnota obvykle zlepší rychlé scény, ale vezme si větší datový tok. Pokud nastavíte příliš malou hodnotu, kodek bude konstantně používat příliš mnoho bitů, protože si myslí, že scéna je náročná. To může vést k nadměrné velikosti souboru. Zde je doporučeno zachovat standardní nastavení. Vyšší hodnoty zpomalují rychlost převodu.

To by bylo vše co se nachází v 1-pass encoding parameters. Nastavení těchto parametrů nemá při 2-pass vliv, proto je ponecháme tak, jak jsou.

Pokud používáte metodu 1-pass quality based, nastavíme pouze parametr na posuvníku. Encoding quality 85% nám dá asi bitrate o velikosti 800 kbit/s. Pro vyšší hodnoty rychle roste velikost výsledného souboru, proto opatrně s posuvníkem!

Pokud používáte metodu 2-pass, existuje ještě další parametr, který můžete využít. Jmenuje se Frame dropping. Pokud ho aktivujete, kodek vypustí snímky, o kterých si myslí, že nejsou potřebné. Nepoužívejte tuto možnost. Vede k synchronizačním problémům.

Log soubor si popíšeme zvlášť. Pomocí tlačítka Select vybereme log soubor, který vznikne při prvním průchodu (1-pass). Nastavení Performance/quality by mělo být stejné. Soubory, které vám vzniknou po druhém průchodu by měli odpovídat velikosti, kterou jste vypočítali v nějakém bitrate kalkulátoru.

Nyní ještě jednou ve stručnosti:
Věřím, že nyní budete používat pouze metodu dvouprůchodového převodu (2-pass). Nakonfigurujeme kodek pro 2-pass, first pass. Potom stiskneme tlačítko OK. Opět stiskneme tlačítko OK a tím se nám zavře okno s výběrem kodeků. Nyní stiskneme tlačítko F7, napíšeme jméno souboru a ještě než stiskneme tlačítko Uložit, zaškrtneme políčko Add operation to job list and defer processing.

Zaškrtnutím tlačítka zabráníme okamžitému spuštění procesu a zařadíme jej do takové fronty. Nyní se vrátíme zpět na nastavení kodeku. Neměníme žádné hodnoty, pouze vybereme metodu 2-pass, second pass. Opět dvakrát stiskneme tlačítko OK. Znovu stiskneme tlačítko F7 pro vyvolání uložení souboru. Opět zaškrtneme volbu Add to Job list a stiskneme tlačítko Uložit.

Nyní nám stačí spustit to co máme uložené v job listu. Stiskneme tlačítko F4 pro jeho vyvolání.

Nyní nám jen stačí stisknout tlačítko Start a vyčkat na výsledek.

Nakonec ještě pár technických informací o mechanismu 2-pass:

Během prvního průchodu je film kódován běžnou 1-pass metodou a následující informace jsou zapisovány do log souboru: jestliže je snímek klíčový nebo se jedná o delta snímek, jaký quantizer byl použit, kolik bitů bylo použito pro kódování textury, kolik vektorů pohybu a kolik bytes je použito celkově.

Př.: Frame 2222: intra 0, quant 4, texture 29746, motion 1863, total 37216, complexity 371825

Při startu druhého průchodu se vytvoří soubor analyse.log, kde je v prvním řádku napsáno:

Total frames: 243645 Non-zero decisions: 243645 Avg quantizer: 3.148000

První číslo znamená, kolik snímků má film, druhá hodnota udává kolik snímků je non-dropped (mělo by být stejné), třetí číslo znamená průměrný použitý quantizer. Z vlastní zkušenosti jsem vysledoval, že průměrný quantizer by se měl pohybovat max do hodnoty 4. Čím lepší, tím je kvalita videa lepší.

Další řádky vypadají následovně.

Frame 59: PRESENT, complexity 115504, quant multiplier 0.701041, texture 2166, total 6688
Progress: expected 1877960, achieved 257953, dq 0.600000, new quant 2

První číslo znamená číslo snímku, druhé znamená jestli byl snímek kódován (Present) nebo vypuštěn (Dropped), třetí hodnota označuje změnu z jednoho snímku k dalšímu (pokud jsou dva stejné snímky, hodnota je rovna 0, pokud se jedná o akční scénu, hodnota je vysoká). Čtvrtý parametr závisí na složitosti (nižší složitost=nižší násobitel), potom počet použitých bitů pro texturu a pro celý snímek. V druhém řádku jsou odkazy na další snímek. expected a archived ukazují jak dobře kodek pracuje doposud s bitrate. Ideálně se obě čísla sobě blíží. dq je další násobitel quantizeru pro ovládání rychlosti. No a poslední číslo udává quantizer pro další snímek.

Krok 4: Zpracování audia

Zpracování audia provedeme externě, tj. mimo zpracování videa. Jednotlivé převody časově na sobě nezáleží. Jakou volbu použijeme se dozvíté na stránce věnované zpracování audia.

Krok 5: Spojení videa s audiem

Pro spojení videa s audiem použijeme program Nandub, který nám umožní spojit audio stopy v různých formátec (MP3, AC3, ...). Tato práce nezabere moc času. Je to otázka několika minut.

Krok 6: Rozdělení souboru (volitelně)

Pokud máme soubor větší než je velikost 1CD, můžeme ho rozdělit na více CD. Pro rozdělení použijeme možnosti programu Nandub.

Krok 7: Titulky

Titulky budeme zpracovávat do externího souboru. Použijeme k tomu program SubRip. Má to tu výhodu, že v případě více jazykových verzí titulků si můžeme v přehrávači vybrat příslušný jazyk. Jak to provedeme se dozvíme na stránkách věnované zpracování tituků.

Závěr

Převod videa touto metodou není složitý. Dá se prakticky aplikovat na všechny druhy kodeku (DivX3.xx, DivX 5.xx, XViD apod.). Mechanismus je obdobný. Pouze vybereme jiný kodek pro zpracování videa.

[Zdroj: Doom9, vlastní poznatky a zkušenosti]


hr
hr
hr

Domovská stránka   Nahoru

hr

Poslední změna: 26.11.2010

© Martin Šour 2004  W3C  HTML 4.01   W3C  CSS 2.1