Faire de la vidéosurveillance avec un serveur NAS Synology, un raspberry PI et une vieille webcam

Il y a quelques semaines, j’ai récupéré une vieille webcam, une Logitech QuickCam E 3500 pour être précis. Dans un tout autre objectif, j’avais également acquis un serveur NAS Synology DS214+ il y a quelques mois. Or Synology propose également à ses clients d’utiliser leur serveur comme station de vidéosurveillance grâce à Surveillance Station. Je me suis donc mis en tête d’utiliser ma vielle webcam USB pour faire de la vidéosurveillance avec mon serveur NAS.

Synology, Raspberry PI et  Webcam

C’est là que les ennuis commencent : Surveillance Station est conçu pour fonctionner avec des caméras de surveillance connectés au réseau et non avec un webcam branchée en USB. En faisant quelques recherches sur le net, je suis rapidement tombé sur d’obscurs logiciels permettant de faire fonctionner certaines webcam sur certains serveur Synology. Inutile de préciser que cette solution ne m’enchantait pas vraiment. J’ai également trouvé un article qui propose de se servir d’un Raspberry PI comme intermédiaire. Or il s’avère que j’avais dans mes cartons un Raspberry PI Modèle B 512 Mo, j’ai donc tenté l’expérience.

Certains diront sûrement, faire du stream vidéo avec la puissance d’un Raspberry PI, ne sont-ils pas fous ? Que neni mes amis, cela fonctionne parfaitement et nous allons voir comment le mettre en place.

Installation et configuration du Raspberry PI

Etape obligatoire : Installation du système d’exploitation Raspbian
La première étape est télécharger l’image du système d’exploitaiton Raspbian (dérivé de Debian pour le Raspberry PI) pour le placer sur une carte SD à destination du Raspberry PI (tutoriel officiel en anglais ou tutoriel en français).
Vient ensuite le moment du premier lancement, il vous suffit pour cela de brancher un écran, un clavier, une webcam et une prise réseau sur votre Raspberry PI. Il vous faudra probablement brancher ces périphériques avant d’alimenter le Raspberry PI car le plug and play ne fonctionne pas toujours. Si comme moi, vous disposez d’un Raspberry PI avec seulement deux ports USB, il sera plus pratique d’utiliser Raspbian en ligne de commande plutôt que d’utiliser un concentrateur USB ou que d’échanger la souris et la webcam. D’autant plus que l’absence d’interface graphique permet d’obtenir de bien meilleures performances et que les commandes que nous allons utiliser exclusivement la ligne de commande par la suite.

Etape obligatoire : Mettre à jour le système
Pour mettre à jour le système d’exploitation il faut taper successivement les deux commandes suivantes :

sudo apt-get update
sudo apt-get upgrade

Etape optionnelle : Changer la configuration de votre Raspberry PI
Pour rappel vous pouvez à tout moment changer la configuration de votre Raspberry PI à tout moment grâce à la commande ci-dessous, même s’il vous faudra probablement redémarrer pour que les changements soient effectifs. Vous en aurez probablement besoin si comme moi vous devez passer le clavier en disposition française et de régler le fuseau horaire.

sudo raspi-config

Et pour redémarrer le Raspberry PI :

sudo reboot

Etape optionnelle : Utiliser le SSH
Si vous souhaitez libérer votre écran et votre clavier, vous pouvez activer le serveur SSH qui est normalement déjà installé sur Raspbian. Cette action permet de rendre le Raspberry PI accessible à distance sur votre réseau local. Vous pouvez très bien utiliser le serveur SSH avec la configuration par défaut s’il n’est accessible que sur votre réseau local, mais il est généralement recommandé de changer le numéro de port (choisissez un port qui ne vous gênera pas) et de choisir les utilisateurs qui ont le droit de se connecter à la machine (blocage du login root, restriction des IP, …), …

Si vous souhaitez modifier la configuration par défaut, il vous faudra taper la commande suivante

sudo nano /etc/ssh/sshd_config

Puis vous devrez redémarrer le serveur SSH à l’aide de la commande

sudo service ssh restart

Sinon le simple démarrage du service suffit

sudo service ssh start

Si vous disposez d’un ordinateur sous Windows, il vous faudra ensuite télécharger PuTTY si vous souhaitez accéder au Raspberry PI à distance (documentation sur ubuntu-fr ou tutoriel sur OpenClassrooms).

Installation et configuration de motion

Etape obligatoire : Installer et configurer motion
Une fois le Raspberry PI correctement configuré, on peut utiliser le logiciel de détection vidéo motion qui permet également de diffuser le flux vidéo par le protocole HTTP (streaming).

Pour cela il suffit de saisir la commande suivante :

sudo apt-get install motion

Il faut ensuite configurer motion par l’intermédiaire du fichier prévu à cet effet :

sudo nano /etc/motion/motion.conf

Dans le fichier il faudra configurer la taille de l’image renvoyée par votre caméra (pour ma part la résolution native de la Logitech QuickConnect E 3500 est de 640*480) :

height 480
width 640

Il faudra ensuite autoriser le logiciel à fonctionner en arrière plan (daemon) :

daemon on

Il faut ensuite paramétrer la capture vidéo, certains paramètres affectent le streaming, d’autres l’enregistrement sur le Raspberry PI. Etant donné le faible espace de stockage sur le Raspberry PI il est absurde de vouloir enregistrer les images, d’autant que le Surveillance Station se chargera de l’enregistrement sur le serveur NAS. Nous pouvons donc désactiver l’enregistrement :

output_normal off

Accès au streaming en dehors du localhsot :

webcam_localhost off

Port sur lequel on souhaite rendre le serveur accessible (vous pouvez le changer pour utiliser un port qui ne vous gênera pas)

webcam_port 8081

La dernière étape de modification dans le fichier de configuration est de définir la qualité et le nombre d’images par seconde. Attention, plus vous choisirez des chiffres élevés, plus la consommation de ressources sera importante :

webcam_quality 75
webcam_maxrate 12

Une fois le fichier enregistré, vous pouvez lancer motion avec la commande :

sudo motion

Etape optionnelle : Résolution du message d’erreur « pid file »
Un message vous indiquant que motion démarre devrait alors s’afficher. Si jamais vous obtenez le message d’erreur « Exit motion, cannot create process id file (pid file) /var/run/motion/motion.pid », il vous faudra créer le répertoire en question à l’aide des commandes :

sudo mkdir /var/run/motion
sudo chmod a+rwxt /var/run/motion

Etape optionnelle : Lancement automatique de motion au démarrage du Raspberry PI
Modifiez le fichier à l’aide de la commande suivante pour automatiser le lancement de motion au démarrage du Raspberry PI :

sudo nano /etc/default/motion

Configurez le paramètre comme ci-dessous :

start_motion_daemon=yes

Configuration du routeur/de la box et vérification du flux

Etape optionnelle : Configurer le Raspberry PI avec une IP locale statique
Il peut être intéressant d’attribuer une IP locale statique au Raspberry PI afin de ne pas avoir à modifier l’adresse qui permet d’accéder au flux vidéo qu’il diffuse. Pour se faire, vous devez configurer le serveur DHCP présent dans votre routeur ou votre box (référez-vous à la documentation de votre appareil).

Etape obligatoire : Vérifier le flux vidéo
Vous pourrez ensuite accéder au flux vidéo au ouvrant un navigateur et en saisissant l’IP locale de votre Raspberry PI associé au numéro de port que vous avez choisi au préalable (http://192.168.uvw.xyz:8081) comme le montre la capture ci-dessous. Personnellement, j’ai rencontré quelques difficultés avec Internet Explorer et Google Chrome, je vous conseille donc le navigateur web Mozilla Firefox qui fonctionne très bien pour toutes les actions présentées dans cet article.

Visualisation du flux de la webcam

Etape optionnelle : Inclure le flux vidéo dans une page HTML
Il est possible d’inclure ce flux dans une page HTML à l’aide du code suivant :

<img src="http://192.168.uvw.xyz:8081" />

Configuration du serveur NAS Synology DS214+

Etape optionnelle : Configuration de QuickConnect sur le serveur NAS Synology
QuickConnect est un service gratuit pour les détenteurs de serveur NAS Synology qui permet d’accéder à leur appareil partout dans le monde très facilement : pas de NAT, de redirection ou d’ouverture de ports, de certificat SSL ou de VPN à configurer. Ce service s’active facilement dans le Panneau de configuration du serveur NAS, rubrique QuickConnect. Il suffit ensuite de créer un compte sur MyDS et d’y associer l’appareil à l’adresse choisie.

Synology QuickConnect

Etape obligatoire : Installation de Surveillance Station
Il faut ensuite installer Surveillance Station à partir du Centre de paquets (rubrique Sécurité) du serveur NAS comme le montre la capture d’écran ci-dessous. Une fois cette application installée vous pourrez l’ouvrir (celle-ci s’ouvre dans un nouvel onglet).

Synology Centre de paquets

Etape obligatoire : Configuration de Surveillance Station
Pour finir il suffit d’ajouter la caméra dans Surveillance Station en spécifiant l’IP locale de votre Raspberry PI associé au numéro de port que vous avez choisi au préalable. Le nom de la caméra est totalement arbitraire et vous permet de l’identifier si vous en avez plusieurs. Dans la liste de choix de la marque, sélectionnez « Défini par l’utilisateur », pour le chemin source saisissez « / » puis testez la connexion. Vous verrez alors apparaître le flux de la webcam dans l’encart de droit comme le montre la capture d’écran ci-dessous. A partir de ce moment vous n’avez plus rien à faire, Surveillance Station enregistre automatiquement le flux vidéo et assure la rotation des fichiers de vidéosurveillance pour vous.

Synology Surveillance Station

Etape optionnelle: Configuration avancée de Surveillance Station
Si vous souhaitez modifier la configuration de Surveillance Station (rotation des fichiers, plages horaires de surveillance, …) vous pouvez le faire à tout moment en allant dans l’application Caméra IP, puis en sélectionnant la caméra concernée et en cliquant sur Modifier comme le montre la capture d’écran ci-dessous.

Synology Gestion de la caméra dans Surveillance Station

Nous venons de voir comment transformer une vieille webcam en objet connecté qui permet de faire de la vidéosurveillance avec un serveur NAS. Il existe bien entendu de nombreuses techniques et configurations différentes pour aboutir au même résultat, n’hésitez pas à poster vos conseils ou questions en commentaires.

Facebooktwitterlinkedinmail

12 Commentaires

  1. Patric

    Bonjour, je suis interessé par Surveillance Station. J’ai une caméra pi qui fonctionne sur un raspberry pi2 avec motion, j’ai configuré ma box et j’ai vérifié le flux de ma caméra : tout est ok. Maintenant, ne possèdant pas de NAS, est-il possible sur un petit serveur constitué d’un autre raspberry pi2 d’installer Surveillance Station? Je cherhce le mode opératoire pour le faire.
    Cordialement

    Répondre
    1. Franck Borschneck (Auteur de l'article)

      Bonjour,

      Je pense que Surveillance Station nécessite DSM (système d’exploitation des NAS Synology) pour fonctionner. En parcourant le web, j’ai remarqué qu’il y a eu quelques tentatives pour installer DSM sur un Raspberry, mais il s’agît d’une tâche relativement complexe et peu pertinente si l’on prend en compte le temps, le coût (disque dur USB) et les performances obligatoirement dégradées qui en résulteront.

      Si votre objectif est simplement de transmettre un flux vidéo sans le stocker, un Raspberry sera suffisant. Différentes techniques de streaming vidéo sont décrites sur MagdiBlog. A noter qu’un « équivalent » à Surveillance Station est disponible sur Raspberry, il s’agît de MotionPie.

      Pour le stockage, ma recommandation reste d’acquérir un vrai serveur NAS Synology qui aura l’avantage d’être plus performant, prêt à l’emploi et qui pourra être mis à jour facilement (ne pas pouvoir mettre à jour un système de vidéosurveillance connecté à internet serait bien trop dangereux). Si le coût est une problématique importante, il peut être intéressant de se tourner vers le marché de l’occasion qui est assez important pour les NAS Synology (bien entendu il faudra vérifier que le serveur que l’on souhaite acquérir est compatible Surveillance Station).

      Franck

      Répondre
  2. skihp64

    Bonjour,

    j’essaie de configurer une caméra dont la marque n’est pas reconnue par le syno.
    Pourtant elle est bien configurée sur mon réseau car j’y accède depuis mon navigateur et par une appli (non dsm) depuis un tel.

    Dans chemin source, j’ai bien mis : ‘/’ mais je ne sais pas exactement à quoi ce champ correspond.

    avez vous une idée ?

    Merci pour vos infos.
    cdt
    nicolas

    Répondre
    1. Franck Borschneck (Auteur de l'article)

      Bonjour,

      Le / correspond à la racine du service de streaming du flux vidéo. Si le chemin d’accès au flux est différent il faudra renseigner le champ source en fonction.

      Franck

      Répondre
  3. philippe

    Bonjour
    pensez vous qu’il soit possible de rajouter la capture du son (priorité) ma web cam possède un micro que je peux utiliser soit par l’usb soit par coax 3.5 mon raspberry est connecter a une carte son usb qui possède une entré coax 3.5 reconnu par le raspberry
    et dans une autre étape de diffuser du son (de la voix) par le raspberry

    Merci pour ce tuto que je vais tester ce soir

    Répondre
    1. Franck Borschneck (Auteur de l'article)

      Bonjour,

      A ma connaissance Motion ne permet pas de capturer le son, mais des alternatives existent pour l’acquisition et l’analyse du son : https://blog.mornati.net/raspberrypi-motion-and-noise-detection/

      Le problème sera de transférer le son sur le serveur Synology pour l’enregistrer. Une autre solution envisageable a été postée sur les forums Synology : https://forum.synology.com/enu/viewtopic.php?t=69224

      Franck

      Répondre
  4. philippe

    Merci beaucoup, je vais gratter un peu, mais en premier lieu je vais déjà essayer votre tuto.
    Sans succès pour le moment le syno ne reconnais pas la camera du raspberry, je revient vers vous après avoir cherché.
    Philippe

    Répondre
  5. François

    Bonsoir,

    merci pour ce tuto, je n’ai pas réussi à le réaliser, je pense qu’un simple problème de redirection de ports en est la cause. Il y a quelques petites subtilités que je ne maîtrise pas encore.

    Entre temps, j’ai trouvé cet autre projet qui lui a fonctionné à merveille (après redirection de port dans ma box).

    http://ronnyvdbr.github.io/RaspberryIPCamera/

    François

    Répondre
  6. Loïc

    bonjour,

    je viens de tester avec un raspberry équipé d’une camera raspberry et de motion, ça fonctionne bien sans authentification.
    par contre dès qu’on active la basic authentication dans motion et qu’on précise un logi:mot de passe, la connexion ne veut plus se faire dans surveillande station.

    si quelqu’un a une idée, je suis preneur !

    merci beaucoup

    Répondre
  7. Kenobi

    Super tuto merci bcp pour l’aide

    Répondre
  8. Guillaume T.

    Bonjour,

    J’aimerais comprendre le but de l’obfuscation des IPs qui font partie des classes dites privées ?

    Répondre
    1. Franck Borschneck (Auteur de l'article)

      Hello,

      Il ne s’agît pas d’obfusquer, mais simplement de neutraliser l’importance d’une IP exacte d’un point de vue pédagogique 😉

      Franck

      Répondre

Laisser un commentaire

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