Les TIMELAPSES de l'ALPAGE de MAYZE

Un timelapse par jour, à raison d'une image toute les 10 secondes de 5:00 à 23:00h,
soit 6480 photos compilées dans une vidéo cadencée à 10 images par seconde.
la journée de 18 heures est donc condensée en une vidéo de 10 minutes.
La compilation du timelapse est généralement terminée à 4:00h.

Les dimensions du timelapse sont de 5120 × 1440 pixels (4K), privilégiez un visionnage plein écran sur un très grand écran.


HIER - 2025-11-17



Numéro de photo

Permet de retrouver le numéro d'une photo en fonction de l'heure.

Photo numéro : 1


HISTORIQUE

Novembre 2025

Modification du script afin de garder une copie des photos durant 7 jours
Suppression des photos et des vidéos après 7 jours sur le RaspBerry Pi, archivage des videos en ligne
Ajout d'un utilitaire permettant de retrouver le numéro d'une photo en fonction de l'heure

Juin 2024

Changement de caméra : Image panoramique 4K à 180 degrés (5120 × 1440 pixels)
Changement de la fréquence des prises de vues : une image toute les 10 secondes (toute les minutes auparavant) de 05:00 à 23:00, soit 6480 images sur la période de 18h.
Frame rate du timelapse : de 8 à 24 images/s (à l'essai) pour trouver le meilleur ratio poids/fluidité des vidéos.
Changement de système : le serveur est désormais hébergé au chalet et les timelapses sont générés localement puis envoyés sur le cloud en fin de processus
A faire : supprimer le halo lumineux sur la gauche qui rends visible la jonction des deux caméras formant le 180°.

Mai 2022

La carte SD du Raspberry Pi est pleine, Pas de timelapse du 04/04/2022 au 03/05/2022.
Je vais modifier le scipt afin de ne plus archivers les images.

Mars 2021

La carte SD du raspberry Pi est pleine, je m'en apperçois 15 jours plus tard donc pas de timelapse durant cette quinzaine.

19 décembre 2019

Configuration de la caméra avec la nouvelle @IP, c'est reparti.
Les batteries sont en fin de vie, je ne sais pas si ça tiendra l'hivers.
Affaire à suivre.

27 Octobre 2019

Passage IPv6 à la maison, Free à changé mon IP fixe,
La caméra n'arrive plus à uploader les photos sur le serveur hebergé à la maison.

27 Aout 2019

Les voisins sont arrivés, j'interromps les timeslapse par correction.

25 Fevrier 2019

Nouveaux horaires :
Horaire prise de vue : 06:00 à 20:00 h
Début encodage : 20:05 h
Upload : aux environs de 23 h

15 Fevrier 2019

Changement de la vanne motorisée de la turbine, c'est reparti.
bilan : pas de timelapse du 29 janvier au 14 fevrier

29 Janvier 2019

Les cellules solaire sont sous la neige
Turbine : vanne motorisée hors service
Bilan : batterie vide, plus de jus, plus de timelapse.

27 Novembre 2018

Changement du format d'encodage : webm
Format image : 1280x720
Fréquence prise de vue : 1 image/ minute
Encodage : 24 images/seconde
Horaire prise de vue : de 07:00 à 18:00 h

Premier timelapse
Fréquence prise de vue: 1 image/ minute
Horaire prise de vue : de 07:00 à 18:00 h
Début encodage : 18:05 h
Upload : aux environs de 20 h



TECHNIQUE

Script bash

#!/bin/sh # =========================================== # Script Timelapse Cron-Safe # =========================================== # Définir le HOME pour cron export HOME=/home/admin # Chemins absolus pour les commandes FIND=/usr/bin/find RM=/bin/rm MV=/bin/mv MKDIR=/bin/mkdir FFMPEG=/usr/bin/ffmpeg SCP=/usr/bin/scp DATE=/bin/date HEAD=/usr/bin/head # Dossiers photosDir="/home/admin/Timelapse/Photos" archivesDir="/home/admin/Timelapse/Archives" remoteDir="/home/clients/**************id host****************" logDir="/home/admin/Timelapse/logs" # Créer le dossier de logs s'il n'existe pas $MKDIR -p "$logDir" LOGFILE="$logDir/timelapse_$($DATE +"%Y-%m-%d").log" exec >> "$LOGFILE" 2>&1 # Dates today=$($DATE +"%Y-%m-%d") date7=$($DATE -d "7 days ago" +"%Y-%m-%d") currentDate=$($DATE) START=$($DATE +%s) # timestamp en secondes depuis 1970-01-01 echo "======================================================================" echo "Début du script : $currentDate" echo "======================================================================" # =========================================== # Vérifier qu'il y a des photos # =========================================== if [ -z "$($FIND "$photosDir" -mindepth 1 | $HEAD -n 1)" ]; then echo "Pas de photos ce jour-là. Arrêt du script." exit 0 fi # =========================================== # Supprimer les fichiers vides # =========================================== $FIND "$photosDir" -type f -size 0 -exec $RM -f {} \; # =========================================== # Renommer les photos avec 4 chiffres # =========================================== i=1 for f in "$photosDir"/*; do [ -f "$f" ] || continue $MV -- "$f" "$(printf "%s/%04d.jpg" "$photosDir" "$i")" i=$((i+1)) done # =========================================== # Créer la vidéo avec ffmpeg # =========================================== $FFMPEG -framerate 10 -i "$photosDir/%04d.jpg" -f webm -vcodec libvpx-vp9 -vb 1024k -s 5120x1440 "$photosDir/$today.webm" # =========================================== # Uploader la vidéo sur le serveur distant # =========================================== $SCP "$photosDir/$today.webm" ***********@host***********:"$remoteDir" # =========================================== # Archiver les photos et la vidéo du jour # =========================================== $MKDIR -p "$archivesDir/$today" $MV "$photosDir"/* "$archivesDir/$today" 2>/dev/null # =========================================== # Nettoyer le dossier de travail # =========================================== $RM -rf "$photosDir"/* # =========================================== # Supprimer les archives de plus de 7 jours # =========================================== oldDir="$archivesDir/$date7" if [ -d "$oldDir" ]; then $RM -rf "$oldDir" echo "Dossier $oldDir supprimé." fi # =========================================== #Fin du script et durée # =========================================== FIN=$(date '+%Y-%m-%d %H:%M:%S') END=$(date +%s) DURATION=$((END - START)) # =========================================== #afficher en hh:mm:ss # =========================================== HOURS=$((DURATION / 3600)) MINUTES=$(((DURATION % 3600) / 60)) SECONDS=$((DURATION % 60)) echo "======================================================================" echo "Le script s'est terminé à $FIN" echo "Durée d'exécution : $HOURS h $MINUTES min $SECONDS sec" echo "======================================================================" echo "Script terminé avec succès, il est content."


Webmaster de l'alpage