Timelapse avec avconv (ffmpeg)

Nous allons voir comment réaliser un timelapse grâce à l’outil de conversion vidéo avconv. Avconv est un fork du célèbre outil opensource « ffmpeg ».

Le prérequis à ce tutoriel est que vous disposez déjà de vos photos prisent à un interval régulié qui pourront ainsi être additioné pour constituer la vidéo.

Voici les différentes étapes:

Renommer les photos

Il s’agit de renommer vos photos afin d’avoir un numéro qui s’incrémente pour chacune d’entre elles, ainsi avconv pourra les charger dans le bon ordre.

filename_001.jpg, filename_002.jpg, filename_003.jpg...

Création de la vidéo

Format original
avconv -i filename_%03d.jpg -r 10 -qscale 1 timelapse.mp4

-i filename_%03d.jpg : spécifie les photos à importer dans la vidéo, « %03d » précise qu’il s’agira ici de 3 chiffres

-r 10 : précise le nombre d’images par seconde souhaité, ici 10 images/seconde

-qscale 1 : permet d’obtenir un niveau de qualité constant

timelapse.mp4 : précise le nom du fichier de sortie, le choix du codec vidéo utilisé sera déduit de l’extension du fichier spécifié, ici mpeg4

Conversion Full HD (1080p)
avconv -i filename_%03d.jpg -r 10 -qscale 1 -filter:v "scale=1620:1080, pad=1920:1080:150:0" timelapse.mp4

-filter:v : permet d’appliquer des filtres de traitement sur la vidéo, ici on applique deux filtres de redimensionnement

scale=1620:1080 : précise que l’on souhaite redimensionner la vidéo à la résolution 1620×1080 *

pad=1920:1080:150:0 : précise que l’on souhaite obtenir une vidéo finale ayant pour résolution 1920×1080 (Full HD) et « complète » avec deux bandes noires de 150 pixels (1920 – 1620 = 300) de part et d’autre de la vidéo.

* Explication sur le choix des résolutions: La résolution native de mes photos étant de 3888×2592 pixels, soit un rapport de 1,5 (3888 / 2592 = 1,5). Souhaitant obtenir une vidéo au format Full HD (1920×1080) qui est d’un rapport 1,77 (1920 / 1080 = 1,77), je dois dans un premier temps redimensionner les photos à la résolution « la plus proche » du format final tout en conservant mon rapport initial, ici il s’agit de la résolution 1620×1080. J’ajoute ensuite des bandes noires pour arriver à la largeur de 1920 pixels souhaité.
Haute qualité
avconv -i filename_%03d.jpg -r 10 -qscale 1 -filter:v "scale=1620:1080, pad=1920:1080:150:0" -mbd rd -flags +mv4+aic -trellis 2 -cmp 2 -subcmp 2 -g 300 timelapse.mp4

-mbd rd -flags +mv4+aic -trellis 2 -cmp 2 -subcmp 2 -g 300 : paramètres recommandés pour obtenir une vidéo mpeg4 d’une qualité maximum.

La vidéo encodée en haute qualité donne bien évidemment un fichier résultant plus gros. Faites des essais car l’écart de qualité n’est pas forcément perceptible.

← Tutoriels

Univers de lolo