GuiguiAbloc

Tag: zoneminder

Vidéosurveillance avec webcam usb et ZoneMinder

par guiguiabloc le 03 oct, 2008, sous geekerie, linux, matériel

S’il y a bien une chose où je suis à la ramasse, c’est tout les gadgets censé composé un pc normal.

En l’occurence par exemple, une webcam.

Une petite publicité e.leclerc dans ma boîte aux lettres (celle en feraille dehors, pas l’autre la vrai…), me fit part d’une promotion sur les webcams et poussait par je ne sais quelle envie compulsive, j’ai donc fait l’acquisition d’une Logitech S 5500 pour 49 euros.

 

Logitech S5500

 

Ne me croyez pas idiot, j’ai quand même vérifier sur le nain ternet qu’elle fonctionnait sous Linux.

 

Cette webcam fonctionne avec le driver UVC V4L2 (http://linux-uvc.berlios.de/)

 

Si vous avez un kernel récent (supérieur au 2.6.26-rc9), il est inclus dedans, sinon, tout comme moi, recompiler le noyau pour intégrer le support V4L que j’avais désactiver :

 

<*> Video For Linux

       [*]   Enable Video For Linux API 1 (DEPRECATED)

       ---   Enable Video For Linux API 1 compatible Layer

       [*]   Video capture adapters  --->

       [ ]   Radio Adapters  --->

       < > DVB for Linux

       [*] DAB adapters

 

Video capture adapters

     [ ]   Enable advanced debug functionality

     [*]   Autoselect pertinent encoders/decoders and other helper chips

     [*]   V4L USB devices  --->

 

Et pis c’est tout.

 

Après c’est du standard :

svn checkout svn://svn.berlios.de/linux-uvc/linux-uvc/trunk
make
make install
rmmod uvcvideo
modprobe uvcvideo

 

Pour streamer facilement et sans bouffer les ressources CPU, il existe un excellent outil : UVCSTREAMER.

 

On récupère les sources :

svn co https://mjpg-streamer.svn.sourceforge.net/svnroot/mjpg-streamer

On s epositionne dans le bon répertoire :

cd uvc-streamer
make
cp ./uvc_stream /usr/local/bin

Et voila, vous pouvez lancer le stream :

/usr/local/bin/uvc_stream -f 1 -r 320x240 -b

l’option f = le nombre de frame par seconde

l’option r = la résolution

l’option b = en tache de fond

bref -h vous donnera toutes les options.

 

Un petit tour de navigateur sur l’ip du pc : http://ipdupc:8080

Et voila, le flux s’affiche, magique.

 

C’est rigolo mais pas assez geek…

 

Après quelques recherches sur divers forums, je découvris enfin un produit intéressant et opensource : ZoneMinder.

Je vous laisse lire la présentation succinte ICI .

 

Si vous êtes sous Debian SID, le package est présent dans les dépôts.

 

Pour les autres, comme moi, qui etes sous Etch, vous devez vous coltiner tout à la main.

 

Les dépendances sont nombreuses (mysql5-dev, apache2, php5, pleins de modules perl etc…)

Le moyen le plus simple est de se baser sur les dépendances de SID sur http://packages.debian.org/sid/zoneminder et de l’adapter à Etch.

 

On downloade les sources ICI .

 

J’ai utiliser les option des compilation suivantes :

./configure –prefix=/opt/zoneminder –with-libarch=lib –with-webdir=/opt/www/zm –with-cgidir=/opt/www/zm/cgi-bin –with-webuser=www-data –with-webgroup=www-data ZM_SSL_LIB=openssl

make

J’ai eu quelques soucis à la compilation, surtout dans le fichier zm_mpeg.cpp, et bourin, j’ai virer le bout de code génant dedans :-)

 

Ensuite, on créer une base mysql et on injecte le SQL dedans :

 

cd db
mysql -u root -p -h localhost
mysql -u root -p -h localhost < zm_create.sql
mysql -u root -p -h localhost

puis

make install

 

Un petit vhost sous Apache2 dans le genre :

 

<VirtualHost 192.168.0.1:80>
ServerAdmin webmaster@localhost

DocumentRoot /opt/www/zm

<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /opt/www/zm>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all

</Directory>
ScriptAlias /cgi-bin/ /opt/www/zm/cgi-bin/
<Directory « /opt/www/zm/cgi-bin/ »>
AllowOverride None
Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
</VirtualHost>

Et voila, vous pouvez lancer le bouzin :

zmpkg.pl start

La documentation est bien faite pour pouvoir vous dépatouiller :

http://www.zoneminder.com/wiki/index.php/Documentation

 

 

Le problème sur lequel j’ai passer le plus de temps, c’est la gestion directe de ma webcam par ZoneMinder.

 

Impossible de la faire marcher avec des erreurs dans tout les sens et après avoir essayer toutes les bidouilles possibles, j’ai découvert que le support V4L2 n’est pas encore supporté !!! :-(

 

Argh… il faudra attendre la version 1.24.

 

Mais pas de soucis, ZoneMinder sait lire un flux distant.. donc celui d’UVCStreamer :-D

 

zm1

zm2

zm3

 

Un clic sur Cam01 et une fenêtre s’ouvre pour voir ce qu’il se passe en direct (mode monitor).

En mode Record, cela enregistre (dingue non :-) )

 

La force de ce logiciel, c’est la définition de zone dans votre flux webcam. Vous pouvez sélectionner certaines zones de surveillance et de non-surveillance et pour lequel vous établissez des actions d’alarmes (envoi d’un mail, d’un sms, enregistrement de la vidéo et transfert en FTP etc…)

 

Bref, un VRAI logiciel de Vidéosurveillance.

 

Je vous invite chaudement à consulter la page de Marcel Ryser ici : http://www.m-ryser.ch/surveillance.php

 

Savez également que ZoneMinder sait utiliser le protocole X10 (pour la domotique).

 

Bref, je n’ai pas fait tout le tour des possiblités de ZoneMinder mais il est vraiment impressionnant et les forums sont très actifs.

 

Vous pouvez mettre plusieurs webcam bien sûr et devenir le Bigbrother de votre domicile :-D :-D

 

1984

 

EDIT : Comme me le signale un visiteur, je vous rappelle que la videosurveillance est soumise aux lois en vigueur dans notre pays.

Ah ces commerciaux, ils sont très fort pour nous coller des backlinks :-p (après enquète, cette société est tellement plus intéréssée par sa pub et son CA que par l’esprit Opensource que je vire le backlink)

Si par contre, au point de vue professionnel, la vidéosurveillance vous intéresse, allez la :

http://www.entreprise-transparence.com/

Eux, ce sont des vrais, des pros, des purs ;-)

 

15 Commentairess :, , plus...

Vous cherchez quelque chose ?

Utilisez le formulaire ci-dessous:

Vous ne trouvez pas ce que vous voulez ? Laisser un Commentaire sur un Billet !

Special Copinage!

Quelques sites amis ou recommandés...