Comment utiliser FFmpeg avec des exemples

FFmpeg logo

D'après Wikipedia FFmpeg est une collection de logiciels libres destinés au traitement de flux audio, video et autres fichiers multimédias.

Je vais mettre ici les commandes que j'utilise le plus.

Configuration

  • OS : ArchLinux
  • ffmpeg : 4.4

Commandes

Vidéos

Compression

  • Compresser avec accélération matérielle :
user@host:~$ ffmpeg -hwaccel auto -i INPUT.mp4 -vcodec libx264 -crf 20 OUTPUT.mp4
  • Réduire la taille d'une vidéo :
user@host:~$ ffmpeg -i INPUT.mp4 -vcodec libx264 -crf 20 OUTPUT.mp4

Couper

  • Supprimer les 5 premières secondes d'une vidéo :
user@host:~$ ffmpeg -ss 5.00 -i INPUT.mp4 -c copy OUTPUT.mp4
  • Garder seulement les 120 premières secondes d'une vidéo :
user@host:~$ ffmpeg -t 120 -i INPUT.mp4 -c copy OUTPUT.mp4

Video vers Images

  • Convertir une video vers des fichiers png à partir de 1h22m00s et pour 4s :
user@host:~$ ffmpeg -ss 1:22:00 -t 4 -i /movies/1993.hot.shots.part.two.multi.1080p.bluray.x264.mkv -vf fps=10 $filename%05d.png
  • Convertir une video vers des fichiers jpg à partir de 1h22m00s, pour 4s et avec une résolution de 320 pixels :
user@host:~$ ffmpeg -ss 1:22:00 -t 4 -i /movies/1993.hot.shots.part.two.multi.1080p.bluray.x264.mkv -vf fps=10,scale=320:-1 $filename%05d.jpg

Vidéo vers Audio

  • Extraire l'audio depuis une vidéo :
user@host:~$ ffmpeg -i VIDEO.mp4 -b:a 192K -vn AUDIO.mp3
  • Extraire 5 secondes à partir de 10 minutes d'une vidéo :
user@host:~$ ffmpeg -ss 10:00 -t 5 -i VIDEO.mkv -vn AUDIO.wav
  • Extraire depuis un fichier de plusieurs canaux audio :
    • Afficher les informations :
user@host:~$ ffmpeg -i /movies/1998.The.Big.Lebowski.MULTI.1080p.Bluray.x264.mkv
  Stream #0:0(eng): Video: h264 (High), yuv420p(progressive), 1920x1040 [SAR 1:1 DAR 24:13], 23.98 fps, 23.98 tbr, 1k tbn, 47.95 tbc (default)
    Metadata:
      LANGUAGE        : eng
      ENCODER         : Lavc55.63.100 libx264
  Stream #0:1(eng): Audio: ac3, 48000 Hz, 5.1(side), fltp, 384 kb/s (default)
    Metadata:
      title           : VO
      LANGUAGE        : eng
      ENCODER         : Lavc55.63.100 ac3_fixed
  Stream #0:2(fra): Audio: ac3, 48000 Hz, 5.1(side), fltp, 384 kb/s
    Metadata:
      title           : VFF
      LANGUAGE        : fra
      ENCODER         : Lavc55.63.100 ac3_fixed
  Stream #0:3(fre): Subtitle: subrip (default)
    Metadata:
      title           : English [Complets]
  Stream #0:4(fre): Subtitle: subrip
    Metadata:
      title           : Anglais [Complets]
    • Extraire 8 secondes depuis la minute 36 l'audio du canal 2 (Français) :
user@host:~$ ffmpeg -ss 36:00 -t 8 -i /movies/1998.The.Big.Lebowski.MULTI.1080p.Bluray.x264.mkv -map 0:2 -vn /tmp/OUTPUT.wav

Tourner une vidéo

  • Option de rotation :
    • 0 = 90° sens inverse d'une montre et retournement vertical (option par défault)
    • 1 = 90° sens d'une montre
    • 2 = 90° sens inverse d'une montre
    • 3 = 90° sens d'une montre et retournement vertical
user@host:~$ ffmpeg -i INPUT.mp4 -vf "transpose=2" OUTPUT.mp4

Audio

Compression

Réduire la taille d'un fichier wav :
  • Audio rate : 16000 :
user@host:~$ ffmpeg -y -i INPUT.wav -ar 16000 OUTPUT.wav
  • Audio rate : 8000; codec pcm_s16le :
user@host:~$ ffmpeg -y -i INPUT.wav -ar 8000 -acodec pcm_s16le OUTPUT.wav
  • Audio rate : 8000; codec pcm_u8 :
user@host:~$ ffmpeg -y -i INPUT.wav -ar 8000 -acodec pcm_u8 OUTPUT.wav
  • Audio rate : 8000; audio chanel : 1 (mono) :
user@host:~$ ffmpeg -y -i INPUT.wav -ar 8000 -acodec pcm_u8 -ac 1 OUTPUT.wav

Convertion

  • Convertir un wav de stéréo vers mono :
user@host:~$ ffmpeg -y -i INPUT.wav -ac 1 OUTPUT.wav
  • Convertir un fichier mp3 vers opus :
user@host:~$ ffmpeg -i INPUT.mp3 -c:a libopus -b:a 128k ${i%mp3}opus
  • Convertir un fichier ogg vers mp3 :
user@host:~$ ffmpeg -i INPUT.ogg -b:a 128K -vn "${i%ogg}"mp3

Misc

  • Afficher les infos d'un média :
user@host:~$ ffprobe -show_format -show_streams INPUT.mp4
  • Réparer un fichier VOB corrompu :
user@host:~$ ffmpeg -i VTS_06_5.VOB -target ntsc-dvd /tmp/OUTPUT.mp2
Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

Contact :