Condenser une video de la journee avec motion

Ayant cédé dernièrement à ma copine pour un petit chat, j'ai eu l'idée de pouvoir l'espionner durant les moments de nos absences.

Tous ceci à moindre coup bien sûr !

une webcam trouvé dans le grenier et un logiciel libre fera l'affaire.

Pour faire l'acquisition et la diffusion de se qui se passe devant ma webcam,  j'utilise Motion.

Ce petit logiciel qui n'a l'air de rien est une vrai mines d'or. Il permet de :

- Diffuser le flux de la webcam sur le net via un petit serveur web integré.

- Faire des vidéos ou rafale de photo sur une détection de mouvement. (le réglage de la sensibilité est très correcte)

- Envoyer un sms ou email sur une détection.

- Prendre une photo périodiquement.

- ...   Je vous laisse découvrir la doc   ...

 

Pour ma part, j'utiliserai le serveur web et l'acquisition périodique de photo.

Mon but étant de pouvoir accéder en temps réel et à tous moment sur ce qu'il se passe devant la webcam.

Ensuite, je voudrai acquérir une image toutes les 30 secondes pour en faire une vidéos journalières de toutes les images récupéré.

Voici mon fichier configuration pour motion :

?View Code BASH
webcam_port 8080   #Port d'ouverture du serveur web
webcam_quality 100    #qualité des images récupéré
webcam_localhost off    #Autorise le réseau extérieure à consulter le flux web
output_motion off
output_normal off
output_all off
target_dir /home/malangot/webcam/tmp    #Dossier où les images sont stockés
height 640
width 480
snapshot_interval 30    #Intervalle de temps entre chaque acquisition d'image en seconde
snapshot_filename %d%H%M%S    #Format du nom de chaque image

la commande pour lancer le script est :

?View Code BASH
motion -c motion.cfg

Le paramètre LD_PRELOAD=/usr/lib/libv4l/v4l2convert.so est parfois nécessaire, si vous obtenez un message d'erreur.
Je vous conseil de lancer cette commande dans un screen. Pour voir ce qu'il se passe à un moment ou à un autre.

Il ne nous reste plus qu'a faire un script bash, récupérant les images pour les convertir en vidéo avec ffmpeg.

?View Code BASH
#!/bin/bash
 
_DATE=`/bin/date +%d%m%Y`
_JOUR=`/bin/date +%d`
 
cd ~/webcam/tmp
mv *.jpg ~/VIDEOS/CHAT/tmp/
 
cd ~/VIDEOS/CHAT/tmp/
 
_NUMERO="1"
for IMAGE in *.jpg
do
mv  "$IMAGE" "$_NUMERO.jpg"
_NUMERO=$((_NUMERO+1))
done
 
ffmpeg -i %d.jpg $DATE.mpg
mv $DATE.mpg ~/VIDEOS/CHAT/
rm -f *

Un petit crontab -e sur ce script et le tour est joué !!

Vus : 1683
Publié par Malangot : 14