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 :
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 :
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.
#!/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é !!