GNU/Linux >> Tutoriels Linux >  >> Linux

Plus de 20 commandes FFmpeg pour les débutants

Dans ce guide, j'expliquerai comment utiliser le framework multimédia FFmpeg pour effectuer diverses opérations de transcodage et de conversion audio, vidéo avec des exemples. J'ai compilé plus de 20 commandes FFmpeg les plus couramment utilisées pour les débutants.

Je continuerai à mettre à jour ce guide en ajoutant de temps en temps d'autres exemples. Veuillez ajouter ce guide à vos favoris et revenir plus tard pour vérifier les mises à jour. Commençons, d'accord ?

Installer FFmpeg sous Linux

Si vous n'avez pas encore installé FFmpeg sur votre système Linux, consultez le guide suivant.

  • Installer FFmpeg sous Linux

Commandes FFmpeg avec exemples

La syntaxe typique de la commande FFmpeg est :

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

Nous allons maintenant voir quelques commandes FFmpeg importantes et utiles.

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

Pour afficher les détails d'un fichier multimédia, exécutez :

$ ffmpeg -i video.mp4

Exemple de résultat :

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 voyez dans la sortie ci-dessus, FFmpeg affiche les informations sur le fichier multimédia ainsi que les détails de FFmpeg tels que la version, les détails de configuration, l'avis de droit d'auteur, les options de construction et de bibliothèque, etc.

Si vous ne souhaitez pas voir la bannière FFmpeg et d'autres détails, mais uniquement les informations sur le fichier multimédia, utilisez -hide_banner drapeau comme ci-dessous.

$ ffmpeg -i video.mp4 -hide_banner

Exemple de résultat :

Voir? Désormais, il affiche uniquement les détails du fichier multimédia.

Lecture suggérée :

  • Afficher les informations sur les fichiers multimédias sous Linux à l'aide de MediaInfo

2. Conversion de fichiers vidéo en différents formats

Étant donné que FFmpeg est un convertisseur audio et vidéo riche en fonctionnalités et puissant, il est donc possible de convertir des fichiers multimédias entre différents formats. Disons par exemple, pour convertir mp4 fichier en avi fichier , exécutez :

$ ffmpeg -i video.mp4 video.avi

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

Par exemple, pour convertir YouTube flv formater les vidéos en mpeg formater, exécutez :

$ ffmpeg -i video.flv video.mpeg

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

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

Pour vérifier la liste des formats pris en charge par FFmpeg, exécutez :

$ ffmpeg -formats

3. Conversion de fichiers vidéo en fichiers audio

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

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

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

En outre, vous pouvez utiliser diverses options de transcodage audio pour le fichier de sortie, comme indiqué ci-dessous.

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

Ici,

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

La commande ci-dessus affichera un message d'avertissement comme ci-dessous.

[libmp3lame @ 0x5589ed539240] Bitrate 320 is extremely low, maybe you mean 320k
The bitrate parameter is set too low. It takes bits/s as argument, not kbits/s

C'est parce que nous avons donné 320 bits/seconde comme débit binaire qui est très faible. Cela créera un fichier de sortie plus petit. Pour une sortie de meilleure qualité, utilisez la valeur de débit binaire comme 320k au lieu de simplement 320 .

4. Modifier le volume des fichiers audio

FFmpeg nous permet de changer le volume d'un fichier audio en utilisant "volume filter" option.

Par exemple, la commande suivante diminuera le volume de moitié.

$ ffmpeg -i input.mp3 -af 'volume=0.5' output.mp3

De même, nous pouvons augmenter le volume comme ci-dessous :

$ ffmpeg -i input.mp3 -af 'volume=1.5' output.mp3

5. Modifier 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,

$ 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 1280x720 .

De même, pour convertir le fichier ci-dessus en 640x480 taille, exécutez :

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

Ou,

$ 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 mobiles.

6. Compresser des fichiers vidéo

C'est toujours une bonne idée de réduire la taille des fichiers multimédias pour économiser de l'espace disque.

La commande suivante va compresser et réduire 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 en qualité si vous essayez de réduire la taille du fichier vidéo. Vous pouvez réduire ce crf valeur à 23 ou moins si 24 est trop agressif.

Vous pouvez également transcoder un peu l'audio et le rendre stéréo pour réduire la taille en incluant les options suivantes.

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

7. Compresser des fichiers audio

Tout comme pour compresser des fichiers vidéo, vous pouvez également compresser des fichiers audio en utilisant -ab flag afin d'économiser de l'espace disque.

Disons que vous avez un fichier audio de 320 débit binaire de kbps. Vous voulez le compresser en changeant le débit binaire à n'importe quelle valeur inférieure comme ci-dessous.

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

La liste des différents débits audio disponibles est :

  1. 96 kbit/s
  2. 112 kbit/s
  3. 128 kbit/s
  4. 160 kbit/s
  5. 192 kbit/s
  6. 256 kbit/s
  7. 320 kbit/s

8. Suppression du flux audio d'un fichier vidéo

Si vous ne voulez pas l'audio d'un fichier vidéo, utilisez -an drapeau.

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

Ici, 'an' indique aucun enregistrement audio. En d'autres termes, cette option coupera le son.

La commande ci-dessus annulera tous les drapeaux liés à l'audio.

9. Suppression du flux vidéo d'un fichier multimédia

De même, si vous ne voulez pas de flux vidéo, vous pouvez facilement le supprimer du fichier multimédia en utilisant 'vn' drapeau. 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 binaire du fichier de sortie en utilisant '-ab' comme indiqué dans l'exemple suivant.

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

10. Extraire des images de la vidéo

Une autre fonctionnalité utile de FFmpeg est que nous pouvons facilement extraire des images d'un fichier vidéo. Cela peut ê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

Ici,

  • -r - Réglez la fréquence d'images. C'est-à-dire le nombre de trames à 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 nous voulons nommer les images extraites. Dans ce cas, les noms doivent commencer par image-01.png , image-02.png , image-03.png etc. Si vous utilisez %3d , alors le nom des images commencera comme image-001.png , image-002.png et ainsi de suite.

11. Recadrage de vidéos

FFMpeg permet de recadrer un fichier multimédia donné dans n'importe quelle dimension de notre choix.

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

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

Ici,

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

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

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

Veuillez noter que le recadrage des vidéos affectera la qualité. Ne le faites que si cela est nécessaire.

12. Convertir une partie spécifique d'une vidéo

Parfois, vous souhaiterez peut-être convertir uniquement une partie spécifique (durée) du fichier vidéo dans un format différent. Disons par exemple, la commande suivante convertira le premier 10 secondes du fichier video.mp4 donné au format video.avi.

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

Ici, nous spécifions le temps en secondes. De plus, il est possible de spécifier l'heure en hh.mm.ss formater.

13. Définir le format d'image sur vidéo

Vous pouvez définir le format d'image d'un fichier vidéo à l'aide de -aspect drapeau comme ci-dessous.

$ ffmpeg -i input.mp4 -aspect 16:9 output.mp4

Les formats d'image couramment utilisés sont :

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

14. Ajout d'une image d'affiche aux fichiers multimédias

Vous pouvez ajouter les images d'affiches à vos fichiers, afin que les images soient affichées lors de la lecture des fichiers audio ou vidéo. Cela peut être utile pour héberger des fichiers audio sur des sites Web d'hébergement ou de partage de vidéos.

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

15. Couper un fichier multimédia en utilisant les heures de début et de fin

Pour réduire une vidéo à un clip plus petit en utilisant les heures 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

Ici,

  • --s - Indique l'heure de début du clip vidéo. Dans notre exemple, l'heure de début est la 50e seconde.
  • -t - Indique la durée totale.

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

16. Diviser les fichiers audio/vidéo en plusieurs parties

Certains sites Web vous permettent de télécharger uniquement une taille de vidéo spécifique. Par exemple, Whatsapp n'autorisera que 15 secondes vidéos à définir comme message de statut pour les utilisateurs en Inde. Dans de tels cas, vous pouvez diviser les gros fichiers vidéo en plusieurs parties plus petites comme ci-dessous.

$ ffmpeg -i input.mp4 -t 00:00:30 -c copy part1.mp4 -ss 00:00:30 -codec copy part2.mp4

Ici, -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 affiche l'horodatage de début de la partie suivante de la vidéo. Cela signifie que la 2ème partie commencera à partir de la 30ème seconde et se poursuivra jusqu'à la fin du fichier vidéo d'origine.

Recommended Download - Free Guide: "How to Start Your Own Successful Podcast"

17. Rejoindre ou fusionner plusieurs parties audio/vidéo en une seule

FFmpeg joindra également les multiples parties vidéo et créera un seul fichier vidéo.

Créer join.txt fichier contenant les chemins exacts des fichiers que vous souhaitez joindre. Tous les fichiers doivent être au même format (même codec). Le nom du chemin de tous les fichiers doit être mentionné un par un comme ci-dessous.

file /home/sk/myvideos/part1.mp4
file /home/sk/myvideos/part2.mp4
file /home/sk/myvideos/part3.mp4
file /home/sk/myvideos/part4.mp4

Maintenant, joignez tous les fichiers à l'aide de la commande :

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

Si vous obtenez une erreur comme ci-dessous ;

[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 rejoindra part1.mp4 , part2.mp4 , part3.mp4 , et part4.mp4 fichiers dans un seul fichier appelé "output.mp4" .

Vous pouvez également utiliser la commande à une ligne suivante pour joindre tous les fichiers dans un répertoire. Allez dans le répertoire où vous avez des fichiers et exécutez la commande suivante pour joindre les fichiers nommés audio1.mp3 , audio2,mp3 et audio3.mp3 dans output.mp3 .

$ ffmpeg -i "concat:audio1.mp3|audio2.mp3|audio3.mp3" -c copy output.mp3

18. Ajouter des sous-titres à un fichier vidéo

Nous pouvons également ajouter des sous-titres à un fichier vidéo en utilisant FFmpeg. Téléchargez le sous-titre correct pour votre vidéo et ajoutez-le à votre vidéo comme indiqué ci-dessous.

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

19. Prévisualisez ou testez 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. Pour cela, vous pouvez y jouer depuis votre Terminal avec la commande :

$ ffplay video.mp4

De même, vous pouvez tester les fichiers audio comme indiqué ci-dessous.

$ ffplay audio.mp3

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

FFmpeg vous permet 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

La commande doublera la vitesse de la vidéo.

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

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

21. Augmenter/diminuer la vitesse de lecture audio

Pour augmenter ou diminuer la vitesse de lecture audio, utilisez le "atempo" filtre audio. La commande suivante doublera la vitesse de l'audio.

$ ffmpeg -i input.mp4 -filter:a "atempo=2.0" -vn output.mp4

Vous pouvez utiliser n'importe quelle valeur entre 0.5 et 2.0 pour le son.

22. Créer un GIF animé

Nous utilisons des images GIF sur presque tous les réseaux sociaux et professionnels à des fins diverses. En utilisant FFmpeg, nous pouvons facilement et rapidement créer des fichiers vidéo animés.

Le guide suivant explique comment créer un fichier GIF animé à l'aide de FFmpeg et ImageMagick dans les systèmes Linux et Unix.

  • Comment créer un GIF animé sous Linux

Suggestion de lecture :

  • Gifski - Un encodeur GIF multiplateforme de haute qualité

23. Créer des vidéos à partir de fichiers PDF

Au fil des ans, j'ai collecté de nombreux fichiers PDF, principalement des didacticiels Linux, et les ai enregistrés sur ma tablette PC. Parfois, je me sens trop paresseux pour les lire sur la tablette.

J'ai donc décidé de créer une vidéo à partir de fichiers PDF et de la regarder sur un appareil grand écran comme un téléviseur ou un ordinateur. Si vous vous êtes déjà demandé comment créer un fichier vidéo à partir d'une collection de fichiers PDF, le guide suivant vous aidera.

  • Comment créer une vidéo à partir de fichiers PDF sous Linux

24. Faire pivoter les vidéos

Si vous avez des fichiers vidéo avec une orientation différente (portrait ou paysage), vous pouvez les faire pivoter comme décrit dans le guide suivant.

  • Comment faire pivoter des vidéos à l'aide de FFMpeg à partir de la ligne de commande

25. Convertir des vidéos au format vidéo WhatsApp

WhatsApp ne prend pas en charge certaines vidéos. Vous ne pouvez pas les partager avec vos contacts ou les définir dans le statut WhatsApp. Pas de soucis! Nous pouvons facilement convertir des vidéos au format vidéo pris en charge par WhatsApp avec FFmpeg, comme décrit dans le lien suivant.

  • Convertir des vidéos au format vidéo WhatsApp avec FFmpeg

26. Zoomer et dézoomer les vidéos

FFmpeg dispose de nombreux filtres utiles pour effectuer une tâche spécifique. L'un d'eux est zoompan. En utilisant le filtre zoompan, nous pouvons facilement zoomer et dézoomer toutes les X secondes périodiquement. Consultez le lien suivant pour plus de détails :

  • Comment zoomer et dézoomer des vidéos à l'aide de FFmpeg

27. Obtenir de l'aide

Dans ce guide, j'ai couvert les commandes FFmpeg les plus couramment utilisées. Il a beaucoup plus d'options différentes pour effectuer diverses fonctions avancées. Pour en savoir plus, consultez la page de manuel.

$ man ffmpeg

Lire connexe :

  • Tutoriel Youtube-dl avec des exemples pour les débutants

Et c'est tout. J'espère que ce guide vous a donné suffisamment d'exemples de commandes FFmpeg pour démarrer avec FFmpeg.


Linux
  1. Aide-mémoire pour les commandes Linux courantes

  2. 10 commandes Linux pour les diagnostics réseau

  3. Exemples de commandes DNF pour les débutants

  4. YAML pour les débutants

  5. Principales commandes Linux de base pour les débutants

Tutoriel Bash Heredoc pour les débutants

Les commandes FFmpeg les plus utiles pour la conversion audio et vidéo

Commandes Linux de base pour les débutants

20 commandes Ubuntu de base pour les débutants

Les 40 commandes de serveur Linux utiles pour les débutants et les professionnels

17 meilleures commandes de mise en réseau et de dépannage Linux pour les débutants