Utiliser FFMPEG

FFMPEG est une collection de logiciels permettant de traiter des flux audio ou vidéo. En général utilisé en ligne de commande, on envisage ici divers exemples de conversions entre formats / compressions

, par clem

Utiliser ffprobe pour récupérer les infos sur un fichier vidéo/audio :

  1. ffprobe -hide_banner -loglevel fatal -show_error -show_format -show_streams -show_programs -show_chapters -show_private_data -print_format json le_fichier_video.mp4
  1. ffprobe -v quiet -print_format json -show_format -show_streams le_fichier_audio.mp3

Compresser des fichiers vidéos

  • compression en mp4 qualité web en gardant même taille :
    1. ffmpeg -i une_video.mp4 -c:v libx264 -b:v 1.5M -c:a aac -b:a 128k sortie/une_video_compressee.mp4
  • compression en mp4 qualité web en imposant le format Full HD ou HD :
    1. ffmpeg -i une_video.mp4 -c:v libx264 -b:v 1.5M -c:a aac -b:a 128k -filter:v scale=1920x1080 sortie/une_video_compressee.mp4
    2.  
    3. ffmpeg -i une_video.mp4 -c:v libx264 -b:v 1.5M -c:a aac -b:a 128k -filter:v scale=1280x720 sortie/une_video_compressee.mp4

    Télécharger

  • compression en webm qualité web en gardant même taille :
    1. ffmpeg -i une_video.mp4 -c:v libvpx-vp9 -b:v 1.5M -c:a libopus -b:a 128k sortie/une_video_compressee.webm
  • compressions en mp4 qualité web taille adaptées téléphones nHD ou qHD :
    1. ffmpeg -i source.mov -c:v libx264 -b:v 0.33M -c:a aac -b:a 96k -filter:v scale=960x540 qHD/source.mp4
    2. ffmpeg -i source.mov -c:v libx264 -b:v 0.25M -c:a aac -b:a 48k -filter:v scale=640x360 nHD/source.mp4

    Télécharger

  • compression en webm qualité web taille adaptée téléphones :
    1. ffmpeg -i une_video.mp4 -c:v libvpx-vp9 -b:v 0.33M -c:a libopus -b:a 96k -filter:v scale=960x540  sortie/test_mobile.webm

boucle bash pour générer toutes les vidéos d’un répertoire : exemple pour créer nHD et qHD :

  1. for i in `ls *.mp4`;do ffmpeg -i $i -c:v libx264 -b:v 0.33M -c:a aac -b:a 96k -filter:v scale=960x540 qHD/$i; ffmpeg -i $i -c:v libx264 -b:v 0.33M -c:a aac -b:a 96k -filter:v scale=640x360 nHD/$i;done

Récupérer un morceau d’une vidéo existante :

  • cas 1 : les 309 premières secondes
    1. ffmpeg -i source.mp4 -t 309 -c copy sortie/p1_1.mp4
  • cas 2 : à partir de 19’34’’ :
    1. ffmpeg -i source.mp4 -ss 00:19:34 -c copy sortie/p1_2.mp4
  • cas 3 : à partir de 25’30 jusqu’à 31’18
    1. ffmpeg -i source.mp4 -ss 00:25:30 -to 00:31:34 -c copy sortie/p1_3.mp4
  • cas 4 : 15 secondes à partir de 28’20
    1. ffmpeg -i source.mp4 -ss 00:28:20 -t 15 -c copy sortie/p1_4.mp4

Fusionner 3 vidéos :

dans le répertoire contenant les vidéos à fusionner création d’un fichier txt fusion.txt qui contient la liste des vidéos à fusionner :

lancer ffmpeg pour qu’il utilise la liste des fichiers de fusion.txt :

  1. ffmpeg -f concat -i fusion.txt -c copy sortie/p1.mp4

Extraire la bande son d’une vidéo :

extraction de la bande son au format mp3 :

  1. ffmpeg -i source.mp4 -vn sortie/source_audio.mp3

Ajout d’une bande son à une vidéo :

  • cas 1 : fusion de la vidéo source.mp4 (sans son) avec la bande son source_audio.mp3 (on se place dans le cas "simple" où les 2 sources font exactement le même temps) :
    1. ffmpeg -i source.mp4 -i source_audio.mp3 -c:v copy -c:a aac sortie/video_avec_son.mp4
  • cas 2 : remplacement de la bande son de la vidéo source.mp4 par la bande son source_audio.mp3 :
    1. ffmpeg -i source.mp4 -i source_audio.mp3 -c:v copy -c:a aac -map 0:v:0 -map 1:a:0 sortie/video_avec_son.mp4

Compression des fichiers audios mp3

  • compression en échantillonage 96k (testé OK dans le match 48k / 96k / 128k) :
    1. ffmpeg -i p2_e1_c1.mp3 -b:a 96k sortie/test_96.mp3

Intégration d’un fichier de sous-titres .srt :

  1. ffmpeg -i test_video_xavier.mp4 -vf subtitles=test_sstitres_xavier.srt test_video_xavier_sstitree.mp4