
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.
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.
Bonjour, à combien de FPS peut on monter avec le Raspberry.
Je cherche à streamer en 25 fps avec une résolution de 1280x720 en h264 avec une Logitech C310.
Mange ta mere
Pourquoi autant de haine?
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.
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 :)
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)
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
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
Bonjour. Je n'ai pas entièrement compris le problème que tu as. Normalement, après avoir installé motion, tu devrais avoir un fichier /etc/motion/motion.conf
Tu devrais jeter un oeil sur ce tuto qui prend motion sous un aspect différent : http://www.pihomeserver.fr/2013/05/29/raspberry-pi-home-server-video-surveillance-avec-motion/
Un autre lien qui montre en vidéo comment l'installer http://www.youtube.com/watch?v=H1jSudsIJfA
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
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.
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
J'ai oublié de préciser j'utilise mjpg-streamer.
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.
Bonjour
Après réinstallation de Rasbian j'ai suivi ce tuto :
https://fablab.coagul.org/index.php/Installer_MJPG-Streamer_sur_Raspberry_Pi
Et j'ai enfin réussi à lancer MJPG-Streamer au démarrage.
Merci beaucoup pour ton aide .
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.
Merci beaucoup !
Pour le streaming, j'ai trouvé un moyen de le faire avec VLC, mais pour la détection, je vais essayer une de tes méthodes
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
J'ai mis en œuvre le serveur webcam avec motion sans difficultés mais malheureusement cela ne fonctionne pas avec ma webcam Logitech QuickCam for Notebook Deluxe.
Lors de l’accès a la page http://ip_du_RPi:8081 j'ai le message "unable to open video device"
Quelqu'un a une idée ?
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.
Regarde dans le fichier motion.conf tu as un parametre qui est target_dir
par defaut ce parametre pointe vers /home/pi/motion c'est donc là que se trouve les captures.
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.
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 🙂
saprin peut etre fait un sudo apt-get update avant. Et un sudo apt-get upgrade aussi.
au niveau du debit, avec mjpeg-streamer et 2 cam en 720p a 15 fps je suis a 80 % du proc.
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 là. 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.
plus de souci de notifications a répétition aprés avoir revu mon fichier de config.
Je sais plus pourquoi je me suis tourné vers cambozola mais doit bien y avoir une raison. Je reéssairai avec html5 des que possible et je ferai un retour
volontiers 🙂
Pingback: Plus de 70 idées de projets pour votre Raspberry Pi - Place4geek
Pingback: Utiliser motion - les notes de thierry
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,
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 🙂
Pour info c'était le module bcm2835-v4l2 qui n'était pas activé :
modeprobe bcm2835-v4l2
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 ^^
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 ?
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
.sh exec /home/pi/fswebcam.sh c'est un script bash ? qui permet de faire quoi et comment je pourrai le creer et l'utiliser c'est ce que je ne sais pas faire 🙁
Bonjour,
Pour vous mettre sur la piste :
Sur Qwant la recherche est
"Affichage RaspiCam serveur FTP"
Sur Google, c'est "Affichage RaspiCam depuis serveur FTP"
Donc si j'ai bien compris s j'execute toute les commande et que je branche ma cam cela fonctionne ? ma comment je fais pour voir le rendue ? je tape l'ip de la raspberry sur mon navigateur ?
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).
@+