Sommaire
- Timelapse
- 1. Acquisition des images
- 2. Génération des moyennes
- 3. Génération des clips
- 4. Concaténer les clips
- 5. Accélérer la video
- 6. Ajouter du son
J'ai eu besoin de faire un timelapse sur une longue période de vidéo (3 semaines). Pour ne pas trop me prendre la tête, j'ai utilisé ffmpeg et bash pour automatiser ce que je pouvais.
Je laisse cela ici, en espérant que ça puisse en aider certains (dont moi dans le futur).
Bonne lecture
Timelapse
Pour faire un joli timelapse, j'ai divisé le travail en sous taches :
- Acquérir des images,
- Moyenner les images acquises,
- Fusionner les moyennes en clips,
- Fusionner les clips en video,
- Accélérer la video,
- Ajouter du son.
1. Acquisition des images
On a un script qui enregistre bêtement des images, aussi vite que possible, mais pas trop quand même, au mieux 1 image par seconde.
C'est un script que je laisse tourner sur un serveur (enfin un PC jamais éteint)
#! /bin/bash
# camera IP
IP=172.22.10.34
# Errors and images counts
ERRCNT=0
CNT=0
# Use another IP if asked
if [ $# -eq 1 ]
then
IP=$1
fi
# Forever
while true
do
# File to generate
FILE="$(date "+%F_%H-%M-%S.jpg")"
# File to store error
OUT=$(mktemp)
# increase counter
CNT=$((CNT+1))
# get one image thanks to ffmpeg
# ! warning, here I integrated the credential in the url, it's not necessary on all camera...
ffmpeg -y -i "rtsp://login:password@$IP/axis-media/media.amp" -vframes 1 "$FILE" 2> "$OUT"
# Test for error
if grep --quiet "error" "$OUT"; then
# increase error count
ERRCNT=$((ERRCNT+1))
# Inform user
echo -n -e "$(date +%T) Bad image, deleting. ($ERRCNT error(s) on $CNT)\r"
remove image file
rm "$FILE"
fi
# remove error file
rm "$OUT"
done
2. Génération des moyennes
Ici, on va moyenner les images. On moyenne ensemble les images qui sont dans les 10 secondes.
C'est à dire, les images
2025-12-31-12-00-01.jpg2025-12-31-12-00-02.jpg2025-12-31-12-00-05.jpg2025-12-31-12-00-07.jpg2025-12-31-12-00-09.jpg
Seront fusionnées dans le fichier 2025-12-31-12-00-0x.jpg
Ce script tourne sur le même serveur que le précédent.
#!/bin/bash
# Directory to stores averages
mkdir -p averages
# Forever
while true
do
# Finding all jpg files in current directory
FILES=$(find . -maxdepth 1 -name "*jpg" -mmin +1 )
# Wait 10 seconds to be sure that all interval will be complete
sleep 10
# For each file...
for i in $FILES; do
# Ignore if file has already been processed
if [ ! -e "$i" ] ; then
continue
fi
# Select one file
FILE=$(basename "$i")
# Create a regexp to select all files in the same 10 seconds interval (like 2025-12-30-12-5*.jpg)
REGEXP=$(echo $FILE | sed 's/\(....-..-.._..-..-.\)./\1*/')
# Destination file: (like 2025-12-30-12-5x.jpg)
DESTFILE=$(echo $FILE | sed 's/\(....-..-.._..-..-.\)./\1x/')
# create empty image list and temporary files
IMAGELIST=
CMD=$(mktemp)
LIST=$(mktemp)
# Generate list of image matching the regexp
find . -maxdepth 1 -name "$REGEXP" > "$LIST"
# Convert these images names to a list
while IFS= read -r j; do
IMAGELIST="$j $IMAGELIST"
done < "$LIST"
# prepare a imagemagick command to average them
echo "convert -average $IMAGELIST averages/$DESTFILE" > "$CMD"
chmod +x "$CMD"
#execute the imagemagick command
sh -c "$CMD"
# cleanup
rm "$CMD"
rm "$LIST"
rm $IMAGELIST
done
# wait 30 seconds, no rush
sleep 30
done
3. Génération des clips
On a un paquet d'images, on peut les fusionner simplement dans un clip avec la commande ffmpeg -y -pattern_type glob -i "averages/*.jpg" clip.mp4, où, on peut générer un clip par heure, ce qui facilite grandement le montage derrière (dans mon cas, j'ai 3 semaines d'images)
Ce script ne tourne pas tout seul. Je le lance quand j'en ai besoin, ça peut être un peu long si ça fait longtemps que je l'ai pas fait tourner. Je pourrais l'automatiser, mais la flemme est plus forte.
#! /bin/sh
# Check user called that program correctly
if [ $# -ne 2 ] ; then
echo "usage $(basename "$0") date hour"
echo ""
echo " date: yyyy-mm-dd format"
echo " hour: 24 hour format"
exit
fi
# create destination directory
mkdir -p by-hour
# make sur that morning hour start with a 0, to simplify sorting
HOUR=$(printf "%02d" $2)
# ask ffmpeg to do its magic
ffmpeg -y -pattern_type glob -i "averages/$1_$HOUR*.jpg" "by-hour/$1_$2".mp4
4. Concaténer les clips
On a plein de petits clips qu'on va vouloir coller ensemble, pour cela, on les liste dans un fichier :
file 2025-11-18_11.mp4
file 2025-11-18_15.mp4
file 2025-11-19_10.mp4
Et on demande gentiement à ffmpeg de les coller entre eux
ffmpeg -y -f concat -i files.txt -c copy timelapse.mp4
5. Accélérer la video
À partir d'ici, j'ai rapatrier les clips qui m'intéressent sur mon poste.
Pour que mon timelapse soit pas trop long, j'ai eu besoin de l'accélérer. Pour cela, on utilise des commandes barbares:
# Extract frames info
ffmpeg -y -i timelapse.mp4 -map 0:v -c:v copy -bsf:v h264_mp4toannexb raw.h264
# Generate faster video (to match audio duration), here 62fps
ffmpeg -y -fflags +genpts -r 62 -i raw.h264 -c:v copy timelapse-fast.mp4
6. Ajouter du son
Un dernier truc à savoir quand on veut faire un film avec du son sans se prendre la tête, c'est d'utiliser le format mkv. Les autres conteneurs que j'ai testé (au moins mp4 et mov) sont plus délicats à utiliser.
ffmpeg -i timelapse.mp4 -i bruit.mp3 -c:v copy -c:a copy timelapse.mkv
# Pardonnez mon inculture SVP mais ... C'est quoi in timelapse ?
Posté par totof2000 . Évalué à 2 (+5/-5).
Je sais, je pourrais (et j'irai certainement ) chercher sur internet ou demander à une IA … mais le journal aurait gagné en lisibilité à employer un terme acccessible au plus grand nombre plutôt que de supposer que tout le monde sait ce que c'est, ou à expliquer le terme dès le début.
[^] # Re: Pardonnez mon inculture SVP mais ... C'est quoi in timelapse ?
Posté par purplepsycho . Évalué à 9 (+8/-0).
Bonne question, le terme français est assez moche : « hyperaccéléré ».
Dans le cas de ce journal, l'idée est de filmer quelque-chose d'assez lent (le mouvement du soleil, la construction d'un bâtiment…) et de l'accélérer tout en coupant les moments inutiles (la nuit par exemple).
[^] # Re: Pardonnez mon inculture SVP mais ... C'est quoi in timelapse ?
Posté par abriotde (site web personnel, Mastodon) . Évalué à 4 (+7/-4). Dernière modification le 19 novembre 2025 à 16:41.
C'est tout de même assez standard aujourd'hui. On ne peut pas dire que ce soit vraiment un tort. C'est du même niveau que "Youtube" ou un "Short". Ne pas le connaitre est entendable mais fais partie du standard qu'une description ici n'est pas forcément des plus pertinente (je dis pas que ce soit inutile mais non indispensable).
Sous licence Creative common. Lisez, copiez, modifiez faites en ce que vous voulez.
[^] # Re: Pardonnez mon inculture SVP mais ... C'est quoi in timelapse ?
Posté par totof2000 . Évalué à -3 (+4/-9).
Non, en tout cas pas pour ceux qui ne font que très peu de vidéo (et j'en faiss partie).
Ce genre de commentaire pédant me donne envie de répondre assez sechement mais je m'abstiendrai par respect des autres utilisateurs.
[^] # Re: Pardonnez mon inculture SVP mais ... C'est quoi in timelapse ?
Posté par steph1978 . Évalué à 6 (+6/-2).
Dans ton premier commentaire, tu demandes la signification d'un terme. C'est parfaitement légitime.
Mais tu critiques l'auteur en lui reprochant de ne pas avoir anticipé ton besoin éclaircissement, et ça ce n'est pas faire preuve de beaucoup de respect.
[^] # Re: Pardonnez mon inculture SVP mais ... C'est quoi in timelapse ?
Posté par Voltairine . Évalué à 5 (+5/-2).
C'est du jargon technique, la demande de classification et la critique(*) sont tout à fait légitimes.
C'est d'ailleurs tellement du jargon de photographe que les explication sdonnés par les « sachants » sont approximatives. « Time-lapse » en photographie signifie prises de vues à intervalle régulier. Par un abus de langage courant ce terme désigne aussi la reconstitution en accéléré de la séquence d'image obtenues.
--
(*) les auteurs ou autrices qui ne veulent pas subir la critique ne devraient reine publier§. Une critique polie est toujours recevable et ce n'est pas un manque de respect.
[^] # Re: Pardonnez mon inculture SVP mais ... C'est quoi in timelapse ?
Posté par jcr83 . Évalué à 6 (+5/-0). Dernière modification le 20 novembre 2025 à 08:38.
J'allais poser la même question ! Souvent, les auteurs de journaux ou même de dépêches oublient que tous les lecteurs de LinuxFR ne sont pas forcément spécialistes de leur domaine. Une simple phrase d'introduction au sujet serait la bienvenue.
[^] # Re: Pardonnez mon inculture SVP mais ... C'est quoi in timelapse ?
Posté par Gil Cot ✔ (site web personnel, Mastodon) . Évalué à 2 (+0/-0).
Au fait, je n’arrive pas à comprendre si « pantacourt » est quelque chose de différent ou juste un autre nom (ou une francisation) de « short »
Et pour en revenir au sujet, qui lui donne la défini du « temps écoulé » ?
“It is seldom that liberty of any kind is lost all at once.” ― David Hume
[^] # Re: Pardonnez mon inculture SVP mais ... C'est quoi in timelapse ?
Posté par thoasm . Évalué à 6 (+3/-0).
C'est ça : https://tube.interhacker.space/w/47806112-060f-4ab0-8eea-d3943185dbdc
[^] # Re: Pardonnez mon inculture SVP mais ... C'est quoi in timelapse ?
Posté par martoni (site web personnel, Mastodon) . Évalué à 3 (+1/-0).
ou ça ;)
J'ai plus qu'une balle
[^] # Re: Pardonnez mon inculture SVP mais ... C'est quoi in timelapse ?
Posté par Tonton Th (site web personnel, Mastodon) . Évalué à 7 (+5/-0). Dernière modification le 19 novembre 2025 à 22:21.
Euh, non, là c'est plutôt ce que l'on appelle du stopmotion…
https://fr.wikipedia.org/wiki/Animation_en_volume
[^] # Time Lapse, le film
Posté par Sébastien Wilmet (site web personnel, Mastodon) . Évalué à 3 (+1/-0).
Il y a un film qui porte ce nom (que j'ai bien aimé par ailleurs, quand on regarde le film on a envie de connaître la suite) : Time Lapse (2014)
# ça fait quoi le "moyennage" ?
Posté par steph1978 . Évalué à 10 (+9/-0).
Pourquoi on prend plein/trop d'images pour ensuite les "moyenner" ?
Pourquoi ne pas prendre juste le bon nombre d'images pour le timelapse ?
[^] # Re: ça fait quoi le "moyennage" ?
Posté par dr191 . Évalué à 3 (+2/-0).
Surtout, c'est quoi une moyenne d'images ?
Pour moi, c'est un flou.
Un petit exemple pour comprendre serait une bonne idée.
[^] # Re: ça fait quoi le "moyennage" ?
Posté par purplepsycho . Évalué à 8 (+7/-0).
Oui, je n'ai pas expliqué ce point.
On peut prendre le bon nombre d'image, mais dans ce cas, le résultat fait très saccadé.
Le moyennage permet de simuler une sorte de flou de mouvement qui rend le mouvement beaucoup plus fluide.
Pour faire un flou de mouvement, l'idée est d'avoir un grand temps d'exposition, mais avec une caméra "normale", sans optique particulière, on arrive vite en saturation. Le moyennage permet de faire cela.
[^] # Re: ça fait quoi le "moyennage" ?
Posté par gUI (Mastodon) . Évalué à 3 (+0/-0).
Un exemple ! Un exemple !
En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.
[^] # Re: ça fait quoi le "moyennage" ?
Posté par thoasm . Évalué à 4 (+1/-0).
Avec tant de hyping désormais il a créé une attende du public immense, on serait super déçu et on jetterai des tomates (désolé eingousef<) si jamais on apprenait en fait que c'est juste que ça a vocation à rester privé, comme ouvrage.
[^] # Re: ça fait quoi le "moyennage" ?
Posté par Tonton Th (site web personnel, Mastodon) . Évalué à 5 (+3/-0).
Voilà, c'est fait avec des logiciels maison, que je devrais un de ces jours nettoyer un peu, et je ferais un journal à ce moment.
[^] # Re: ça fait quoi le "moyennage" ?
Posté par Psychofox (Mastodon) . Évalué à 3 (+0/-0).
Avant de lire la description je me suis dit tiens on dirait une horloge CFF… ;-)
[^] # Re: ça fait quoi le "moyennage" ?
Posté par Tonton Th (site web personnel, Mastodon) . Évalué à 2 (+0/-0).
Exact, c'est bien l'horloge des CFF.
Et j'en ai chié pour faire cette capture :)
La première fois, je ne me suis pas réveillé, et la seconde fois, j'ai oublié de débrayer le screensaver. Pour le prochain changement d'heure, je vais tenter de filmer la célèbre Xdaliclock de Jwz, parce le web manque cruellement de vidéos scientifiques.
[^] # Re: ça fait quoi le "moyennage" ?
Posté par Dring . Évalué à 3 (+1/-0).
Donc du "motion blur" (ou flou de mouvement) pour éviter l'effet saccadé.
J'ai toujours imaginé que pour faire ça, il y avait un algo particulièrement complexe qui regardait ce que contenait l'image suivante. Là, tu obtiens vraiment un beau résultat ? Ca m'étonne un peu car si je comprends bien…
Pour 1 seconde de vidéo finale, si tu dispose de 250 photos et que tu veux produire du 25 images/secondes, tu vas…
- prendre les 10 premières images, les moyenner, et dire "voilà la première image"
- faire la même chose avec les 10 images suivantes
- etc…
Mais à la fin, tu n'auras pas de motion blur entre la première image moyennée, la seconde image moyennée, etc. Et donc, tu auras quand même de la saccade, non ? Ou alors, il y a encore un motion blur appliqué à la fin de ton script entre images moyennées ?
[^] # Re: ça fait quoi le "moyennage" ?
Posté par Dring . Évalué à 6 (+4/-0). Dernière modification le 20 novembre 2025 à 11:21.
Et pour finir, tu n'avais pas moyen pour ça d'utiliser directement les fonctionnalités de ffmpeg ? Qui a priori sait déjà faire de l'interpolation d'image / du motion blur, cf. par exemple https://unix.stackexchange.com/questions/178503/ffmpeg-interpolate-frames-or-add-motion-blur.
[^] # Re: ça fait quoi le "moyennage" ?
Posté par steph1978 . Évalué à 2 (+0/-0).
L'OP est mieux placé pour répondre mais en attendant…
L'interpolation ça va ajouter images alors le fait de moyenner doit en retirer, non ?
Envoyer un commentaire
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.