VidéoSurveillance avec plusieurs Caméras

Configuration du programme Motion avec gestion de notification SMS en caméras multiples.

Affiche_signalant_une_vidéo_surveillance_a_courbevoie
Source de l’image : https://commons.wikimedia.org

Pour faire suite à l’article précédent traitant de la VidéoSurveillance avec Motion et notification SMS, voici un article assez similaire mais reprenant la mise en place d’une VidéoSurveillance sur un ordinateur Linux possédant 1 WebCam et gérant une Caméra IP en plus.

Évidemment, cela peut se faire sur un Raspberry Pi de la même manière.
Sauf que vous changerez "/home/alban/motion" en "/home/pi/motion".

L’idée étant que les caméras soient gérées de manière totalement indépendante l’une de l’autre, donc que :

  1. Le serveur Web de Motion affiche le flux de chaque caméra de manière séparée (1 caméra = 1 page)
  2. La notification SMS de détection de mouvement est différente selon la caméra de détection et commandée par chaque Caméra. En gros, détection par WebCam = alerte « WebCam » ; détection par Caméra IP = alerte « CamIP » ; détection sur les 2 = double alerte.
  3. Les vidéos et photos prises en cas de détection sont sauvegardées dans le dossier propre à chaque caméra

Afin de travailler proprement, il est préférable de partir d’une page blanche et je commence par supprimer mon ancien « motion » de manière complète avec  un :

sudo apt-get purge motion

Ensuite, par sécurité, on met tout bien à jour comme il faut :

sudo apt-get update -y && sudo apt-get upgrade -y && sudo apt-get dist-upgrade -y && sudo reboot

A partir de là, on recommence tout depuis le début,

– En commençant par installer motion :

sudo apt-get install motion

On va créer un dossier de stockage des images par caméra

mkdir /home/alban/motion/WebCam
mkdir /home/alban/motion/CamHEDEN
chmod 755 /home/alban/motion/WebCam
chmod 755 /home/alban/motion/CamHEDEN

– Édition du fichier de configuration :

sudo chmod 555 /etc/motion/motion.conf
sudo gedit /etc/motion/motion.conf

1 – Pour des raisons de simplicité, modification de la ligne 14 :

process_id_file /home/alban/motion/motion.pid

2 – Comme d’habitude, j’ai passé la prise de photos en 640 par 480 pixels en modifiant les lignes 70 et 73 :

width 640

et

height 480

3 – Puis, j’ai passé le délai de remise à zéro à 15 secondes (le temps passé sans détection de mouvement) à la place de 60.
Chez moi, c’est ligne 207

gap 15

4 – Je préfère encoder les vidéos en avi plutôt qu’en swf donc modification de la ligne 282 en :

ffmpeg_video_codec mpeg4

5 – Pour des raisons perso (je suis Français), j’ai modifié le format date en jj/mm/aaaa en changeant la ligne la ligne 319 en

text_right %d-%m-%Y\n%T-%q

6 – Pour gérer les caméras de manière indépendantes, il faut bloquer ces lignes dans le fichier motion.conf  (ajouter « ;  » devant les lignes 29, 86, 359 et 400) :

; videodevice /dev/video0
; netcam_url value
; target_dir value
; webcam_port 8081

7 – Par contre, il faut débloquer les lignes permettant de basculer vers les fichiers propres à chaque caméra (il y aura un Thread par caméra) en virant le « ;  » puis en modifiant le /usr/local/etc/ par /etc/motion/. Elles sont situées à la fin du fichier motion.conf :

thread /etc/motion/thread1.conf
thread /etc/motion/thread2.conf
; thread /usr/local/etc/thread3.conf
; thread /usr/local/etc/thread4.conf

Et voilà, il ne reste plus qu’à modifier le fichier thread1.conf puis le fichier thread2.conf et à créer un script de notification par fichier.

Dans le thread01.conf, voici mes lignes utiles (les autres sont bloquées par « # » ou « ; « ) :

Rappel ; pour éditer le fichier, faire

sudo gedit /etc/motion/thread01.conf
videodevice /dev/video0
input 8
text_left WebCam-01-Face
quality 50
webcam_quality 75
on_event_start /etc/motion/notification_SMS01.sh
target_dir /home/alban/motion/WebCam
webcam_port 8081

Et voici mon thread02.conf :
Rappel ; pour éditer le fichier, faire

sudo gedit /etc/motion/thread02.conf
videodevice /dev/video1
input 1
text_left Camera IP HEDEN
netcam_url https://192.168.0.54:8080/videostream.cgi?user=XxXxXxXxXxX&pwd=XxXxXxXx
quality 100
webcam_quality 75
on_event_start /etc/motion/notification_SMS02.sh
target_dir /home/alban/motion/CamHEDEN
webcam_port 8082

– Ensuite, création des scripts de notification SMS

sudo gedit /etc/motion/notification_SMS01.sh

Voici le contenu de mon fichier :

#!/bin/sh

# Script pour envoyer une notification SMS lors d'une détection de mouvement par 'motion' par la WebCam

wget
--no-check-certificate
"https://smsapi.free-mobile.fr/sendmsg?user=XXXXXXXX&pass=XXXXXXXXXXXXXX&msg=Attention%20Alarme%20via%20Motion%20WebCam"

A vous de changer les informations de « user », de « pass » et du message 😉
On fait pareil avec un autre fichier :

sudo gedit /etc/motion/notification_SMS02.sh

Voici le contenu de mon second fichier :

#!/bin/sh
# Script pour envoyer une notification SMS lors d'une détection de mouvement par 'motion' par la Cam HEDEN
wget --no-check-certificate "https://smsapi.free-mobile.fr/sendmsg?user=XXXXXXXX&pass=XXXXXXXXXXXXXX&msg=Attention%20Alarme%20via%20Motion%20HEDEN"

Pas compliqué 😉

Afin de ne pas avoir d’erreur d’exécution, on se refait un petit

sudo chmod 555 /etc/motion/motion.conf

Puis un

sudo chmod 555 /etc/motion/notification_SMS01.sh
sudo chmod 555 /etc/motion/notification_SMS02.sh

Si je n’ai pas fait d’erreur et que vous non plus, alors, il reste juste à lancer le truc, dans un terminal, avec un

motion

Alors ? ça fonctionne ???
Chez moi, oui 😉

A propos de Alban

Papa de 4 enfants étant lui-même resté un enfant. Diététicien-Nutritionniste tombé par obligation dans l'informatique à 22 ans pour le boulot et s'étant "un peu" pris au jeu ... Pas un génie de l'informatique (loin de là), mais intéressé et carrément orienté Linux et entraide. Lassé de l'évolution du Monde de la Santé dans lequel les patients sont de plus en plus à traiter comme des clients (je suis un soignant !!!), j'ai opté pour une reconversion en repartant en Alternance... à... 44 ans D'abord dans le cadre d'un BTS SIO option SISR (Solutions d’Infrastructure, Systèmes et Réseaux) en Septembre 2019. Après l’obtention du BTS (16,57/20 ;-) ), j'ai décidé de poursuivre (toujours en alternance) en Bac+3 avec un Bachelor Concepteur de Systèmes d'Information. Depuis septembre 2022, je suis donc encore plus vieux, mais un jeune diplômé "Administrateur Systèmes et Réseaux". (Bac+3 obtenu avec 16,40/20) Citation personnelle : « Si la réussite facile flatte l’égo, C’est de la persévérance que nait le plaisir de la réussite. »

2 commentaires à propos de “VidéoSurveillance avec plusieurs Caméras”

  1. Bonjour,

    J’ai suivi ton tuto et beaucoup d’autre sur internet,

    je tente de faire fonctionner la caméra frontal d’un petit asus ou j’ai installé debian, ainsi qu’une caméra HD usb.

    Quand je lance les 2 fichier configs en même temps, j’ai une erreur :

    uvcvideo: failed to submit URB 0 (-28)

    Alors que une par une elles fonctionnent correctement.

    Aurais tu une idée ? merci d’avance

    • Bonjour Obéx,
      Et si tu lances Motion avec une seule caméra de manière indépendante, ça tourne ?
      Il faudrait tester la caméra intégrée puis l’autre.
      Tu as bien intégré

      thread /etc/motion/thread1.conf
      thread /etc/motion/thread2.conf
      ; thread /usr/local/etc/thread3.conf
      ; thread /usr/local/etc/thread4.conf

      à la fin de ton motion.conf ?
      Sans oublier de bien nommer tes fichiers
      /etc/motion/thread01.conf et /etc/motion/thread02.conf

      Sinon, je te conseille d’essayer MotionEye qui a l’avantage d’utiliser une interface graphique plus sympathique.
      Je te propose de jeter un œil sur l’article d’installation de MotionEye sur Raspbian avec gestion de plusieurs caméras.
      Tu pourras adapter avec les infos de Calin Crisan pour l’installation sur Debian.
      @+

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.