Hrátky s webkamerou

Uvažujete-li o koupi webové kamery, nevíte jakou si pořídit, ale ještě jste nehledali informace na internetu, autor článku to už za vás udělal.

2.8.2006 06:00 | František Bublík | přečteno 23876×

Webové kamery se dnes těší stále větší oblibě. Jejich prostřednictvím se můžete podívat do různých koutů světa, případně nahlédnout do soukromí jedinců, kteří vám to umožní. Používají se v komunikačních programech jako je MSN, Skype, Gnomemeeting a dalších. Jejich cenová dostupnost přímo vybízí k všestrannému využití. Pokud vlastníte počítač a webkameru, můžete si třeba po domácku vytvořit dálkové hlídání svého bytu přes internet. Budete-li chtít, můžete rovněž zpřístupnit (za úplatu) obrázky ze svého bytu široké veřejnosti. Možností je spousta.

V linuxu dnes najdeme podporu pro celou řadu USB kamer. Samozřejmě před nákupem webkamery je vhodné projít internet a prozkoumat aktuální podporu konkrétních značek a typů v linuxu. Před nákupem webkamery můžete navštívit například stránku http://mxhaard.free.fr/spca5xx.html, kde najdete opravdu slušný počet podporovaných USB kamer. Právě tak jsem to udělal já.

Kameru jsem kupoval už před časem a vybíral ji podle počtu hvězdiček v pravém sloupci tabulky (na výše zmíněné stránce), které označují kvalitu. Vzhledem k dostupnosti na našem trhu mi jako kompromisní řešení vyšla kamera Labtec WebCamPro. Díky ovladači obsaženému v distribuci "spca5xx" jsem kameru rychle zprovoznil. Ovladač je vlastně jaderný modul, který je potřeba vždy zkompilovat ke konkrétnímu jádru. Současné distribuce zjednodušují tento proces zavedením systému "dkms" (Dynamic Kernel Module Support). Distribuují se tak ovladače například k interním modemům, grafické kartě apod. Systém "dkms" zkontroluje při každém bootu verzi jádra a daného modulu, a v případě lišících se verzí provede novou kompilaci. Od správce systému to samozřejmě vyžaduje mít pořádek ve verzích zdrojových kódů jádra. Zmiňuji se o tom proto, že například při updatech Mandrivy se zdrojové kódy aktualizují automaticky, ale jádro samotné nikoli. To se vždy musí nainstalovat ručně a tak snadno dojde k situaci, kdy se verze zdrojů a jádra rozejdou. Instalace balíčku dkms-spca5xx proběhne bez problému, systém urpmi vyřeší případné závislosti.

Tento celkem snadný způsob instalace je vykoupen poněkud starší verzí ovladače spca5xx. Například v Mandrivě 2006 je jako součást distribuce balíček ve verzi 0.57.00 přičemž na domovské stránce najdete v současné době verzi 0.60.00. Zároveň jsou zde odkazy na připravené balíčky pro různé distribuce dokonce i pro FreeBSD a NetBSD. V současné dobně lze získat rpm balíčky ve verzi 0.60.00 pro Cooker, ovšem ty zase budou vyžadovat balíčky dkms určené pro Cooker a bůhvíco budou vyžadovat zase tyto, takže je na každém, co zvolí. Já jsem nakonec skončil u ruční kompilace, která proběhla v pořádku a rychle. Po zkopírování přeloženého modulu do "/lib/modules/2.6.12-22mdk/kernel/drivers/usb/media/" je dobré, jak známo, zadat ještě příkaz "depmod -A".

Ovladači se věnují dva francouzští vývojáři a na svém webu prohlašují, že žádný z výrobců jim nepomáhá například poskytnutím specifikací jednotlivých kamer. Vše tedy vzniká reverzním inženýrstvím, a proto také ovladače neposkytují různé speciální vychytávky u webových kamer, ale jen základní funkce. Například moje kamera má na sobě tlačítko pro rychlé zachycení snímku, které funguje jen s originálními ovladači pod windows. Osobně mi absence této funkce vůbec nevadí, vše mohu nahradit softwarově. Nutno říci, že se mi nepovedlo rozchodit mikrofon (USB), který je součástí kamery. Systém jej sice vidí jako USB device 0x46d:0x8a2 a přiřadí mu zařízení /dev/dsp1, dokonce jej můžu přepnout v kmixeru, ale zfunkčnit se mi jej nepovedlo. Protože již dlouho používám jiný mikrofon, který je zapojen do zvukové karty, ani jsem tuto věc nějak intenzivně neřešil.

Na výše uvedené stránce naleznete kromě ovladače také několik utilit pro práci s webkamerou. V balíčku spcagui20060127.tar.gz je obsažen grafický prográmek pro ovládání kamery. Jeho prostřednictvím lze zobrazit obraz z kamery na monitoru, nastavit jas a kontrast, udělat statický snímek, nebo zachytit video ve formátu *.avi.

spcagui_image

Dále zde najdete balíček konzolových prográmků spcaview, spcaserv a spcacat. Programy neoplývají zrovna bohatou dokumentací, ale podle údajů z domovské stránky by měly umět následující. Spcaview by měl umět přijímat videostream, nahrávat a přehrávat video zachycené z kamery ve formátech MJPG, I420, RGB16, RGB24 nebo RGB32 a raw data RAWD. Lze u něj zvolit vstupní normu PAL, SECAM, NTSC a vstupní kanál CBVS nebo S-VIDEO.

Spcaserv je vícevláknový server pro streamování videa, jako klient se k němu používá spcaview. Spouští se tedy na jednom pořítači "spcaserv -d /dev/video0 -w 5555", parametr -w nastavuje číslo portu, na kterém bude server očekávat spojení s klientem. Z ostatních počítačů na síti se připojíme příkazem "spcaview -w ip_adresa_spcaserveru:5555". Číslo portu je volitelné.

spcagui_image

Spcacat je jednoduchý zachytávač obrázků. Parametrem -p nastavíte v milisekundách čas, který program počká před zachycením dalšího snímku a parametrem -N počet snímků, po jejichž zapsání na disk program sám skončí. Při nezadání parametru -N program musíme vypnout klasickou kombinací kláves Ctrl - c. U všech tří prográmků funguje parametr -h, který vypíše jejich volby s krátkým popisem.

Výše zmíněné programy jsou funkčně jednoduché, ale vypadají velmi sympaticky, a tím, že jsou napsány tvůrci ovladače, dávají naději na spolehlivý chod. Osobně také používám programy obsažené v distribuci jako Camstream, webcam_server a CamE, o kterých si něco povíme příště.

Online verze článku: http://www.linuxsoft.cz/article.php?id_article=1291