TimeLapse grâce au RaspBerry Pi

Prise de photos et création d’une vidéo accélérée grâce au RaspBerry Pi et son module caméra

Capture d'écran du Terminal lançant la commande avconv
Et hop, un petit TimeLapse en mode console 😉

Comme d’habitude, un peu de blabla pour commencer. Les plus pressé(e)s peuvent aller directement à l’essentiel de l’article ci-dessous. 😉

Suite à l’acquisition d’un module Caméra pour RaspBerry Pi, je suis parti dans divers tests.

J’ai toujours voulu faire du TimeLapse (vidéo accélérée) et … après diverses recherches … ben … Pfff …

Pas facile a priori !

Pourquoi ?

Et bien tout simplement parce que tous les sites qui parlent du TimeLapse sur RaspBerry Pi évoquent mencoder.

Et alors ?!? Me direz-vous. Oùksétikilè le problème ???

Comme pour l’article Surveillance avec RaspBerry Pi, c’est donc ce manque de mencoder dans les dépôts de Jessie qui m’a obligé à chercher.

Résultat ?

En fait, actuellement (octobre/novembre 2016), il faut utiliser « avconv » en installant « libav-tools ».

Bon voilà, c’est tout, problème réglé. Salut, à la prochaine ! 😀

Non, je rigole.
– Comme on ne trouve rien de facile (ou alors j’ai mal cherché, possible).
– Comme on le sait déjà, je suis hyper sympa [pas de « ou alors » ici ;-)]

–> Et bien, je vais faire un article afin de laisser une trace pour vous et pour moi (je ne suis pas informaticien, alors sans notes … Je ne suis rien).

Allez, on voit cela ci-dessous dans le détail.

Tout ce qui suit a été réalisé sur un RaspBerry Pi3 (Merci Karen A pour le cadeau) qui tourne sous RaspBian Jessie + le « DIYmall Module Caméra Raspberry Pi » (14,42 Euros sur Amazon).

Je bosse en ssh depuis mon Mac Mini et/ou un vieux PC portable de récup (merci Christophe T) qui tourne sous Linux Mint.

Réalisation des images

Pour commencer, on va créer un dossier spécifique :

mkdir /home/pi/timelapse

Ensuite, on bascule dans ledit dossier :

cd /home/pi/timelapse

Et il ne reste plus qu’à lancer la commande de prise de photos :

raspistill -o timelapse_%05d.jpg -tl 60000 -t 7200000

Explications basiques :
raspistill : commande pour prendre les photos
-o : défini le nom du fichier à créer
timelapse : nom dudit fichier (ou « image » ou « ce_que_vous_voulez »)
_%05d.jpg : impose une valeur à 5 décimales accolée au nom du fichier afin de les classer dans l’ordre. (Je ne commente pas le « .jpg » 😉 Si ???)
-tl 60000 : Une photo chaque minute (valeur exprimée en ms donc 60*1000)
-t 7200000 : Durée de prise de vues = 2 heures (2*60*60*1000 ms) pour commencer les tests

Pour les « très très pressés », on peut coller une image toutes les 10 secondes pendant 10 minutes (donc 61 images car de 00000 à 00060) :

raspistill -o timelapse_%05d.jpg -tl 10000 -t 600000

On laisse tourner et on se retrouve avec quelques images 🙂

Ajout du 01/04/2019 : sur un forum, une personne a eu des soucis car la commande plantait après un certains nombres de photos.
On avait ce type d’erreur : mmal: Frame 9 is 1529 ms late
mmal: Frame 161 is 776 ms late
mmal: Skipping frame 373 to restart at frame -28093008
D’autres fois, les photos s’arrêtaient sans plantage de raspistill (le processus était toujours actif, mais les clichés n’étaient plus pris).
Finalement, j’ai trouvé la solution : il faut faire une mise à jour du firmware avec sudo rpi-update
Mais lisez plutôt cet article sur epingle.info

Bon, la suite.

Réalisation de la vidéo

On installe libav-tools à la place de l’ancien mencoder

sudo apt-get -y install libav-tools

Il ne reste plus qu’à lancer l’encodage des images dans une vidéo :

avconv -r 10 -i timelapse_%05d.jpg -r 10 -vcodec libx264 -crf 20 -g 15 timelapse_jj-mm-aaaa.mp4

Et, après un moment, on récupère la vidéo et on admire le résultat … et … éventuellement … les erreurs genre exposition foireuse, lumière qui s’allume dans la pièce, reflet de la LED rouge*, caméra déplacée par autrui, … Merci d’être indulgents 😉

Si vous bossez en ssh, pour récupérer la vidéo sur votre PC, faites une déconnexion avec :

exit

Puis lancer la commande cp en ssh (à adapter à votre cas) :

scp pi@192.168.0.19:/home/pi/timelapse/timelapse_jj-mm-aaaa.mp4 /Users/alban/Desktop/TEST

Ce qui donne, sur mon Mac Mini :

pi@raspberrypi:~/timelapse $ exit
déconnexion
Connection to 192.168.0.19 closed.
Mac-mini-de-Alban:~ alban$ scp pi@192.168.0.19:/home/pi/timelapse/timelapse_02-11*.mp4 /Users/alban/Desktop/TEST
pi@192.168.0.19's password:
timelapse_02-11-2016.mp4             100%  165MB  11.0MB/s   00:15
Mac-mini-de-Alban:~ alban$
Résultat

Voici, humblement, mes 2 vidéos de test. Ces vidéos sont évidemment très réduites (au quart de leur taille d’origine) ; de 2592×1944 elles ont été réduites à 648×486 avec HandBrake (Linux Power oblige).

Video d'un TimeLapse

En exemple, la première vidéo réalisée hier
Avec 1 image toutes les 60 secondes durant 3 heures (301 images):

TimeLapse 30 secondes Raspberry Pi

Erreur =
je ne vise pas assez le ciel, mais on voit le flux du temps qui passe tout de même
Merci les ombres 😉

Capture d'image d'une vidéo en TimeLapse

Et, en bonux extra, la seconde vidéo réalisée aujourd’hui sur près de 12h avec 1 image toutes les 90 secondes (456 images) :

TimeLapse 46 secondes Raspberry Pi

Cette fois, j’ai tenté de viser une plus grande partie céleste (pour voir les passages nuageux), mais, pas de bol, au début, c’est plutôt couvert ; soyez un peu patient(s) 😉

Capture d'écran d'un TimeLapse de 12h

Edit du 03/11/2016 :
Un dernier pour la route.

TimeLapse de 1 minute 07

Même cadre que le précédent, sur près de 12h avec 1 photo chaque minute soit 671 photos.

Il faisait assez beau avec passages de nuages, changement de lumière. Sympa ! 🙂

Capture d'écran d'un autre TimeLapse

Rajout du 11/11/2016.

Test avec la PiCam penchée (pour mieux voir le ciel et moins la route) en faisant 1 photo toutes les 10 secondes.

Je n’ai que 508 photos, ce qui donne un TimeLapse de 51 secondes

La danse des nuages est amusante ; mais le nombre d’images/minute dépend aussi de la vitesse du vent … et moi … je fais au pif … :-s

A noter que malgré mes RasPiLego et autres techniques pour masquer les LED de fonctionnement (j’avais déjà désactivé la LED*), je trouve qu’il persiste un halo rouge en milieu d’image.

Causé par le double vitrage ?
Il va falloir que je teste en mettant le RaspBerry Pi dehors et/ou en faisant des images en intérieur.

* : Dans mon cas, nécessité de désactiver la LED car reflet sur la vitre puisque pour le moment, je suis derrière la fenêtre de la chambre du n°4 donc halo visible selon le soleil, …

Éditer le fichier de configuration :

sudo nano /boot/config.txt

Puis ajouter cette ligne à la fin du fichier :

disable_camera_led=1

Et voilà !

En cas de besoin, comme d’habitude, vous pouvez m’écrire directement via le formulaire de contact.

P.S. : si vous voulez faire des photos ou des vidéos (et même du Time Lapse) sans vous embêter avec le codage … Voici un Générateur de Ligne de Commande pour la RaspiCam.

Edit du 10/11/2016 :

Pour le fun, voilà le RaspiLego réalisé à l’arrach’ ce matin pour tenir la RaspiCam tout en cachant les LED car même sans la LED de caméra, j’avais un halo rougeâtre sur les vidéos (je soupçonne les LED de fonctionnement d’en être la cause).

Bon, du coup, je crois que je vais jouer à en faire d’autres 😉

Photo d'une sorte de boitier pour Raspberry et module caméra réalisé en gros légo pour enfants
RaspiLego par Alban
Photo de la RaspiCam en mode Lego
RaspiCam en mode Lego
Photo de mon RaspiLego
RaspiCam avec support en Légo

Nouvel Edit du 11/11/2016 :

Avec l’application RasPi Check, j’ai constaté que mon gentil RaspBerry Pi 3 affichait 83,8°C lors de la création de la vidéo.

Il est vrai que le RaspBerry Pi 3 est plus véloce que les modèles précédents … Mais … Purée, ça chauffe ! Même avec les dissipateurs thermiques, ça fait peur.

Du coup, j’ai bien été obligé de profiter de ce jour férié pour refaire un autre RasPiLego histoire de pouvoir y coller un ventilo de récup (ou un ventirad plutôt) ce qui a bien fait tomber la Température du RaspBerry.

Voici des images :

Photo de mon second RasPiLego
RasPiLego avec VentiRad
Photo de mon Raspberry + module caméra avec ventilateur dans un boitier en Loego
Photo de dos de mon second RasPiLego

Edit du 22/01/2017

Pour ma page traitant du transfert automatique de clichés vers serveur FTP, j’ai testé une fonction sympa de ImageMagick : transformer un lot d’image en fichier GIF pour en faire un fichier GIF animé.

Voilà le résultat :

Time Lapse en mode GIF tout simple
TimeLapse du 21/01/2017 en GIF animé (cliquez ici pour visualiser ; attention fichier de 15 MB ; soyez patient ; il faut laisser le temps au serveur de charger le fichier)
Image statique d'un GIF animé
TimeLapse du 22/01/2017 en GIF animé via ImageMagick en ligne de commande (cliquez ici pour visualiser)

Ok, Ok, les habités de la chose ou les photographes pourront se moquer de la piètre qualité de mes réalisations, mais je reste (à tout jamais) un gamin de 16 ans et 1/2 et donc :

  1. J’aime jouer.
  2. Je m’évermeille des possibilités de la ligne de commande.
  3. Je m’épate moi-même (mais, faut dire, y a de quoi ; non ?!? 😉 Si.)

A bientôt,

A propos de Alban

Papa de 4 enfants étant lui-même resté un enfant. Diététicien-Nutritionniste tombé par obligation dans l'informatique à 22 ans pour le boulot et s'étant "un peu" pris au jeu ... Pas un génie de l'informatique (loin de là), mais intéressé et carrément orienté Linux et entraide. Lassé de l'évolution du Monde de la Santé dans lequel les patients sont de plus en plus à traiter comme des clients (je suis un soignant !!!), j'ai opté pour une reconversion en repartant en Alternance... à... 44 ans D'abord dans le cadre d'un BTS SIO option SISR (Solutions d’Infrastructure, Systèmes et Réseaux) en Septembre 2019. Après l’obtention du BTS (16,57/20 ;-) ), j'ai décidé de poursuivre (toujours en alternance) en Bac+3 avec un Bachelor Concepteur de Systèmes d'Information. Depuis septembre 2022, je suis donc encore plus vieux, mais un jeune diplômé "Administrateur Systèmes et Réseaux". (Bac+3 obtenu avec 16,40/20) Citation personnelle : « Si la réussite facile flatte l’égo, C’est de la persévérance que nait le plaisir de la réussite. »

2 commentaires à propos de “TimeLapse grâce au RaspBerry Pi”

  1. Rétroliens : RaspiLego – un boitier en LEGO® pour RaspBerry Pi – TREVILLY.COM

  2. Rétroliens : Ventilateur pour RaspBerry Pi3 – TREVILLY.COM

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.