Naposled aktualizováno 10. 01. 2011.

Digitalizace videa pomocí TV karty - 1. část

Obecné informace a realtime komprese při nahrávání

Tímto návodem bych chtěl pomoci všem, kteří si pořídili TV kartu a chtějí si nahrát nějaký film nebo pořad z televize, zkomprimovat jej a následně uložit na CD nebo DVD. Prvním předpokladem úspěchu je dobrá televizní karta a dobrý signál, protože citlivost tunerů TV karet je horší než u klasických TV. Kvalita TV karet je různá, ale roumný hardware pořídíte již za cenu od 2000 Kč. Dříve byla jedinou roumnou volbou karta s chipem Conexant bt8xx, protože s jejich používáním nebývají problémy a fungují dobře i v Linuxu. Na druhou stranu A/D převodníky těchto karet nepatří k nejkvalitnějším. Karty s bt8xx se postupně přestávají vyrábět a nahrazují je nové chipy, které jsou sice kvalitnější, ale nemají tak širokou podporu. Jsou tu například nové chipy Conexantu nebo Philips SA713x, jehož podpora je také na solidní úrovni. V nejhorším případě poslouží i VIVO grafická karta. K dalším hardwerovým nárokům patří procesor alespoň 600 MHz a rychlý disk s minimálně 20GB místa. Pro realtime kompresi do MPEG-4 je minimálním požadavkem procesor P4 2.0 GHz nebo Athlon XP 2000+.

Pokud tedy máte patřičný hardware, můžete se pustit do experimentování, v čemž Vám doufám tento článek pomůže. Nejedná se o návod krok za krokem pomocí konkrétních programů, je to spíš obecný pohled, jak k danému problému přistupovat. Pokud jsem v návodu na ripování DVD rozdělil postup do 5-ti částí, zde se spokojím poze se dvěmi díly. Budu se totiž poměrně často na návod popisující převod DVD na CD odkazovat. Celý proces má mnoho společného. Budeme také potřebovat některé programy použité v tomto návodu. Konkrétně to bude VirtualDubMod, FFDShow, XviD, MKVToolnix a MatroskaSplitter (pro přehrávání). Získat je můžete zde. Celý postup bych rozdělil do čtyř částí:

  • 1) Digitalizace a realtime komprese obrazu (1. díl)
  • 2) Zpracování videa - ořezání, změna rozlišení a jiné filtry (1. díl)
  • 3) Zkomprimování videa do MPEG-4 (1. díl) nebo MPEG-2 (tvorba DVD)
  • 4) Zkomprimování zvuku (2.díl)

Prvním krokem, který je nutno udělat, je nahrát video na harddisk s pokud možno minimální ztrátou kvality. Nahrávat video nekomprimovaně je téměř nemožné. Takové video by zabíralo přibližně 30MB za vteřinu, čili přes 100 GB za hodinu. I kdyby ste měli takhle velký disk, je nepravděpodobné, že by stíhal zapisovat touto rychlostí. Opačný extrém, kompresi rovnou do MPEG-4, (DivX, XviD) také důrazně nedoporučuji. Zaprvé je neodhadnutelná celková velikost zachyceného videa, navíc pro solidní kvalitu je zpotřebí procesor alespoň 3 GHz, 2GHz je minimum pro nejnižší kvalitu. Také bysme se připravili o možnost použití filtrů na vylepšení kvality obrazu. Proto při nahrávání zvolíme kompresi s co nejnižší ztrátou kvality. To ale také znamená značnou velikost výsledného videa v řádu desítek gigabajtů. Nejvhodnější pro náš účel je nějaký bezztrátový kodek. Nejznámějším je HuffYUV, který je dostupný zdarma, nabízí vysokou rychlost, ale kompresní poměr se pohybuje kolem hodnoty 3:1. Další bezztrátové kodeky jsou již méně známé, přestože často nabízejí lepší výkon než HuffYUV. Lze jemnovat například FFV1 (součást FFDShow), Lagarith, MSU Lossless Codec nebo Alparysoft codec. Protože bezztrátová komprese není příliš účinná, všechny tyto kodeky potřebují velký (30 GB na hodinu) a rychlý harddisk. Nejvhodnější je samostatný (fyzický, ne logický) disk, který je zcela prázdný a je naformátovaný souborovým systémem NTFS. Výhoda NTFS disku (používají jej Win NT, 2000 a XP) je v tom, že dokáže uložit prakticky neomezeně velký soubor. Na disku FAT32 (Win 98, Me ale i 2000 a XP) je maximální velikost souboru 4 GB.

O poznání lepší kompresi než bezztrátové kodeky nabízí formát M-JPEG (Motion JPEG), na 1 hodinu potřebujeme okolo 10 GB (podle nastavení kvality). Zde už není nutný samostatný a rychlý disk. Princip této komprese je takový, že každý snímek (volitelně i půlsnímek) se komprimuje jako samostatný obrázek metodou JPEG. Na stejném principu pracuje i kodek DV, používaný v amatérských digitálních kamerách. Při použití MJPEGu ale nastává jeden problém - kde jej vzít? Nejlepší je Pegasus PicVideo MJPEG, který ale není k mání zadarmo. Dříve byla možná bezplatná registrace, dnes už firma tuto možnost nenabízí. Dá se použít při plném rozlišení již na procesorech s 600 MHz a výš. Jedinou alternativou dostupnou zdarma jsou MJPEG a DV kodeky obsažené v programu FFDShow. Jejich nevýhodou je ale rychlost. Na mém Athlonu XP 2000+ spotřebuje FFDShow MJPEG 80% výkonu procesoru. Kvalitu MJPEG kodeků je nutné nastavit hodně vyskoko, alespoň 90% u FFDShow nebo 18 u PicVideo. Poslední možností je použití komprese MPEG-2. Zde je ale ztráta kvality nejvýraznější. Navíc neexistuje (pokud vím) žádný program zdarma schopný zachytávat video v reálném čase do MPEG-2. Většinou to ale umí aplikace dodávané spolu s TV kartou. Z komerčních bych potom jmenoval PowerVCR nebo WinDVR. Některé aplikace také nabízejí formáty jako MPEG-1 nebo WMV, ty jsou pro další zpracování zcela nepoužitelné. Nyní nadešel čas zmínit nějaké programy, které pro zachytávání do .avi umožní zvolit libovolný nainstalovaný kodek (tedy PicVideo MJPEG, FFDShow, HuffYUV atd.). Já používám český program ATV2000. Jeho autorem je Mike Crash, tvůrce stránek o TV kartách a digitálním videu TVFreak.cz. Dalším oblíbeným programem zdarma je VirtualDub, použít se dá také velmi jednoduchý VirtualVCR. Z komerčních jsou nejběžnější iuVCR a FlyDS.

Nyní se budu zabývat zachycením videa do .avi pomocí bezztrátových kodeků nebo MJPEGu. Pokud se rozhodnete pro zachytávání do MPEG-2, potom při zpracování pro Vás bude vodítkem návod na ripování DVD. DVD totiž také obsahuje video s kompresí MPEG-2, takže postup bude velmi obdobný. Já ale preferuji kvalitnější cestu pomocí DV, MJPEG nebo bezztrátových kodeků. Pro jejich použití existuje kromě kvality ještě několik dobrých důvodů. Výsledné video lze bez problémů sestříhat v libovolném editoru. Nemusíme při zachytávání komprimovat zvuk a daleko lépe se vypořádáme s problémem desynchronizace zvuku a obrazu. Nyní tedy předpokládám, že už máte nějaký program pro nahrávání z TV nainstalovaný a nastavený a také máte nainstalované potřebné kodeky. Základní nastavení pro zachytávání jsou takováto: U videa zvolíme rozlišení 768x576 (pokud je cílem DVD, tak 720x576 nebo 704x576) a nějaký z doporučených kodeků. Zvuk nekomprimujeme a samplovací frekvenci můžeme klidně snížit z výchozích 44.1 na 32 kHz, pro DVD je naopak vhodné nastavit 48 kHz. Komprimací zvuku při zachytávání bysme se zbytečně vystavili riziku desynchronizace s obrazem a dalším problémům. Hlavní stream nezvolíme žádný. Toto nastavení určuje, jestli se rychlost přehrávání řídí podle zvuku nebo obrazu. My ale tento problém vyřešíme jinak. Nyní už stačí spustit nahrávání a počkat si na výsledek. Během tohoto procesu může dojít k řadě problémů. Jejich řešení bývá často složité, o radu můžete zkusit požádat na diskuzním fóru TVFreak.cz. Nyní již tedy máme video uložené v kontejneru .avi s nekomprimovaným zvukem a komprimovaným videem pomocí bezztrátového kodeku, DV nebo MJPEGu.

Použití filtrů a komprese videa

Pro další zpracování doporučuji použít program VirtualDubMod (napříště pouze VDM), který umožňuje video sestříhat, zkomprimovat obraz a vylepšit jej pomocí různých filtrů. Ve 3. díle návodu pro ripování DVD používám VDM pouze pro kompresi, my ale nyní použijeme jeho celou sílu. Podrobnější návod na práci s tímto skvělým programem najdete zde. Nyní zmíním pouze ve zkratce, jak by se mělo postupovat.

Prvním krokem po otevření souboru bude vystříhání reklam, případně začátku a konce nahrávky. To uděláme pomocí dvou šipek vpravo dole, kterými označíme část nahrávky, kterou chceme vystřihnout. Klávesou Delete potom výběr odstraníme. Nyní přijdou na řadu filtry. V menu Video zvolíme tontokrát Full processing, což znamená kompletní zpracování s kompresí a filtry. V menu Video -> Filters potom přidáme patřičné filtry. Jako první bude zřejmě nutné odstranit prokládání. Protože se jedná o poměrně složitý problém, je mu věnován samostatný návod. Vhodné je také použít flltr pro odstranění šumu, například CNR, DNR, 2D Cleaner nebo Smooth HiQ. Výborný návod na odšumění nahrávky najdete na serveru TVFreak.cz. Velmi důležité je pořadí filtrů, jako nejvhodnější se mi jeví následující schéma: oříznutí -> deinterlace -> zpracování (odstranění šumu, loga apod.) -> resize. Konkrétně bych například zvolil Deinterlace MAP -> 2D Cleaner -> Resize Lanczos 512x384. Pokud chceme video oříznout, zvolíme v menu filters filtr nazvaný null transform, potom klepneme na tlačítko Cropping a nastavíme oříznutí.

Na obrázku je VirtualDubMod s použitými flitry Deinterlace MAP a 2D Cleaner (potlačení šumu). Kliknutím na levý nebo pravý obrázek můžete zobrazit zvětšeně zdrojové nebo upravené video. Kromě interlace artefaktů si můžete všimnout šumu na obloze a zdech kostela, který je v upraveném (pravém) obrázku výrazně potlačen. Na levém obrázku je šum oproti skutečnosti ještě o něco více zvýrazněn kompresí JPEG, ale stejný efekt by nám způsobila i komprese do MPEG-2 nebo MPEG-4. Také si můžete všimnout rozdílu ve velikosti souborů. První obrázek je při stejné kompresi o třetinu větší. Odšuměný obraz (i video) se daleko snáze komprimují. To je druhý důvod, proč potlačení šumu používat. Samozřejmě mají tyto filtry také nechtěný vedlejší efekt a tím je rozmazání jemných detailů. Proto je nutné chvíli si s nastavením filtru pohrát a najít ty správné hodnoty, kdy je šum skoro odstraněný, ale obraz není ještě rozmazaný. Kliknutím sem zobrazíte oba obrázky vedle sebe, pro lepší porovnání.

Pokud již máme zvolené a nastavené všechny video filtry, vybereme položku Streams -> Stream list. Měla by se zobrazit jedna zvuková stopa. Tlačítkem Save WAV uložíme zvuk do samostatného WAV souboru, zároveň dvojitým poklepáním na stopu zakážeme její další zpracování (bude vyšrafovaná). Nyní už je vše připraveno pro kompresi obrazu. Zde pouze odkáži na 3. díl návodu na ripování DVD, kde je popsána komprese pomocí kodeku XviD (MPEG-4). Samozřejmě VD v tomto návodu používám trochu jinak, tak se tím nenechte zmást. První odstavec v klidu ignorujte a místo nastavení Fast recompress zvolte Full processing, jak jsem již psal výš. Pro správné nastavení resize (změny rozlišení) si přečtěte návod na použití programu XviD Bitrate Calculator (2. půlka návodu). Věci týkající se ripování DVD samozřejmě v návodu ignorujte. Vzhledem k nižší kvalitě videa zachyceného z TV oproti videu získanému z DVD, je nutné volit vyšší bitrate k dosažení srovnatelných výsledků. Při nastavení komprese videa nezapomeňte zarezervovat na CD místo pro zvuk. Pokud použijete klasických 128 kbps, je to přibližně jeden MB za minutu.





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