Vous êtes sur la page 1sur 10

Mise en place d'un systme de vido surveillance avec ZoneMinder

Mise en place d'un systme de vido surveillance IP l'aide du logiciels libre ZoneMinder

Nowicki Christophe <cscm@csquad.org>


Copyright Fvrier 2008 Nowicki Christophe Permission est accorde de copier, distribuer et/ou modifier ce document selon les termes de la Licence de Documentation Libre GNU (GNU Free Documentation License), version 1.1 ou toute version ultrieure publie par la Free Software Foundation. Pas de section inaltrable. Version v0.1 Historique des versions 2008-01-20 Premire version publique. CN

Table des matires


Prsentation ......................................................................................................... 1 Problmatique .............................................................................................................. 1 Architecture ................................................................................................................. 2 Zoneminder ................................................................................................................. 2 Matriel .............................................................................................................. 2 Serveur ....................................................................................................................... 3 Carte d'aquisition .......................................................................................................... 4 Cameras de vido surveillance ......................................................................................... 4 Alimentations ............................................................................................................... 5 Cablage ....................................................................................................................... 5 Budget Total ................................................................................................................ 5 Installation ........................................................................................................... 6 Zoneminder ................................................................................................................. 6 Configuration ....................................................................................................... 7 Base de donnes ........................................................................................................... 8 Apache ....................................................................................................................... 8 Faiblesses de la solution ......................................................................................... 8 Voix et enregistrement sonore ......................................................................................... 8 Coupure de courant ....................................................................................................... 8 Vitesse de transfert entre le serveur distant et le systme de vido surveillance .......................... 9 Ides d'amlioration et fonctionnalites avances ........................................................ 9 Interaction avec une PABX IP ......................................................................................... 9 Interfaces utilisateur ...................................................................................................... 9 Diffusion des images via le systme de TV Perso de la Freebox ............................................10 Lgislation ..........................................................................................................10 L'objectif de ce document est de dcrire l'installation et la configuration d'un systme de Systme de vido surveillance "Personnel". Ce systme se base sur un serveur de video surveillance tournant sous Debian GNU/ Linux et utilisant le logiciel libre Zone Minder. Le document dcrit la procdure complte de mise en place du systme (matriel, logiciel, installation et configuration).

Prsentation
Problmatique
1

Mise en place d'un systme de vido surveillance avec ZoneMinder

Pour des raisons de scurit, j'ai voulu faire l'acquisition d'un systme de vido surveillance, aprs un rapide tour du march, je suis arriv la conclusion suivante : La plupart des solutions proposes dans le commerce sont des botes noires, disposant de peu de fonctionnalits et qui ne sont pas accessibles pour un particulier ou une PME. Ces solutions sont basses sur du matriel ddi et des logiciels propritaires. Une solution base sur des logiciels libres et du matriel PC standard, apporte les avantages suivants :

Nombreuses fonctionnalits Evolutivit Matrise et comprhension du systme Matrise du cot

Architecture
Le systme de vido surveillance est architectur de la manire suivante : De 1 16 camras de vido surveillance sont contrles via une carte d'acquisition, celle-ci est branche directement sur un serveur (ou bien un PC standard). Celui-ci fonctionne l'aide du systme d'exploitation Debian GNU/Linux. L'ensemble de l'installation est pilot par le logiciel ZoneMinder et les vidos ou vnements capturs sont envoys directement sur un serveur distant.

Zoneminder
Il existe plusieurs solutions de vido-surveillance disponible sous GNU/Linux : Motion [http://www.lavrsen.dk/twiki/bin/view/Motion/WebHome], Palantir [http://www.fastpath.it/products/palantir/] et ZoneMinder [http://www.zoneminder.com/]. C'est ce derniere que j'ai souhait mettre en place, car il dispose des fonctionnalits suivantes :

Fonctionne sur toutes les distributions GNU/Linux ; Supporte aussi bien des camras analogiques, des webcams et des camras rseaux ; Dispose d'une interface web de contrle et de visualisation des vnements ; Permet d'envoyer l'aide du protocole FTP ou SMTP, les vnements sur une machine distante ; L'interface est traduite dans plusieurs langues dont le franais. Le logiciel est compos de plusieurs lments crits en C++, Perl et PHP. Les donnes sur les vnements sont stockes dans une base de donnes MySQL et les images captures par les camras sous forme de fichiers au format JPEG sur le disque dur.

Matriel
Pour mettre en place ce systme, les lments suivants sont ncessaires : un serveur, une carte d'acquisition, des camras, des alimentations et du cble. Dans ce document, je dcrits la 2

Mise en place d'un systme de vido surveillance avec ZoneMinder configuration du systme de vido surveillance que j'ai mis en place titre personnel. Cette configuration a t remise au got du jours, car mon installation plus d'un an et certains composants ne sont plus trouvables dans le commerce. Cette configuration est donne titre d'exemple, l'installation d'un systme de vido surveillance est assez complexe et ncessite parfois de ttonner. Dans chaque section de ce document, j'essaye de vous donner des informations pour dimensionner votre systme.

Serveur
Pour le choix de la machine qui fera office de serveur de vido surveillance, il faut faire attention aux points suivants :

Processeur
Pour le choix du processeur, les points les plus importants sont la consommation lectrique et la puissance du processeur. En effet, dans la plupart des cas votre machine fonctionnera 24h sur 24h et avec un processeur qui ne prend pas en charge la gestion de l'nergie, la facture risque de devenir rapidement sale. Pour cette raison, j'ai choisi un processeur de type Pentium M pour ordinateur portable. Car ces processeurs consomment peu d'nergie, produisent peu de chaleur et fournissent une bonne puissance de calcul. Une architecture base sur un Pentium M est difficile obtenir pour le grand publique, et les processeurs Code 2 Duo, fournissent les mme caractristiques aujourd'hui. Le systme de vido surveillance ncessite de la puissance processeur pour la capture et l'analyse des images. La puissance ncessaire varie fortement en fonction : du type d'images (couleur ou noir et blanc) de la taille des images du nombre d'images par secondes du nombre de camras de vido surveillance Les systmes multi-processeurs (SMP) sont parfaitement exploits par le logiciel, car celui-ci utilise un processus par camra.

Mmoire
Zoneminder utilise fortement le systme de mmoire partage entre processus (SHM, Shared Memory) pour changer les images entre les diffrents composants du systme. Pour connatre la quantit de mmoire partage ncessaire votre systme, il faut utiliser la formule suivante : (Nombre de pixels contenus dans l'image) x (Nombre de couleurs dans l'image) x (Nombre d'images dans le tempon de capture) x (Nombre de camras) x 1.1 Par exemple, pour 4 camras qui capturent des images d'une rsolution de 384x288 en 24bit, avec un tompon de 80 images : 4 x ( 384 x 288 ) x 24 x 80 x 1.1 = 934281216 bits, soit 116785152 kB, soit 114 MB. Un autre exemple, pour 4 camras qui capturent de images d'une rsolution de 640x480 en 24bit, avec un tompon de 80 images : 4 x ( 640 x 480 ) x 24 x 80 x 1.1 = 2595225600 bits, soit 324403200 kB, soit 316 MB. Pour des raisons videntes de performance, les pages de mmoire partage doivent tre 3

Mise en place d'un systme de vido surveillance avec ZoneMinder

obligatoirement stockes en mmoire vive. A cette utilisation mmoire, il faut ajouter la mmoire utilise par les autres applications telles que : Apache, PHP et MySQL. Pour cette raison, 1Go de mmoire vive est un minimum raisonnable pour ZoneMinder.

Stockage
L'ensemble des images captures par le systme de vido-surveillance est stock sur le disque dur du serveur. Pour connatre, l'espace disque ncessaire, il vous suffit de tlcharger, la feuille de calcul disponible sur le site de ZoneMinder : Storage Calc [http://www.jpwilson.eu/ZM_Utils/ZM%20storage%20calc%20sheet.xls] La formule utilis par cette feuille de style est la suivante : (Nombre d'images par secondes) x (Nombre de camras) x (Taille de l'image) x (Temps) L'lment le plus important du calcul est la taille de l'image, voici quelques exemples : Image couleur 384 x 288 en 8bit : 24ko Image couleur 384 x 288 en 24bit : 44ko Image couleur 640 x 480 en 8bit : 64ko Image couleur 640 x 480 en 24bit : 96ko Si on utilise, un systme qui capture sur 24h, 10 images par secones, l'aide de 4 camras dans une rsolution de 640 x 480 en 24bit, cela donne : 10 x 4 x 96 x 86400 = 331776000ko, soit 316 Go Comme en peut le constater l'espace disque ncessaire est trs important. Une petite astuce, pour gagner de la place sur cette espace de stockage et de lancer priodiquement le programme jpegoptim [http://www.kokkonen.net/tjko/projects.html]. Attention : par dfault ZoneMinder conserve tous les vnements capturs, je vous conseille vivement de mettre en place une routine qui efface automatiquement les anciens vnements.

Carte d'aquisition
Pour faire l'aquisition d'un carte de vido surveillance, je vous conseille de vous rendre sur le site de Blue Cherry [http://store.bluecherry.net/SearchResults.asp?Cat=63]. Ce fabriquant propose de nombreuses rferences. La plupart des cartes d'aquisition proposees sur ce site se base sur le chipset BT878. Ces cartes ne ncessitent aucune installation de drivers, elle sont directement prise en compte par le noyau via le driver BTTV.

Cameras de vido surveillance


Voici quelques notions et points qu'il faut prendre en considration lors du choix d'un modle de camra de vido-surveillance:

Capteurs CMOS ou CDD?


Il existe deux principaux types de capteurs pour les camras de vido-surveillance : CMOS [http://fr.wikipedia.org/wiki/CMOS] et CCD [http://fr.wikipedia.org/wiki/Charge-Coupled_Device]. La qualit de l'image varie fortement en fonction du type et de la qualit du circuit lectronique. Mais dans la pratique on peut dire que les camras qui utilisent des capteurs de type CCD sont plus 4

Mise en place d'un systme de vido surveillance avec ZoneMinder chres, plus consommatrices d'nergie mais de meilleure qualit. Les capteurs CMOS sont rserves au march d'entre de gamme. Mais attention, cela n'est pas forcment vrai dans tous les cas, car il existe d'excellentes camras CMOS, en rgle gnrale ces camras sont aides par le traitement numrique des donnes.

Type de camra (analogique, USB ou rseau)?


Zoneminder prend parfaitement en charge ces trois types de camras. Mais mon choix s'est port vers des camras de type analogique pour les raisons suivantes :

Le prix des camra de vido surveillance rseau est prohibitif. Le drivers des webcams sous Linux ne sont pas tous de bonne qualit (problme de fiabilit du driver, problme de vitesse de capture, etc...)

Capteurs Noir/Blanc ou Couleurs?


En terme de ressources, des images en couleurs ncessitent 3 4 fois plus de rsources en terme de puissance CPU, mmoire et espace disque. Et la couleur n'apporte que peu de bnfices en terme d'identification. Donc, dans 80% des cas une camra Noir/Blanc couvrrira vos besoins.

Camra filaire ou sans-fils?


Les fabriquants proposent des camra sans fils. qui utilisent les ondes radio pour transfmettre les images. Les systmes sans-fils prsentent peu d'intert, car il ne prsentent que peu de garanties au niveau de la scurit. C'est vous de choisir si vous voulez quelques cables dans votre maison ou bien votre tte sur la tlvision de votre voisin ;0)

Alimentations
Pour alimenter les camras analogiques, il faut utiliser un transformateur. Les deux principales caractristiques prendre en compte sont l'amprage et le voltage. La plupart des camras ncessitent une alimentation stabilise et un courant continu.

Cablage
La connexion entre la camra et la carte d'aquisition est ralise l'aide de cbles vidos analogiques de type BNC (75 Ohms) ou bien RCA. Vous pouvez changer le type d'extrmit avec des adaptateurs : RCA vers BNC et BNC vers RCA. Le meilleur choix pour le cablage est de prendre un cble qui fait la fois l'image et l'alimentation. Cela permet de n'avoir qu'un seul cble par camra.

Budget Total
Voil le budget de mon dploiement :

Tableau 1. Budget de l'installation


5

Mise en place d'un systme de vido surveillance avec ZoneMinder Composant CPU Carte mre Mmoire Produit retenu Intel Core 2 Duo E6750 Intel DG33FB Achet chez Materiel.net Materiel.net Prix unitaire Quantit TTC 170 1 100 1 52 1 Total TTC 170 100 52

Corsair Twin2X Materiel.net 2 x 1 Go DDRII PC6400 Seagate Materiel.net Barracuda 7200.10 SATA 250 Go - 16 Mo Cooler Master Elite RC-332 Materiel.net

Disque dur

62 1

62

Botier

35 1 45 1 110 1

35 45 110

Alimentation PC Antec Earthwatts Materiel.net 380 Onduleur MGE O.P.S. Materiel.net Protection Center 500 USB Bluecherry

Carte d'aquisition PV-153 - 4 port video, 4 port audio capture card (120FPS) Camera de vidosurveillance Alimentation pour camra Mini-camra CCD couleur avec support Srie d'alimentation P2EFSW3 12VDC 500mA

160 $ 1

160 $

Conrad lectronique Conrad lectronique

105 4

420

24 4

96

Cable

Cable de 20M Abix pour camra analogique (BNC + Alim)

42 4

168

A ce budget, il faut ajouter 10% pour ce qui concerne les frais de port et de douane.

Installation
Pour l'installation du systme, nous allons nous baser sur une distribution Debian GNU/Linux "etch" fraichement installe.

Zoneminder
Zoneminder est une application LAMP, qui ncessite les composants suivants :

Apache MySQL PHP FFMpeg

Mise en place d'un systme de vido surveillance avec ZoneMinder

libjpeg Nous allons procder l'installation de l'ensemble de ses lments :

Compilation de libjpeg avec le support des instructions MMX


La bibliothque jpeg de Debian est compile pour une architecture i386, par consquent les instructions MMX sont dsactives dans le paquet Debian. C'est extrmement gnant car l'absence de ces instructions pnalise les performances du processus de capture des images au format JPEG. Par consquent il est ncessaire de re-compiler le package Ubuntu (libjpeg-mmx) l'aide des instructions suivantes :

#cd /usr/src #apt-get install build-essential dpkg-dev wget gcc-3.3 #wget http://archive.ubuntu.com/ubuntu/pool/universe/libj/libjpeg-mmx/libjpe #wget http://archive.ubuntu.com/ubuntu/pool/universe/libj/libjpeg-mmx/libjpe #wget http://archive.ubuntu.com/ubuntu/pool/universe/libj/libjpeg-mmx/libjpe #dpkg-source -x libjpeg-mmx_0.1.5-4.dsc #cd libjpeg-mmx-0.1.5 #CC=gcc-3.3 dpkg-buildpackage -b #dpkg -i ../libjpeg-mmx-dev_0.1.5-4_i386.deb

Installation des packages Debian


Pour tous les autres programmes nous allons utiliser les packages Debian :

#apt-get install mysql-server-5.0 libapache2-mod-php4 php4-mysql ffmpeg

Compilation de Zoneminder
Pour la compliation et l'installation de ZoneMinder, il faut procder de la manire suivante : #apt-get install dh-make-perl #dh-make-perl --install --cpan PHP::Serialization

#apt-get install g++-3.3 libsys-syslog-perl libdbi-perl libdbd-mysql-perl \ libtime-hires-perl libdate-manip-perl libmodule-load-perl libarchive-tar libdevice-serialport-perl libmime-perl libwww-perl libphp-serialization#cd /usr/src #wget http://www2.zoneminder.com/downloads/ZoneMinder-1.23.1.tar.gz #tar xzf ZoneMinder-1.23.1.tar.gz #cd ZoneMinder-1.23.1 #CXX=g++-3.3 CC=gcc-3.3 ./configure \ --with-webdir=/var/www --with-webuser=www-data --with-webgroup=www-data --with-libarch=lib --disable-debug --disable-crashtrace --with-mysql=/us --with-extralibs= --includedir=/usr/include --prefix=/usr --sysconfdir=/ #make #make install

Configuration
Une fois les composants installs, il faut les configurer individuellement : 7

Mise en place d'un systme de vido surveillance avec ZoneMinder

Base de donnes
Le schma de la base de donnes se trouve dans le rprtoire db, du package zoneminder. Il faut initialiser la base mysql l'aide du fichier zm_create.sql :

#mysql < /usr/src/ZoneMinder-1.23.1/db/zm_create.sql #mysql mysql>use mysql; mysql>CREATE USER 'zmuser' IDENTIFIED BY 'zmpass'; mysql>GRANT ALL ON zm.* TO 'zmuser'@'localhost';

Apache
Dans le rpertoire /etc/apache2/site-available, vous pouvez crer le fichier zone, pour y mettre la configuration du site :

<VirtualHost *:80> ServerName zonemainder.domain.tld DocumentRoot /var/www ScriptAlias /cgi-bin /usr/lib/cgi-bin </VirtualHost>

Puis activer la configuration l'aide des commandes suivantes :

#a2ensite zone #/etc/init.d/apache2 reload

Vous pouvez vous connecter sur l'interface du logiciel l'aide de l'URL du type : http://zonemainder.domain.tld Le login et mots de passe par dfault de l'application est : 'admin', 'admin'.

Faiblesses de la solution
Voici les points faibles et les points d'attaque qui j'ai identifi dans cette solution :

Voix et enregistrement sonore


Certaines camras de vido-surveillance disposent de microphone omni-directionnel de bonne qualit qui permettent d'enregistrer les diffrents bruits. Malheureusement ZoneMinder ne dispose d'aucune fonctionnalit en matire de dtection de bruits et enregistrement sonore. La gestion de l'audio est sur la feuille de route du projet.

Coupure de courant
En cas de coupure de l'alimentation lectrique, l'enregistrement des vnements est arrt et le 8

Mise en place d'un systme de vido surveillance avec ZoneMinder

systme est neutralis. La meilleurs solution pour palier ce problme est d'quiper l'ensemble de l'installation d'Onduleurs.

Vitesse de transfert entre le serveur distant et le systme de vido surveillance


Zoneminder ne prend pas en charge le streaming des vnements, lorsqu'un vnement donne lieu une alerte, celui-ci attend la fin de l'enregistrement pour le transfrer sur le serveur. En moyenne, avec mon installation, un vnement donne lieu un fichier de 50Mo et le transfert de ce fichier vers le serveur distant prend en moyenne plus de 5 minutes. Cette limitation est lie la vitesse d'upload de ma connexion ADSL. Les solutions envisagables sont les suivantes : Rduction de la qualit des images, permet de rduire la taille des archives. Encodage sous forme de vido, ncessite beaucoup de puissance CPU, pour un rsultat final peu convaincant, en effet, l'encodage de la vido peut prendre plus de temps que l'upload de l'archive. Augmentation de la bande passante, ncessite un investissement dans une ligne de type SDSL.

Ides d'amlioration et fonctionnalites avances


Interaction avec une PABX IP
Il serait intressant de pouvoir accrder aux enregistrements via un systme de tlphonie. Asterisk dispose de peu de fonctionnalits en matire de vido. Il ne dispose pas d'un systme de "transcodage", il faut donc que les vidos envoyes aux clients soit directement comprehensibles par ceux-ci. Il n'est pas possible l'heure actuelle d'interconnecter les deux systmes.

Interfaces utilisateur
ZoneMinder dispose de plusieurs interfaces utilisateurs supplmentaires :

ZoneMinder Viewer
Une interface graphique riche crite en Qt4 permet de se conneter au systme de vido-surveillance directement partir de votre bureau : ZMViewer [http://zmviewer.sourceforge.net/].

MythZoneMinder
Le projet MythZoneMinder [http://www.mythtv.org/wiki/index.php/MythZoneMinder], propose un plugin pour MythTV, celui-ci permet de visualiser les vnements directement sur l'interface d'un systme multi-mdia bas sur MythTV.

Xlib SHM
9

Mise en place d'un systme de vido surveillance avec ZoneMinder

Le programme Xlib SHM [http://dig.hopto.org/xlib_shm/], permet d'affich sous X, les images captures par ZoneMinder, en allant les chercher directement dans la mmoire partag. Cela permet d'affich en local sur la machine les images en utilisant trs peu de ressources CPU.

Diffusion des images via le systme de TV Perso de la Freebox


Free propose ses abonns de diffuser des flux vido l'aide du terminal Freebox. Il suffit de brancher la carte vido (S-Video) de votre serveur directement sur la Freebox pour diffuser en direct les images du systmes de vido-surveillance dans un cadre restreint.

Lgislation
Voici un raccourci rapide sur les obligations et les possiblits offertes par la lgislation Francaise : Dans le cadre d'un lieu priv, les camras ne doivent pas filmer l'extrieur de votre proprit, mme derrire la vitre d'une fentre prive. L'utilisation des camras l'intrieur d'une proprit relve du droit l'image. Vous avez le droit de filmer le personnel employ dans votre maison (Babysitter, agent d'entretiens, etc...) la seule condition que celui-ci en soit dment inform par crit. Dans le cadre d'un lieu de travail, la lgislation est beaucoup plus rstrictive, l'installation du systme de vido surveillance ncessite l'aval de plusieurs authorits (reprsantant du personnel, prfecture, CNIL, etc...). La partie administrative d'un projet de vido surveillance est complexe et lourde dans le cas d'une entreprise.

10