Comment transformer votre Raspberry Pi en serveur webcam ?

Posté le par | Réponse(s) : 57

Vous n'utilisez pas votre Raspberry Pi en ce moment et vous souhaiteriez lui trouver un usage fonctionnel ? Vous avez une vieille webcam dans un carton ? Alors je sais comment faire pour tirer parti de ces deux appareils : créer un serveur webcam à moindre coût.

Que vous souhaitiez mettre en place une weathercam, ou un système de vidéo surveillance, le Rasperry Pi est parfaitement équipé pour transformer votre webcam USB en caméra IP accessible de n'importe où avec une connexion Internet.

Pour cela, voici quatre méthodes plutôt simples à mettre en œuvre. Pour cela, il faut  Raspbian installé sur le Raspberry Pi (fonctionne aussi avec Kali Linux), une webcam (testé avec une Logitech QuickCam Communicate STX et une Microsoft LifeCam Cinema), une alimentation, un dongle wifi configuré (ou connecté par RJ45) et éventuellement un hub USB.

Serveur webcam avec fswebcam

fswebcam est le moyen le plus simple et rapide de capturer avec votre webcam des images uniques. Les paramètres de fswebcam sont très complets, il permet entre autre de régler la capture à un intervalle de temps spécifié, de mettre un ou des bandeaux contenant du texte, la surimpression d'image, etc... La liste de configuration de fswebcam est longue ? Il est possible de simplifier le processus en faisant appelle à un script bash à chaque fois qu'il est nécessaire. L'installation est simple :

# sudo apt-get install fswebcam

Il n'y a rien d'autre à faire, fswebcam est installé. Il s'exécute avec des paramètres définis par défaut (une capture dans le répertoire courant).

La commande peut bien sûr être détaillée de paramètres personnalisés, par exemple :

  • -r : résolution de hauteur/largeur
  • -S : nombre d'image à écarter pour que la webcam puisse capturer une image stable et bien éclairée
  • --flip : retournement d'image, par défaut horizontal
  • --jpeg : qualité de la compression jpeg
  • --shadow : ajoute une ombre portée au texte de bas de page
  • --title, --subtitle, --info : différentes zones du pied de page
  • --save : chemin et nom du fichier où seront sauvegardées les images
  • -q : laisse le processus en cours d'exécution en arrière-plan
  • -l : prend un instantané à chaque interval de temps (en secondes)
  • et bien d'autres, pour cela man fswebcam

Ma première ligne de commande ressemblait à cela :

#fswebcam -r 1280x720 -S 5 --jpeg 95 --font sans:15 --shadow --title "Route63.free.fr" --subtitle "WeatherCam @ Lempdes - Puy-De-Dôme - France" --info "Proudly Powered by Raspberry Pi" --save home.jpg -q -l 60

C'est relativement "long" à taper et source d'erreur. C'est pour cela que fswebcam peut utiliser un script de configuration listant tous les paramètres à appliquer lors de l'exécution du programme. Pour cela, il faut créer un fichier de configuration dans le répertoire du user "pi" :

# nano .fswebcam.conf

Le contenu de mon fichier de configuration est énuméré ci-dessous :

resolution 1280x720
jpeg 95
delay 5
font sans:15
title "Route63.free.fr"
subtitle "WeatherCam @ Lempdes - Puy-De-Dôme - France"
info "Proudly Powered by Raspberry Pi"
timestamp "%d-%m-%Y %H:%M:%S (%Z)"
save /home/pi/viewcam.jpg
exec /home/pi/fswebcam.sh
loop 300

fswebcam permet aussi de lancer un script, fswebcam.sh : connexion à mon ordinateur principal par FTP, dépôt du dernier instantané, et cloture de la cession FTP.

Pour démarrer fswebcam utilisant le fichier de configuration :

# fswebcam -c .fswebcam.conf

Pour stopper fswebcam : pkill fswebcam

Simple et efficace.

Serveur webcam avec motion

Motion est un système de surveillance assez complet, sans fantaisies et va droit au but. Il est extrêmement personnalisable : détection de mouvement, enregistrement image par image, enregistrement vidéo, timelapse, etc.. Son installation est aussi simple que précédemment :

# sudo apt-get install motion

On va changer l'identifiant du compte de l'utilisateur :

# sudo usermod -a -G pi motion
# sudo usermod -a -G video pi

On va créer un dossier dans lequel les informations et instantanés seront archivées :

# mkdir /home/pi/motion
# chmod 755 /home/pi/motion

On va s’intéresser maintenant au fichier de configuration :

# sudo chmod 555 /etc/motion/motion.conf
# nano /etc/motion/motion.conf

Modifiez motion.conf en fonction de vos besoins. Pour ma part, j'ai modifié uniquement ces lignes :

daemon on
process_id_file /home/pi/motion/motion.pid
width 640
height 480
framerate 15

webcam_quality 75
webcam_motion on
webcam_localhost off

ffmpeg_cap_new off

Le daemon (service) motion est désactivé par défaut, pour l'autoriser :

# sudo nano /etc/default/motion     // modifier start_motion_daemon=yes

Puis démarrer motion :

# motion

La mise en service de base est faite, le flux de la webcam se fait en pointant sur http://ip_du_RPi:8081

Ce programme est ultra paramétrable, aussi je conseille de prendre le temps de lire le man motion afin d'exploiter toutes ses nombreuses possibilités.

Serveur webcam avec webcam

webcam est un compris simpliste entre fswebcam et motion. Pour résumer, il prend des images à intervalles régulières (valeur en secondes) ou bien dès qu'il détecte un mouvement, il peut enregistrer l'image en local ou sur un FTP distant.

# sudo apt-get install webcam

Par défaut, le fichier de configuration est .webcamrc dans le répertoire de l'utilisateur sinon créez-le.

# nano /home/pi/.webcamrc

Et ajoutez ces lignes pour alimenter un serveur local :

[grab]
device = /dev/video0
text = "route63.free.fr le %d/%m/%Y à %H:%M:%S"
width = 640
height = 480
quality = 60
trigger = 0
delay = 60
[ftp]
dir = /var/www/perso
file = webcam.jpeg
local = 1

Pour un serveur distant :

[ftp]
host = localhost    // Adresse ip du FTP ou nom d’hôte (exemple : ftp.free.fr)
user = nobody        // Utilisateur du ftp
pass = xxxxxx        // Mot de passe du ftp
dir = /images        // Répertoire ou mettre l'image dans le ftp
file = webcam.jpg    // Nom de l'image
local = 0    // 0 signifie qu'on ne fonctionne pas en local

Quand les paramètres sont définis, on peut lancer la commande :

# webcam
ou
# webcam /chemin/vers/votre/fichier.conf

Pour vérifier le bon fonctionnement, jetez un œil dans le répertoire cible.

Pour stopper le serveur, simplement taper :

# fg webcam

Si vous utilisez ces images pour l'afficher dans une page Web, il suffit de créer une page web avec actualisation
automatique :

<html>
<head>
<META HTTP-EQUIV="pragma" CONTENT="no-cache">
<META HTTP-EQUIV="refresh" CONTENT="0">
</head>
<body>
<center>
<h2>Ma WebCam</h2>
<img src="webcam.jpg" width="480" height="360">
</center>
</body>
</html>

À modifier sans modération.

Serveur webcam avec mjpeg-streamer

C'est la première méthode que j'ai pu tester quand j'ai reçu le RPi et je dois avouer que le fonctionnement ne m'avait pas convaincu à l'époque car j'ai vraiment galéré. mjpeg-streamer n'est pas aussi complet que le motion, mais il est parfait si vous avez besoin que de produire un flux vidéo. Il fournit également une interface Web pour afficher le flux. Seule une version binaire existe pour le processeur ARM, donc il va falloir le compiler soi-même comme suit :

Tout d'abord nous avons besoin récupérer de code source mjpg-streamer et de l'enregistrer dans votre dossier de votre choix.

Placez-vous dans le répertoire où l'archive a été sauvegardée et décompressez la :

# tar xvzf mjpg-streamer-r63.tar.gz

Pour compiler mjpg-streamer, nous avons besoin des bibliothèques libjpeg8-dev que nous allons installer :

# sudo apt-get install libjpeg8-dev

Création d'un lien symbolique (utile ?):

# sudo ln -s /usr/include/linux/videodev2.h /usr/include/linux/videodev.h

Maintenant, on peut poursuivre le processus de compilation, se placer sur le dossier nouvellement créé mjpg-streamer et le compiler avec :

# CFLAGS+="-O2 -march=armv6 -mfpu=vfp -mfloat-abi=hard" make

Pour exécuter mpjg-streamer tapez la commande suivante :

# export LD_LIBRARY_PATH=.
# ./mjpg_streamer -i './input_uvc.so -d /dev/video0 -r 640x480 -f 15' -o './output_http.so -w ./www -p 8080'

Avec comme paramètres :

  • -i : configurer la section d'entrée
  • -d : sélection de l'appareil
  • -r : résolution largeur*hauteur
  • -f : images par secondes
  • -o : configurer la section de sortie
  • -w : dossier du site Web
  • -p : port

L'interface web est disponible à l'adresse : http://ip_du_RPi:8080

 

Il existe d'autres méthodes et programmes pour faire cela comme par exemple webcam-server (à compiler soi-même) ou une version graphique présente dans les dépôts Camorama. À vous de choisir celle qui vous donnera le plus de satisfaction en fonction de vos besoin. Les deux qui ont retenu mon attention son fswebcam (que j'utilise) et motion.

À noter que si vous utiliser un module PiCam (caméra conçue pour le Raspberry Pi), il faudra consulter ce tuto.


Licence Creative Commons
Cet article, sauf mention contraire expresse, est publié sous licence Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported Licence.

Vous avez aimé cet article ? Alors partagez-le avec vos amis en cliquant sur les boutons ci-dessous :
Google Plus Twitter Facebook Linkedin Framasphere email Flattr !

57 commentaires sur “Comment transformer votre Raspberry Pi en serveur webcam ?

  1. Bonjour,
    J'ai moi même acheté un Raspberry PI model 512Mo dans le but de faire un système de vidéo embarqué avec enregistrement sur disque dur.
    Pour ça j'utilise un disque usb alimenté avec un bloc additionnel, donc qui n'utilise pas l'alimentation du R-PI. Idem pour la webcam, car j'ai branché un hub usb qui a son propre bloc alimentation.
    Ceci dans le but de ne pas titrer sur l'alimentation du bus usb du R-PI et aussi car mon disque est un format 3,5" avec alim externe ;o).

    Étrangement le système fonctionne mais quelques secondes, en gros 2 - 3 minutes.
    Au début je ne comprenais pas pourquoi car j'utilisais le système via SSH, je perdais la connexion au but des ces 2 - 3 minutes, et impossible de se reconnecter sans débrancher le R-PI du secteur et de le rebrancher.
    J'ai donc fais le test sans passer par SSH mais le problème persistait.
    L'anomalie est identifié mais je ne vois pas comment la régler:
    En fais mon disque est en /dev/sda et la partition que j'utilise pour le stockage des images /dev/sda3 monté sur /media/disk_usb3
    Avant de lancer motion tt est normal.
    Après plantage si je regarde le montage il est toujours bon en regard du lecteur initial, mais le disque n'est plus /dev/sda mais étrangement /dev/sdb.

    Je ne vois pas pourquoi le disque change en cours de route, sais ce pb ce serai parfait.
    Combien de temps avez-vous laissé le système fonctionné ?
    Cordialement

    • Salut Gérald, pour le problème de partition, j'avoue que c'est la première fois que lis ce genre de problème et je ne sais quoi dire, je conseillerais de réinstaller, pour partir sur de bonnes bases, Raspbian (sans passer par une installation assistée comme BerryBoot) ou Kali Linux qui fonctionne très bien. En ce qui concerne le temps de fonctionnement, j'ai réussi à atteindre un uptime de 8 jours avec une image prise toutes les deux minutes, envoyée par ftp sur mon ordi principal. Au bout de 7-8 jours, le système ne répond plus vraiment correctement (impossibilité d'accès par SSH et bureau figé). Du coup j'ai programmé avec cron, un reboot automatique tous les deux jours. Je n'ai pas trop le temps en ce moment mais je compte mettre en ligne les images de la webcam dès que j'aurais un moment pour la positionner. Cordialement.

  2. Salut Thomas, si j'ai bonne mémoire, avec motion et fswebcam, on peut définir le nombre d'images souhaitées pour le streaming. Lorsque j'ai testé, c'était avec motion/25fps et cela fonctionnait pas trop mal avec une résolution faible (460x380). Plus on monte en résolution (720p par exemple), le résultat donne l'impression de n'avoir que 2 images secondes et la bande passante devient vite saturée. En conclusion, se servir de sa webcam pour un streaming de vidéo surveillance en local c'est bien, pour une qualité vidéo plus importante il va falloir peaufiner les réglages et libérer de la bande passante. Cordialement.

  3. bonjour, es t-il possible de connecter plusieurs webcams en même temps?
    et comment fait-on pour visionner sur un autre réseau à distance?car en local tout marche bien que je tape 192.168.x.x:8081 mais je ne sais pas comment arriver à voir le flux à mon travail.

    • Bonjour. Il me semble que oui, il est possible de connecter plusieurs webcams en même temps. Je sais que motion le fait, fswebcam aussi je crois. Mais pour cela il va falloir éplucher les manuels et regarder de plus près motion.conf par exemple. En ce qui concerne fswebcam, le man explique :
      -d, --device [:]
      Set the source or device to use. The source module is selected
      automatically unless specified in the prefix.

      Default is /dev/video0.
      J'en conclue que si deux webcams sont branchées en même temps, les sources des dispositifs seraient respectivement /dev/video0 et /dev/video1 ? Auquel cas il suffirait de lancer deux instances pour chaque dispositif.

      Par ailleurs, dans le man fswebcam (un peu plus bas), il y a l'option --list-inputs qui permet de lister les entrées disponibles pour la source ou périphérique sélectionné :

      fswebcam -d v4l2:/dev/video1 --list-inputs

      Cela parait donc possible avec fswebcam, cela doit l'être forcément avec motion et cela reviendrait à lancer motion avec deux fichiers de configuration. À creuser (malheureusement je n'ai pas le temps en ce moment).

      En ce qui concerne l'accès au réseau à distance (via le travail, smartphone, etc), il te faut :

      - connaitre l'IP de sa box (exemple 81.xxx.xxx.xxx). Cette IP change à chaque redémarrage de la box, pas pratique.
      - utiliser un service de dns qui, au travers d'une IP dynamique (jerome.dyndns.org par exemple) retrouvera l'IP de ta box à chaque connexion et te connectera. Certaines box proposent le service et il suffit juste de s'inscrire. Les services que j'utilise : http://www.dyndns.com et http://www.noip.com. La Box SFR me propose le service, je n'ai juste qu'à rentrer les identifiants et le service de DNS dynamique fonctionne directement.
      - il faudra certainement, sur la box, mapper l'adresse IP locale du RPi pour la rendre visible sur Internet.

      Cordialement :)

  4. Bonjour, merci et bravo pour votre article très complet. J'avais tenté de faire pareil et j'ai pas mal galéré pour finalement tomber sur la solution à base de mjpg_streamer qui fonctionne parfaitement sans dépasser les 6fps (j'ai une vieille webcam 640*480 logitech).

    Pour ajouter ma petite expérience, j'avais tenté l'installation de ZoneMinder (logiciel libre ultra complet pour la surveillance vidéo sous forme de site web), qui fonctionnait bien, mais l'accès au site était très très lent, le RPi étant vraiment limite pour cette usine à gaz qu'est ZoneMinder - mais l'essentiel, la détection et le streaming, fonctionnait très bien.

    Néanmoins, grâce à mjpg_streamer sur le RPi avec la caméra USB et ZoneMinder installé ailleurs sur un poste plus puissant, ça fait le job parfaitement depuis deux semaines non stop sans souci.
    Y'a même

    Bonne continuation 🙂
    Cordialement,
    Nicolas.

    • Bonjour Nicolas et merci pour le retour d'expérience. Je me souviens avoir essayé, il y a quelques années, ZoneMinder également mais je l'ai mis de côté pour son côté "usine à gaz". Si j'arrive à trouver du temps je ferai une install de ZoneMinder sur mon poste principal.
      Bonne continuation également 🙂

      Ookpik (Rémi)

  5. 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?

    • Bonjour Jérôme. Je ne suis aussi posé la question de faire marché une caméra ou un appareil photo numérique comme webcam. Au début, je passais, sur mon ordinateur de bureau (Ubuntu), par une carte PCI d’acquisition de type Pinnacle PCTV qui fonctionnait avec VLC, TvTime ou Kaffeine. Les drivers étaient reconnus et le fonctionnement était correcte.
      Je n'ai jamais essayé avec un cordon adaptateur convertisseur USB video audio VHS DVD. Le problème qui risque de se poser est le firmware utilisé sur ce genre d'adaptateur et la prise en charge de drivers par Raspbian. On peut trouver une petite liste d'appareils compatibles à cette adresse.
      Ceci étant dit, il faut peser le pour et le contre : cela vaut le coût de prendre le risque, les adaptateurs étant entre 12€ et 15€ sur ebay. Cela permet aussi de se servir d'un matériel inutilisé qui peut rendre service. Par contre, je trouve dommage que d'utiliser une appareil HD, voire full HD pour perdre en résolution et en qualité au final (je me trompe peut-être mais la résolution max finale est 720x576 et les 30 images/secondes ne sont pas garantis).
      J'espère avoir éclairci tes interrogations. D'ailleurs si quelqu'un peut nous faire un retour d'expérience avec de genre de matériel, ce serait sympa.

      Bonne journée

  6. bonjoursje suis étudiant en DUT et j'ai choisi comme projet un systeme de surveillance avec la PI j'ai regarder un peu le site mais je ne comprend pas comment configuer le fichier de motion ou autre car quand je l'ouvre il m'affiche un fichier vide cordialement

  7. en fait je souhaiterais dans un premier temps afficher ma video via la raspberry sans passer par un serveur . et quand j'installe motion et que je vais dans le fichier de configuration le fichier est vide . merci de vitre reponse

  8. Bonjour,
    merci pour ces explications.
    Malheureusement, j'ai un souci.
    Tout d'abord, j'utilise une webcam Logitech C170 et lorsque je fais lsusb, je la vois sur Device 005.

    Lorsque je tape la commande fswebcam -r 1280x780 --save toto.jpg, voila le message :
    --- Opening /dev/video0...
    stat: No such file or directory.

    Je pense que la webcam n'est pas bien installé, mais je ne suis pas sur.

    Avez vous une solution à mon problème ?

    Merci d'avance.

    • Bonjour,
      Je viens de regarder sur le site elinux.org pour vérifier la compatibilité de la C170 et elle est répertoriée comme fonctionnant nativement avec le RPi sous Raspbian (lien ici). Le problème se pose souvent lorsqu'on sollicite un peu trop les port USB du RPi : clavier + souris + webcam par exemple. La C170 a besoin d'une alimentation indépendante, le RPi ne pouvant procurer la tension/ampérage nécessaire à son bon fonctionnement. En passant par un hub USB, qui alimentera la webcam, le problème sera résolu.

  9. bonjour
    J'ai suivi ton tuto et tout fonctionne à merveille.
    Je voudrais savoir comment lance tout cela au démarrage de mon rasberry.
    Je suis débutant et j'ai besoin d'explication clair et détaillé pour comprendre la procédure afin de la réutiliser pour d'autre application.
    Merci d'avance pour ta réponse

    • Bonjour,
      Pour lancer une application au démarrage il y a deux solutions :
      La première va faire appel à cron qui permet la planification du lancement d'application. Dans notre cas on va demander à cron de lancer l'application au démarrage du RPi. En console :
      crontab -e
      Ajouter à la fin :
      @reboot /chemin/vers/l'exécutable/de/mjpg-streamer
      Touche Ctrl + O pour valider. À chaque reboot, mjpg-streamer sera lancé automatiquement.

      La seconde solution, la plus "propre" à mes yeux consiste à lancer un script au démarrage par le biais du daemon qui sera démarré lors du chargement du système d'exploitation.
      Dans un premier temps, il faut créer le script qui contiendra l'exécutable de mjpg-streamer dans le répertoire /etc/init.d :
      cd /etc/init.d
      sudo nano mjpg-streamer.sh

      Ajouter ces lignes et adapter la commande à tes préférences :
      #!/bin/sh
      LD_LIBRARY_PATH=/usr/local/lib mjpg_streamer -i "input_file.so -f /tmp/stream -n pic.jpg" -o "output_http.so -w /usr/local/www"

      On rend le script exécutable :
      sudo chmod +x /etc/init.d/mjpg-streamer.sh
      Désormais, le script se lancera à chaque démarrage du RPi

      J'espère que ces indications ont pu t'aider, n'hésite pas à laisser un commentaire, je tâcherai de répondre rapidement 🙂

      • Bonjour
        Je te remercie pour ton aide.
        J'ai essayer les deux solutions mais en vain cela ne fonctionne pas.
        Voici ce que je lance comme dans ton Tuto dans un terminal pour que cela fonctionne:
        pi@raspberrypi ~ $ cd mjpg-streamer
        pi@raspberrypi ~/mjpg-streamer $ ./mjpg_streamer -i './input_uvc.so -d /dev/video0 -r 640x480 -f 3' -o './output_http.so -c xxx:xxxx -w ./www -p 8080'
        MJPG Streamer Version.: 2.0
        i: Using V4L2 device.: /dev/video0
        i: Desired Resolution: 640 x 480
        i: Frames Per Second.: 3
        i: Format............: MJPEG
        o: www-folder-path...: ./www/
        o: HTTP TCP port.....: 8080
        o: username:password.: xxx:xxxx
        o: commands..........: enabled

        Merci d'avance

        • Bonjour et pardon pour le délai de réponse, j'ai été coupé du Net durant les vacances d'hiver.

          Le problème vient visiblement du lanceur de l'application, il ne faut pas utiliser la commande que j'ai donné mais celle que tu utilises car elle pointe sur des répertoires que tu as créé. Visiblement cela fonctionnait avant, aussi utilises la même commande (vérifie qu'elle lance correctement mjpg-streamer et que cela fonctionne comme tu l'as fait lors de la première installation de mjpg-streamer) puis intègre cette commande fonctionnelle dans tes scripts.

          J'espère que cela a pu t'aider.

  10. Bonjour,
    J'aimerais utiliser ma vieille webcam avec mon Raspberry Pi connectés au même réseau local pour pouvoir voir les images de ma cam sur une page d'un navigateur avec un ordi/téléphone/tablette sur le même réseau local (mais je voudrais que ça reste sur le réseau local, sans passer par internet). C'est possible ?
    De plus j'aimerais que, en plus de streamer la vidéo sur le réseau local, le Raspberry Pi enregistre les images fixes des mouvements perçus. C'est possible ça aussi ?

    Merci d'avance,
    Vic3198

    • Bonjour et pardon pour le délai de réponse, j'ai été coupé du Net durant les vacances d'hiver.

      Oui tu peux utiliser l'une des méthodes montrées ici au choix. Ton RPi est raccordé à ta box est a une IP locale (de type 192.168.x.xx), ta box a pour IP 192.168.x.1. Si tu ne divulgues pas ton adresse IP Internet à qui que ce soit, il n'y a aucune raison pour que quelqu'un puisse voir ces images, les ports du RPi n'étant pas redirigés via ta box. Au pire, tu peux créer un mot de passe pour y accéder. Mais honnêtement, à moins d'être la cible personnelle de la NSA, d'un Black Hat, il est fort peu probable que quelqu'un ait connaissance de ce que tu fais en local. Cela dit, tout système informatique est piratable, dans ton cas très peu de chance.

  11. Bonjour, j'ai aussi une question :

    Est'il possible de brancher plusieurs webcams et d'ajouter un sélecteur de canaux ? pour ne steamer qu'une à la fois ? Utile pour diffuser une émission sur YouTube par exemple.

    Merci

    • Bonjour Luc, il est tout à fait possible de brancher plusieurs webcams USB sur le même RPi (en passant par un hub USB), elles seront présentes dans le répertoire /dev (fichiers contenant les périphérique). Si tu branches 3 webcams, il y aura donc /dev/video0, /dev/video1, /dev/video2. Ce sera les adresses à communiquer au programme (dans son fichier de conf) que tu utiliseras pour exploiter tes webcams. Il ne reste plus qu'à "mixer" ces entrées pour en sortir un flux exploitable en streaming.
      Cordialement

    • Bonjour Pimousse,
      ça fait longtemps que je n'ai pas utilisé motion, j'espère tout de même pouvoir t'éclairer. Tout d'abord, je viens de regarder la compatibilité de ta webcam. Elle semble totalement compatible. La webcam est-elle reconnue en lançant la commande lsusb ?
      Il peut u avoir plusieurs raison à ton problème :
      - je vois qu'elle fonctionne lorsqu'elle est alimentée par le port USB du RPi, il se peut que l'alimentation du RPi soit un peu faible (ampérage) et que la webcam n'a pas assez de puissance pour fonctionner. Même si elle est reconnue avec "lsusb", cela ne veut pas dire qu'elle va fonctionner. Donc soit tu changes l'alimentation du RPi (5v, 2/3A), soit tu connectes la webcam sur un hub USB. Dans bien des cas, le problème vient de là.
      - il peut y avoir un problème de configuration de motion. Vérifie que cette ligne apparait :
      videodevice /dev/video0
      et redémarre motion (ou le RPi).

      À l'époque, j'ai beaucoup tâtonné pour faire marcher correctement motion, c'est pourquoi, j'ai comme préférence fswebcam, plus simple à paramétrer. À mes yeux, motion n'est à utiliser si l'on a un réel besoin de la détection de mouvement.

      • Bonjour,

        La Webcam est bien reconnue, et ne fonctionne pas non plus via un hub usb autoalimente et le fichier de conf a l'air correct.

        Je suis donc reparti d'une install neuve et depuis tout roule (sans que je sache vraiment pourquoi)

        Par contre je n'arrive pas a trouver ou s'enregistre les images et/ou vidéo, ni comment desactiver cet enregistrement.

  12. Bonjour,

    J'ai suivi votre tutoriel afin de réaliser un caméra ip, et j'ai pris la version avec motion, cependant après l'installation je n'ai aucun image qui est retourné par la caméra, ( j'ai vérifier et elle est activer dans le configuration du raspberry pi ). Avez-vous une idée sur la raison ?
    Voici une capture d'écran, http://www.les-techniciens.com/owncloud/public.php?service=files&t=111d1f07db36c8405e9de3125a4093e9

    Cordialement Alexandre.

  13. Bonjour et merci pour le partage,

    J'arrive pas a installer motion sur rpi, j'ai deux erreur 404 avec " sudo apt-get install motion" : les paquets motion et libpq5.
    Quelqu'un aurait une solution à mon problème ?

    Merci et encore.... Merci 🙂

  14. J'avais toujours le problème aprés "apt-get update" et "upgrade". Je me souviens plus trop comment j'ai fait mais il me semble que c'est "sudo rpi-update" qui a résolu le problème. (si ça peux aider...)
    Maintenant, quand je detecte un mouvement je suis notifié par message push le problème c'est que je reçois des messages tant qu'il detecte un mouvement. Il faut donc que je mette un "delay" dans mon script ou que je modifie le fichier de conf.... à suivre.
    Sinon j'ai une question un peu hors sujet =/
    Grace à cambozola et un serveur apache qui tourne également sur mon rpi j'arrive a servir une page web contenant un lecteur ultra fluide (sans refresh). Le gros problème c'est que cambozola n'est pas supporté par les navigateur sous android ya pas une alternative ?
    En d'autres termes je cherche un lecteur vidéo intégré a une page web capable de decoder le flux provenant de motion et compatible avec un navigateur android....
    Merci à vous =)

    • Content de voir que tu as réussi à faire tourner motion. Effectivement, "sudo rpi-update" (depuis l'arrivée de la Raspicam) a apporté de nombreuses fonctionnalités et la stabilité au support vidéo notamment.

      En ce qui concerne les messages "push", je n'avais pas eu ce soucis à l'époque quand j'ai testé motion. Un simple "sudo service pushd stop" fonctionnerait-il ?

      je ne connaissais pas "Cambozola". D'après ce que je viens de lire, ce soft tourne avec un environnement java qui normalement devrait être pris en charge sous Android, contrairement à flash qui n'est plus du tout supporté. Je ne suis pas expert en la matière mais tu pourrais regarder du côté des balises html 5 qui sera maintenant compatible avec la quasi totalité des navigateurs. Pour une utilisation basique, l'utilisation de la balise video est simple. Pour habiller la vidéo : ici et . Pour le streaming, cette solution en html 5 semble bien fonctionner. Il va falloir se plonger dans un peu de codage...

      Sinon, je suis entrain de rédiger un article qui pourra t’intéresser, une solution à base de Rpi, motion, qui permet entre autre de configurer simplement sa/ses caméras et de les mettre à disposition sur une interface web (consultation du live, des images et vidéos prises lors de la détection de mouvement) ou via son réseau avec Samba. C'est plutôt pas mal. L'article sera publié avant la fin de la semaine.

      Je ne suis pas certain de t'avoir beaucoup aidé, mais si je devais faire une page web comme toi, je me tournerais vers html 5.

  15. Pingback: Plus de 70 idées de projets pour votre Raspberry Pi - Place4geek

  16. Pingback: Utiliser motion - les notes de thierry

  17. Bonjour,

    Je n'utilise pas (encore) de RaspBerry Pi, mais comme tout ça, c'est du Linux/Unix, c'est du pareil au même. Je me permets donc cette remarque :

    J'ajoute que, si on est chez Free pour son téléphone portable, "Motion" peut gérer l'envoi de notifications SMS lors de la détection de mouvement via un script .sh adéquat tout simple.
    Ça reste basique mais peut être pratique si, comme moi, on n'a pas de forfait internet illimité mais le forfait à 2 Euros.

    D'autres Opérateurs de téléphonie le font sans doute également (je n'ai pas cherché).

    Sinon, "fswebcam" sait aussi gérer les notifications via fichier .sh ... mais sans intérêt car pas de détection de mouvement avec ce programme.
    Je n'ai pas encore testé avec "webcam" (il est tard).

    Cordialement,

  18. Hello, merci pour ce tuto. De mon côté j'utilise la RaspiCam et impossible de démarrer Motion:

    Failed to open video device /dev/video0: No such file or directory
    Aug 31 01:56:50 raspbian motion: [1] Retrying until successful connection with camera

    As-tu une idée ? Effectivement je n'ai aucun périphérique dans /dev/video0 mais tout fonctione bien avec mjpg donc la cam est OK.

    Merci pour tes lumières 🙂

  19. salut , j'ai une probleme de "camera pi" , voila le message qu'il apparaître lors de fait la commande "raspistill -o cam.jpg" :

    mmal: mmal_vc_component_create: failed to create component 'vc.ril.camera' (1:ENOMEM)
    mmal: mmal_component_create_core: could not create component 'vc.ril.camera' (1)
    mmal: Failed to create camera component
    mmal: main: Failed to create camera component
    mmal: Camera is not detected. Please check carefully the camera module is installed correctly

    aide moi svp ^^

  20. Bonjour
    merci pour le tuto qui m a beaucoup aider entant que debutante sur cela ,
    j'aimerai savoir si cela pourrai fonctionner sur une camera de tres haute resolution pas une webcam,
    2eme qst :: j'aimerai savoir comment faire pour transferer l'image acquise par le raspberry ver mon pc qui est sous windows10, afin de proceder au traitement de mes images
    merci pour votre aide

    • Bonjour,
      Avec le Raspberry Pi, tu installes MotionEye ou MotionEyeOS et ça te permet de récupérer le flux d'une caméra via la connexion CSI (le module pour Rpi est dispo en 8Mpx) ou via USB ou via le réseau ; ça laisse le choix.
      Pour "procéder au traitement des images", ça dépend de ce que tu veux faire.
      Le Rpi sait faire bien des choses.
      Sinon, sur le réseau, le Rpi est visible avec MotionEyeOS de manière native (mais je suis sous Linux et Mac ; pas de Windows) ce qui te permet de récupérer les images.
      Tu peux aussi simplement accéder au flux vidéo par interface Web depuis ton PC windows en affichant le flux de MotionEye ou de MotionEyeOS et également récupérer les images/photos.
      Je te conseille d'explorer ces 2 pistes (MotionEye et MotionEyeOS).

      • Je vous remercie pour votre réponse ,
        j'aimerai faire quelques acquisitions de photos par seconde et de les envoyer sur mon pc via le scp en ssh et le traitement se fait sur un logiciel spécial , et tous doit etre automatiser pour l'envoi et la recuperation d'image
        Dans ce tuto j'ai debuter avec le fsweb enfin de cette partie ça parle de fichier .sh exec /home/pi/fswebcam.sh ?
        sais tu comment on creer ce fichier et qu est ce qu'on doit mettre dedans car deja le fichier config on a planifier des taches pour l'acquisition
        merci

        • Salut,

          Si je comprends bien ta demande, on peut simplement lancer un script pour réaliser une photo toutes les X secondes via une commande (ligne de commande sur le Rpi) qui utilise raspistill.
          C'est le principe des TimeLapses.
          En gros :
          "raspistill -o images-reda_%05d.jpg -tl 15000 -t 43200000"

          Ce qui signifie :
          raspistill : commande pour prendre les photos
          -o : défini le nom du fichier à créer
          images-reda : nom du fichier
          _%05d.jpg : impose une valeur à 5 décimales accolée au nom du fichier afin de les classer dans l’ordre.
          -tl 15000 : Une photo toutes les 15 secondes (valeur exprimée en ms)
          -t 43200000 : Durée de prise de vues = 12 heures (12*60*60*1000 ms).

          Ensuite, on doit pouvoir envoyer les images par scp de manière automatique vers le PC par une tache cron qui lance la commande scp (je pense que c'est faisable ; mon pb sera Windows que je n'ai pas).
          Sinon, faire un transfert de type samba ?

          @+

          • Bonjour désolé pour le retard de mon retour,
            de ma part j'ai créer un fichier script de configuration avec
            # nano .fswebcam.conf
            ou les photos son enregistrer sur un cles USB , puis d'une autre part sur mon pc windows j'ai installer le winscp qui permet de lancer le terminal en SSH et commander le raspberry j'ai trouvé qu'il y a moyen de faire un transfert automatiser créant un fichier bash sous windows qui planifie le transfert
            ma question c’était dans votre tuto vous avez parlez de fichier .sh exec /home/pi/fswebcam.sh ? est ce que c'est faisable que pour des pc sous linux ?

  21. Re,

    Avant tout, je tiens à préciser que je ne suis pas le rédacteur de ce tuto ni de ce site ; je ne suis qu'un simple visiteur d'autrefois (avril 2015 avant mes début sur Raspberry Pi)
    Mes réponses n'engagent en rien le site epingle.info ni Ookpik 😉

    Ensuite, je précise également que je n'utilise pas fswebcam.

    Pour revenir à tes questions :
    Le Raspberry Pi fonctionne avec Raspbian = c'est un PC linux.
    La commande "exec /home/pi/fswebcam.sh" est exécuté sur (par) le Rpi.

    A noter qu'un fichier .sh = c'est un fichier bash pour simplifier (je ne suis pas expert).

    Selon ce que nous en dit l'auteur, le fichier "fswebcam.sh" permet la connexion à son ordinateur principal par FTP, dépôt du dernier instantané, et clôture de la cession FTP.
    Donc son script "fswebcam.sh" ordonne à son Rpi de se connecter à un serveur (son PC) et d'y déposer la dernière image.
    J'ai fait un truc semblable dans le temps avec un serveur FTP distant (sur le Net) sauf que mon script prenait la photo et l'exportait en boucle toutes les 5 minutes (via tache cron).

    Ces 2 solutions me paraissent faisables en automatique du Rpi vers ton PC Windows.
    Il suffit que tu fasses une connexion par FTP du Rpi au PC Windows.

    • Ahh d'accord merci pour tes explications ,
      moi maintenant j'arrive a me connecter et envoyer des requêtes en ssh au raspberry , j'ai créer un fichier script .bat sous windows qui permet de récupérer automatiquement le dossier de photos sous la pi et l envoyer au pc , je n'ai pas fais le test encore , j'ai lu aussi que c'est possible de faire un fichier cron qui fait l'automatisation mais je ne trouve pas assez de tuto qui aide à le faire car je débute dans ce domaine je ne sais pas trop comment y procédé
      merci ^^

    • Bonjour,
      je viens de lire vos commentaire je suis dans la même situation je cherche à automatiser l'envoi de photos depuis un raspberry vers mon pc
      j'aimerai savoir comment peut on créer un fichier cron sur le raspberry et qu'il soit automatique pour l'envoi des photos ou bien un fichier .sh je sais pas comment écrire les taches d'automatisation merci à vous de m’éclairer
      bonne journée à vous

  22. Bonsoir Karim,
    Cet article de Ookpik est très bon, mais il date un peu.
    Que souhaites tu faire ?
    Si tu veux faire de la vidéo-surveillance facilement, je te conseille MotionEye (sur Raspberry Pi ou sur autres distributions Linux) ; de même si tu veux juste diffuser un flux vidéo (genre visiophone pour surveiller le bébé dans sa chambre depuis ton salon).
    Si tu veux juste prendre des photos toutes les X minutes, je te conseilles d'utiliser raspstill et de mettre en place un script avec tache cron ou d'utiliser le programme "webcam" (je ne l'ai pas utilisé depuis longtemps).
    @+

Répondre à xav Annuler la réponse

Votre adresse e-mail ne sera pas publiée.

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