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. | czytane 19447×
RELATED ARTICLES
KOMENTARZE
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.