Si vous possédez ce type de caméra IP miniature, vous avez sans doute remarqué qu’elle n’intègre aucune fonctionnalité de capture d’écran (snapshot in english) :

camera ip raspberry

Caméra IP miniature ONVIF

Ce modèle se trouve chez nombre de distributeurs aux yeux bridés, souvent dans les $20 à $30 en moyenne, avec objectif réglable ou fixe. Elle s’allume directement avec l’IP 192.168.1.10, accès avec le seul login admin, sans mot de passe. Pas de bol, il vous faudra Microchose Interdaube Explorateur et donc un environnement Winchose pour accéder aux fonctionnalités complètes, mais on peut s’en sortir avec Safari via l’adresse http://192.168.1.10/Login.htm. L’image sera alors affichée sans soucis.

Sur Raspberry Pi, voici le contenu de snapshot.sh, un script utilisé pour capturer une image en utilisant le flux rtsp de la caméra IP, lui ajouter la date, l’heure, et la sauvegarder dans /var/www/alarme/, le répertoire où se trouvent toutes les images prises lors d’une alarme :

#!/bin/sh
sudo avconv -i rtsp://192.168.1.10:554/user=admin_password=_channel=0_stream=1.sdp -vframes 1 -r 1 -s 640x480 /var/www/alarme/image-`date +%Y%m%d-%H%M%S`.jpg

J’ai tenté avec ffmpeg, mais le résultat était systématiquement minable, dommage donc, avconv est la seule solution exploitable.

Voici donc ce que vous allez retrouver dans /var/www/alarme :

ls /var/www/alarme
image-20150720-114853.jpg  image-20150720-114859.jpg

Pour venir afficher toutes les images dans /var/www/alarme, j’ai utilisé le script php présenté ici sur GitHub, en l’adaptant un peu, et voici le résultat avec un exemple de 2 images d’alarme :

raspberry images alarme

Affichage de toutes les images d’alarme

Un bouton dans l’interface de gestion de l’alarme permettra lui de supprimer tous les fichiers en envoyant une simple commande dans le script php :

exec("sudo rm /var/www/alarme/*.*");