Jak dostat videozáznam do počítače (pomocí IEEE 1394)
Dobrá, máme kameru, dokonce jsme pomocí ní něco natočili, máme počítač s Linuxem :-) a FireWire portem – co dál?
Nejprve bude třeba rozchodit řadič IEEE 1394 a všechny věci kolem něj. Na mém Mandrake 9.1 stačilo nainstalovat níže uvedené knihovny. (Vzhledem k používání dalšího softwaru by nebylo od věci už na tomto místě zmínit, že budete potřebovat čtyřkovou verzi XFree86 a grafický adaptér s podporou X-Video. Zda váš adaptér XVideo podporuje, zjistíte z výstupu utilitky xvinfo.)
- Linux IEEE 1394 Subsystem – subsystém pro komunikaci přes port IEEE 1394. Linux1394 je standardně obsažen v jádrech verze 2.4, patch pro verzi 2.2 je k dispozici na stránkách projektu Linux1394;
- libraw1394 – knihovna potřebná pro Linux1394;
- libdv – kodek DV;
- libavc1394 – programátorské rozhraní pro AV/C (Audio/Video Control) specifikaci.
Pokud budete knihovny instalovat z RPM balíčků, nezapomeňte si stáhnout i …-devel RPM soubory. Bez nich by se vám další software, který ještě nikdo do RPM nebalil, kompiloval opravdu špatně. :-)
Předpokládejme, že jsme vše zdárně zvládli. Přistoupíme tedy ke stáhnutí videa z kamery do počítače. Uděláme to asi nejjednodušším možným způsobem, pomocí programu dvgrab. Kameru připojenou pomocí rozhraní IEEE 1394 k počítači zapněte a zadejte příkaz:
dvgrab --format raw MujPrvniFilm
Stiskněte Play na videokameře; blikání hard disku by mělo být znamením, že stahování videozáznamu začalo. Když toho budete mít dost, ukončete program stiskem CTRL-C. Ve vašem adresáři by se nyní měly nacházet soubory MujPrvniFilm001.dv, MujPrvniFilm002.dv atd.
Věnujme se chvíli možným parametrům dvgrabu:
–autosplit |
podle časových údajů ukládaných na pásku |
–frames <počet_snímků> |
Každý soubor bude obsahovat maximálně zadaný počet snímků. Použití této |
–size <velikost> |
nařizuje dvgrabu vytvářet soubory o velikosti maximálně |
–every <n> | dvgrab bude ukládat do souboru každý <n>-tý snímek.
dvgrab --every 2 zrychleny tedy vytvoří AVI soubor se záznamem 2× zrychleným oproti normálu. Standardně se ukládají všechny snímky. |
–format <formát> | formát uložení dat. Povolenými volbami jsou:
Standardně je použit formát dv1. |
–opendml |
při použití –format dv2 vytvoří soubor vyhovující standardu |
–timestamp |
do názvů souborů se bude vkládat i informace o datu a času. |
dvgrab disponuje více volbami, než které jsem zde zmínil. Kompletní přehled získáte z man dvgrab nebo dvgrab –help.
Prohlížíme stažený klip
O správném fungování přenosu a všech instalovaných knihoven a programů se definitivně přesvědčíme tak, že si stažený úryvek filmu v počítači přehrajeme:
playdv MujPrvniFilm001.dv
Prográmek playdv je součástí knihovnylibdv, kterou jsem doporučoval instalovat v úvodu. Po jeho spuštění by mělo v XWindowS vyskočit okno a v něm bude běžet náš první film… (Podle všeho playdv umí zobrazovat pouze soubory ve výše zmíněném raw DV formátu. S AVIčky u něj nepochodíte.)
Máte-li na svém počítači MPlayer se zakompilovanou podporou formátu DV, můžete jej použít místo playdv:
mplayer MujPrvniFilm001.dv
Drezúra kamery z klávesnice
Odjakživa se mi líbilo ovládat různá zařízení pomocí počítače. Můj chtíč v tomto směru víceméně dokonale uspokojila utilitka s názvem dvcont, která je součástí balíku libavc1394. Jejím smyslem je ovládat kameru přímo přes IEEE 1394 rozhraní.
dvcont se používá takto:
dvcont <příkaz1> [ <příkaz2> ... ]
Zadáte-li například dvcont play, mělo by se na kameře rozběhnout přehrávání.
Ačkoliv dvcont vypadá jako hračička, v některých případech má své opodstatnění. Tak například u mé kamery Canon MV 500 jsou na těle přístroje přítomny pouze základní ovládací prvky. Chcete-li využít některé speciální možnosti (např. zpomalené přehrávání), musíte použít dálkový ovladač přístroje (který leží kdovíkde :-) nebo program dvcont… V tomto případě příkaz:
dvcont trickplay 1
Seznam zajímavých příkazů dvcontu (některé nejsou přístupné pro všechny kamery – úplný popis hledejte v man dvcont) následuje:
play / reverse |
spuštění přehrávání vpřed a zpět |
stop |
zastavení přehrávání |
rewind / ff |
převíjení zpět a dopředu (možno použít i při přehrávání – pak se bude |
pause |
pauza v přehrávání (obraz je vidět) |
prev / next |
posun o jeden snímek vpřed nebo zpět (používá se v režimu pauzy) |
previndex / nextindex |
vyhledávání předcházející nebo následující scény (použití v režimu pauzy |
record |
spuštění nahrávání |
trickplay <číslo> | přehrávání záznamu v různých rychlostech podle zadaného <čísla>:
|
timecode |
vrátí pozici na pásku (HH:MM:SS:FF – hodiny, minuty, sekundy, |
Chcete-li si videoklip rovnou zkomprimovat do nějakého úspornějšího formátu, můžete to udělat pomocí MPlayeřího enkodéru:
mencoder test001.dv -o test.avi -oac mp3lame -ovc lavc \
-lavcopts vcodec=mpeg4:vbitrate=1600:vhq:vme=1 -vop scale=640:480,lavcdeint
Uvedený příkaz vytvoří z našeho souboru test001.dv AVI soubor se zvukem převedeným do MP3 a videem komprimovaným podle kodeku MPEG4. Při kompresi je zapnuta volba velmi dobrá kvalita (vhq – Very High Quality) a plný odhad pohybu (vme=1 – pomalé, ale dobré). Na obraz je před zpracováním spuštěn deinterlacing (lavcdeint) a filtr pro zmenšení na velikost 640×480 bodů. Kvalitu a velikost výsledného souboru výrazně ovlivňuje tzv. bitrate videa v kbit/s (vbitrate). V ukázce jsem použil hodnotu 1600, která poskytuje solidní výsledky (nutno vyzkoušet). Otázkou komprimace videozáznamu se patrně ještě budeme zabývat později v některém z příštích dílů.
Pokračování příště…