Recenze  |  Aktuality  |  Články
Doporučení  |  Diskuze
Filmy a seriály, streamovací služby
Televize  |  Projektory
Audio a domácí kina
Multimediální centra  |  Ostatní
Svět hardware  |  Digimanie
Svět mobilně

VirtualDub 1.4.10

31.10.2002, Radek Jahoda, návod
Každý člověk, kdo alespoň trochu přičichl ke zpracování videa na počítači, určitě zná tento prográmek. Jde o nedílnou součást software každého "grabaře" a pokud právě se zpracováním videa začínáte, nesmíte ho opominout.
1. Úvod

Je ovšem nutné říci, že se nejedná o pravý video editor, sám autor ho nazývá video capture/processing utility, tedy jen jakousi utilitu pro zachytávání a zpracování videa. Pokud chcete stříhat domácí video, opatřit ho titulky a komentářem, toto není nástroj pro Vás. Jestliže ale pouze chcete z nahrávky vystřihat některé části (reklamy apod.), odstranit šum a převést do kompaktnějšího formátu (DivX), není lepší nástroj.

Protože VirtulDub je vyvíjen pod licencí GNU General Public License (GPL), je možné stáhnout i zdrojový kód, díky čemuž vzniklo i několik klonů, např.:

    • NanDub - určen pro enkódování do DivX 3 s variabilním datovým tokem (VBR), což tato verze kodeku neumožňovala, dále dokáže pracovat s MP3 VBR zvukem a multiplexovat až dva AC3 streamy do AVI souboru
    • VirtualDub 1.4ASF - verze VirtualDubu 1.4, která dokáže otevřít sobory ASF s kodeky MS-MPEG4, toto umožňoval VirtulDub 1.3, ale na nátlak Microsoftu bylo ve verzi 1.4 odstraněno, tuto podporu přidal nějaký "šikula" nezávisle na autorovi
    • VirtualDub AC3 - upravená verze, která umožňuje multiplexovat do AVI i AC3 5.1 zvuk z DVD, tuším ale, že to dokáže i NanDub, což si ale teď přesně nevybavuji
    • VirtualDub MPG2 - upravená verze s podporou importu videa MPEG-2 a zvuku MP3, AC3 a Ogg
Je jich ještě více, tyto jsou ale nejpoužívanější. Jednotlivé verze "běhají" někde po internetu. Teď ale k samotnému programu.

2. Práce s programem

Podívejme se nejprve na ovládání programu, prostředí a styl práce.




Začínáme vždy (kromě zachytávání, o tom ale později) načtením video souboru pomocí File/Open video file. VirtualDub podporuje pouze AVI a MPEG-1 soubory (a sekvenci BMP). U AVI musí být v systému nainstalovány použité video (VCM - video compression manager) i audio (ACM - audio compression manager) kodeky, s DirectShow kodeky nepracuje. Nejde tedy otevřít DV AVI soubory typu 1, pouze typu 2 a musí být nainstalován VCM DV kodek (např. od MainConceptu). V systému Windows je normálně nainstalován pouze DirectShow DV kodek Microsoftu, který nelze použít. Otevírání MPEG-2 souborů není podporováno.

Na konec otevřeného AVI souboru je možné připojit další soubor pomocí File/Append AVI segment, ten ale musí být přesně stejného typu jako již otevřený. Tím přesně se myslí stejná velikost obrazu, framerate, barevná hloubka, použitý videokodek i parametry zvuku (např. 640x480, 25fps, 24bit, DivX5, ...). Pokud je jen jeden parametr rozdílný, soubor nelze připojit, pak je potřeba změnit nejprve jeho parametry.

Uprostřed dvě velká okna zobrazují vstupní a výstupní obraz, přičemž je lze přehodit (Options/Swap input/output panels). Ke stříhání slouží spodní lišta s tlačítky a posuvníkem. Myslím, že jejich funkce je jasná. Tlačítko Play s písmenem I (input) spustí přehrávání otevřeného videa, to s písmenem O (output) spustí i processing a přehrává výstupní formát. Dvě tlačítka se žlutým klíčem slouží k přesouvání po klíčových snímcích, další dvě tlačítka se zeleno/červeným polem spustí přehrávání až do místa detekce další scény (citlivost lze nastavit v Options/Preferences/Scene). Dvě poslední tlačítka se používají k označení bloku, který lze pak pomocí klávesy Del vymazat. Tato operace je nedestruktivní, tedy nezasahuje se do původního souboru, pouze se označené snímky při zpracování přeskočí. Úplně vpravo je možné přečíst číslo framu a jeho čas, pokud je na konci [K], jde o klíčový snímek.

Po všech úpravách (o processingu si řekneme v dalčí části) se výsledek vyrenderuje až po uložení pomocí File/Save as AVI. Teprve tehdy se začnou projevovat všechny provedené změny, objeví se okno VirtualDub Status, kde lze sledovat průběh zpracování včetně předpokládané doby práce a velikosti AVI souboru. VirtualDub neumí ukládat do jiného souboru než AVI (a sekvence BMP), nelze tedy vytvářet MPEG soubory. Z AVI souboru lze "vytáhnout" a uložit pouze zvuk díky funkci File/Save WAV.

3. Video processing

Asi nejužitečnější vlastností je úprava, filtrování a převod videa do jiných AVI kodeků. Žádný jiný nástroj nedosahuje takových vlastností a možností jako VirtualDub, je ale nutné se je naučit využívat. Existují čtyři možnosti zpracování videa, které se volí v menu Video (volíme nejčastěji hned jako první po načtení souboru):

    • Direct stream copy - neprobíhá žádné filtrování ani komprese, snímky jsou zkopírované tak jak jsou, což je velice rychlé - omezeno pouze rychlostí pevného disku, střihání ale musí VŽDY začínat na klíčovém snímku, při processingu není vidět náhled. Používá se, pokud nechceme měnit formát videa, ale pouze spojit nebo rozstříhat soubory, odstranit reklamy apod.
    • Fast repack - tento mód převádí video z jednoho kodeku do jiného přímo za použití nejvhodnějšího formátu (pokud možno YUV, což je velice rychlé). Nelze použít filtry, není vidět náhled při processingu a ne vždy může fungovat, pokud si vstupní a výstupní kodeky nerozumí.
    • Slow repack - Podobné jako Fast repack, vždy se ale použije RGB mód, s kterým pracuje většina koddeků, může být rychlé ale nemusí, většinou pomalejší než fast repack
    • Full processing - v tomto módu se pracuje v RGB32 formátu a aplikují se filtry. Je nejpomalejší, většinou ale nejkopmatibilnější s kodeky
Pro zvolení módu zpracování si vybereme video filtry pomocí Video/Filters. Zobrazí se nové okno s aplikovanými filtry (tedď bude prázdé), tlačítkem Add přidáváme a Delete ubíráme filtry, které se použijí při processingu. Celé zpracování probíhá odshora dolů, takže jako první filtr se použije ten první v seznamu atd. DO programu je možné doplnit i externí filtry, které lze stáhnout na internetu. Důležitou vlastností je Cropping, který se aplikuje na každý filtr. Touto funkcí se ořezávají okraje obrazu a provádí se PŘED aplikací filtru, ke kterému je oříznutí přiřazeno. Parametry filtru lze měnit tlačítkem Configure (Pokud filtr nějaké nastavení potřebuje). Nejčastěji se používají tyto filtry:
    • null transform - tento filtr nedělá nic, lze ho ale použít, pokud nepotřebujeme žádný jiný filtr a chceme oříznout obraz pomocí funkce Cropping.
    • resize - pro změnu velikosti obrazu, lze použít algoritmy nearest neighbor (vezme se nejbižší pixel, rychlé, ale málo kvalitní, použitelné jen pro zmenšení decimací do násobku velikosti), bilinear (aproximace přímkou, vhodné pro zmešnování) a bicubic (aproximace parabolou)
    • deinterlace - pro odstranění prokládání (interlace)
    • flip horizontally - převrátí obraz horizontálně
    • flip vertically - převrátí obraz vertikálně
    • fill - vyplní okraje obrazu zadanou barvou
    • blur - rozmazání obrazu, lze použít pro částečnou redukci šumu při následném resize na polovinu
    • motion blur - rozmaže pohybující se části obrazu
    • sharpen - pro zvětšení ostrosti obrazu, ale zvýrazní i šum
    • brigtness/contrast - pro změnu jasu a kontrastu
    • smoother - jako blur, ale nesníží ostrost hrany objektů v obraze, vhodné pro redukci šumu
    • temporal smoother - provádí blur v časové rovině, vhodné pro odstranění šumu
Pomocí Video/Color depth lze změnit formát, do jakého bude převeden obraz z/do kodeku. Vhodné nechat na 24 bit, což podporuje většina kodeků. Výběrem Vide/Compression zvolíme výstupní kompresi, vpravo jsou zobrazeny informace, kde může být napsáno, že kodek nelze použít pro daný výstupní formát a zvolený mód.

Ve Video/Framerate lze změnit framerate (počet snímků za vteřinu) videa na novou hodnotu. Source rate adjustment zmení pouze hodnotu, kterou bude udávat hlavička souboru, ale nemění počet snímků. Touto metodou lze opravit/zkazit synchronizaci zvuku s videem. Frame rate decimation změní počet snímků za vteřinu, dojde ale k přepočítání tak, aby se nezměnila synchronizace videa se zvukem. Např. decimace dvěmi vezme každý druhý snímek, třemi každý třetí atd. Inverse telecine je určeno pro rekonstrukci filmového materiálu, převedeného do NTSC, zpět na 24fps, nepoužívá se pro PAL.

4. Audio processing

Podobně jako s videem se pracuje i se zvukem, jen s několika omezeními. Nelze zpracovávat samostatně zvuk bez videa (na to jsou ostatně jiné programy), nelze ho filtrovat a existují jen dva módy zpracování:

    • Full processing mode - v tomto módu lze zvuk zpracovávat, viz níže
    • Direct stream copy - zvukové pakety se překopírují tak jak jsou, bez ztráty kvality, rychlé
Dále máme tři možnosti, odkud se bude číst zvuková stopa:
    • No audio - zpracování videa bez zvuku
    • AVI audio - zvuk se čte z otevřeného video souboru (File/Open...)
    • WAV audio - otevře dialogové okno na výběr WAV souboru, zvuk z otevřeného video souboru je pak ignorován
A nakonec samotné zpracování, dostupné jen ve Full processing módu:
      Conversion - lze změnit samplovací frekvenci, mono/stereo, kvantizaci (Precision)
    • Interleaving - dostupný i v Direct stream copy módu, nastavuje způsob prokládání zvuku s videem, podle Microsoftu má být prokládání po 1 vteřině (1000ms) s 500ms audio preroll (kolik zvuku je na začátku souboru navíc), nastavit lze ovšem cokoliv, třeba po jednom video snímku, Audio skew correction posune zvuk směrem dopředu či dozadu, lze tím korigovat posunutí zvuku vůči obrazu (celkové posunutí, ne pomalé rozjíždění zvuku)
    • Compression - asi není třeba nic dodávat, nastavuje se komprese zvuku, vybírat lze z nainstalovaných ACM kodeků
    • Volume - pro nastavení hlasitosti zvuku
Za zmínku stojí ještě nastavení v Options/Preferences/AVI volba Do not correct MPEG layer III audio streams. Většinou se pro kompresi používá MP3 kodek od Fraunhoffera, v kterém je ale chyba - místo nastaveného bitratu dodává dat o něco méně, než udává, takže může dojít k předcházení zvuku s videem. Toto VirtualDub automaticky koriguje, pokud ale chcete použít jiný kodek, měli byste zaškrtnout tuto volbu.

5. Capture

Ještě se krátce zastavme u zachytávání, přestože VirtualDub pracuje pouze s VfW ovladači, takže použití ve Windows 2000/XP s WDM ovladači je problematické a s určitými omezeními. Lze sice použít VfWWDM mapper, který konvertuje funkce volání VfW do DirectShow, ne všechny ovladače si s tím ale správně poradí. Nejlépe jsou na tom All In One karty, které většinou fungují dobře. Do módu zachytávání se přepneme pomocí File/Capture AVI.

VirtualDub používá dvě metody pro zachytávání:

    • Internal capture - všechny snímky, dodané video kartou, jsou zpracovány vnitřími funkcemi VirtualDubu, komprese obrazu i zvuku, prokládání i vytváření AVI souboru. Výhodou je možnost zachytávat do větších souborů než 2GB, do segmentovaných nebo striped (zachytávání na dva disky zároveň, tyto soubory nelze přečíst jinde než VirtualDubem, sčítá dostupnou přenosovou rychlost obou pevných disků, což při dnešních rychlostech disků již není relevantní) souborů a korekce nesynchronizace zvuku s videem.
    • AVICap - používá interní funkce VfW, AVI soubory jsou vytvářeny automaticky, VirtualDub pouze kontroluje průběh, nelze použít výhod internal capture, ale má nižší nároky na hardware (méně přesunů v paměti a zpracování)
VirtualDub při zachytávání umožňuje nastavit úrovně zvuku i obrazu a navíc obsahuje i rutiny pro částečné odstranění šumu, ostatní věci jsou stejné jako u jiných programů, tak se jimi nebudeme zabývat.

6. Tipy a závěr

Ještě se podívejme na pár ukázek, k čemu se VirtualDub hodí nejlépe:

    1. Změna framerate - pokud potřebujeme z nějakého důvodu změnit framerate (např. pro korekci posunutí zvuku vůči obrazu), načteme AVI soubor, změníme framerate, nastavíme video i audio zpracování na Direct stream copy a dáme uložit jako nový soubor
    2. Korekce A/V synchronizace bez změny framerate - načteme soubor, uložíme zvuk do WAV souboru, který otevřeme v nějakém audio editoru a přesamplujeme ho na délku videa. Zpět vložíme pomocí Audio/WAV audio a uložíme
    3. Komprese - pokud potřebujeme pouze převást zachycené video např. do DivX, nejrychlejší metoda je použít Fast recompress mód pro video
    4. Spojení souborů - otevřeme první soubor a další připojíme pomocí File/Append AVI segment, uložíme v módech Direct stream copy, pokud se framerate neshoduje, napravíme to v bodu 1
    5. Rozdělení souboru - např. při rozdělování na dvě CD, nepoužívejte Save segmented AVI, protože dojde k rozdělení bez ohledu na keyframy, ale my musíme rozdělit tak, aby první snímek byl vždy keyframe. Najdeme si tedy požadovanou pozici pro rozdělení (lze použít SHIFT + posuvnítko pro skoky po keyframech) a zbytek souboru ořízneme a uložíme opět v Direct stream copy módu, číslo keyframu si zapamatujeme a od něj ukládáme další segment po opětovném otevření originálu
    6. Vložení titulků - titulky vložíme pomocí filtru Subtitler, který stáhneme na stránkách VirtulDubu, importují se titulky jen ve formátu Sub Station Alpha 2.x/4.x, takže je nutné je do něho převést nějakým programem pro editaci titulků, nebo pomocí filtru VobSub, který pracuje přímo s titulky formátu txt/srt/sub. Zpracování musí být ve Full processing módu, takže dochází k rekompresi a ke ztrátě kvality, nedoporučuje se dělat na DivX filmy

Najít by se dalo jěště sousta aplikací, teď mne ale žádné důležité nenapadají, takže to necháme na Vaší fantazii. Každopádně je ale VirtualDub velice šikovná utilitka, která nemá konkurenci a jiné podobné programy ho pouze méně úspěšně napodobují. Kdo zná, ví, kdo nezná, ať tahá... :-)