Probleme de temps sur unTimelapse [Résolu]

Bonjour

Je voudrais créer un timelapse depuis les photos prisent depuis mon raspberry. Malheureusement quand je lance la commande : raspistill -o timelapse_%d.jpg -tl 3000 -t 43200000 (donc 12h) les photos se stop après 1h30 environ … il n’y a pas trop de logique j’ai essayé plusieurs temporisation rien n’est logique.
Pouvez vous m’aider svp .

merci

Michael

Bonsoir

Il faut préciser dans votre commande, le nombre maximal d’images.

Si vous laissez en paramètre « %d.jpg » tel quel, la prise d’image sera arrêtée.

En effet, raspistill incrémente les prises de vues et nomme automatiquement les fichiers de cette façon : 0000.jpg, 0001.jpg, 0002.jpg…

Avec votre exemple, vous obtiendrez que 1000 images, même si vous vous voulez que la prise de vue ce fasse pendant 12h.

Pour votre cas, ajoutez %08d.jpg à votre commande. Raspistill nommera les clichés de 00000000.jpg à 99999999.jpg afin de couvrir les 12h.
Vous avez de la marge :wink:

Pour réaliser le timelapse, j’utilise souvent cette commande, avec ffmpeg :

$ ffmpeg -i %08d.jpg -s hd1080 -vcodec libx264 nuages.mp4

@+

Salut

Tu fais une photo toutes les 3 secondes ; je me demande si ce n’est pas un peu rapide.
1h30 = 90 minutes = 5400 secondes soit déjà 1800 photos.
Tu confirmes ?
Ta carte n’est pas pleine ?

Le pb n’est pas %d ?
Sinon, perso, je préfère
raspistill -o timelapse_%05d.jpg -tl 60000 -t 7200000 où « timelapse_%05d » permet d’incrémenter une valeur à 5 décimales.

++

Edit : doublé par @stef-k :slight_smile:

Bon , c’est vrai qu’avec %08d on va loin :sweat_smile:

Re,

12h => 1260 = 720 minutes => 72020 = 14400 photos (20 car 1/3 de 60) donc @stef-k a raison _%06d est préférable à _%05d pour avoir un « 0 » devant (plus pratique pour les classement et donc pour le timelapse final.
(mais %08d … heu … faut pas pousser :smiley: )

L’encodage, je le faisais (fin 2016) de cette façon :
avconv -r 10 -i timelapse_%05d.jpg -r 10 -vcodec libx264 -crf 20 -g 15 timelapse_jj-mm-aaaa.mp4
car je n’avais plus mencoder à l’époque
(sudo apt-get -y install libav-tools)

++

Merci pour toute les réponses, j’ai donc essayé ca : mais rien a faire j’ai que 316 photos au lieu … Avez vous une autre piste ? Et oui pour celui la je voulais 24h. Y a t-il pas une commande qui faire des photo tout les X temps jusqu’à que la mémoire soit pleine ? ca éviterai ce problème de temps.

Merci

Yo,
On peut faire un truc « con »
Un script bash qui exécute la commande Raspistill et ce script est lancé toutes les minutes (on ne peut pas moins souvent) avec cron.

Mais ça ne nous dira pas pourquoi ton système merdouille.
Ta carte n’est pas saturée des fois ?

Donc, un petit test « rapide » à faire :
1 images toutes les 5 secondes (12/minutes) durant 1h (1x60x60x1000 ms) soit 720 photos
raspistill -o timelapse_%05d.jpg -tl 5000 -t 3600000

Tu nous redis.

++

Re,

Script à tester :

mkdir /home/pi/TimeLapse/

sudo nano timelapse.sh

#!/bin/bash

# Se déplacer dans le dossier idoine au sein du Raspberry Pi
cd /home/pi/TimeLapse

# Créer l'image et faire une pause de 10 secondes 
raspistill -w 800 -h 600 -o image.jpg -q 100
sleep 10

# Définition du format de date pour l'insérer dans le nom du fichier
time=$(date +"%d-%m-%Y_%H-%M")

# Copie de l'image avec insertion de la date et de l'heure (classement)
cp "image.jpg" "Timelapse_$time.jpg"

sleep 5

END_SCRIPT
exit 0

sudo nano /etc/crontab

*/5 * * * * pi bash /home/pi/TimeLapse/timelapse.sh

/etc/init.d/cron reload

(procédure non testée, je n’ai pas de Rpi avec module caméra de libre)

Bonjour @Nabla,

En lisant ton script en diagonale…
j’ai l’impression qu’il boucle indéfiniment toutes les 15 secondes (10+5). Par contre, il est lancé toutes les 5 minutes. Du coup toutes les 5 minutes il va y avoir une nouvelle instance du script.

A mon avis, dans cette configuration, il faudrait soit tuer l’instance précédente, au lancement du script, soit ajouter une variable compteur qui fait un exit au bout de (15s/60sx5min) = 20 itérations.

N.B.: Inutile de recharger cron, il prend en compte toute modification de fichier immédiatement.

Désolé, pas le temps de développer plus. :disappointed_relieved:

Bonnes bidouilles.

A+

Coucou,
C’est possible, je ne maîtrise pas les langages dans la réalité.
On peut faire autrement :
On ne passe pas par cron, mais on lance le script au démarrage du Rpi et, si ça boucle, on aura une photo toutes les 20 secondes.

Merci pour la remarque,
Faudrait que je teste.

++

Bonjours

Encore merci pour ces réponses mais là vous m’aidez pas lol je suis un gros débutant et vous me parlez chinois :slight_smile: je pensais pas que ça allé être aussi compliqué. Si quelqu’un a une façon de faire ça simplement je suis preneur surtout que mon projet c’est pour lundi et que je dois tout préparer aujourd’hui … en faite mon bute et de faire un timelapse d’une demolition qui a lieu lundi :slight_smile:

OK, alors, ça va devenir une mission pour moi.
ça sera OK pour lundi, pas de souci :smiley:
Je t’envoie un Message Privé.
J’éteins mon serveur YunoHost pour ôter la caméra et la fourrer sur un autre Rpi.
Je bousille une des mes carte SD pour réinstaller Raspbian et tester.
Je te tiens au jus.
++

Sinon, la solution ets de coller MotionEye et de le configurer en mode photo toutes les X secondes sans détection de mouvement.
J’ai déjà fait.
C’est simple pour les gens qui ne connaissent pas.

Hello,

Tests faits :
J’avais une erreur avec END_SCRIPT.
J’ai viré cette ligne et testé avec et sans exit 0

Pas de changement, c’est à dire même comportement :
En activant le script en manuel, il se lance, fait une photo, pause de 10 secondes, écriture de l’image sous le nom horodaté, pause de 5 secondes, fermeture du script
Le script ne boucle pas comme le montre le retour visuel du Terminal

pi@raspberrypi:~ $ mkdir /home/pi/TimeLapse
pi@raspberrypi:~ $ sudo nano timelapse.sh
pi@raspberrypi:~ $ bash timelapse.sh
timelapse.sh: ligne 18: END_SCRIPT : commande introuvable
pi@raspberrypi:~ $ sudo nano timelapse.sh
pi@raspberrypi:~ $ bash timelapse.sh
pi@raspberrypi:~ $ sudo nano timelapse.sh
pi@raspberrypi:~ $ sudo nano timelapse.sh
pi@raspberrypi:~ $ bash timelapse.sh
pi@raspberrypi:~ $ 

Je tente avec cron pour voir.

Bon, ça fonctionne
sudo nano /etc/crontab
*/1 * * * * pi bash /home/pi/timelapse.sh (lance le script que j’ai laissé dans pi toutes les minutes)

J’ai donc un dossier /home/pi/TimeLapse qui se charge d’une image par minute avec la photo de l’heure de ma nouvelle Freebox Revolution m’offrant la fibre ; c’est chouette :smiley:

Et je confirme : inutile de recharger cron ; ça fonctionne direct.

Nouvelle édition du post :
Test avec échec de prises de vue à 526 images
pi@raspberrypi:~ $ raspistill -o /home/pi/TimeLapse/timelapse_%06d.jpg -tl 3000 -t 3600000
mmal: Frame 18 is 1343 ms late
mmal: Skipping frame 70 to restart at frame 73
mmal: Skipping frame 301 to restart at frame 303
mmal: Skipping frame 353 to restart at frame 355
En fait, je perds la prise de photos alors que j’ai l’image qui reste affichée en direct.
Je pense que c’est lorsque le Rpi se met en « coupure écran » car l’écran devient noir (le bureau disparait) mais l’image filmée reste active (je vois l’heure de la freebox en heure réelle et changeante)

Je refais un test avec photo toutes les 10 secondes pdt 1h pour voir …

Bon, le souci ne vient pas de là.
L’écran graphique s’est coupé mais l’image de la caméra était toujours visible et photographiait.
Par contre, j’ai encore eu une coupure du service : après la photo « timelapse_000208.jpg », ça passe à « timelapse_2133437166.jpg » et ça s’arrête.
Le terminal parle d’erreur mmal …
208 images avec 6/min --> 35 minutes ; bizarre.

Je relance le test à 13h en mode console pour voir.
Tjrs à 1 photo toutes les 10 secondes

–> Nouvel échec ; pffff
timelapse_000212.jpg
timelapse_2133437170.jpg
A nouveau à 35 minutes … :thinking:

Je ne pige pas.

Je relance un test via cron avec 1 image/minute sans durée donc aussi longtemps que ça va tourner.
Début à 13h52.
A suivre …
ça tourne tjrs à 18h20 ; je commence à avoir pas mal de photos, mais je laisse tourner :slight_smile:

Bon,
Je coupe mon Rpi (qui ne pouvait plus me servir aux autres choses du fait du test).

J’ai 515 images actuellement.
515 images de l’afficheur horaire de ma FreeBox de 13h52 à 22h26 :smiley:
ça ferait un joli TimeLapse à mettre sur le Net :slight_smile:

Bref, ça semble fonctionner.

Voilà la marche à suivre :

mkdir /home/pi/TimeLapse/

sudo nano timelapse.sh

#!/bin/bash

# Se déplacer dans le dossier pour stocker les images
cd /home/pi/TimeLapse

# Créer l'image et faire une pause de 10 secondes 
raspistill -o image.jpg -q 100
sleep 10

# Définition du format de date pour l'insérer dans le nom du fichier
time=$(date +"%d-%m-%Y_%H-%M")

# Copie de l'image avec insertion de la date et de l'heure (classement)
cp "image.jpg" "Timelapse_$time.jpg"

sleep 5

sudo nano /etc/crontab

*/1 * * * * pi bash /home/pi/timelapse.sh

Et voilà,

++


Edit du 23/03/2019 :
Salut @michael,

Pour info, je viens de brancher (à 09h) mon Rpi3B+ dans la chambre d’un des enfants avec module caméra « scotché » à la vitre pour faire un TimeLapse plus fun que l’heure de la FreeBox.
La prise de photos s’est bien déclenchée automatiquement au démarrage grâce à cron et c’est en train de tourner.
Avec ma procédure ci-dessus, tu devrais avoir tes images de démolition (certes 1/minutes seulement).
Je vais laisser tourner toute la journée pour vérifier sur plus de 10h de suite.

++

Edit de 20h07
Je viens de stopper les photos (il fait noir)
60 images/heure durant 11h + la photo de 20h00 pour le fun.
J’ai donc 661 images sans aucune erreur.
Je lance la réalisation d’un TimeLapse vidéo.


Je ne peux plus poster donc je colle tout à la suite :slight_smile:
Message du 24/03/2019 à 16h31

@michael
@stef-k

Salut,

Je suis têtu.
J’ai retesté.
Lancement d’un raspstill à 15h49 pour 1 photo toutes les 5 secondes durant 2h.

ça a planté à 16h21 après 373 images
Première image = timelapse_00000000.jpg
373ème image = timelapse_00000372.jpg
Et j’ai un 374ème fichier = timelapse_-28093008.jpg

pi@raspberrypi:~ $ cd /home/pi/TimeLapse
pi@raspberrypi:~/TimeLapse $ raspistill -o timelapse_%08d.jpg -tl 5000 -t 7200000
mmal: Frame 9 is 1529 ms late
mmal: Frame 161 is 776 ms late
mmal: Skipping frame 373 to restart at frame -28093008
pi@raspberrypi:~/TimeLapse $

Donc, encore une fois, j’ai une erreur fatale (les 2 première n’ont rien entraîné de grave semble-t-il)

Je ne comprends pas …


Message du lundi 25/03/2019 à 19h18 :
Alors ???
Tu as fait un TimeLapse de la démolition ?

Coucou ,
pour un pti projet du genre j’ai commencé hier a faire un timelapse et jai le meme genre d’erreur que toi

le premier truc qui m’est apparu c’est que lorsque jai ce type d’erreur qui arrive, la ptite led de la cam est eteinte, je suppose que c’est un soucis lié a l’alimentation ?

je testerai avec une plus grosse alim sous peu et viendrai aux nouvelles, bonne soirée

Yo @Glou,
Je suis en 5V et 3A de la marque Aukru qui donne de bons résultats habituellement.
Système sur clef USB sans rien d’autre de branché (à part un ventilo sur GPIO).
Le système reste accessible via VNC et en SSH, signe que la clef USB est suffisamment alimentée.
Je ne pense pas que le souci soit l’alim du coup.
Mais bon, je vais tester sans le ventilo et sans câble HDMI ; juste la clef USB et la caméra.

Ce Rpi est pris pour des tests YunoHost donc pas de suite.
Mais, bon, en même temps, je crois qu’on a perdu @michael dans l’histoire …

Re,

Rpi3B+ avec carte SD et le module caméra et c’est tout.
Fonctionnement en mode console.
Même pas de branchement à clavier/écran ; rien.
Pilotage via SSH

Pas mieux :

Opening output file timelapse_00000395
Enabling encoder output port
Starting capture 395
Finished capture 395
Opening output file timelapse_00000396
Enabling encoder output port
Starting capture 396
Finished capture 396
mmal: Skipping frame 397 to restart at frame -28092985
Opening output file timelapse_-28092985
Enabling encoder output port
Starting capture -28092985
Finished capture -28092985
Closing down
Close down completed, all components disconnected, disabled and destroyed

Je n’ai pas fait ce seul test aujourd’hui.
Pas un seul n’est allé à la fin des clichés.
C’est dingue que ça plante comme ça.

Coucou
Je n’ai pas relancé de tests non plus mais ce que j’en voit physiquement et concretement c’est que cest la caméra qui se deconnecte comme si elle n’avais plus assez de jus !

je vais voir si je peux retrouver une autre nappe pour tester !

On va trouver,
Courage !

Yo,

Mais ce qui est bizarre, c’est que je peux faire des photos durant 11h avec 1 image/minute en passant par cron.
Pas la moindre erreur.

J’étais sur Rpi3B+
Faudrait que je teste sur Rpi3 et sur RpiB voire RpiZeroV1.3

J’ai 2 modules caméra.
Le module de base (celui testé) et un NoIR avec Led IR.
Vais voir pour refaire des tests (mais je manque de cartes SD …)

++

Test fait sur RpiB+ V1.2 de 2014
J’ai réinstallé Raspbian Lite
Même caméra que précédemment mais nappe différente (ma vieille courte qui sert à MotionEye)

Commande passée :
raspistill -w 800 -h 600 -o timelapse_%08d.jpg -v -f -t 12000000 -tl 10000

Résultat ?
Pas mieux !

Opening output file timelapse_00000127.jpg
Enabling encoder output port
Starting capture 127
Finished capture 127
mmal: Skipping frame 128 to restart at frame 2133437085
Opening output file timelapse_2133437085.jpg
Enabling encoder output port
Starting capture 2133437085
Finished capture 2133437085
Closing down
Close down completed, all components disconnected, disabled and destroyed

ça va m’énerver !!!

Nouvel essai.
Autre erreur (que j’ai déjà eu)

ça se lance bien :

pi@raspberrypi:~/timelapse $ raspistill -w 800 -h 600 -o PHOTOS_%08d.jpg -v -f -t 12000000 -tl 10000

"raspistill" Camera App (commit 7cbfbd38d982 Tainted)

Camera Name ov5647
Width 800, Height 600, filename PHOTOS_%08d.jpg
Using camera 0, sensor mode 0

GPS output Disabled

Quality 85, Raw no
Thumbnail enabled Yes, width 64, height 48, quality 35
Time delay 12000000, Timelapse 10000
Link to latest frame enabled  no
Full resolution preview No
Capture method : Capture on timelapse

Preview Yes, Full screen Yes
Preview window 0,0,1024,768
Opacity 255
Sharpness 0, Contrast 0, Brightness 50
Saturation 0, ISO 0, Video Stabilisation No, Exposure compensation 0
Exposure Mode 'auto', AWB Mode 'auto', Image Effect 'none'
Flicker Avoid Mode 'off'
Metering Mode 'average', Colour Effect Enabled No with U = 128, V = 128
Rotation 0, hflip No, vflip No
ROI x 0.000000, y 0.000000, w 1.000000 h 1.000000
Camera component done
Encoder component done
Starting component connection stage
Connecting camera preview port to video render.
Connecting camera stills port to encoder input port
Opening output file PHOTOS_00000000.jpg
Enabling encoder output port
Starting capture 0
Finished capture 0
Opening output file PHOTOS_00000001.jpg
Enabling encoder output port
Starting capture 1
Finished capture 1
Opening output file PHOTOS_00000002.jpg

Mais … bien que pas d’erreur apparente, la prise des photos est interrompue alors que le module caméra est toujours actif (la led est allumée et l’image change en direct si je passe la main).

Je re-re-re-…-relance un test …

Pareil :

pi@raspberrypi:~/timelapse $ pkill raspistill
pi@raspberrypi:~/timelapse $ raspistill -w 800 -h 600 -o timelapse_%08d -t 12000000 -tl 10000 -v

"raspistill" Camera App (commit 7cbfbd38d982 Tainted)

Camera Name ov5647
Width 800, Height 600, filename timelapse_%08d
Using camera 0, sensor mode 0

GPS output Disabled

Quality 85, Raw no
Thumbnail enabled Yes, width 64, height 48, quality 35
Time delay 12000000, Timelapse 10000
Link to latest frame enabled  no
Full resolution preview No
Capture method : Capture on timelapse

Preview Yes, Full screen Yes
Preview window 0,0,1024,768
Opacity 255
Sharpness 0, Contrast 0, Brightness 50
Saturation 0, ISO 0, Video Stabilisation No, Exposure compensation 0
Exposure Mode 'auto', AWB Mode 'auto', Image Effect 'none'
Flicker Avoid Mode 'off'
Metering Mode 'average', Colour Effect Enabled No with U = 128, V = 128
Rotation 0, hflip No, vflip No
ROI x 0.000000, y 0.000000, w 1.000000 h 1.000000
Camera component done
Encoder component done
Starting component connection stage
Connecting camera preview port to video render.
Connecting camera stills port to encoder input port
Opening output file timelapse_00000000
Enabling encoder output port
Starting capture 0
Finished capture 0
Opening output file timelapse_00000001
Enabling encoder output port
Starting capture 1
Finished capture 1
Opening output file timelapse_00000002
Enabling encoder output port
Starting capture 2
Finished capture 2
Opening output file timelapse_00000003
Enabling encoder output port
Starting capture 3
Finished capture 3
Opening output file timelapse_00000004
(...)
Opening output file timelapse_00000178
Enabling encoder output port
Starting capture 178
Finished capture 178
Opening output file timelapse_00000179
Enabling encoder output port
Starting capture 179
Finished capture 179

Et ça s’arrête comme ça « en eau d’boudin » …
Pourtant Raspistill est tjrs actif : je dois tuer le processus si je veux relancer la commande, sinon, j’ai un beau :

pi@raspberrypi:~/timelapse $ raspistill -o test.jpg
mmal: mmal_vc_component_enable: failed to enable component: ENOSPC
mmal: camera component couldn't be enabled
mmal: main: Failed to create camera component
mmal: Failed to run camera app. Please check for firmware updates

Pfff