Ffmpeg¶
Ffmpeg est un outil de manipulation de fichier audio et vidéo en ligne de commande.
Augmenter le volume d'une chanson ou d'un film¶
ffmpeg -i fichier-original.mkv -map 0 -scodec copy -vcodec copy -vol 1000 fichier-modifié.mkv
explications:
-
-map 0: permet de garder la structure des pistes audio
-
-scodec copy: permet de garder la structure des sous-titres si il y en a
-
-i: input (fichier original entrée)
-
-vcodec: choix du codec ici nous choisissons copy pour garder la qualité d'origine
-
-vol: volume de la piste audio voulu (tester avec 1000 c'est un bon début)
Ffmpeg réencoder une vidéo sans changer sa configuration (sous-titres ou audio)¶
L'exemple ici sera de réencoder un fichier vidéo du codec HEVC/H265 en H264:
ffmpeg -i inputfile -map 0 -acodec copy -scodec copy -vcodec libx264 output.mkv
Explications:
-
-i: fichier d'entrée (d'origine)
-
-map 0: permet de détecter les pistes audio présente dans le fichier d'entrée
-
-acodec: avec l'option copy permet de reprendre le codec audio d'origine
-
-scodec: avec l'option copy permet de reprendre les pistes de sous-titres d'origine
-
-vcodec: ici précisé libx264 ou H264 permet de préciser le codec vidéo qui sera utiliser
-
output.mkv est le nom du fichier en sortie, c'est à dire une fois réencoder
Compresser une vidéo sans trop perdre en qualité avec ffmpeg¶
Nous allons utiliser la commande ffmpeg comme suit:
ffmpeg -i fichier-entrée.mkv -map 0 -scodec copy -acodec copy -crf 17 fichier-sortie.mkv
-
-i: appeler le fichier d'entrée
-
-map0: garde la structure pistes audio
-
-scodec copy: garde la même structure et codec pour les sous-titres que l'original
-
-acodec copy: garde les même codecs audio que l'original
-
-crf (Constant Rate Factor): le facteur de compression
CRF (Constant Rate Factor):
Doit être compris entre 0 et 51; 0 représente: sans perte (lossless) et 51 le facteur le plus compressif. 23 est le facteur par défaut de compression Le choix 17-18 est intéressant, visuellement il est difficile de voir la différence par rapport au fichier orignal non compressé.
Plus d'infos sur le site officiel ffmpeg: https://trac.ffmpeg.org/wiki/Encode/H.264
Encoder en masse¶
On peut utiliser la boucle suivante:
for i in *.mkv; do ffmpeg -i "$i" "${i%.*}.mkv"; done
Inspiré du lien: https://stackoverflow.com/questions/5784661/how-do-you-convert-an-entire-directory-with-ffmpeg
Passer de 6 canaux audio à 2 canaux stéréo¶
Pour cela il suffit d'utiliser l'option -ac 2
exemple:
ffmpeg -i monfilm.mkv -map 0 -vcodec copy -scodec copy -ac 2 monfichier-modif.mkv
voir le site: [https://trac.ffmpeg.org/wiki/AudioChannelManipulation/ https://trac.ffmpeg.org/wiki/AudioChannelManipulation]
FLAC vers WAV¶
Rien de plus simple, il suffit de saisir la commande:
ffmpeg -i fichier-entrée.flac fichier-sortie.wav
Et voilà, c'est tout !
Passer une vidéo d'une échelle à l'autre (up/down scale)¶
Pour ça il suffit d'utiliser l'option -vf scale
ffmpeg -i input.mkv -vf scale=1920:1080 output.mkv
Voir le site officiel: [https://trac.ffmpeg.org/wiki/Scaling https://trac.ffmpeg.org/wiki/Scaling]
Changer le format des pixels¶
Il peut être utile de changer les 'pixels formats' dans le cas d'une conversion de H265 10bits à H264 8bits.
Pour cela il faudra utiliser l'argument: -pix_fmt yuv420p
ffmpeg -i Fichier-entrée.mkv -map 0 -scodec copy -vcodec h264 -pix_fmt yuv420p -acodec copy Fichier-sortie.mkv
Changer le bitrate vidéo ou audio¶
Pour cela on utilisera, pour le bitrate vidéo: -b:v et pour le bitrate audio: -b:a
fmpeg -i input.mp4 -b:v 1M -b:a 192k output.avi
Pour un film en H264, un bitrate de 3.5M (3500k)ou 4M (4000k) devrait être suffisant.
On peut préciser -maxrate 3500k dans le cas d'un bitrate constant.
Il ne faut pas utiliser l'option -vcodec copy
Changer le framerate FPS¶
Pour cela on utilisera l'option -filter:v fps=..
ffmpeg -i <input> -filter:v fps=30 <output>