LINUXSOFT.cz Přeskoč levou lištu

ARCHIV



   

> Hrátky s webkamerou II.

Další článek k tématu webových kamer. Tentokrát se týká programu webcam_server, kterým můžete celkem jednoduše zpřístupnit vaši webovou kameru na síti.

27.9.2006 06:00 | František Bublík | Články autora | přečteno 13199×

Rád bych zde představil program, který mne zaujal svou praktickou stránkou a jednoduchým použitím. Jedná se o malý řádkový prográmek, který naleznete na jeho domovské stránce, nebo přímo jako distribuční balíček. Tento program zpřístupní jednoduchým způsobem obrázky z vaší webové kamery. Ke svému běhu ani nepotřebuje prostředí X. Jako klient se používá jakýkoli webový prohlížeč, který zobrazuje jpeg obrázky. Představte si následující situaci. Odjíždíte na dovolenou, berete si s sebou svůj notebook a doma necháte zapnutý počítač se zapojenou webkamerou a s běžícím webcam_serverem. Pak se odkudkoli přes internet připojíte ke svému počítači na port 8888 a můžete se podívat, jestli vám za dobu co jste pryč neuvadly květiny.

Nic samozřejmě nebrání tomu, abyste vytvořili webovou stránku s vaší kamerou a tu pak zpřístupnili celému internetovému světu. V následujících řádcích si ukážeme jak na to. Základním předpokladem je funkční, v linuxu fungující webová kamera. Můžete se inspirovat například předcházejícím článkem "Hrátky s webkamerou", nebo hledat další informace na internetu. Množství podporovaných kamer stále roste. Dalším předpokladem je veřejná IP adresa počítače, na kterém webcam_server poběží. V tomto článku nebudu řešit situaci, kdy veřejnou IP adresu nemáte, ale vlastníte nějaký webový prostor, na který můžete nahrávat své stránky. Pak sice můžete webovou kameru provozovat také, ale pro tento účel bude vhodnější jiný program, o němž si něco povíme příště.

Takže máme připojenou kameru k počítači a spouštíme program:

[ bfu@mujpocitac ~ ]$ webcam_server -d /dev/video0 -g 640x480 -x

Parametr -d označuje video zařízení ze kterého se mají číst snímky. V příkazu uvedené /dev/video0 má program defaultně nastavené, ale v případě že vlastníte třeba televizní kartu, v systému se vám objeví /dev/video1 a pak je nutné určit parametrem -d to správné zařízení, ke kterému přistupuje vaše kamera. Další parametr -g znamená geometrii obrazu a musí být uveden se správnou hodnotou, kterou vaše webová kamera podporuje. Parametr -x znamená prohození barev RGB => BGR, pokud je obraz do modra, nebo do červena. To záleží na způsobu naprogramování ovladače vaší kamery a softwaru, který s ní komunikuje. Po zadání předcházejícího příkazu se již můžete připojit internetovým prohlížečem na http://localhost:8888 a uvidíte obrázek z kamery. Webcam_server má celou řadu dalších parametrů, kterými si můžete jeho činnost přizpůsobit podle svých potřeb.

-c #vloží do obrázku textový řetězec s datem a časem vzniku obrázku
-fh -fv #prohodí obrázek horizontálně nebo vertikálně
-q #nastaví kvalitu jpeg komprese v hodnotách 0 - 100%
-G #můžete si pohrát s nastavením gama v hodnotách od -100 do 100
-p #nastaví port, na kterém bude program očekávat klienty - defaultně 8888

Pro další volby je tu manuálová stránka , kde se dozvíme vše ostatní. Ještě jednou se vrátím k prohození RGB => BGR barev. Tahle věc se může někdy nastavit už na úrovni jaderného modulu. V případě spca5xx je to parametr force_rgb=1, který se zapíše do /etc/modprobe.conf. Na úrovni modulu jde nastavit třeba i jas a kontrast, záleží na tom, co který modul podporuje. Výhodou pak může být omezení parametrů spouštěného softwaru. Možná ne každý ví, že si může nechat vypsat všechny volby modulu příkazem modinfo. Protože informací o modulu může být někdy opravdu mnoho, je výhodné si příkaz filtrovat přes grep. Následující příkaz vypíše všechny parametry, které přijímá modul spca5xx.

[ bfu@mujpocitac ~ ]$ modinfo spca5xx | grep parm

Nyní si již můžeme spustit webový prohlížeč např. firefox a do adresového řádku zadat http://localhost:8888 Po přímém připojení prohlížeče na port 8888 uvidíme statický obrázek. Chceme-li vidět další obrázek musíme použít tlačítko k obnovení stránky. Pro mrknutí se přes internet do bytu, jestli nás někdo nevykradl to sice stačí, ale pro veřejnou webkameru ne. Je tedy potřebné vytvořit html stránku, která bude obrázek pravidelně obnovovat. Program má v manuálové stránce návrh java appletu, který můžete vložit do vámi vytvořené html stránky. Stránka může být napsána například takto:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="content-type">
<title>Webcam</title>
</head>
<body>
<div style="text-align: center;"><br>
Webová kamera<br>
<hr style="width: 100%; height: 2px;"><br>
</div>
<div style="text-align: center;">
<applet code="WebCamApplet.class" archive="applet.jar" height="240"
 width="320"><param value="http://localhost:8888" name="URL"><param
 value="1" name="FPS"><param value="320" name="width"><param value="240"
 name="height"></applet></div>
</body>
</html>

Zároveň v adresáři /usr/share/doc/webcam_server-0.4 najdeme soubory potřebné pro korektní běh appletu, které zkopírujeme do adresáře s html stránkou. Java applet přináší některé výhody, ale zároveň má své stinné stránky. Výhodou je určitý komfort, kdy si v prohlížeči můžete v kontextovém menu zvolit rychlost obrazového streamu v hodnotách 0.1 - unlimited FPS. V případě, že applet nenajde běžící webcam_server zobrazí chybovou hlášku na tmavém pozadí.

Webcam

Stránky s různými applety jsou k nalezení na internetu mimo jiné i na adrese, kerou uvádím níže. Takových stránek jsem zkoušel několik a rád bych zde zmínil nevýhody java appletu. Za prvé počítač, ze kterého chcete kameru sledovat musí mít nainstalovanou javu, což nemůžete u klientů na internetu zajistit. Za druhé java applet je hodně náročný na výkon počítače, zkoušel jsem několik podobně napsaných appletů a všechny zatěžovaly procesor více než přes polovinu. Je sice pravda, že ve výsledku běží jeden applet vždy na klientském počítači, ale uživatelé, kteří si budou prohlížet stránku, určitě budou potřebovat výkon počítače i na jiné věci než je upload snímků do prohlížeče. Mnohem výhodněji se jeví použití javascriptu ve stránce. Javascript podporují všechny hlavní prohlížeče IE, Firefox, Mozilla, Opera a mají jej defaultně zapnutý. Přestože javascript plní stejný účel jako applet, nemá celkem žádné nároky na procesor a nevyžaduje instalaci javy. Stránka s javascriptem (pro lepší orientaci je vyznačen červeně) by mohla vypadat například takto ...

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01
Transitional//EN">
<html>
<head>
<meta content="text/html; charset=ISO-8859-2"
http-equiv="content-type">
<title>Moje webová kamera</title>

<script language="Javascript">
<!-- hide
var x = 10;
var y = 1;
var now;
function startClock() {
x = x-y;
document.form1.clock.value = x;
if (x <= 0) reload();
timerID = setTimeout("startClock()", 1000);
}
function reload() {
now = new Date();
var camImg = "http://localhost:8888" + "?" + now.getTime();
document.campicture.src = camImg;
x = 10;
document.form1.clock.value = x;
}
// end hide -->
</script>

</head>
<body onload="startClock()" font face="Arial,Helvetica,Verdana" 
style="background-color: gray; color: rgb(0, 0, 0);" 
alink="#ee0000" link="#0000ee" vlink="#551a8b">
<center>
<h1><font size="-1">MOJE WEBOVÁ
KAMERA</font></h1>
<p>
<p><font size="-1">
<img name="campicture" src="http://localhost:8888" 
alt="My WebCam Image" border="5" 
height="288" width="352"><br>
</font></p>
<form name="form1"><font
size="-1">Automatické obnovení za</font>
<input name="clock" size="2" value="" type="text">sekund.
<br>
Obrázek se obnovuje intervalu 10 sekund.
</p>
<hr width="225"> 
<br>Jednoduché příklady podobných stránek
<b><i><a
href="http://developers.webcamworld.com//templates.html"
target="_top">WebCam
World</a></i></b><br>
</form>
</center>
</body>
</html>

Všimněte si, že jako adresa obrázku je ve zdrojovém kódu uveden http://localhost:8888 což je jen příklad pro testování stránky na vlastním počítači. Pokud chcete zpřístupnit obrázek jiným počítačům, musíte zde uvést vaši IP adresu. Dále si všimněte, že adresa obrázku je uvedena dvakrát. Jednou v javascriptu a pak ještě ve stránce v tagu <img name> . Další, jednoduché příklady html stránek pro použití webkamery najdete na této adrese. Tam jsem čerpal i já. Stránku si pak už přizpůsobit vlastnímu vzhledu není velký problém. Pokud neumíte vytvářet webové stránky, stačí si v libovolném textovém editoru otevřít výše uvedený zdrojový kód, přepsat v něm nadpisy, místo "localhost" vložit správnou IP adresu a soubor uložit například jako index.html. Jak se stránkou dále naložit? Stačí ji mít uloženou lokálně na disku počítače, na kterém si chcete obrázky z webkamery prohlížet. Pokud bude souhlasit IP adresa a port webcam_serveru, prohlížeč vám zpřístupní webkameru odkudkoli z internetu.

Chcete-li webkameru "zveřejnit", bude potřeba zprovoznit nějaký http server a stránku na něm vystavit. Jedna z možností je program "Boa server", o němž píše na abclinuxu pan Vondráček. Tento server je velmi jednoduchý s omezenými funkcemi, ale velmi snadno se nastavuje. Konfigurační soubor se jmenuje boa.conf a v Mandrivě je k nalezení v /etc/boa/boa.conf. Snad jen upozorním na dvě volby, nebudete-li mít chuť studovat další články a návody ;-) . První volbou je MimeTypes, kde uvádíte cestu k souboru mime.types - obvykle umístěnému v adresáři /etc. Háček je v tom, že v balíčku Boa serveru soubor mime.types nenajdete. Pokud se soubor nachází ve vaší distribuci, není problém, jen k němu uvedete správnou cestu. Pokud ne, je řešením zkopírovat jej z balíčku Apache a uložit do /etc. Další volbou, kterou musíte správně zadat je DefaultRoot, kde uvádíte adresář obsahující vaší www prezentaci. V adresáři musí být minimálně stránka s názvem index.html.

MimeTypes /etc/mime.types
DefaultRoot /var/www

U všech souborů ve webovém adresáři (DefaultRootu) je nutné nastavit právo ke čtení pro všechny uživatele, protože Boa server povoluje přístup k souborům na základě těchto práv. Umístíte-li do adresáře vaši stránku napsanou pro webkameru pod názvem index.html, tak po spuštění Boa serveru je už vaše webkamera viditelná na internetu.

Webcam_server provozuji v domácích podmínkách, neměl jsem možnost jej zkoušet při větší zátěži. Pro masivnější nasazení by určitě bylo dobré jej otestovat. Mám vyzkoušené, že při obsluze čtyř klientů současně chodí spolehlivě. Program je vhodný pro poskytování obrázků z webové kamery na vnitřní síti nebo internetu, v druhém případě je ovšem potřeba veřejná IP adresa a dostatečně propustná linka. V současné době webcam_server preferuji při svých hrátkách s webovou kamerou.

Odkazy:

Hrátky s webkamerou
http://webcamserver.sourceforge.net/
http://developers.webcamworld.com/templates.html
http://www.abclinuxu.cz/clanky/multimedia/linuxova-webkamera

Verze pro tisk

pridej.cz

 

DISKUZE

Hratky s webkamerou.... 28.9.2006 20:53 jafa007




Příspívat do diskuze mohou pouze registrovaní uživatelé.
> Vyhledávání software
> Vyhledávání článků

28.11.2018 23:56 /František Kučera
Prosincový sraz spolku OpenAlt se koná ve středu 5.12.2018 od 16:00 na adrese Zikova 1903/4, Praha 6. Tentokrát navštívíme organizaci CESNET. Na programu jsou dvě přednášky: Distribuované úložiště Ceph (Michal Strnad) a Plně šifrovaný disk na moderním systému (Ondřej Caletka). Následně se přesuneme do některé z nedalekých restaurací, kde budeme pokračovat v diskusi.
Komentářů: 1

12.11.2018 21:28 /Redakce Linuxsoft.cz
22. listopadu 2018 se koná v Praze na Karlově náměstí již pátý ročník konference s tématem Datová centra pro business, která nabídne odpovědi na aktuální a často řešené otázky: Jaké jsou aktuální trendy v oblasti datových center a jak je optimálně využít pro vlastní prospěch? Jak si zajistit odpovídající služby datových center? Podle jakých kritérií vybírat dodavatele služeb? Jak volit vhodné součásti infrastruktury při budování či rozšiřování vlastního datového centra? Jak efektivně datové centrum spravovat? Jak co nejlépe eliminovat možná rizika? apod. Příznivci LinuxSoftu mohou při registraci uplatnit kód LIN350, který jim přinese zvýhodněné vstupné s 50% slevou.
Přidat komentář

6.11.2018 2:04 /František Kučera
Říjnový pražský sraz spolku OpenAlt se koná v listopadu – již tento čtvrtek – 8. 11. 2018 od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5). Tentokrát bez oficiální přednášky, ale zato s dobrým jídlem a pivem – volná diskuse na téma umění a technologie, IoT, CNC, svobodný software, hardware a další hračky.
Přidat komentář

4.10.2018 21:30 /Ondřej Čečák
LinuxDays 2018 již tento víkend, registrace je otevřená.
Přidat komentář

18.9.2018 23:30 /František Kučera
Zářijový pražský sraz spolku OpenAlt se koná již tento čtvrtek – 20. 9. 2018 od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5). Tentokrát bez oficiální přednášky, ale zato s dobrým jídlem a pivem – volná diskuse na téma IoT, CNC, svobodný software, hardware a další hračky.
Přidat komentář

9.9.2018 14:15 /Redakce Linuxsoft.cz
20.9.2018 proběhne v pražském Kongresovém centru Vavruška konference Mobilní řešení pro business. Návštěvníci si vyslechnou mimo jiné přednášky na témata: Nejdůležitější aktuální trendy v oblasti mobilních technologií, správa a zabezpečení mobilních zařízení ve firmách, jak mobilně přistupovat k informačnímu systému firmy, kdy se vyplatí používat odolná mobilní zařízení nebo jak zabezpečit mobilní komunikaci.
Přidat komentář

12.8.2018 16:58 /František Kučera
Srpnový pražský sraz spolku OpenAlt se koná ve čtvrtek – 16. 8. 2018 od 19:00 v Kavárně Ideál (Sázavská 30, Praha), kde máme rezervovaný salonek. Tentokrát jsou tématem srazu databáze prezentaci svého projektu si pro nás připravil Standa Dzik. Dále bude prostor, abychom probrali nápady na využití IoT a sítě The Things Network, případně další témata.
Přidat komentář

16.7.2018 1:05 /František Kučera
Červencový pražský sraz spolku OpenAlt se koná již tento čtvrtek – 19. 7. 2018 od 18:00 v Kavárně Ideál (Sázavská 30, Praha), kde máme rezervovaný salonek. Tentokrát bude přednáška na téma: automatizační nástroj Ansible, kterou si připravil Martin Vicián.
Přidat komentář

   Více ...   Přidat zprávičku

> Poslední diskuze

31.7.2023 14:13 / Linda Graham
iPhone Services

30.11.2022 9:32 / Kyle McDermott
Hosting download unavailable

13.12.2018 10:57 / Jan Mareš
Re: zavináč

2.12.2018 23:56 / František Kučera
Sraz

5.10.2018 17:12 / Jakub Kuljovsky
Re: Jaký kurz a software by jste doporučili pro začínajcího kodéra?

Více ...

ISSN 1801-3805 | Provozovatel: Pavel Kysilka, IČ: 72868490 (2003-2024) | mail at linuxsoft dot cz | Design: www.megadesign.cz | Textová verze