Webkamera v linuxe
Autor: Dušan Koleno | Vydaný: 25.07.2008
V tomto článku by som chcel popísať prácu s webkamerami v linuxe a zároveň predstaviť pár programov, ktoré dokážu video alebo obrázky z webkamery uploadovať na web.
Webkameru v linuxe nie je vždy najľahšie spojazdniť, ak natrafíte
na model, ktorý ešte pre linux nemá ovládač, zostáva už len čakať, alebo
napísať si vlastné ovládače. Naštastie, v súčastnosti už väčšina kamier
pod linuxom funguje dobre. Asi najznámejší ovládač pre kamery v linuxe je
gspca (v minulosti spca5xx), ktorý podporuje stovky kamier.
Vo väčšine distribúcii sa už nachádza nainštalovaný alebo v podobe balíčku.
S týmto ovládačom zavedeným v jadre stačí už len kameru zapojiť do USB portu. Po zapojení sa
v priečinku /dev objaví nová položka video0 (1,2....), ak sa tak stalo, kamera je funkčná a pripravená na použitie.
Ďalšie ovládače môžete nájsť na googli.
Dnes už existuje aj akýsi štandart na prenos videa cez usb, ktorý v linuxe implementuje Linux UVC driver. Tento štandart je niečo ako USB Mass Storage pre USB kamery. V budúcnosti by ho mali podporovať ďalšie a ďalšie modely kamier.
Webkamera na stránke
Veľmi častým javom na webových stránkach je webkamera, ktorá zobrazuje periodicky obrázky, napríklad každú hodinu. Na takéto účely slúži program webcam. Dokáže obrázok pravidelne z kamery stiahnuť a následne ho odoslať pomocou ftp alebo ssh.
Tu je ukážka jeho konfiguračného súboru prevzatá z manuálu:
[grab] device = /dev/video0 text = "webcam %Y-%m-%d %H:%M:%S" infofile = filename fg_red = 255 fg_green = 255 fg_blue = 255 width = 320 height = 240 delay = 3 wait = 0 input = composite1 norm = pal rotate = 0 top = 0 left = 0 bottom = -1 right = -1 quality = 75 trigger = 0 once = 0 [ftp] host = localhost user = meno pass = heslo dir = public_html/images file = webcam.jpeg tmp = uploading.jpeg passive = 1 debug = 0 auto = 0 local = 0 ssh = 0
Ako vidíte skladá sa z dvoch častí [grab] a [ftp]. V prvej časti nastavujeme umiestenie v priečinku /dev, text v obrázku, vlasnosti a veľkosť výsledného obrázku. Treba si všimnúť premennú "delay", ktorá udáva frekvenciu ukladania obrázkov v sekundách. Do premennej "text" môžeme vkladať aj dátum pomocou premenných: %Y - rok, %m - mesiac, %d - deň, %H - hodina, %M - minúta, %S - sekunda.
Druhá časť [ftp] sa zaoberá prenosom na server, kde postupne zadáme adresu, meno a heslo používateľa, umiestnenie obrázku a nastavenia prenosu. Ak sa voľba "ssh" rovná "1", obrázok sa prenesie cez ssh.
Tento program dokáže len obrázok stiahnuť a následne ho odoslať. V nasledujúcej časti popíšem program, ktorý dokáže rozoznať pohyb, a podľa toho aj vytvárať obrázky alebo video.
Snímanie pohybu
Ďalší program sa nazýva 'motion'. Je to veľmi obsiahly program na zaznamenávanie pohybu a na to následne viazané akcie. Ak zaznamená pohyb, dokáže ihňeď zaznamenať sériu obrázkov, videí, alebo spustiť externý program. Využiť ho môžete aj ako lacný video server, kde bude pomocou obyčajnej webkamery sledovať priestory a chrániť ich tak pred vykradnutím.
Ja používam pre zaznamenávanie pohybu tento konfiguračný súbor:
daemon off videodevice /dev/video0 height 240 width 320 target_dir /var/www/webcam jpeg_filename webcam-%Y-%m-%d-%T threshold 150 gap 3000 locate off minimum_gap 6 text_left Zaznam_pohybu
Postupne popíšem jednotlivé nastavenia:
- daemon - on/off - program sa buď spustí alebo nespustí ako služba,
- videodevice - umiestnenie v /dev,
- height a width - výška a šírka,
- target_dir - cieľový priečinok,
- jpeg_filename - názov obrázku, taktiež môžme využiť premenné,
- threshold - určuje počet zmenených pixelov v obrázku, aby bol obrázok zaznamenaný ako pohyb (predvolených je 1500),
- gap - počet sekúnd, po ktorých sa môže obrázuk stiahnuť aj keď nebol vykonaný pohyb,
- locate - do obrázku nám vkreslí štvoruholník, kde bol zaznamenaný pohyb (predvolená hodnota je off),
- minimum_gap - frekvencia počtu obrázkov za sekundu, ktoré sa majú ukladať, ak bol zaznamenaný pohyb,
- text_left,text_right - vpíše do obrázku text, buď vľavo alebo vpravo.
Okrem použitých nastavení v mojom konfiguračnom súbore sú zaujímavé tieto:
- on_motion_detected - spustí program, ktorý sa vykoná pri zaznamenaní pohybu,
- brightness,contrast,hue - nastavenie jasu, kontrastu a farby obrázku.
Samozrejme toto nie sú všetky nastavenia. Ďalšie desiatky nastavení nájdete na stránke programu motion. Okrem obyčajného snímania obrázkov dokáže 'motion' zaznamenať video, alebo spustiť vlastný webcam http server.
Kombináciou určitých nastavení sa dá aj program 'motion' nastaviť na obyčajné pravidelné snímanie obrázkov, ale na to sa viac hodí predošlý program.
Pri problémoch s nastavením vám radi poradia v poradni na Abclinuxu.cz, alebo vo fóre Linuxos.sk.


