Ceci est une ancienne révision du document !
ZoneMinder: vidéo-surveillance
Présentation
Zoneminder est une solution open source efficace de vidéosurveillance, acceptant des sources vidéo analogiques (connectées via une carte d'acquisition), des webcams ou encore des caméras réseau. Il est capable d'envoyer les images capturées sur un serveur déporté via FTP ou SMTP (mail) mais dispose également d'un serveur web dédié permettant de consulter les images et vidéos capturées ainsi que de contrôler le système de vidéosurveillance.
Prérequis
Pour fonctionner, Zoneminder nécessite un ordinateur (idéalement de faible consommation étant donné qu'il ne sera jamais éteint) sous système GNU/Linux et disposant d'au moins 1 Go de mémoire vive. Zoneminder est également optimisé pour les systèmes multi-coeurs en affectant la gestion d'une caméra par thread. Concernant l'espace disque nécessaire, cela dépend de vos besoins, conservez en mémoire que l'espace disque employé sera forcément important.
Vous aurez besoin au minimum des paquets Apache, PHP et MySQL.
Installation
Installez simplement le paquet apt://zoneminder.
L'installeur vous demande "mail name" et "smart hosts", vous pouvez les laisser par défaut. Ces réglages sont utiles si vous voulez que ZoneMinder envoi des notifications par email, vous pourrez modifier ces valeurs plus tard facilement.
Paramétrage du serveur web
sudo ln -s /etc/zm/apache.conf /etc/apache2/conf.d/zoneminder.conf
ou
sudo ln -s /usr/share/zoneminder/ /var/www/zm
puis relancer le serveur apache :
sudo /etc/init.d/apache2 force-reload
- Si vous avez une erreur du type apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName,
- il faut ajouter la ligne suivante dans /etc/apache2/httpd.conf
ServerName www.mondomaine.com
(on peut remplacer www.mondomaine.com par un dyndns si on en a un)
- et dans /etc/hosts vérifer qu'on ait bien une ligne du type
127.0.0.1 localhost nom_de_machine www.mondomaine.com
- et dans /etc/hostname vérifer qu'on ait bien une ligne du type
nom_de_machine
- Enfin, relancer le serveur apache
sudo /etc/init.d/apache2 force-reload
Attention sous Ubuntu 10.04
1- le paquet zoneminder 1.24.2 se charge de créer la configuration MySQL ci-dessous lui-même, donc on doit sauter la partie "Configuration MySQL".
2- Vous pouvez lancer directement zoneminder
sudo /etc/init.d/zoneminder restart
3- C'est terminé pour l'installation, rendez-vous au chapitre "Configuration" > "Nécessaire sous Ubuntu 10.04".
Configuration MySQL
Créez la base MySQL "zm" (elle ne semble pas créée automatiquement) :
$ mysql -u root -p < /usr/share/zoneminder/db/zm_create.sql Enter password:
(hop ! un petit coup de MySQL pour s'assurer que la base est bien créée :
$ mysql -u root -p Enter password: mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | zm | +--------------------+ 3 rows in set (0.00 sec)
C'est bon)
Créez l'utilisateur de la base :
mysql>use mysql; mysql>CREATE USER 'zmuser' IDENTIFIED BY 'zmpass'; mysql>GRANT ALL ON zm.* TO 'zmuser'@'localhost';
NB: si vous décidez de changer le mot de passe par défaut "zmpass" (ce qui est une bonne idée), n'oubliez pas de reporter cette modification dans /etc/zm/zm.conf.
Lancez ZoneMinder :
$ sudo /etc/init.d/zoneminder start Starting ZoneMinder: Warning, overriding installed ./zm.conf file with local copy success
Pour accéder à ZoneMinder: http://AdresseServeur/zm/
Pour voir les log de démarrage de zoneminder, ça se trouve dans /var/log/syslog et /tmp/zmpkg.log.
Configuration
L'adresse http://127.0.0.1/zm/ ou http://www.mondomaine.com/zm/ permet d'administrer Zoneminder lorsqu'il est démarré.
Nécessaire pour Ubuntu 10.04
Cette partie est apparemment nécessaire sous Ubuntu 10.04 pour que zoneminder fonctionne normalement
- Pour permettre l'accès aux périphériques /dev/videoX :
- Donner les droits setuid à zmfix
sudo chmod 4755 /usr/bin/zmfix
- Ajouter l'utilisateur www-data au groupe video
sudo adduser www-data video
- Pour afficher des vidéos en streaming à partir de jpeg :
- Télécharger Cambozola depuis http://www.charliemouse.com/code/cambozola/
- Décompressez le fichier
- vérifiez que vouz avez bien créé le lien symbolique /var/www/zm, sinon créez le
sudo ln -s /usr/share/zoneminder/ /var/www/zm
- Copiez le fichier cambozola.jar vers le répertoire de zoneminder
sudo cp cambozola-0.80/dist/cambozola.jar /var/www/zm/
- Ouvrir http://127.0.0.1/zm/index.php?view=options&tab=images
STREAM_METHOD : Jpeg OPT_CAMBOZOLA : cocher la case
- Pour fournir un accès aux images stockées :
- Supprimer les liens actuels
sudo rm /var/www/zm/images sudo rm /var/www/zm/events
- Créer de nouveaux liens
cd /var/www/zm ln -s /chemin_choisi_par_vous/images images ln -s /chemin_choisi_par_vous/events events
- Donner des autorisations
chmod -R 777 /chemin_choisi_par_vous
Une fois terminé, redémarrez Zoneminder
sudo /etc/init.d/zoneminder restart
Modifier la langue
Une fois connecté, modifiez la langue par défaut :
- Sélectionnez le lien "Options" en haut à droite de la page, (http://127.0.0.1/zm/index.php?view=options)
- Modifez LANG_DEFAULT à la valeur fr_fr,
Changer le port de l'interface web
Si vous voulez accéder à ZoneMinder à partir d'internet et que votre ISP bloque le port 80 sortant, vous allez devoir changer le port d'écoute de ZoneMinder pour le port 8080 ou autre.
Modifiez le fichier /etc/apache2/ports.conf et modifiez les deux lignes
NameVirtualHost *:80 .... Listen 80
pour refléter le numéro du port voulu.
Ensuite, modifiez le fichier /etc/apache2/sites-enabled/000-default et modifiez la ligne
<VirtualHost *:80>
pour refléter le numéro du port voulu.
Finalement, redémarrez le service apache:
service apache2 restart
Vous devriez maintenant pouvoir accéder à l'interface web à partir du port que vous avez spécifié comme ceci: http://AdresseServeur:port/zm
Vérifier la communication avec la camera
Taper cette commande dans un terminal :
zmu -d /dev/video0 -q -v
Si vous avez un message d'erreur, essayez ceci :
zmu -d /dev/video0 -V 1 -q -v
Vous devez voir apparaitre la liste des options supportées par votre camera.
Configurer une Webcam USB
- Pour une webcam usb classique (bon marché) il est recommandé de régler votre webcam dans zoneminder de cette manière dans un premier temps :
- Ouvrir l'interface web de Zoneminder http://127.0.0.1/zm/
- Cliquer "Ajouter un nouvel écran" puis renseigner les champs indiqués
Source Type : Local FPS Max (i/s maximum) : 25 Device Path : /dev/video0 Canal Camera : 0 Format Camera : PAL Palette capture : YUYV (ou GREY) Largeur de capture : 320 Hauteur de capture : 240
Les cameras basée sur UVC (beaucoup de webcams en usb le sont) possèdent un outil spécifique, vous pouvez installer le paquet Luvc (facultatif) pour connaitre les modes d'utilisation disponibles, puis lancer :
luvcview -d /dev/video0 -L
Vous verrez apparaitre la liste des modes vidéos supportés.
luvcview -d /dev/video0 -l
Vous verrez la liste des réglages disponible pour votre source vidéo.
Signification codes couleurs
Pour les colonnes Fonction et Source de l'interface web :
VERT - Communication fonctionne normalement.
ORANGE - Fonctionne à moitié. Cela peut être la taille de l'image qui n'est pas bonne, la couleur, ou que les images ne peuvent être sauvées (plus assez d'espace disque, problème de permissions), ou la base MySQL qui est corrompue ou erronée.
ROUGE - Ne peut pas joindre le périphérique (device) ou autre erreur fatale.
ZMviewer : Interface graphique (Qt) pour zoneminder
zmviewer nécessite les paquets : cmake, qt4-qmake, libqt4-dev
- Configuration de zmviewer : pour que zmviewer trouve l'interface web de zoneminder
sudo ln -s /var/www/zm/index.php /var/www/zm/zm.php
- Lancement avec la commande :
./zmviewer-0.2/build/src/shell/zmviewer
- Accès aux commandes par clic droit sur une des zones rectangulaires
- Accès à l'interface web zoneviewer par menu "Cameras">"Admin Panel">"Your server"
Liens
Lien vers des explications (FR):
Guide d'installation complet à partir des sources (EN):
Guide complet d'utilisation sous Ubuntu (EN):
Forum officiel zoneminder (EN):
Contributeurs : Maintenu par apokalypse et gezus.