Timelaps avec une webcam

Les applications du Raspberry Pi en contrôle d'accès, alarme et vidéosurveillance

Modérateur : Francois

Répondre
FredM
Messages : 77
Enregistré le : lun. 18 janv. 2016 00:05

Timelaps avec une webcam

Message par FredM » jeu. 29 déc. 2016 17:01

Bonjour,

Je souhaiterais capturer et gérer des images prises par une webcam ip (dlink DCS932) via mon raspberry.
L'outil fswebcam semble correspondre à ce que je voulais faire, cad du timelaps :
J'ai lu notamment ces posts : viewtopic.php?f=28&t=2083&hilit=fswebcam
Seulement je ne parviens pas à savoir si fswebcam peut fonctionner avec une webcam ip et si oui comment on déclare et configure cette webcam...

Merci de vos conseils
Fred

FredM
Messages : 77
Enregistré le : lun. 18 janv. 2016 00:05

Re: Timelaps avec une webcam

Message par FredM » ven. 30 déc. 2016 00:45

J'ai trouvé ce script basique :
http://scidle.com/how-to-make-a-time-la ... ith-linux/
mais le package mencoder ne semble pas disponible sous raspbian ;(

Sinon voilà à quoi ressemblerait ce que j'aimerais faire comme inclusion sur un site web de ma webcam :
http://www.teleport.nu/features
Tout y est : live, timelaps, history mais bon ce n'est pas auto-hébergé ni gratuit ;(
A voir s'il existe des scripts ou outils libres de ce type...
Fred

Avatar du membre
marco123
Raspinaute
Messages : 438
Enregistré le : sam. 30 janv. 2016 07:59
Localisation : Val d'Oise

Re: Timelaps avec une webcam

Message par marco123 » ven. 30 déc. 2016 20:27

salut !
Je pige pas ce que tu veux !
Tu cites un topic ou j'ai répondu, mis un script simple de timelapse avec une cam ip ( 2 ) comme la tienne .
Tu as juste a le modifier a ton gout !
ca donne ca ... par contre, pour la couleur, youtube les modifie un peu !
http://www.youtube.com/v/Ld42pf_OANg

FredM
Messages : 77
Enregistré le : lun. 18 janv. 2016 00:05

Re: Timelaps avec une webcam

Message par FredM » ven. 30 déc. 2016 21:58

Salut,

Bon j'ai un peu débroussaillé.
Sur Jessie, plus de memcoder, plus de ffmpeg... du coup avconv le remplace pour générer le fichier vidéo à partir des photos.
J'ai suivi :
http://www.framboise314.fr/le-premier-f ... u-creusot/ et https://www.astrololo.fr/tutoriels/time ... nv-ffmpeg/

Pour l'instant je parviens à générer les prises de vues toutes les x minutes via un crontab.
Les images sont de la forme :
30-12-2016_21:08:01.jpg
30-12-2016_21:09:01.jpg
30-12-2016_21:10:01.jpg
30-12-2016_21:11:01.jpg

Après, je tente de générer le fichier video avec la commande :
avconv -i *.jpg -r 1 -qscale 3 timelapse.mp4

Ce qui donne :

Code : Tout sélectionner

Output #0, image2, to '30-12-2016_21:08:01.jpg':
  Metadata:
    encoder         : Lavf56.1.0
    Stream #0.0: Video: mjpeg, yuvj422p, 1280x720, q=2-31, 200 kb/s, 25 tbn, 25 tbc
    Metadata:
      encoder         : Lavc56.1.0 mjpeg
Output #1, image2, to '30-12-2016_21:09:01.jpg':
  Metadata:
    encoder         : Lavf56.1.0
    Stream #1.0: Video: mjpeg, yuvj422p, 1280x720, q=2-31, 200 kb/s, 25 tbn, 25 tbc
    Metadata:
      encoder         : Lavc56.1.0 mjpeg
Output #2, image2, to '30-12-2016_21:10:01.jpg':
  Metadata:
    encoder         : Lavf56.1.0
    Stream #2.0: Video: mjpeg, yuvj422p, 1280x720, q=2-31, 200 kb/s, 25 tbn, 25 tbc
    Metadata:
      encoder         : Lavc56.1.0 mjpeg
Output #3, image2, to '30-12-2016_21:11:01.jpg':
  Metadata:
    encoder         : Lavf56.1.0
    Stream #3.0: Video: mjpeg, yuvj422p, 1280x720, q=2-31, 200 kb/s, 25 tbn, 25 tbc
    Metadata:
      encoder         : Lavc56.1.0 mjpeg
Malheureusement la vidéo produite n'est composée que de la même première image...
Il y a truc qui ne doit pas aller dans ma commande avconv !

L'idée serait de générer automatiquement des timelapse et de gérer leur affichage sur une page web. Avant de me lancer dans une programmation que je maitrise mal, je voulais voir s'il n'existait pas des scripts faisant cela (du type teleport.nu).

J'suis plus clair ? ;)

Fred

stephaneK
Messages : 89
Enregistré le : mar. 13 sept. 2016 10:08

Re: Timelaps avec une webcam

Message par stephaneK » ven. 30 déc. 2016 23:19

Bonsoir,
pour compiler votre série de photos en un fichier vidéo, vous pouvez aussi, utiliser le logiciel mencoder

Il suffit de vous placer dans le répertoire où sont stockés vos photos et lancer les commandes ci dessous :

#on liste dans un fichier txt, les images contenues dans le répertoire (INDISPENSABLE pour mencoder)
ls > ../liste_photos.txt

#il suffit maintenant d'assembler toutes les photos
mencoder -nosound -ovc lavc -lavcopts vcodec=mpeg4:aspect=16/9:vbitrate=8000000 -vf scale=1920:1080 -o votretimelapse.avi -mf type=jpeg:fps=14 mf://@../liste_photos.txt


dans cet exemple, "votretimelapse.avi" sera stockée dans le même répertoire. A vous de modifier chaque paramètre selon vos inspirations :D

Bonne soirée
@++

FredM
Messages : 77
Enregistré le : lun. 18 janv. 2016 00:05

Re: Timelaps avec une webcam

Message par FredM » ven. 30 déc. 2016 23:47

Malheureusement memcoder n'est plus maintenu sous Jessie.
avconv n'arrive pas à gérer les noms d'images du type :
30-12-2016_21:08:01.jpg
30-12-2016_21:09:01.jpg
En les renommant 1.jpg - 2.jpg - 3.jpg.... la commande :
avconv -i %d.jpg -r 1 -qscale 3 timelapse.mp4
passe correctement.

Il faut que je trouve un moyen de générer des noms incrémentés de 1 pour mes fichiers jpg afin d'éviter d'avoir à les renommer.
Il faudrait qu'un script recherche le nom du dernier fichier copié et l'incrémente de 1. Un truc avec : ls -rt1|tail -1 par exemple.

Fred

FredM
Messages : 77
Enregistré le : lun. 18 janv. 2016 00:05

Re: Timelaps avec une webcam

Message par FredM » sam. 31 déc. 2016 01:30

Voilà mon bash pour récupérer mes photos numérotées :

Code : Tout sélectionner

#!/bin/bash
#capture.sh
# Webcam URL
URL_WEBCAM="http://[user]:[password]@[ip_cam]/image/jpeg.cgi"
# Output DIR
DIR="/home/fredpi/photos/"

#Recherche du nom du dernier fichier créé
nomcomplet=$(ls $DIR -rt1|tail -1)
#Nom sans l'extension
nom=${nomcomplet%%.*}
#Nom du  nouveau fichier incrémenté de 1
NAME=$((nom+1))
wget --no-check-certificate --no-verbose $URL_WEBCAM -O $DIR$NAME.jpg
jpeginfo -d $DIR$NAME.jpg
#Tant que la capture n'est pas correcte on recommence 
while [ ! -f $DIR$NAME.jpg ] ;
    do
        wget --no-check-certificate --no-verbose $URL_WEBCAM -O $DIR$NAME.jpg
        jpeginfo -d $DIR$NAME.jpg
    done
Ce bash est appelé régulièrement par une tâche cron
En fin de journée, je lance par un autre cron :

Code : Tout sélectionner

#!/bin/bash
# timelapse.sh
# Conversion en video
DATE=`date +"%d-%m-%y"`
avconv -i /home/fredpi/photos/%d.jpg -r 10 -qscale 1 /home/fredpi/timelapse/$DATE.mp4
#On purge les images 
rm /home/fredpi/photos/*.jpg
A priori cela fonctionne, à voir à l'usage...
Il reste maintenant à gérer l'affichage dynamique des timelaps dans un wordpress...

Merci
Fred

Répondre

Retourner vers « Accès, alarme et vidéosurveillance »