Extraire les sous-titres d’un mkv
ffmpeg -i Mon-Documentaire.mkv -map 0:2 -c:s copy Mon-Documentaire.srt
Une fois extraits, on peut nettoyer ces sous-titres en supprimant les numéros de séquence, les timestamps et les balises de formatage afin de les exporter :
sed -r -e '/^[0-9]+$/d' -e '/^$/d' -e '/^[0-9]{2}:[0-9]{2}:[0-9]{2},[0-9]{3} --> [0-9]{2}:[0-9]{2}:[0-9]{2},[0-9]{3}$/d' -e 's/<[^>]*>//g' Mon-Documentaire.srt > Mon-Documentaire_nettoye.txt
Voici le résultat, avant :
4
00:00:53,160 --> 00:00:54,240
<font color="#00FFFF">Ces mots sont écrits</font>
5
00:00:54,480 --> 00:00:56,600
<font color="#00FFFF">par l'historien</font>
<font color="#00FFFF">de la technique Lewis Mumford,</font>
et après :
Ces mots sont écrits
par l'historien
de la technique Lewis Mumford,
Extraire l’audio d’une vidéo
ffmpeg -i Mon-Documentaire.mp4 -q:a 0 -map a Mon-Documentaire_audio.mp3
Assembler plusieurs vidéos en une
ffmpeg -f concat -safe 0 -i Mon-Documentaire_liste.txt -c copy Mon-Documentaire.mp4
Fusionne plusieurs fichiers vidéo listés dans Mon-Documentaire_liste.txt en une seule vidéo. Mon-Documentaire_liste.txt doit contenir une liste des fichiers à assembler, formatée de la manière suivante :
file 'chemin/vers/Mon-Documentaire_partie-1.mp4'
file 'chemin/vers/Mon-Documentaire_partie-2.mp4'
...
Extraire une partie d’une vidéo
ffmpeg -i Mon-Documentaire.mp4 -ss 00:01:00 -to 00:02:00 -c copy Mon-Documentaire_extrait.mp4
Extraire une partie d’une vidéo… en GIF
ffmpeg -ss 00:01:00 -to 00:01:10 -i Mon-Documentaire.mp4 -vf "fps=10,scale=320:-1:flags=lanczos" -c:v gif Mon-Documentaire_extrait.gif
-vf "fps=10,scale=320:-1:flags=lanczos" : Applique des filtres vidéo pour définir les images par seconde (fps=10) et la taille de l’image (scale=320:-1, où 320 est la largeur et -1 permet de conserver le ratio d’aspect). flags=lanczos est utilisé pour une meilleure qualité de redimensionnement.
-c:v gif : Indique à FFmpeg de convertir la vidéo en GIF.
On peut jouer sur les paramètres fps et scale pour optimiser la taille et la qualité du GIF. Résultat :

Transformer un extrait en boomerang
ffmpeg -i Mon-Documentaire_extrait.mp4 -filter_complex "[0:v]reverse[r];[0:v][0:a][r][0:a]concat=n=2:v=1:a=1" Mon-Documentaire_extrait_loop.mp4
ffmpeg -i Mon-Documentaire_extrait.mp4 -filter_complex "[0]reverse[r];[0][r]concat=n=2:v=1:a=0,scale=320:-1" Mon-Documentaire_extrait_bmrng.gif

Transformer une vidéo 16:9 en 9:16
On applique le recadrage en retirant les parties gauche et droite de la vidéo afin de conserver la partie centrale, dont le point de départ du recadrage est calculé par ih*9/16 (qui calcule la largeur nécessaire pour obtenir un format 9:16 basé sur la hauteur de la vidéo. ih est la hauteur originale de la vidéo) et (iw-ih*9/16)/2 (qui calcule le décalage horizontal pour centrer le recadrage. 0 est le décalage vertical, qui est nul car on conserve la hauteur totale).
ffmpeg -i Mon-Documentaire_extrait.mp4 -vf "crop=ih*9/16:ih:(iw-ih*9/16)/2:0" Mon-Documentaire_extrait_9-16.mp4
Extraire une image d’une vidéo
Par exemple, pour extraire la première image de la deuxième seconde d’une vidéo, on peut utiliser l’option de filtrage basée sur le temps (-ss) pour positionner le début de la lecture à 1 seconde (la deuxième seconde commence à 1 seconde dans le temps). Ensuite, on utilise l’option -frames:v 1 pour capturer une seule image :
ffmpeg -ss 1 -i Mon-Documentaire_extrait.mp4 -frames:v 1 -q:v 3 Mon-Documentaire_extrait_cap.jpg
-ss 1: Cette option positionne le début de la lecture à 1 seconde dans la vidéo. En plaçant-ssavant-i, ffmpeg cherche rapidement à cette position avant de commencer le traitement, ce qui est plus efficace.-frames:v 1: Indique à ffmpeg de traiter seulement une seule image de la vidéo.-q:v 3: Définit la qualité de l’image de sortie. Plus le nombre est petit, meilleure est la qualité.3est un bon compromis entre qualité et taille de fichier.