On dit souvent qu’une photo raconte une histoire. Dans ce cas, nous pouvons dire que les vidéos slideshow à partir de photos racontent de véritables romans.
Les vidéos slideshow consistent à afficher, les unes après les autres, des images ou des vidéos, avec des transitions fluides accompagnées éventuellement de musique. Ces vidéos sont souvent utilisées sur les réseaux pour raconter une histoire.
Dans ce tutoriel, nous allons vous montrer comment, à l’aide de FFmpeg, vous allez pouvoir créer une vidéo slideshow à partir d’images.
Créer une vidéo slideshow avec FFmpeg
Avant d’entrer dans le cœur du sujet, vous devez sélectionner les images que vous souhaitez faire apparaître dans votre vidéo.
Pour notre exemple, nous choisirons 7 photos que nous nommerons “photo1”, “photo2”, “photo3”, etc. Nous les rangerons dans le répertoire suivant : C:\Users\Utilisateur\Documents\Slideshow
Une fois vos photos sélectionnées et bien rangées, vous êtes prêt pour commencer. Ou presque…
Si ce n’est pas encore fait, installez FFmpeg sur votre ordinateur. Vous pouvez le télécharger à partir du site officiel : https://ffmpeg.org/
Une fois fait, il ne vous reste que trois étapes à suivre pour créer votre vidéo.
Étape 1
Ouvrez l'invite de commandes sur votre ordinateur. Pour cela, appuyez simultanément sur les touches "Windows" et "R" ou "Command" et "R" sur Mac, puis tapez "cmd" dans la barre de conversation.
En appuyant sur "Entrée", l’invite de commande s’ouvrira.
Étape 2
Désormais, naviguez vers le répertoire où se trouvent vos images. Pour cela, utilisez la commande "cd" suivie du chemin vers le répertoire.
Dans notre exemple, nous taperons la commande suivante :
cd C:\Users\Utilisateur\Documents\Slideshow
⚠️ Assurez-vous de remplacer “Utilisateur” par votre nom d’utilisateur réel.
Étape 3
C’est déjà la dernière étape ! (C’est aussi la plus longue si vous décidez de modifier certains paramètres).
Il ne vous reste plus qu’à créer la vidéo slideshow.
Pour notre exemple, nous souhaitons que :
- les photos apparaissent les unes après les autres avec une durée de 1 sec
- la vidéo apparaisse au format 1080 x 1920 (typique des stories ou reels Instagram)
- les photos soient affichées en plein écran (quitte à couper légèrement certaines parties latérales)
Nous taperons donc la commande suivante :
ffmpeg -y -framerate 1 -i "C:\Users\Utilisateur\Documents\Slideshow\photo%d.jpg" -vf "scale=w='min(1080,iw*1920/ih)':h='min(1920,ih*1080/iw)',pad=1080:1920:(1080-iw)/2:(1920-ih)/2,setsar=1" -c:v libx264 -r 30 -pix_fmt yuv420p output.mp4
Une fois que vous avez exécuté la commande, FFmpeg va traiter les images et créer une vidéo slideshow nommée "output.mp4" dans le même répertoire. Cela peut prendre quelques minutes selon la taille de la vidéo et la puissance de votre ordinateur.
La vidéo est désormais prête ! (si vous voulez paramétrer différemment votre vidéo slideshow, on vous explique les différentes parties de la commande plus bas. Vous n’aurez qu’à les modifier).
Pour vous permettre de modifier les paramètres afin d’obtenir la vidéo slideshow que vous souhaitez, voici le détail des différentes parties de la commande :
- y permet d’écraser le fichier de sortie s’il existe déjà dans le répertoire, sans demander de confirmation. (plutôt pratique lorsque vous testez vos paramètres)
- framerate 1 spécifie que chaque image doit être affichée pendant 1 seconde.
- i "C:\Users\Utilisateur\Documents\Slideshow\photo%d.jpg" indique le chemin d’accès des images source. Attention, si ce chemin n’est pas le bon ou que les formats de fichier ne correspondent pas, votre commande mènera à une erreur.
- vf permet d’insérer un filtre. Pour notre exemple, nous utilisons :
- -> scale=w='min(1080,iw*1920/ih)':h='min(1920,ih*1080/iw)' redimensionne les images en conservant leur rapport d'aspect d'origine, tout en ajustant le zoom pour maximiser la taille de l'image sans déformation.
- -> pad=1080:1920 :(1080-iw)/2 :(1920-ih)/2 permet d’ajouter des bordures noires et centrer les images en plein écran. Le tout, en calculant les valeurs de décalage pour le positionnement
- ->setsar=1 définit le rapport d'aspect des pixels à 1 et évite toute distorsion de l'image.
- c:v libx264 est une option. Elle spécifie le codec vidéo à utiliser (libx264).
- r 30 indique que nous voulons une fréquence maximale de 30 images par seconde. Cette option pourrait être supprimée dans notre exemple, mais elle peut s'avérer utile pour les diaporamas vidéo.
- pix_fmt yuv420p spécfife le format de pixel de la vidéo..
- output.mp4 est le nom que prendra le fichier vidéo dans le répertoire
Une fois que vous avez modifié les paramètres selon vos besoins, vous pouvez automatiser le processus et le répéter autant de fois que vous le voulez. Cela vous permet de créer des vidéos slideshow en seulement quelques directives dans l’invite de commande.
Pour aller plus loin et ajouter, par exemple, des sous-titres à votre vidéo, nous vous invitons à lire notre article"Comment ajouter des sous-titres à vos vidéos avec FFmpeg ?".
Cependant, si ce tutoriel vous semble difficile à mettre en œuvre, ou si la modification des paramètres de la commande vous effraie, il existe toujours une solution alternative : vous pouvez utiliser une API de génération de vidéo comme Abyssale.