Créer une vidéo TimeLapse

Classé dans : Le Blog, Logiciels, Programmation | 0

Un TimeLapse, c’est une vidéo qui est l’assemblage de plusieurs photos à la suite.

On obtient ainsi une vidéo accélérée de la réalité. Par exemple si vos photos sont espacées de 5s, étant donnée que la vidéo de sortie sera en 25i/s, la vidéo sera 25*5 = 125 fois plus rapide que la réalité !

J’ai un post qui explique comment calculer le bon timing pour les prises de vues en fonction de la durée du timelapse que l’on souhaite : timelapse-comment-calculer

Vous avez donc un stock de photos, plusieurs centaines et souhaitez les assembler pour créer une vidéo.

Les photos/images doivent être préparées au préalable (avec photoshop, lightroom, gimp…) et toutes placés dans le même répertoire. Il est également nécessaire que toutes les photos soient en jpg.

Dans cet exemple j’utilise l’utilitaire FFMPEG, qui existe pour tous les systèmes.

Le script présenté ci-dessous réalise plusieurs opérations

  • Renommage des images en 00001.jpg, 000002.jpg…
  • Assemblage avec ffmpeg
  • Création d’une vidéo : YYYYMMJJ-video.mkv

Détail du script

Le script est commenté est devrait être facile à comprendre et/ou adapter

#!/bin/bash 

## recup date du jour 
DAY=`date +%Y%m%d`

## renommage des images
## copie des fichiers vide dans un dossier vide
mkdir vide
first=1
for i in `ls *jpg`
do
 SIZE=$(du -s $i | awk '{ print $1 }')
 if ((SIZE>0)) ; then
   new=$(printf "%06d.jpg" "$first")
   mv -i -- "$i" "$new"
   let first=first+1
 else
   mv $i vide/$i
 fi
done

## création de la vidéo avec les images numérotées
DEST="$DAY-video.mkv"

## suppression ancien fichier s'il existe
if [ -f $DEST ]; then
 rm $DEST
fi

## options ffmpeg 
## -r 25 = 25i/s 
## -b 1000k = bitrate (débit) 
## -vcodec libx264 = h264 
ffmpeg -v 0 -r 25 -b 1000k -i "%06d.jpg" -vcodec libx264 $DEST