20 commandes les plus utilisées dans FFmpeg

20 commandes FFmpeg Utiles pour les débutants

Mis à jours 9 novembre 2020

Dans ce guide, je vous expliquerai comment utiliser le Framework multimédia FFmpeg pour effectuer diverses opérations. Parmi elless on trouve les conversions audio, le transcodage et les conversions vidéo. Le tout avec des exemples.

J’ai compilé plus de 20 commandes FFmpeg les plus fréquemment utilisés par les débutants.

Je continuerai à mettre à jour ce guide en ajoutant de plus en plus d’exemples. Donc, n’oubliez pas d’ajouter la page à vos favoris 🙂

OK! Allez-y ? Si vous n’avez pas encore installé FFmpeg sur votre système Linux, reportez-vous au guide suivant.

Découvrez les 20 commandes FFmpeg les plus utilisées

La syntaxe typique de la commande FFmpeg est la suivante:

ffmpeg [global_options] {[input_file_options] -i input_url} ...
 {[output_file_options] output_url} ...

Nous allons maintenant expérimenter quelques commandes FFmpeg importantes et utiles.

1. Obtenir des informations sur les fichiers audio / vidéo

Afin de pouvoir afficher les détails d’un fichier multimédia, exécutez la commande suivant:

$ ffmpeg -i video.mp4

Voici un exemple de ce que vous obtenez :

ffmpeg version n4.1.3 Copyright (c) 2000-2019 the FFmpeg developers
built with gcc 8.2.1 (GCC) 20181127
configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-fontconfig --enable-gmp --enable-gnutls --enable-gpl --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libdrm --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libiec61883 --enable-libjack --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxcb --enable-libxml2 --enable-libxvid --enable-nvdec --enable-nvenc --enable-omx --enable-shared --enable-version3
libavutil 56. 22.100 / 56. 22.100
libavcodec 58. 35.100 / 58. 35.100
libavformat 58. 20.100 / 58. 20.100
libavdevice 58. 5.100 / 58. 5.100
libavfilter 7. 40.101 / 7. 40.101
libswscale 5. 3.100 / 5. 3.100
libswresample 3. 3.100 / 3. 3.100
libpostproc 55. 3.100 / 55. 3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'video.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf58.20.100
Duration: 00:00:28.79, start: 0.000000, bitrate: 454 kb/s
Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, smpte170m/bt470bg/smpte170m), 1920x1080 [SAR 1:1 DAR 16:9], 318 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc (default)
Metadata:
handler_name : ISO Media file produced by Google Inc. Created on: 04/08/2019.
Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s (default)
Metadata:
handler_name : ISO Media file produced by Google Inc. Created on: 04/08/2019.
At least one output file must be specified

Comme vous le constater dans la sortie ci-dessus, FFmpeg affiche pleins d’informations sur le fichier multimédia. Il affiche aussi d’autres détails sur FFmpeg tels que la version, les détails de configuration, la notice de copyright, les options de construction et de bibliothèque, etc.

Si vous ne voulez pas voir uniquement les informations sur fichier multimédia, alors utilisez l’indicateur -hide_banner pour omettre les autres détails.

$ ffmpeg -i video.mp4 -hide_banner

Voici ce que vous obtenez :

Affichage des informations sur les fichiers audio et vidéo à l’aide de FFMpeg

Comme vous pouvez le constater maintenant, Il n’y a que les détails du fichier multimédia.

2. Comment convertir des fichiers vidéo en différents formats ?

FFmpeg est un puissant convertisseur audio et vidéo. Il est donc possible de convertir des fichiers multimédias entre différents formats.

Conversion Mp4 vers AVI

Prenons l’exemple d’une conversion d’un fichier mp4 en fichier avi.

Il faut simplement exécuter la commande suivante :

$ ffmpeg -i video.mp4 video.avi

Conversion FLV vers MPEG

De même, vous pouvez convertir des fichiers multimédias dans n’importe quel format de votre choix.

Par exemple, pour convertir des vidéos au format youtube flv au format mpeg, exécutez la commande suivant:

$ ffmpeg -i video.flv video.mpeg

Si vous souhaitez préserver la qualité de votre fichier vidéo source, utilisez le paramètre « -qscale 0 » :

$ ffmpeg -i input.webm -qscale 0 output.mp4

Une bonne chose à faire est de vérifier la liste des formats pris en charge par FFmpeg. Pour le savoir procéder avec cette commande :

$ ffmpeg -formats

3. Comment convertir des fichiers vidéo en fichiers audio ?

Pour convertir un fichier vidéo en fichier audio, spécifiez simplement le format de sortie au format .mp3, .ogg ou tout autre format audio.

La commande ci-dessus convertira le fichier vidéo input.mp4 en fichier audio output.mp3.

$ ffmpeg -i input.mp4 -vn output.mp3

Vous pouvez également utiliser diverses options de transcodage audio dans le fichier de sortie, comme indiqué ci-dessous.

$ ffmpeg -i input.mp4 -vn -ar 44100 -ac 2 -ab 320 -f mp3 output.mp3

Voici une explication de ce que représente chacun des sigles :

  • -vn : Indique que nous avons désactivé l’enregistrement vidéo dans le fichier de sortie.
  • -ar : Définit la fréquence audio du fichier de sortie. Les valeurs communes utilisées sont 22050, 44100, 48000 Hz.
  • -ac : Définit le nombre de canaux audio.
  • ab : Indique le débit binaire audio.
  • -f : Format du fichier de sortie. Dans notre cas, c’est le format mp3.

4. Changer la résolution des fichiers vidéo

Si vous souhaitez définir une résolution particulière pour un fichier vidéo, vous pouvez utiliser la commande suivante:

$ ffmpeg -i input.mp4 -filter:v scale=1280:720 -c:a copy output.mp4

Ou encore celle-ci :

$ ffmpeg -i input.mp4 -s 1280x720 -c:a copy output.mp4

La commande ci-dessus définira la résolution du fichier vidéo donné sur 1280 × 720.

De même, pour convertir le fichier ci-dessus en taille 640 × 480, exécutez la commande suivante:

$ ffmpeg -i input.mp4 -filter:v scale=640:480 -c:a copy output.mp4

Ou encore:

$ ffmpeg -i input.mp4 -s 640x480 -c:a copy output.mp4

Cette astuce vous aidera à adapter vos fichiers vidéo à des appareils d’affichage plus petits tels que des tablettes et des téléphones portables.

5. Comment compresser des fichiers vidéo ?

Il est toujours fortement recommandé de réduire la taille de vos fichiers multimédias à une taille inférieure. Cela vous permet non seulement d’économiser de l’espace disque mais aussi vos vidéos se chargeront plus rapidement.

La commande suivante compressera et réduira la taille du fichier de sortie.

$ ffmpeg -i input.mp4 -vf scale=1280:-1 -c:v libx264 -preset veryslow -crf 24 output.mp4

Veuillez noter que vous perdrez la qualité si vous essayez de réduire la taille du fichier vidéo. Vous pouvez abaisser cette valeur à 23 ou moins si 24 est trop agressif.

Vous pouvez également transcoder un peu l’audio. En fait, il est possible de le rendre en mode stéréo pour en réduire la taille. Vous pouvez aussi inclure les options suivantes :

-ac 2 -c:a aac -strict -2 -b:a 128k

6. Compression de fichiers audio

Tout comme pour la compression de fichiers vidéo, vous pouvez également compresser des fichiers audio à l’aide de de la commande –ab. Cela vous permettra certainement de libérer de l’espace disque.

Disons que vous avez un fichier audio de 320 kbps. Vous souhaitez le compresser en modifiant le débit binaire en une valeur inférieure, comme ci-dessous.

$ ffmpeg -i input.mp3 -ab 128 output.mp3

Voici la liste des différents débits binaires qui sont disponibles :

  1. 96kbps
  2. 112kbps
  3. 128kbps
  4. 160kbps
  5. 192kbps
  6. 256kbps
  7. 320kbps

7. Supprimer le flux audio d’un fichier vidéo

Si vous ne voulez pas d’audio à partir d’un fichier vidéo, utilisez la fonction -an.

$ ffmpeg -i input.mp4 -an output.mp4

Le « an » indique qu’aucun enregistrement audio n’aura lieu.

La commande ci-dessus annulera tous les indicateurs liés à l’audio, car l’audio ne provient pas de input.mp4.

8. Comment supprimer le flux vidéo d’un fichier multimédia

Si vous ne voulez pas de flux vidéo, vous pouvez facilement le supprimer du fichier multimédia à l’aide de l’indicateur « vn ».

Le « vn » signifie pas d’enregistrement vidéo. En d’autres termes, cette commande convertit le fichier multimédia donné en fichier audio.

La commande suivante supprimera la vidéo du fichier multimédia donné.

$ ffmpeg -i input.mp4 -vn output.mp3

Vous pouvez également mentionner le débit du fichier de sortie (output) à l’aide de l’indicateur « -ab » comme indiqué dans l’exemple suivant :

$ ffmpeg -i input.mp4 -vn -ab 320 output.mp3

9. Extraire des images de la vidéo

Une autre fonctionnalité utile de FFmpeg est que vous pouvez facilement extraire des images d’un fichier vidéo.

Cela pourrait être très utile si vous souhaitez créer un album photo à partir d’un fichier vidéo.

Pour extraire des images d’un fichier vidéo, utilisez la commande suivante:

$ ffmpeg -i input.mp4 -r 1 -f image2 image-%2d.png

Voici l’explication des indications :

  • -r : Définit la fréquence d’images. En d’autres termes, le nombre d’images à extraire en images par seconde. La valeur par défaut est 25.
  • -f : Indique le format de sortie, c’est-à-dire le format d’image dans notre cas.
  • image-% 2d.png : Indique comment vous voulez nommer les images extraites. Dans ce cas, les noms doivent commencer comme image-01.png, image-02.png, image-03.png, etc. Si vous utilisez %3d, le nom des images commencera comme suit: image-001.png, image-002.png, etc.

10. Recadrer des vidéos

FFMpeg permet de recadrer un fichier multimédia dans n’importe quelle dimension de votre choix.

La syntaxe pour recadrer une vidéo est donnée ci-dessous:

ffmpeg -i input.mp4 -filter:v "crop=w:h:x:y" output.mp4

Voici une explication de cette ligne de commande :

  • input.mp4 : fichier vidéo source.
  • -filter : v : Indique le filtre vidéo.
  • crop : Indique le filtre de recadrage.
  • : Largeur du rectangle que nous voulons rogner à partir de la vidéo source.
  • : Hauteur du rectangle.
  • Coordonnée x – x du rectangle que nous souhaitons recadrer à partir de la vidéo source.
  • Coordonnée y – y du rectangle.

Supposons que vous souhaitiez une vidéo d’une largeur de 640 pixels et d’une hauteur de 480 pixels, à partir de la position (200,150). La commande serait la suivante:

$ ffmpeg -i input.mp4 -filter:v "crop=640:480:200:150" output.mp4

Veuillez noter que le recadrage de vidéos affectera la qualité. Ne le faites que lorsque c’est nécessaire.

11. Convertir une partie spécifique d’une vidéo

Parfois, vous voudrez peut-être ne convertir qu’une partie spécifique (durée) du votre vidéo en un autre format.

Par exemple, la commande suivante convertira les 10 premières secondes d’un fichier video.mp4 donné au format video.avi.

$ ffmpeg -i input.mp4 -t 10 output.avi

Dans notre exemple, j’ai spécifié le temps en secondes. En outre, il est possible de spécifier l’heure au format hh.mm.ss.

Les rapports de format couramment utilisés sont:

  • 16:9
  • 4:3
  • 16:10
  • 5:4
  • 2:21:1
  • 2:35:1
  • 2:39:1

13. Ajouter une image affiche aux fichiers audio

En ajoutant les images à vos fichiers, elles apparaîtront à chaque fois le fichier audio est lu.

Cela pourrait être utile si vous voulez héberger vos fichiers audio et vidéo chez des sites d’hébergement et de partage.

$ ffmpeg -loop 1 -i inputimage.jpg -i inputaudio.mp3 -c:v libx264 -c:a aac -strict experimental -b:a 192k -shortest output.mp4

14. Réduire la durée d’un fichier multimédia

Pour réduire une vidéo en un clip plus petit en utilisant l’heure de début et de fin, nous pouvons utiliser la commande suivante :

$ ffmpeg -i input.mp4 -ss 00:00:50 -codec copy -t 50 output.mp4

Voici l’explication de cette commande :

  • S : Indique l’heure de début du clip vidéo. Dans notre exemple, l’heure de début correspond à la 50e seconde.
  • -t : Indique la durée totale. Item 1

Ceci est très utile lorsque vous souhaitez couper une partie d’un fichier audio ou vidéo en utilisant l’heure de début et de fin.

De même, nous pouvons réduire le fichier audio comme ci-dessous.

$ ffmpeg -i audio.mp3 -ss 00:01:54 -to 00:06:53 -c copy output.mp3

15. Diviser les fichiers vidéo en plusieurs parties

Certains sites Web vous permettent de télécharger uniquement une taille spécifique de vidéo. Dans ce cas, vous pouvez diviser les gros fichiers vidéo en plusieurs parties plus petites.

Voici comment faire :

$ ffmpeg -i input.mp4 -t 00:00:30 -c copy part1.mp4 -ss 00:00:30 -codec copy part2.mp4
  • t 00:00:30 indique une partie créée du début de la vidéo à la 30e seconde de la vidéo.
  • -ss 00:00:30 indique l’heure de début de la prochaine partie de la vidéo. Cela signifie que la 2ème partie commencera à la 30e seconde et continuera jusqu’à la fin du fichier vidéo d’origine.

16. Joindre ou fusionner plusieurs parties vidéo en une seule

FFmpeg est capable également de joindre différentes parties de plusieurs vidéos et puis créer un seul fichier vidéo.

Créez un fichier join.txt contenant les chemins exacts des fichiers que vous souhaitez rejoindre. Tous les fichiers doivent être au même format (même codec). Le chemin d’accès de tous les fichiers doit être mentionné un par un, comme ci-dessous.

file /home/th/mesvideos/partie1.mp4
file /home/th/mesvideos/partie2.mp4
file /home/th/mesvideos/partie3.mp4
file /home/th/mesvideos/partie4.mp4

Maintenant, fusionner tous les fichiers en utilisant la commande suivante :

$ ffmpeg -f concat -i join.txt -c copy output.mp4

Dans le cas où vous obtenez une erreur comme celle-là :

[concat @ 0x555fed174cc0] Unsafe file name '/path/to/mp4'
join.txt: Operation not permitted

Ajouter « -safe 0 »:

$ ffmpeg -f concat -safe 0 -i join.txt -c copy output.mp4

La commande ci-dessus joindra les fichiers partie1.mp4, partie2.mp4, partie3.mp4 et partie4.mp4 dans un fichier unique appelé «output.mp4».

17. Ajouter des sous-titrages à un fichier vidéo

Vous pouvez également ajouter des sous-titrages à un fichier vidéo en utilisant FFmpeg. Téléchargez le fichier de sous-titrage correct pour votre vidéo et ajoutez-le comme indiqué ci-dessous.

$ ffmpeg -i input.mp4 -i soutitrage.srt -map 0 -map 1 -c copy -c:v libx264 -crf 23 -preset veryfast output.mp4

18. Prévisualiser ou tester des fichiers vidéo ou audio

Vous voudrez peut-être prévisualiser pour vérifier ou tester si le fichier de sortie a été correctement transcodé ou non.

Vous pouvez le faire depuis votre terminal avec la commande suivante :

$ ffplay video.mp4
Prévisualisation d’une vidéo avec FFmpeg

La même chose s’applique si vous voulez tester les fichiers audio.

$ ffplay audio.mp3
Prévisualisation d’un fichier audio avec FFmpeg

19. Augmenter / diminuer la vitesse de lecture de la vidéo

FFmpeg vous permet aussi de régler la vitesse de lecture vidéo.

Pour augmenter la vitesse de lecture vidéo, exécutez:

$ ffmpeg -i input.mp4 -vf "setpts=0.5*PTS" output.mp4

Cette commande doublera la vitesse de la vidéo.

Pour ralentir votre vidéo, vous devez utiliser un multiplicateur supérieur à 1. Pour réduire la vitesse de lecture, exécutez le code suivant:

$ ffmpeg -i input.mp4 -vf "setpts=4.0*PTS" output.mp4

20. Obtenir de l’aide

Dans ce guide, j’ai abordé les commandes FFmpeg les plus couramment utilisées. Il y a plusieurs options différentes pour faire diverses fonctions avancées. Pour en savoir plus à ce sujet, reportez-vous à la page de manuel.

$ man ffmpeg

Et c’est tout. J’espère que ce guide vous aidera à démarrer avec FFmpeg.

Jacques Tremblay
Suivez moi

Check Also

Grid computing vs cloud computing

Grid computing Vs Cloud Computing: quelle est la différence entre les deux ?

Mis à jours 2 septembre 2020 Le cloud computing et le grid computing sont deux …

Share via
Copy link
Powered by Social Snap