Vidéo Surveillance avec Raspberry Pi

 

Objectif : Créer un centre de contrôle vidéo permettant d’analysé chaque détection de mouvement et de diffusé en temps réel  (Solution low cost)
 
Définition :
Motion est un petit utilitaire qui permet grâce à une webcam de faire de la détection de mouvement. Motion se chargera de deux choses:
 
- diffuser de manière continue le flux vidéo sur un mini serveur web
- enregistrer les moments où il y a du mouvement et les coller "bout à bout" pour ainsi créer plusieurs petites vidéos.  (FFMPEG) dépendance
 
 
On obtient ainsi un système de vidéo-surveillance avec enregistrement des moments "intéressants".
 
Prérequis matérielle :
Un raspberry Pi
Un câble d’alimentation avec chargeur de téléphone ( samsung,htc)
Un câble réseau
Un câble composite ou HDMI
Une webcam bas prix

Prérequis Logicielle :
 
Une distribution ARM (Debian Raspbian image officielle de la fondation Raspberry)
Motion (Paquet de détection vidéo et streaming http)
FFMPEG (paquet de traitement d’image et de compilation)
 
 
Câble composite fabriqué à la main suite à un souci de disponibilité, j’avais besoin d’initialisé ma carte réseau pour permettre à ma connexion à mon serveur SSH de fonctionné

Du coup à la main
J’ai dénudé les fils d’un câble composite audio pour les relié entre eux et donc faire un câble MALE—MALE
Après avoir testé le composite Vidéo
 
Mise en place de l’adresse IP dans mon Raspberry
Sudo nano /etc/network/interfaces
 
Voici mon fichier
 
J’ai mis ma carte réseau en DHCP (j’étais en IP fixe au boulot)
Ctrl + X , sauvegarde Yes
Le but étant que je me Serve de Mon raspberry sans écran branché dessus ni clavier ni souris
Seulement Webcam Réseau et alimentation
 
 
Installation de motion :

Sudo aptitude install motion
 
Sudo aptitude install ffmpeg (origine SQEEZE distribution)
 
Une fois ces 2 paquets installés
Identification de la webcam
 
lsusb
 
Ma webcam est bien détecté avec aucune erreur « Logitech, Inc. Webcam C200 »
 
Passons à la configuration de notre paquet Motion
La configuration se passe dans motion
 
 
Sudo nano /etc/motion/motion.conf
 
Ou quelques paramètres sont à modifié en fonction de la webcam surtout
Principalement pour un fonctionnement basique et autonome (Sachant que chaque réglage est expliqué par des balises)
 
 
J’ai touché à ceci :
 
# Démarrer le daemon (tâche de fond) et redonner la main sur le terminal
daemon on/off
# Le périphérique de capture (généralement /dev/videoX)
videodevice /dev/video0
# Largeur de l’image capturée (pixel). Dépend de la caméra utilisée
width 640
# Hauteur de l’image capturée (pixel).
height 480
# Nombre d’images capturées par seconde. Plus ce nombre est grand plus l’image sera fluide, mais plus la taille prise par les enregistrements sera grande et votre débit (dans le cas d’une utilisation sur internet) devra être important.
framerate 5
# Règle la sensibilité de la détection de mouvement: nombre de pixels qui doivent changer entre deux images (plus la valeur est faible plus la détection sera sensible)
threshold 1500
# Utiliser ffmpeg pour encoder les vidéos mpeg en temps réel
ffmpeg_cap_new on
# Format des vidéos enregistrées. Le mpeg4 produira des fichiers .avi mais d’autres formats sont disponibles.
ffmpeg_video_codec mpeg4
# Emplacement où seront enregistrées les vidéos et les photos
target_dir /tmp/motion
# Port de diffusion de la vidéo pour le mini serveur http
webcam_port 8081
# Nombre d’images affichées par secondes pour la diffusion de la vidéo (voir framerate ci-dessus).
webcam_maxrate 5
# Restreindre le serveur web à la machine (passer à off pour autoriser les connections depuis les autres machines du réseau).
webcam_localhost off
 
 
Je le dit car on le fait très peu souvent «  Pensez à sauvegarder sur un autre emplacement votre fichier de configuration »
 
 
Maintenant Mettons en Route motion

Toujours lancé en Super User pour que le flux http soit actif
 
Sudo motion
Vous devriez obtenir ceci
 

On peut apercevoir les paramètres que l’on à rentrer précédemment ainsi que le démarrage du Stream Webcam Server
 
La disposition de mon équipement:
 
 
 
Je lance depuis mon serveur SSH motion (superUser)
 
Sudo motion 
 
Et je me connecte sur mon navigateur internet pour y rentrer l’adresse   192.168.x.x:8081    ( 8081 est le port prédéfini mais vous pouvez le changer dans le fichier de config )
 
 
 
Voici ce que j’obtiens
 
 
 
Bien entendu j’ai caché les têtes de mes camarades pour ne pas les offenser !
Vous pouvez visionné et changé le taux de rafraichissement de la webcam pour un flux plus fluide
 
 
Désormais l’autre fonction de Motion qui est de capturé des images en cas de mouvement
Au cas où quelqu’un rentrerai à 2heures du matin dans votre salle serveur pour prendre un café
La dessus elle est très efficace et s’exécute en même temps que le flux http vidéo streaming
 
Vous obtiendrez ceci en passant devant votre Webcam
 

A noté que vous pouvez changer le paramétrage de détection (celui-ci calcule le nombre de pixels changeant et à partir d’un seuil que vous établirait comme vous le voulez !)
 
On peut voir les images capturé et à la fin la compilation du taux d’image ramassé (encore un paramètre à définir) en un fichier .avi
 
Moi-même je récupère les images et vidéos ensuite à l’aide de WinSCP mais J’ai bien pensé configurer un serveur FTP en tache de fond qui m’enverrai celle-ci sur un disque Dur réseau ou par MAIL.

À propos de blueberry4pi

- Informaticien - Spécialisation Réseaux et Sécurité - Opérateur SQL - Base de Données DB2/AS400 - Passioné Linux
Cette entrée a été publiée dans Uncategorized, vidéosurveillance. Bookmarquez ce permalien.

60 réponses à Vidéo Surveillance avec Raspberry Pi

  1. Dams dit :

    Sympa ça donne envie de tester

  2. mochel dit :

    et tu sais comment il faut faire pour l’envoyer par email la photo ?

    • blueberry4pi dit :

      Via un module D’alerte Présent sur les NAS par exemple qui permettent d’envoyer des alertes avec pièces jointes je vais me pencher dessus rapidement ou alors monter un FTP capable de récupéré mes images et vidéos !

  3. Dams dit :

    j’ai des erreur à l’install de motion :
    Err http://mirrordirector.raspian.org/rasbian/ wheezy/main libavutil 51, libavcodec, libavformat…
    que dois-je faire?
    merci de ton aide je débute sur linux grace à mon pi
    Damien

  4. Dams dit :

    j’ai trouvé lol j’ai fait un apt-get update et recommencé le tuto!!
    Par contre avec une première webcam: pas d’image problème de palette ..
    sur une seconde j’ai une partie de l’image et l’autre partie et verte ou rose …
    Je cherche …

    • blueberry4pi dit :

      Au niveau de la palette tu peut modifié dans le fichier motion.conf

      En auto il est à 8
      Si elle ne fonctionne pas dans ton message de démarrage motion tu va avoir les paramètres de palette accepté par ta camera

      Ensuite compare avec ceux présents dans le paquet motion

      Pense â faire ton update et upgrade régulièrement ;)

  5. Dams dit :

    Merci du conseil, impossible de redémarrer la framboise après un dit upgrade …
    Je repartirai avec une nouvelle config ce soir…
    Au fait comment faire pour arrêter motion une fois qu’il est lancé?

  6. Dams dit :

    Merci de ta réponse, je pourri un peu ton article. J’ai fait reboot et ma framboise n’a jamais redémarré… Pas grave je réintallerai wheezy. C’est une carte sd classe 10 16go.
    Merci pour la combine pour arrêter motion.

    • blueberry4pi dit :

      Non pas du tout ça permet d’identifié des problèmes que moi je n’ai pas eu ! De rien

      • Dams dit :

        Bon ça doit être ma webcam qui n’est pas compatible. En même temps elle n’est pas dans la liste des materiel compatible Raspberry.
        Par contre si on met control_localhost off
        on a accès aux réglages de motion sur 192.168.x.x:8080

      • blueberry4pi dit :

        Oui c’est bien et pas bien si tu l’active et que les gens sur le même réseau touche au paramétrage ^^

  7. Dams dit :

    oui mais pour faire des essais de réglages c’est top !!!
    Je n’arrive toujours pas à faire fonctionner motion il me dit "supported palette: 0: GRGB (GRGB)
    or en 0 j’ai S910: Je ne comprends pas.
    Par contre j’ai pu faire fonctionner ma cam avec guvcview grâce au tuto vu ici http://www.thisismyrobot.com/2012/08/getting-logitech-c270-webcam-working-on.html
    Donc ma cam fonctionne…
    Qu’en pense tu?

    • blueberry4pi dit :

      la palette supporté par ta webcam est « supported palette: 0: GRGB dans ton message d’erreur et toi ton pannel de palette est numéroté mais je crois pas que GRGB soit dedans, moi j’en ai une qui me proposait deux palettes dans le message d’erreur les 2 n’étant pas présente dans motion j’ai changer d’appareil, sinon je cherche comment intégré des palettes supplémentaires dans Motion.

  8. Dams dit :

    je vais acheté un webcam qui est dans les périphériques vérifié ce sera plus simple …

  9. Dams dit :

    Merci de tes conseil, tout fonctionne parfaitement avec une webcam compatible. J’ai choisi la microsoft HD 3000.

  10. Aero dit :

    o_O on le branche a ou le composite ^^ ?

    • blueberry4pi dit :

      bah sur la prise jaune du raspberry et après sur une télé ou écran ou vidéoprojecteur mais j’ai fait ceci car je ne disposait pas de câble HDMI c’était une solution de secours

  11. jerome dit :

    j’espère avoir une réponse rapide, pour moi tout va bien, y a bien d’affiché dans la fenêtre de commande les images prises, mais je ne peux pas les visionner sur internet (en local ou non) quand je tape 192.168.x.x (bien sur je met pas x mais adresse correct) et j’ai de marquer :
    It works!

    This is the default web page for this server.

    The web server software is running but no content has been added, yet.
    et aucune images.

    • jerome dit :

      désoler réponse trouvé! j’ai lu trop vite, j’avais oublier le :8081, ça marche nikel merci !

      • blueberry4pi dit :

        Désolé de répondre si tardivement, en effet pour visionner le flux vidéo motion le diffuse sur le port 8081 (que tu peux changer si tu le souhaite) dans /etc/motion/motion.conf

  12. kantonic dit :

    merci beaucoup blueberry4pi j’ai avec ton message changer le port 8081 par un autre pour une meilleur sécurité, par-contre j’aimerai mettre un mot de passe pour éviter que n’importe qui ne vision ma caméra via le web, comment doit-je m’y prendre?

  13. kantonic dit :

    Merci blueberry4pi,, comment puis-je mettre un mot de passe pour motion? car je ne veux pas que n’importe qui y accède depuis le web.et peut-on intégrer la visualisation de la cam dans un server web genre lighttpd?

    • blueberry4pi dit :

      Motion est installé avec un LightHttpd et quand tu configure bien /etc/motion/motion.conf tu peux donc acceder sur le port 8081 à la visualisation dans ton navigateur, pour le mot de passe c’est dans le fichier de conf aussi à toi de voir je regarderai à l’occaz, mais en ce moment je bosse sur de la domotique.

  14. kantonic dit :

    Bonjour, j’ai un petit soucis pour la vidéo, j’ai une caméra , j’aimerai pouvoir la visionner grâce à mon RPI sauf que elle à une entrée RCA et le RPI a une sortie RCA donc je ne peux pas relié celui de la caméra au RPI car ça ne marchera pas, j’ai lu qu’il existait des adaptateur RCA/USB mais ne connaissant rien en connectique je me tourne vers vous.
    J’ai vu ceci http://www.ebay.fr/i…=item53f9e2778d est-il compatible avec debian? et surtout me sera t’il utile?

  15. Julien dit :

    Merci pour le tuto.
    Tu sais si il est possible de connecter plusieurs Webcams?
    Merci

  16. wyz dit :

    bonjour à tous,
    j’ ai un souci de reconnaissance voici les commandes intéressées:
    lsusb:
    Bus 001 Device 005: ID 1a40:0101 Terminus Technology Inc. 4-Port HUB
    Bus 001 Device 006: ID 046d:08f3 Logitech, Inc. QuickCam Express
    Bus 001 Device 007: ID 07d1:3303 D-Link System DWA-131 802.11n Wireless N Nano
    mais quand je fais un ls /dev/video0:
    ls: cannot access /dev/video0: No such file or directory
    Donc là je ne comprends pas ce qui ce passe.
    Si quelqu’ un a une idée…
    Merci.

  17. dias dit :

    Bonjour,je voulais savoir comment supprimer les fichier image capturer?

    • blueberry4pi dit :

      Bonjour !
      Concernant les images capturées elles sont stockées dans /tmp/motion ce qui fait qu’au redémarrage du *pi elles sont effacées sinon tu as possibilité de les effacées à la main avec "rm" suivi du nom de l’image que tu souhaite supprimé "fais gaffe c’est puissant comme commande" tu risque d’effacer ta carte sd si tu ne respecte pas l’indexation

  18. dias dit :

    je n arrive pas a les supprimer depuis winscp.
    d apres ce que j ai compris faut modifie les droits du fichier motion mais je n ai rien compris.

  19. Ben dit :

    Bonjour. Je suis votre tuto à la lettre, je crois mais impossible de faire fonctionner la webcam. Mon OS est le wheezy raspian, j’effectue toutes les opérations en root. La webcam est une hercules twist HD reconnue par lsusb (Guillemot corp). Quand je démarre motion après configuration de motion.conf, j’ai les 2 premières lignes comme vous ensuite "Motion going to daemon mode" et 4 ligne "Exit motion, cannot create process id file (pid file) /var/run/motion/motion.pid: No such file or directory.
    Je ne suis pas un expert en linux mais voilà plusieurs jours que j’essaie sans résultat. Peut-être pouvez-vous m’aider. Mon but est de réaliser un visiophone "ip" pour une porte d’entrée. Je n’ai pas besoin de déclenchement d’enregistrement video juste une visualistion video.
    Un tout grand merci

    • blueberry4pi dit :

      Cela veut dire que vous avez défini Motion en tant que daemon, il est donc démarrer au lancement du Raspberry dans init.d alors pas de stress, en fait vous essayer de lancer une autre session Motion alors qu’elle est déjà en marche.

      Normalement si je suis votre commentaire cela veut dire qu’en ouvrant un navigateur avec l’adresse du pi http://adressedupi:8081 vous devriez avoir votre flux vidéo !

      Si vous ne voulez pas le démarrer en même temps que le Pi alors dans /etc/motion/motion.conf

      daemon off

      J’espère vous avoir aidé !

  20. Ben dit :

    Re bonjour. Mon rasberry a eu peur qu’un pro intervienne… Tout fonctionne, j’ai rebooté raspberry, j’ai modifier width et height et j’ai utilisé firefox. Impeccable! Merci pour ce tuto.

  21. kuata dit :

    bonjour, j’ai bien suivi le tuto, tout semble marcher mais l’image de la cam est brouillée:on voit bien qu’il enregistre sur tmp/motion mais image moitié brouillé et moitié vert. cam logitech c270
    pouvez vous me conseiller. merci

    • blueberry4pi dit :

      Bonjour, je te conseille de changer de palette dans /etc/motion/motion.conf car visiblement après quelques recherches elle fonctionne bien avec Motion.

      • dias dit :

        bonjour moi aussi l image et tres flou , j ai regler les paramettre dans motion mais rien n y fais (,framerate ,quality, palette ) j utilise une logitec c170 .
        de plus j ais voulu en connecter 2 mais ca fonctionne pas

      • blueberry4pi dit :

        il faut modifier la palette en fonction de la compatibilité de la webcam il se peut que celle-ci ne puisse pas afficher une bonne qualité d’image..
        par rapport au caractéristiques techniques de votre webcam le flux maximum de capture est de 640 x 480 pixels j’insiste sur le fait que l’on parle bien d’une image et non du flux vidéo diffusé sur le port 8081 .
        La solution est soit de baisser la résolution et le framerate afin d’obtenir une image acceptable.

      • kuata dit :

        bonjour blueberry4pi
        merci d’avoir répondu si vite. effectivement en changeant la palette a 6 et 1024 * 576
        l’image est bien nette.

      • blueberry4pi dit :

        Très bien, Bonne journée

  22. Caro dit :

    Salut, ton tuto est juste super! Je viens tout juste de commencer à utiliser Raspberry Pi et je m’y connais absolument rien. Je navigue beaucoup sur internet pour essayer de me dépanner et ton tuto m’a donné un sacré coup de main! Mais il y a toujours un petit problème….. :’(

    Lorsque je lance sudo motion, ceci apparaît:
    Error selecting input 0 VIDI0C_S_INPUT: Device or resource busy
    ioctl (VIDI0CGCAP): Inappropriate ioctl for device
    Could not fetch initial image from camera
    Motion continues using width and height from config file(s)
    Resizing pre-capture buffer to 1 items
    bind(): Address already in use
    Problem enabling stream server in port 8081: Address already in use
    Thread exiting
    Motion thread 1 restart
    Thread 1 started
    cap.driver: "uvcvideo"
    cap.card: "HP Webcam HD 2300"
    cap.bus_info: "usb-bcm2708_usb-1.2"
    cap.capabilities=0×84000001

    Tout ça en boucle jusqu’à ce que je presse Ctrl+C. J’ai essayé de changer en 8082, mais pas de succès. Et j’ai aussi remarqué que ma caméra va très bien car je peux la visualiser à partir de VLC.

    Est-ce que tu aurais une petite idée?

    Merci beaucoup par avance

    • blueberry4pi dit :

      Bonjour, merci à toi, je pense que ton problème est que ton daemon Motion est lancé au démarrage et que du coup tu tente de le relancer en utilisant la même caméra(resource busy), met le daemon en off dans /etc/motion/motion.conf et redémarre le Pi pour tester!

      • Caro dit :

        Je viens d’essayer plusieurs trucs: tout d’abord, j’ai changé dans /etc/motion/motion.conf le daemon en off comme tu me l’as suggéré. Après avoir redémarrer le raspberry, le problème est toujours là…
        Par la suite, je me suis remémorée que j’avais changé dans /etc/default/motion le daemon en yes. Je l’ai changé en no. Je redémarre le tout et un warning s’affiche lorsqu’il s’allume. La caméra ne fonctionne plus avec cette configuration.

        J’ai remis la configuration initiale et refait à nouveau le tout mais rien n’a changé…

      • blueberry4pi dit :

        Ta camera est bien listée lorsque tu saisi "lsusb" ? Dans un terminal

  23. Caro dit :

    il me met seulement la marque (Hewlett-Packard). Mais si le problème vient de la caméra, je ne pourrais pas voir le stream avec VLC non?

    • blueberry4pi dit :

      C un flux en live que tu voie sur VLC ou des vidéos ? Car c’est au niveau du programme motion si celui ci n’est pas géré au niveau des palettes tu as tester plusieurs ?

      • Caro dit :

        C’est un flux en live que je vois sur VLC. Mais pour les palettes, tu me poses une colle… –’ Je vais tester les différentes palettes en espérant que ça marchera.

        Merci beaucoup de ton aide :)

  24. emteefr dit :

    J’ai un léger soucis…
    Lorsqu’il y a détection de mouvement, Motion me sauve des images alors que je m’attendais à une vidéo… comment puis-je faire pour avoir un vidéo mpeg4 par exemple?
    merci

    • blueberry4pi dit :

      tu as installer ffmpeg ?
      il y à un paramètre dans motion.conf qui dit qu’à partir d’un certains nombres d’images en une certaine intervalle de temps il fera une vidéo, par défaut cela fonctionne je n’ai jamais modifié ce paramètre

  25. visivc dit :

    Bonsoir,

    Tutoriel expliqué comme il le faut pour des noobs (comme moi XD) et de ce fait un grand merci.

    Malheureusement chez moi cela ne fonctionne pas :’( sniff.
    j’ai bien suivit a la lettre et quand j’ouvre mon navigateur et que je met l’adresse ( chez moi 192.168.0.10:8081) et bien " chrome" n’affiche qu’une page blanches.

    Seait-il possible d’avoir un petit coup de main s’youplait :D

    bonne soirée et a bientot

    • blueberry4pi dit :

      bonjour,
      tout d’abord pardon du retard !
      je voudrais savoir si ton problème est résolu ?
      si non envoi moi une capture du démarrage de la commande "sudo motion"

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s