První ze série článků pojednávajících o digitálním videu v Linuxu. Úvodní část se zabývá získáváním videa z digitální kamery.
6.12.2004 13:00 | o.k. | přečteno 19199×
Vánoce se blíží a protože ceny digitálních kamer klesají, určitě se nejednomu z vás stane, že digitální kameru nalezne pod stromečkem.
Vzhledem k tomu, že návodů jak pracovat s videem pod Linuxem je jako šafránu, rozhodli jsme se vám díky několika článkům/návodům o digitálním videu pod Linuxem tuto problematiku trochu přiblížit.
Nejdůležitější je mít digitální kameru, která má rozhraní ieee1394 (firewire), což většina dnešních digitálních kamer splňuje. Kamery s tímto rozhraním obvykle dobře fungují a jen malé procento je pod Linuxem zcela nefunkční. Podrobnější seznam typů digitálních kamer, které pod Linuxem fungují naleznete na stránkách http://www.linux1394.org/, konkrétně pak v sekci "Compatibility" a v její podsekci "Digital Camera".
Pokud váš typ digitální kamery v uvedeném seznamu není, tak to ještě neznamená, že není funkční pod Linuxem, ale pouze to, že pro tuto kameru ještě nikdo nepřidal relevantní záznam. Zkuste kameru podle tohoto návodu zprovoznit, či se podívat na Googlu zda někomu pod Linuxem funguje nebo se případně můžete zeptat v diskuzním fóru. Také tuto digitální kameru potom můžete přidat do seznamu jako funkční či nefunkční zařízení pod Linuxem.
My vlastníme digitální kameru Panasonic NV-GS15EG, která dle seznamu funguje pod Linuxem opravdu dobře - což v tuto chvíli již můžeme potvrdit.
Pokud se teprve chystáte digitální kameru kupovat a chcete s ní pracovat výhradně pod Linuxem (kde taky jinde, že), tak doporučuji při výběru typu klást důraz i na výše uvedený seznam. To platí i pro ty, kteří si o ni napsali Ježíškovi :-)
Dále samozřejmě potřebujeme mít v počítači i ieee1394 adaptér, který u novějších základních desek bývá již její součástí. Pokud jej na základní desce nemáme, tak není problém si jej koupit jako PCI kartu. Pozor, zde musím také upozornit na to, že ne všechny PCI ieee1394 karty pod Linuxem fungují.
Seznam funkčních firewire karet můžete opět nalézt na stránkách www.linux1394.org v sekci "Hardware Compatibility List->Host Adapter" nebo v sekci "Chipset". V našich končinách jsou celkem rozšířené karty Kouwell.
Také nemohu nezmínit, že pro připojení digitální kamery s počítačem je zapotřebí mít ten správný ieee1394 kabel, ale to je asi všem jasné.
Ještě zmíním některé hardwarové nároky, které by měl náš počítač splňovat, aby práce byla snesitelná. Každý z vás asi tuší, že video si vyžádá jisté prostředky systému. Především je zapotřebí mít slušně rychlý disk, což u moderních počítačů je jistě splněno. Za limitní hranici použitelnosti by se dal ještě považovat disk, který dokáže zapisovat rychlostí 4MB/s. Dále je potřebné mít na disku dostatek místa, protože DV formát potřebuje přibližně až 15GB místa na jednu hodinu záznamu, což není zrovna málo. Pro stažení videa z kamery není zapotřebí mít nějak extrémně výkonný procesor - výkon procesoru je znát až při případném překódování či při případné úpravě videa.
Hardware v našem případě bude zastupovat 64bitový AMD Athlon se solidně rychlým 160GB SATA diskem podpořený 1GB paměti a s firewire řadičem integrovaným na zakladové desce (viz tento článek).
Poté co jsme si probrali potřebný hardware se můžeme směle pustit do softwaru potřebného pro nahrávání videa z kamery.
V prvé řadě budeme potřebovat funkční kernel s podporou IEEE1394, což drtivá většina moderních distribucí splňuje. Pokud máte distribuci, která podporu IEEE1394 v kernelu nemá, pak vám nezbude nic jiného než si zkompilovat vlastní nový kernel, či případně si pomocí patchů podporu do starého jádra dodat. Na tomto místě naleznete podrobný návod se vším potřebným, který vám podporu firewire zařízení do staršího jádra pomůže krok za krokem nainstalovat.
Pokud nemáme podporu firewire zakompilovanou přímo do jádra, stejně tak jako to nemám já v systému Fedora Core 3 pro 64bit, tak musíme nejprve nahrát příslušné moduly.
Obvykle budete mít v jádře již defaultně nahranou tuto dvojici modulů, viz
výpis příkazu lsmod
ohci1394 41305 0 ieee1394 383569 1 ohci1394
Dále je zapotřebí do jádra načíst ještě modul s názvem raw1394
a
modul dv1394
.
modprobe dv1394 modprobe raw1394
Po nahrání těchto modulů by měl výpis příkazu lsmod
vypadat
následovně
dv1394 29753 0 raw1394 41305 0 ohci1394 41305 1 dv1394 ieee1394 383569 3 dv1394,raw1394,ohci1394
Další věcí, kterou je mít zapotřebí v systému je knihovna
libraw1394
, protože
veškerý software pro získávání videa z digitální kamery je závislý právě na
této knihovně. Pokud nemáte tuto knihovnu ve vašem systému ve formě balíčku,
tak si ji můžete stáhnout z této adresy a posléze pomocí klasické
magické trojkombinace
./configure && make && make install
ji do systému nainstalovat.
Jestliže v systému nemáte zařízení /dev/raw1394
, tak jej
následujícím způsobem vytvoříme (samozřejmě jako uživatel root
)
mknod -m 600 /dev/raw1394 c 171 0
Ve finále budeme potřebovat program dvgrab
, který je k nalezení na
stránkách http://kino.schirmacher.de/, konkrétně
pak zde. Na
těchto stránkách najdete spoustu dalšího softwaru a informací pojednávajících o
digitálním videu pod Linuxem a software z těchto stránek budeme ještě využívat
v dalších dílech zabývajících se editací videa.
Pokud máme veškeré softwarové vybavení připravené, můžeme se směle pustit do otestování naší digitální kamery.
Ještě před připojením samotné kamery k počítači je dobré otestovat funkčnost
knihovny libraw
a to programem testlibraw
. Výstup
tohoto programu by měl být podobný tomuto níže uvedenému:
1 card(s) found nodes on bus: 1, card name: ohci1394 using first card found: 1 nodes on bus, local ID is 0, IRM is 0 doing transactions with custom tag handler trying to send read request to node 0... completed with value 0xdbdbcf8a using standard tag handler and synchronous calls trying to read from node 0... completed with value 0x9a09d08a testing FCP monitoring on local node got fcp command from node 0 of 8 bytes: 01 23 45 67 89 ab cd ef got fcp response from node 0 of 8 bytes: 01 23 45 67 89 ab cd ef testing config rom stuff get_config_rom returned 0, romsize 64, rom_version 5 here are the first 10 quadlets: 0. quadlet: 0x1fac0404 1. quadlet: 0x34393331 2. quadlet: 0x32a264e0 3. quadlet: 0x00dc1000 4. quadlet: 0x61bf6d00 5. quadlet: 0xe8b10300 6. quadlet: 0xdc100003 7. quadlet: 0x02000081 8. quadlet: 0xc083000c 9. quadlet: 0x2a2c0600 update_config_rom returned 0 polling for leftover messages
Tímto máme ověřenu funkčnost karty a modulů a můžeme připojit kameru pomocí ieee1394 kabelu.
Před samotným stáhnutím videa z digitální kamery je zapotřebí tuto
přepnout do módu VCR (mód pro přehrávání) a přetočit záznam na začátek. Pak nám
již stačí spustit program dvgrab
, například takto
dvgrab --autosplit --format dv2 our_video Capture Started "our_video001.avi": 78.41 MB 542 frames timecode 00:11:54.05 date 2004.12.03 19:14:45
a výsledkem bude jeden či více souborů s názvem our_video001.avi
ve formátu dv2
.
Volba --autosplit
detekuje začátek nového záznamu a výsledkem této
volby je několik *.avi
souborů, podle počtu
přerušení nahrávání záznamu digitální kamerou.
Formát dv2
je avi
s oddělenou audio a video stopou -
tento formát je náročnější na místo na disku, ale zato jej podporuje více
aplikací při případném dalším zpracování.
Zadáte-li místo volby --format dv2
volbu
--format jpeg
získáte na výstupu místo videa tisíce fotek ve
formátu *.jpg
.
Myslím si, že není potřeba popisovat nějak podrobně jednotlivé volby programu
dvgrab
, pozorní čtenáři si jistě všechny možnosti nastavení
naleznou v manuálové stránce tohoto programu.
Pokud je disk příliš pomalý na záznam videa z kamery nebo pokud při záznamu provádíte další
operace náročné na práci s diskem bude program dvgrab
zahazovat některé snímky
o čemž vás bude informovat.
Doufám, že se všem povedlo díky tomuto návodu získat video z digitální kamery do počítače, pokud ano, tak první nejtěžší krok máte úspěšně za sebou a můžete svému tučňákovi blahopřát jak je šikovný - zbytek už je jen o konverzi a editaci videa pod Linuxem.
Dvgrab samozřejmě není jediný program pro získání videa z digitální kamery, ale
protože jsem velkým zastáncem příkazové řádky díky efektivitě práce v ní, tak
jsem po tomto programu sáhl nejdříve a uvedl jsem ho jako první možnost. V
dalších článcích zmíním i jiné, grafické programy, které toto také umí a každý
nechť si vybere co mu nejlépe vyhovuje. Já však zůstanu u programu
dvgrab
.
Případné otázky a náměty směřujte do diskuze pod článkem. V dalším článku se podíváme na to, jak video převést do jiného formátu.