Des snippets pour bien adopter FFMPEG


FFMPEG est un utilitaire en ligne de commande et permet de manipuler c’est-à-dire : convertir le format, extraire une bande son, extraire une/plusieurs images… d’un fichier audio ou vidéo. Il est multiplateforme. Son installation est simple et rapide.

(maj du 24/12/2020) Sous linux, il faut juste lancer la commande suivante 

apt install ffmpeg

Voici quelques astuces que j’utilise souvent pour :

Conversion

.mov vers .avi

ffmpeg.exe -i .\REC_0010.MOV -vcodec copy -acodec  copy .\REC_0010.AVI

.mov vers .mp4

ffmpeg.exe -i .\REC_0010.MOV -vcodec copy -acodec  aac -strict experimental -ab 128k \REC_0010.MP4

.webm vers .mp3

ffmpeg -i "Metallica.webm" -ab 160k -ar 44100 "Metallica.mp3"

.mp4 vers .avi

ffmpeg -i "Metallica.mp4" -f avi -vcodec libxvid -acodec mp3 -b:v 1700k -b:a 192k "Metallica.avi"

.avi vers .mp4

ffmpeg -i "Metallica.AVI"  -c:v libx264 -pix_fmt yuv420p "Metallica.mp4"

plusieurs .avi vers .mp4

Il s’agit d’une commande shell pour convertir par exemple plusieurs fichiers .avi dans un dossier en format .mp4

  • Se positionner dans un dossier en ligne de commande
  • Puis lancer
cd folder
for file in $(ls | grep ".AVI"); do ffmpeg -i ${file} -c:v libx264 -pix_fmt yuv420p ${file}.MP4; done

Changer la taille d’une vidéo (largeur x hauteur)

ffmpeg -i \REC_0016.mp4  -vf scale=426:240 .\REC_0016_s.mp4

Rotation

ffmpeg.exe -i input.mp4  -acodec copy -vf vflip,hflip out.mp4

Comparer 2 vidéos côte à côte

ffmpeg -i .\REC_0028.mp4 -i .\REC_0028_stab.mp4 -filter_complex '[0:v]pad=iw*2:ih[int];[int][1:v]overlay=W/2:0[vid]' -map [vid] -c:v libx264 -crf 23 -preset veryfast .\REC_0028_merge.mp4

Stabiliser une vidéo

Deux étapes :

  • Créer un fichier .trf
  • Stabiliser la vidéo

Créer fichier .trf

ffmpeg -i .\REC_0028.mp4 -vf vidstabdetect=stepsize=6:shakiness=8:accuracy=9:result=transform_vectors.trf -f null -

Stabiliser

ffmpeg -i .\REC_0028.mp4 -vf vidstabtransform=input=transform_vectors.trf:zoom=1:smoothing=30,unsharp=5:5:0.8:3:3:0.4 -vcodec libx264 -preset slow -tune film -crf 18 -acodec copy .\REC_0028_stab.mp4

Création .gif animé à partir d’une vidéo

Exemple : extraire quelques images de la vidéo : 9 secondes  à partir du temps 00:02:25

ffmpeg -ss 00:02:25 -i Bachata4.mp4 -t 9 -s 480x270 -f image2 sary/im_%03d.png

Créer le GIF : 1×24 : 24 images par secondes en utilisant Imagemagick

convert -delay 1x24 -loop 0 sary/im_*.png anim.gif

Couper et re-encoder une vidéo

-ss debut
-t = fin
ffmpeg -i cYOIyd1guLQ_old.mp4 -ss 00:00:00 -t 00:05:05  -vcodec copy -acodec copy encoding.mp4

Extraction

toutes les images

ffmpeg  -i angelina.mp4 angelina-%03d.jpg

Bande son

ffmpeg.exe -i angelina.mp4 -vn -ar 44100 -ac 2 -ab 192 -f mp3 angelina.mp3

Ajouter un texte

ffmpeg -i 12675574_1656234631304852_1667709363_n.mp4 -strict experimental -vf  drawtext="fontfile=RobotoCondensed-Regular.ttf:  text='Trouvé sur Vazo\:\:Tsara - Février 2016':fontsize=10:fontcolor=white:x=5:y=700"  12675574_1656234631304852_1667709363_n_txt.mp4