Convertir une vidéo en timelapse avec ffmpeg

Une petite astuce : vous avez une vidéo « classique », qui dure, allez 10 heures. Vous voulez en faire un timelapse dans avoir à faire souffrir votre station de montage pendant des heures. Utilisez ffmpeg !

Publié le

Voici l’idée de base :

ffmpeg -y -r 500 -i MONFICHIER_EN_ENTREE -vcodec dvvideo -s 720x576 -aspect 16:9 -r 25 -pix_fmt yuv420p -target pal-dv -an -f mov MONFICHIER_EN_SORTIE

Ici, j’ai choisi un format DV 25 (SD) en sortie.

Pour forcer ffmpeg à accélérer le fichier en entrée, il faut lui demander d’interpréter  la vidéo avec une grande fréquence d’image : c’est le premier -r 500. 500 images par secondes, cela fait du 500 / 25 = 20 fois le temps réel. Le deuxième -r 25 permet de faire un fichier de 25 images par secondes. Pour faire la différence, ffmpeg sautera régulièrement des images.

frame=18091 fps= 12 q=0.0 size= 2544047kB time=00:12:03.64 bitrate=28800.0kbits/s dup=0 drop=343672

Dans son retour, ffmpeg indique qu’il droppe des images, ici pour 18091 images codés, il en a sauté 343 672.  343672 / 18091 = 18,997, soit presque le rapport de 20 (fois le temps réel).