Naposled aktualizováno 10. 01. 2011.

Tvorba DVD z AVI 1

Teoretický úvod

Na svých stránkách již sice mám jeden návod na tvorbu DVD, ale je možná zbytečně moc komplikovaný a chybí v něm popis vytváření titulků. Tento návod by měl sloužit jako jednoduchý průvodce co nejkvalitnějším převodem z AVI (nebo i jiných formátů) na DVD-Video a nebudu Vás tolik obtěžovat suchou teorií. Doufám, že jej pochopí každý, kdo ví, co je adresář a soubor a umí rozbalit zip archiv (což kupodivu většina uživatelů PC nezvládá). Předpokládám, že zdrojové video je v tzv. formátu DivX (neexistující smyšlený formát). Jde typicky o AVI video s MPEG-4 kompresí (DivX, XviD), zvuk je obvykle zkomprimován do AC3 nebo MP3. K tomu jsou ještě někdy titulky v textovém formátu SUB nebo SRT. Celé toto nehomogenní spojení nazývají dilteanti ve snaze o maximální zjednodušení jako formát DivX a vnáší tak do oboru nové zmatky a nejasnosti, jako by jich už tak nebylo dost. Cílem tohoto návodu je sjednotit všechny tyto zdroje a převést je do striktního a existujícího standardu DVD-Video. Jedná se o standard velmi špatný a problémový, ale pokud si někdo pořídil přehrávač bez podpory MPEG-4, je tohle jediná možnost, jak na něm video přehrát. Proces, který popíši, převede všechny elementy (obraz, zvuk a titulky) do formátů splňujících standard DVD-Video. Prvním krokem bude převod zvuku do formátu AC3. Poté musíme překomprimovat obraz do formátu MPEG-2 a hlavně se vypořádat s rozlišením a poměrem stran. Tento zákeřný problém rozebírám podrobněji v samostatném článku. Také titulky se musí pro DVD převést do správného formátu (SUP). Na závěr se vše spojí a vypálí jako standardní DVD-Video. Konverzi AVI na DVD zvládají i poměrně jednoduché programy jako DVD Flick nebo The FilmMachine. Můj návod je ale obecnější a snaží se o vyšší kvalitu. Také byste se při mém postupu neměli dostat do žádných neřešitelných problémů. Pokud tedy automatický program selže, zde je cesta.

Úprava zvuku

Prvním krokem je získání informací o videu. K tomu použijeme program VirtualDub nebo GSpot.

GSpot
Program GSpot vypíše všechny důležité údaje o video souboru

Zakroužkované údaje jsou ty, které jsou pro nás důležité. Ještě se k nim později vrátím. Zatím je nutné vědět, že se jedná o AVI zkomprimované video kodekem DivX 3.11 (kód DIV3) a s MP3 VBR zvukem. Jako vzor jsem si vybral na převod poměrně složité video - 2CD, zvuk MP3 VBR, širokoúhlý obraz. To nám způsobí několik problémů. Zaprvé musíme obě videa spojit a navíc se musíme vypořádat s MP3 VBR zvukem, který způsobuje často desynchronizaci. Prvním krokem je tedy spojení a extrakce zvuku z obou AVI souborů. Sice by se dalo vše udělat podle mých návodů na VirtualDub, ale mohlo by dojít ke zmíněným problémům se synchronizací. Proto zde radši doporučím program AVI-Mux GUI, který by si měl s extrakcí zvuku poradit lépe.

AVI-Mux GUI
AVI-Mux GUI umí spojovat i rozdělovat AVI, MKV a OGM soubory

Kliknutím pravým tlačítkem myši do horního okna vyskočí nabídka Add, tímto příkazem přidáme do výběru video soubor. Pokud máme film na více CD, přidáme i další díly (samozřejmě ve správném pořadí). Označte všechna zdrojová AVI v horním okně a stiskněte generate data source from files. Ve spodním okně se zobrazí zvuková stopa. Klikněte na ni pravým tlačítkem a zvolte extract binary, tím uložíte zvukovou stopu v původním formátu (v tomto případě jako MP3). Někdy je zvuk u filmu přímo jako AC3 (Dolby Digital). My toto štěstí nemáme a tak musíme zvuk do AC3 překomprimovat. To nejsnáze provedeme programem BeLight. Pokud program BeLight z nějakého důvodu selže, jsou zde ještě alternativy jako foobar2000 (na konci článku je návod na konverzi do AC3), ffmpegGUI nebo vynikající, ale trochu složitější BeHappy.

BeLight
BeLight je velmi dobrým GUI pro BeSweet

Nejsnazší způsob, jak BeLight rozběhat, je stáhnout si instalaci. Z adresáře BeSweet spustíme program BeLight.exe a otevřeme v něm naší MP3. Na screenshotu GSpotu vidíte zakroužkováno, že zdrojový zvuk má frekvneci 48000 Hz, to je standard pro DVD. Často se ale můžete setkat s tím, že nějaký amatér zkonvertoval samplovací frekvenci na 44100 Hz (standard pro Audio CD). V tom případě je nutné provést zpětnou konverzi na 48 kHz, jak je zakroužkováno ve screenshotu BeLightu. V našem případě je samozřejmě tato konverze nesmyslná, pouze by prodloužila dobu zpracování a zhoršila kvalitu. Ta se rekompresí zvuku do formátu AC3 sníží stejně, takže na bitrate nešetřete a nastavte minimálně 192 kbps. Trojnásobná rekomprese není opravu dobrý nápad, ale jiné cesty zde není. Nic pro audiofily, ale na běžné TV zhoršený zvuk ani nepoznáte. V Belightu tedy otevřeme MP3 soubor získaný pomocí AVI-Mux GUI, nastavíme výstup na AC3 - stereo. Vpravo lze zvolit použitý AC3 enkoder, Aften by měl být lepší než AC3Enc. Tlačítkem Start processing spustíme rekompresi. Ta může trvat i několik minut.

Úprava obrazu

O něco víc starostí nadělá úprava a komprese obrazu, ale po prvním nastavení je výroba dalších DVD již jednoduchá. Nejdříve musíme zjistit, jaké bude mít výsledné video rozlišení a poměr stran. Na screenshotu z GSpotu vidíme, že zdroj má 640x352, což je poměr stran 1:1,818 (označený údaj vpravo dole). DVD nám dává na výběr poměr stran 4:3 (1,33) a 16:9 (1,78). Jednoduchá poučka je tato: je-li poměr stran větší než 1,78, volíme režim DVD 16:9, v opačném případě použijeme 4:3. DVD norma nám dále také natvrdo říká, že šířka obrazu je 720 a výška 576 bodů (pixelů). Abysme získali žádaný poměr stran, musíme spočítat výšku aktivního obrazu a zbytek do 576 řádek doplníme vodorovnými černými pruhy. Pokud označím poměr stran z GSpotu jako P, poměr stran DVD (16/9 nebo 4/3) jako D a výšku videa Y, je vzoreček následující: Y = 576/PxD. V našem případě tedy Y = 576/1,818x16/9 = 563,3. Toto číslo je nutné zaokrouhlit na nejbližší sudé, tedy 564. Ideální je zakrouhlit na násobek 16ti, což výrazně pomůže následné kompresi videa. Zaokrouhlým tedy výšku videa na 560. Vše co jsem zatím zmínil platí pro evropskou normu PAL, je li video v normě NTSC (USA, Japonsko), nahradíme ve vzorečku číslo 576 za 480. Že je video NTSC poznáme snadno, v GSpotu se zobrazí snímková frekvence ne 25, ale buďto 24 (23,976) nebo 30 (29,97). To je další zakroužkovaný dosud nepoužitý údaj z GSpotu. S videem v nromě NTSC je podstatně více starostí. Pokud Vás zajímají detaily, podívejte se do diskuzního fóra.

Na vlastní úpravu obrazu použijeme vynikající a těžko nahraditelný program Avisynth (verzi 2.5.7 nebo novější). Jeho pomocí provedeme všechny úpravy nutné k získání videa podle DVD standardu. Program se pouze nainstaluje a dál již funguje automaticky, přes ovládací skript. Protože se mě na to lidé neustále dokola ptají zdůrazňuji: Avisynth se nijak nespouští, funguje na pozadí programu stejně jako třeba kodek. Avisynth skript je multimediální soubor a nakládá se sním jako s AVI videem. Lze jej klidně spustit v nějakém video přehrávači. Skript vytvoříme velmi snadno například pomocí programu Notepad (Poznámkový blok), který je standardní součástí Windows. Video zpracováváme textovými příkazy, což má obrovskou výhodu v tom, že jakmile skript jednou vytvoříme, už jej stačí pouze lehce obměňovat. V mém případě do skriptu vložím následující text:

AviSource("Video CD1.avi",false)++AviSource("Video CD2.avi",false)
Lanczos4Resize (720,560)
AddBorders(0,8,0,8)
ConvertToYV12()

A teď si řekneme, co to vlastně znamená a jak jsem na jednotlivá čísla přišel. První řádek načítá oba 2 video soubory, které jsou umístěné ve stejném adresáři jako skript. Pokud by tomu tak nebylo, musím zadat plnou cestu k AVI souborům. Parametr flase udává, že se nemá načítat zvuk. Další řádek mění rozměr videa. 720 je dáno normou DVD, 560 jsme si před chvílí spočítali. Na dalším řádku doplňuji černými pruhy video na výšku 576 (opět dáno normou PAL DVD, u NTSC je to 480). 576-560 = 16, nahoru a dolů dám černé pruhy široké 8 bodů. Poslední řádek je většinou zbytečný, konvertuje video na formát barev YV12 opět vyžadovaný normou DVD. Toto kódování barev ale najdeme často i u AVI souborů. Jakmile máme skript napsaný, uložíme jej s koncovkou .avs a můžeme jej otestovat.

Jako nejvhodnější se mi jeví použít k tomuto účelu VirtualDub. V něm by měl jít vytvořený .avs soubor bez problémů otevřít. Nezapomeňte, že .avs soubor je video, takže se otevře normálně příkazem File -> Open video file. Pokud se video nepodaří otevřít, vypíše VD nějakou hlášku o chybě, ze které by mělo jít identifikovat příčinu problému. Téměř všechny možné problémy odstraní nainstalovaný a správně nakonfigurovaný program ffdshow, který obsahuje dekodery všech potřebných formátů (DivX 3-6, XviD, YV12 atd.) Nejdůležitější je spustit po nainstalování ffdshow z nabídky Start konfiguraci odkazem VFW codec configuration a v okně Decoder -> Kodeky zvolit zcela dole Raw video: all supported. Dále zde povolte dekódování DivX (všechny verze) a XviD tím, že z nabídky u těchto formátů zvolíte libavcodec. Můžete samozřejmě povolit i další dekodery, podle potřeby. POZOR!!! - i když video hraje například ve Windows Media Playeru, neznamená to, že jsou pro něj nainstalované kodeky. Vysvětlení je zde, pokud chcete otevřít video, pro které nemáte kodeky, ale hraje ve WMP, nahraďte ve skriptu příkaz AviSource příkazem DirectShowSource.

Pokud jsou tedy na počítači dostupné všechny potřebné kodeky (nebo ffdshow), neměl by být problém video ve VirtualDubu otevřít a prozkoumat. To, že bude pravděpodobně výrazně roztažené na výšku je v pořádku a nenechte se tím zneklidnit. Zkontrolujte kvalitu a nechte si vypsat informace o videu příkazem File -> File Information. Pokud je vše v pořádku, hlásí VirtualDub rozměr videa 720x576, 25.000 fps, na dalším řádku potom FourCC: [YV12]. Pakliže tyto informace nesouhlasí, máte ve skriptu chybu. Pokud máme správný a funkční Avisynth skript, můžeme přistoupit k vlastní kompresi videa. VirtualDub můžete nyní zavřít, nebude ho již potřeba. Posloužil pouze k otestování skriptu.

Komprese obrazu

Ke kompresi videa do MPEG-2 doporučuji program HC, se kterým mám velmi dobré zkušenosti. Navíc je vítězem testu kvality, který dělal můj kolega Jojto. V mém jiném návodu používám na to samé program QuEnc, který ale občas nedodržuje správně nastavený bitrate. Proto raději používám HC enkoder, který je spolehlivější. Po spuštění programu příkazem HCGUI_verze.exe se objeví následující obrazovka:

HCGUI
Hlavní okno HC enkoderu

Kliknutím na tlačítko input otevřete AVS skript. Následující 2 tlačítka nastavují výstupní soubory - m2v video soubor a log soubor se záznamem o prvním průchodu komprese. Jejich umístění je čistě Vaše volba, já jsem zvyklý mít vše v jednom adresáři. Poté je nutné nastavit cílovou velikost videa. Matematika mluví jasně: DVD má necelých 4600000 kB, od této hodnoty odečtěte velikost AC3 zvuku a máme dostupné místo pro video. Je dobré nechat si alespoň 100 MB rezervu pro titulky, menu, overhead a pro jistotu :-). V mém případě tedy mám pro video 4600000 - 187000 = 4413000. Nastavím tedy cílovou velikost pro video (zde 4300000 kB) tak, že zaškrtnete položku file length a zadáte požadovanou hodnotu. Maximální bitrate nastavte na 9000 kb/s. Norma DVD povoluje 9800 (i se zvukem) a také zde si raději nechte nějakou rezervu. Dále nastavte poměr rychlosti/kvality v menu profile a poměr stran v menu aspect ratio. Ten již známe z předchhozího postupu. Hodnoty 1:1 a 2,21:1 nejsou stolními přehrávači podporované, nepoužívejte je! Ostatní parametry neměňte a nechte vše nastavené jako na mém obrázku.

HCGUI
Hlavní okno HC enkoderu

Na dalších dvou záložkách nic neměňte, pokud nevíte, co děláte. Přesuňte se na poslední záložku, kde je možné editovat kapitoly. Posuvníkem se můžete pohybovat po filmu a kliknutím na tlačítko add přidáte současnou pozici jako místo pro začátek kapitoly. Alespoň nějaké kapitoly vždy do filmu zařaďte, aby bylo možné pohybovat se rychle ve filmu i na stolních přehrávačích. Až budete hotovi, tlačítkem export chapter list to file vyexportujte kapitoly do textového (.txt) souboru. Ten se nám totiž bude ještě hodit. Pokud máme hotový výběr kapitol, můžeme sputit kompresi videa. Na první záložce klikněte na velké tlačítko encode. Komprese je dvouprůchodová, ale program spustí oba průchody automaticky a vy se nemusíte o nic starat. Proces zabere až několik hodin v závislosti na rychlosti počítače. Druhý díl návodu ukáže, jak převést SUB a SRT titulky na formát SUP a přidat je na DVD. Potm už zbývá jenom authoring a vypálení.




Pokud máte nějaký dotaz nebo přípomínku, neváhejte mě kontaktovat.