FFmpeg – Commandes utiles


Documentation officielle de FFmpeg :

On peut retrouver la liste des codecs et formats de fichiers supportés sur le site officiel :

 

Lister les codecs supportés

ffmpeg -codecs
 D..... = Decoding supported
 .E.... = Encoding supported
 ..V... = Video codec
 ..A... = Audio codec
 ..S... = Subtitle codec
 ...I.. = Intra frame-only codec
 ....L. = Lossy compression
 .....S = Lossless compression

 

Lister les encodeurs supportés

ffmpeg -encoders
 V..... = Video
 A..... = Audio
 S..... = Subtitle
 .F.... = Frame-level multithreading
 ..S... = Slice-level multithreading
 ...X.. = Codec is experimental
 ....B. = Supports draw_horiz_band
 .....D = Supports direct rendering method 1

 

Lister les décodeurs supportés

ffmpeg -decoders
 V..... = Video
 A..... = Audio
 S..... = Subtitle
 .F.... = Frame-level multithreading
 ..S... = Slice-level multithreading
 ...X.. = Codec is experimental
 ....B. = Supports draw_horiz_band
 .....D = Supports direct rendering method 1

 

Lister les formats de fichiers supportés

ffmpeg -formats
 D. = Demuxing supported
 .E = Muxing supported

 

Lister les muxeurs supportés

ffmpeg -muxers

 

Lister les démuxeurs supportés

ffmpeg -demuxers

 

Afficher les options spécifiques à un encodeur, décodeur, muxeur ou démuxeur

ffmpeg -h encoder=mpeg4
ffmpeg -h decoder=aac
ffmpeg -h muxer=matroska
ffmpeg -h demuxer=gif

 

Conversion d’un fichier du format MP4 au format AVI sans perte de qualité

ffmpeg -i filename.mp4 -qscale 0 filename.avi

ou

ffmpeg -i filename.mp4 -q:a 0 -q:v 0 filename.avi
Fichier original (MP4) Après (sans qscale) Après (qscale 0) Après (qscale 4)
Codec Video MPEG-4 AVC (P10) MPEG-4 Visual (P2) MPEG-4 Visual (P2) MPEG-4 Visual (P2)
Codec Audio MPEG-4 AAC (P3) MPEG-1 Audio Layer III (MP3) MPEG-1 Audio Layer III (MP3) MPEG-1 Audio Layer III (MP3)
Overall Bitrate 1091 Kb/s 730 Kb/s 4549 Kb/s 2560 Kb/s
Taille 81.2 MiB 54.3 MiB 338 MiB 190 MiB

Rmq : une conversion avec le paramètre qscale à 4 présente une qualité encore correcte, au-delà la pixellisation est perceptible.
Pour un même débit final au format AVI (environ 1100 Kb/s), la qualité est extrêmement mauvaise par rapport à l’originale au format MP4.

 

Conversion d’une vidéo AVI au format MP4 sans perte de qualité :

Codec vidéo H264 :

ffmpeg -i filename.avi -c:v libx264 -crf 18 -c:a aac -b:a 128k  filename.mp4

Codec vidéo H265 :

ffmpeg -i filename.avi -c:v libx265 -crf 18 -c:a aac -b:a 128k filename.mp4

Rmq : Choisir une valeur pour CRF entre 18 (sans perte apparente mais fichier final plus lourd) et 28 (fichier final plus léger mais qualité légèrement dégradée).

 

Conversion d’un fichier du format AVI au format MKV

ffmpeg -i filename.avi filename.mkv

Equivaut à (options par défaut) :

ffmpeg -i filename.avi -f matroska -vcodec libx264 -acodec libvorbis filename.mkv

ou

ffmpeg -i filename.avi -f matroska -c:v libx264 -c:a libvorbis filename.mkv

 

Conversion d’un fichier du format AVI au format MKV en spécifiant les codecs

Conversion au format MKV avec codec vidéo MPEG-4 AVC (P10) (H.264) et codec audio AAC :

ffmpeg -i filename.avi -c:v libx264 -c:a aac filename.mkv

Conversion au format MKV avec codec vidéo MPEG-4 AVC (P10) (H.264) et codec audio AC-3 (Dolby Digital) :

ffmpeg -i filename.avi -c:v libx264 -c:a ac3 filename.mkv

Conversion au format MKV avec codec vidéo VP8 et codec audio Vorbis (avec BitRate Video à 1000 Kb/s):

ffmpeg -i filename.avi -c:v vp8 -c:a libvorbis -b:v 1M filename.mkv

Conversion au format MKV avec codec vidéo VP9 et codec audio AAC (avec BitRate Video à 1000 Kb/s) :

ffmpeg -i filename.avi -c:v vp9 -c:a aac -b:v 1M filename.mkv

Conversion au format MKV avec codec vidéo MPEG-4 Visual (P2) et codec audio AC-3 (Dolby Digital) (avec BitRate Video à 1000 Kb/s):

ffmpeg -i filename.avi -c:v mpeg4 -c:a ac3 -b:v 1M filename.mkv

Rmq :
Taille occupée par les flux audio : Vorbis < AAC < AC-3

 

Extraire les sous-titres d’une vidéo (par ex depuis le format TX3G) :

Au format SRT :

ffmpeg -i filename.mp4 filename.srt

Au format ASS :

ffmpeg -i filename.mp4 filename.ass

 

Extraire les sous-titres d’un fichier MULTISUB :

ffmpeg -i filename.mp4

Pur indentifier le mapping des flux de sous-titres (des indices 0 à n).
Puis :

ffmpeg -i filename.mp4 -map 0:s:[i] filename.srt

avec i allant de 0 à n (0 pour la 1ère piste de sous-titres).

 

Annexes

 

Définitions

Conteneur (container, wrapper) : archive contenant des signaux numériques audio ou video compressées avec des codecs encodeurs.
Codec (coder/decoder) : traducteur, servant à compresser des signaux numériques audio ou video (encodage), ou à les décompresser (décodage).

 

Quelques conteneurs communément utilisés

Extension Commentaires Société
.MOV Quick Time format Apple
.AVI / .DIVX Audio Video Interleave Microsoft
.MKV Matroska Video CoreCode, Inc.
.MP4 MPEG-4 Part 1, ISO/CEI 14496-1:2001, MPEG-4 file format version 1 (partie 1 de la norme MP4) Moving Picture Experts Group
MPEG-4 Part 14, ISO/CEI 14496-14:2003, MPEG-4 file format version 2 (partie 14 de la norme MP4)
.OGG Manœuvre tactique du jeu vidéo Netrek Xiph.org
.WMV Windows Media Video Microsoft
.FLV Flash Video Adobe Systems
.WEBM Web Media Google

 

Normes audio et vidéo souvent associées aux conteneurs

Extension Normes Video Normes Audio
.MOV QuickTime / H.264 AAC
.AVI MPEG-4 Part 2 MP3 / AC3
.MKV H.264 / H.265 AC3 / AAC
.MP4 H.264 / H.265 AC3 / AAC
.OGG Theora Vorbis / FLAC
.FLV H.264 / VP6 PCM / ADPCM / MP3 / AAC
.WEBM VP8 / VP9 Vorbis / Opus

 

Exemples de normes audio et vidéo utilisées

MP3 MPEG Audio Part 3, MPEG-1/2 Part 3, MPEG-1/2 Audio Layer III
AAC Advanced Audio Coding
AC-3 Dolby Digital, DD, ATSC A/52A
OPUS Opus Interactive Audio Codec
H.264 MPEG-4 AVC, MPEG-4 Part 10
H.265 HEVC (High Efficiency Video Coding)
MPEG-2 H.262, MPEG Video Part 2, MPEG-2 Part 2
MPEG-4 MPEG-4 Visual, MPEG-4 Part 2, DivX, Xvid
VP8 On2 VP8
VP9 Google VP9

 

Codecs FFmpeg implémentant certaines normes audio et vidéo

Norme Encodeurs Décodeurs
MP3 libmp3lame mp3, mp3float
AAC libfaac, libfdk-aac, libvo-aacenc aac, aac-fixed
AC-3 ac3, ac3-fixed ac3, ac3-fixed
OPUS opus, libopus opus, libopus
H.264 libx264 libx264
H.265 libx265, nvenc_hevc, hevc_nvenc, hevc_qsv hevc, hevc_qsv, hevc_cuvid
MPEG-2 mpeg2video, mpeg2_qsv mpeg2video, mpegvideo, mpeg2_qsv, mpeg2_cuvid
MPEG-4 mpeg4, libxvid mpeg4, mpeg4_cuvid
VP8 vp8, libvpx, vp8_cuvid, vp8_qsv libvpx
VP9 vp9, libvpx-vp9, vp9_cuvid libvpx-vp9

 

Références