GNU/Linux >> Tutoriels Linux >  >> Linux

Le guide complet d'utilisation de ffmpeg sous Linux

Brief :Ce guide détaillé montre comment installer ffmpeg dans Ubuntu et d'autres distributions Linux. Il montre également quelques commandes ffmpeg utiles pour une utilisation pratique.

ffmpeg est un utilitaire CLI (basé sur la ligne de commande) pour le traitement des fichiers multimédias. C'est un cadre avec une multitude de fonctionnalités et, en raison de sa licence open source, c'est la base de nombreuses applications répandues telles que VLC, YouTube, iTunes et bien d'autres. Un certain nombre d'éditeurs vidéo Linux utilisent ffmpeg sous l'interface graphique.

Ce que j'aime encore plus chez ffmpeg est qu'il peut être utilisé seul pour accomplir de nombreuses tâches de traitement de manière très simple (avec une ou deux commandes). Cependant, c'est un programme très puissant qui peut être utilisé de manière plus complexe et même remplacer un flux de travail d'édition.

Dans ce tutoriel ffmpeg, je vais vous montrer comment installer ffmpeg et je couvrirai ses différentes utilisations. J'aborderai même certaines fonctionnalités plus complexes.

Voici les sections de ce guide :

  • Installer ffmpeg
  • Utilisation de base de ffmpeg
  • Utilisation avancée de ffmpeg
  • Principes de base du filtre

Je vais tout vous expliquer en détail afin que vous puissiez comprendre ce qui se passe même si vous êtes nouveau dans le monde Linux.

J'utiliserai Ubuntu 18.04 , mais ces commandes devraient également fonctionner pour d'autres distributions.

Remarque : Bien que j'aie fait des recherches sur ffmpeg soigneusement et testé tout ce que je vais mentionner dans cet article, je ne monte pas de vidéos (ou d'autres médias) quotidiennement. Si vous avez des suggestions, des conseils ou des corrections, faites-le moi savoir dans les commentaires !

Allons-y !

Installer ffmpeg sur Ubuntu et autres Linux

Installation de ffmpeg est un processus simple. C'est une application populaire et est disponible dans la plupart des distributions Linux via le gestionnaire de packages.

Installer ffmpeg dans Ubuntu

Dans Ubuntu, ffmpeg est disponible dans le référentiel Universe, alors assurez-vous d'activer le référentiel d'univers. puis mettez à jour la liste des packages et installez ffmpeg. Vous pouvez faire tout cela en utilisant les commandes ci-dessous dans un terminal :

sudo add-apt-repository universe
sudo apt update
sudo apt install ffmpeg

Ça devrait être ça ! Vous pouvez vérifier l'installation en tapant simplement :

ffmpeg

Cela devrait afficher un texte décrivant votre ffmpeg configuration (y compris la version ).

Comme vous pouvez le voir sur la capture d'écran ci-dessus, la version installée est 3.4.4 . Cependant, la dernière version de ffmpeg au moment de la rédaction de cet article est 4.1 . Pour installer n'importe quel 4.x version, vous devrez utiliser le ppa ffmpeg . Cliquez pour développer la section suivante pour voir les détails de l'installation de ffmpeg via PPA.

Installez le dernier ffmpeeg dans les distributions basées sur Ubuntu avec PPA

Il existe un PPA non officiel que vous pouvez utiliser pour installer la dernière version de ffmpeg. Utilisez simplement ces commandes :

sudo add-apt-repository ppa:jonathonf/ffmpeg-4
sudo apt update
sudo apt install ffmpeg -y

Installer ffmpeg dans les distributions basées sur Arch

Pour installer ffmpeg dans les distributions basées sur Arch, utilisez la commande suivante :

sudo pacman -S ffmpeg

Installer ffmpeg dans les distributions basées sur Fedora

Pour installer ffmpeg dans les distributions Linux basées sur Fedora, vous pouvez utiliser cette commande :

sudo dnf install ffmpeg

Comment utiliser ffmpeg :les bases

Avec ffmpeg installé, je passerai en revue les commandes de base pour vous permettre de commencer à utiliser cet outil puissant.

0. Commandes ffmpeg

Le formulaire de base une commande ffmpeg est :

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

Vous devez garder à l'esprit que toutes les options de fichier ne s'appliquent qu'au fichier qui les suit (vous devrez les réécrire pour le fichier suivant).

Tout fichier non précédé de -i est considéré comme un fichier de sortie. Ffmpeg utilise autant d'entrées et de sorties que vous en fournissez. Vous pouvez également utiliser le même nom pour un fichier d'entrée et un fichier de sortie, mais vous devrez ajouter le -y avant le nom du fichier de sortie.

Remarque

Vous ne devriez pas mélanger entrées et sorties; spécifiez d'abord les fichiers d'entrée, puis spécifiez les fichiers de sortie.

1. Obtenir des informations sur le fichier multimédia

La première utilisation de ffmpeg affiche des informations sur un fichier multimédia. Cela peut être fait en n'entrant aucun fichier de sortie. Tapez simplement :

ffmpeg -i file_name

Cela fonctionne pour les fichiers audio et vidéo :

ffmpeg -i video_file.mp4 
ffmpeg -i audio_file.mp3

Bien qu'utile, cette commande affichera beaucoup trop d'informations qui ne sont pas pertinentes pour votre fichier (informations sur ffmpeg). Pour omettre cela, ajoutez le -hide_banner drapeau :

ffmpeg -i video_file.mp4 -hide_banner 
ffmpeg -i audio_file.mp3 -hide_banner

Comme vous pouvez le voir, la commande affiche désormais uniquement les détails concernant le fichier multimédia que vous avez spécifié (encodeur, flux, etc.).

2. Convertir des fichiers multimédia

Une autre façon très utile d'utiliser ffmpeg est pour une conversion sans tracas entre différents formats de médias. Vous n'avez qu'à spécifier les fichiers d'entrée et de sortie, puisque ffmpeg obtiendra le format requis à partir des extensions de fichier. Cela fonctionne pour les conversions vidéo à vidéo et audio à audio.

Voici quelques exemples :

ffmpeg -i video_input.mp4 video_output.avi 
ffmpeg -i video_input.webm video_output.flv
ffmpeg -i audio_input.mp3 audio_output.ogg
ffmpeg -i audio_input.wav audio_output.flac

Vous pouvez même spécifier plus de fichiers de sortie :

ffmpeg -i audio_input.wav audio_output_1.mp3 audio_output_2.ogg

Cela convertira les fichiers d'entrée dans tous les formats spécifiés.

Pour voir une liste de tous les formats pris en charge, utilisez :

ffmpeg -formats

Encore une fois, vous pouvez ajouter -hide_banner pour omettre des informations sur l'application.

Vous pouvez spécifier le -qscale 0 paramètre avant le fichier de sortie pour préserver la qualité d'un fichier vidéo :

ffmpeg -i video_input.wav -qscale 0 video_output.mp4

De plus, vous pouvez spécifier des codecs que vous souhaitez utiliser, en ajoutant -c:a (pour audio ) et -c:v (pour vidéo ) suivi du nom des codecs, ou copier si vous souhaitez utiliser les mêmes codecs que le fichier d'origine :

ffmpeg -i video_input.mp4 -c:v copy -c:a libvorbis video_output.avi

Remarque : cela peut rendre l'extension de fichier plutôt trompeuse, alors soyez prudent.

3. Extraire l'audio de la vidéo

Pour extraire l'audio à partir d'un fichier vidéo, vous faites une conversion simple et ajoutez le -vn drapeau :

ffmpeg -i video.mp4 -vn audio.mp3

Notez que cette commande utilisera le débit binaire du fichier d'origine. C'est une bonne idée de le régler vous-même; vous pouvez utiliser -ab (débit audio):

ffmpeg -i video.mp4 -vn -ab 128k audio.mp3

Quelques débits binaires courants sont 96k, 128k, 192k, 256k, 320k (débit binaire le plus élevé pris en charge par mp3).

Autres options courantes sont -ar (fréquence audio :22050, 441000, 48000), -ac (nombre de canaux audio ), -f (format audio , bien que normalement détecté automatiquement). -ab peut aussi être remplacé par -b:a . Par exemple :

ffmpeg -i video.mov -vn -ar 44100 -ac 2 -b:a 128k -f mp3 audio.mp3

4. Couper le son de la vidéo

Semblable à la dernière tâche, pour accomplir cela, nous ajouterons une balise simple :-an (au lieu de -vn ).

ffmpeg -i video_input.mp4 -an -video_output.mp4

Remarque : Le -an rendra toutes les options audio de ce fichier de sortie inutiles, car il n'y aura pas d'audio dans le résultat de l'opération.

5. Extraire des images de la vidéo

Cela pourrait être utile à beaucoup de gens. Par exemple, vous pouvez avoir une série d'images (par exemple, un diaporama) et vous souhaitez en extraire toutes les images. Entrez simplement :

ffmpeg -i video.mp4 -r 1 -f image2 image-%3d.png

Démontons cela une seconde.

-r spécifie la fréquence d'images (combien d'images sont extraites en images en une seconde, par défaut :25), -f spécifie le format de sortie (image2 représente en fait la séquence image2.

Le dernier paramètre (le fichier de sortie) a une dénomination quelque peu intéressante :il utilise %3d à la fin. Cela numérote simplement vos images avec 3 chiffres (000, 001, etc.). Vous pouvez également utiliser %2d (format à 2 chiffres) ou même %4d (format à 4 chiffres) si vous le souhaitez. N'hésitez pas à expérimenter et à utiliser ce qui vous convient !

Remarque : Il existe également un moyen de transformer un ensemble d'images en vidéo/diaporama. Je couvrirai cela dans l'utilisation avancée rubrique .

6. Modifier la résolution vidéo ou le format d'image

Une autre tâche simple pour ffmpeg . Tout ce que vous avez à faire pour redimensionner une vidéo est spécifier une nouvelle résolution après le -s drapeau :

ffmpeg -i video_input.mov -s 1024x576 video_output.mp4

De plus, vous pouvez spécifier -c:a pour s'assurer que les codecs audio du fichier de sortie sont les bons :

ffmpeg -i video_input.h264 -s 640x480 -c:a video_output.mov

Vous pouvez également modifier le rapport d'aspect en utilisant -aspect :

ffmpeg -i video_input.mp4 -aspect 4:3 video_output.mp4

Remarque : Encore une fois, une autre méthode un peu plus puissante sera mentionnée dans l'Utilisation avancée rubrique.

7. Ajouter une image d'affiche à l'audio

C'est un excellent moyen de transformer l'audio en vidéo , en utilisant une seule photo (telle qu'une couverture d'album) pour l'audio. Il s'agit d'une fonctionnalité très utile lorsque vous souhaitez télécharger des fichiers audio sur des sites qui n'autorisent rien d'autre que des vidéos/images (YouTube et Facebook sont deux exemples de tels sites).

Voici un exemple :

ffmpeg -loop 1 -i image.jpg -i audio.wav -c:v libx264 -c:a aac -strict experimental -b:a 192k -shortest output.mp4

Changez simplement les codecs (-c:v spécifie la vidéo codecs, -c:a spécifie audio codecs) et les noms de vos fichiers.

Remarque : Vous n'êtes pas obligé d'utiliser -strict experimental si vous utilisez une version plus récente (4.x ).

8. Ajouter des sous-titres à la vidéo

Tout aussi utile et aussi simple à faire avec ffmpeg consiste à ajouter des sous-titres à une vidéo (par exemple un film). Saisissez ce qui suit :

ffmpeg -i video.mp4 -i subtitles.srt -c:v copy -c:a copy -preset veryfast -c:s mov_text -map 0 -map 1 output.mp4

Bien sûr, vous pouvez spécifier tous les codecs que vous souhaitez (et toute autre option supplémentaire liée à l'audio/vidéo). Vous pouvez lire cet article sur l'édition de sous-titres sous Linux, graphiquement.

9. Compresser les fichiers multimédia

Compression files réduit considérablement la taille du fichier, ce qui vous permet d'économiser beaucoup d'espace. Cela peut être important pour le transfert de fichiers. Avec ffmpeg , il existe plusieurs méthodes pour réduire la taille du fichier.

Remarque : Une trop grande compression des fichiers réduira sensiblement la qualité du fichier résultant.

Tout d'abord, pour l'audio fichiers, il suffit de réduire le débit binaire (en utilisant -b:a ou -ab ):

ffmpeg -i audio_input.mp3 -ab 128k audio_output.mp3
ffmpeg -i audio_input.mp3 -b:a 192k audio_output.mp3

Encore une fois, certaines valeurs de débit binaire différentes sont :96 k, 112 k, 128 k, 160 k, 192 k, 256 k, 320 k. Plus le débit binaire est élevé, plus la taille et la qualité du fichier sont élevées.

Pour la vidéo fichiers, vous avez plus d'options. Une façon serait de réduire le débit vidéo (en utilisant -b:v ):

ffmpeg -i video_input.mp4 -b:v 1000k -bufsize 1000k video_output.mp4

Remarque : Les débits vidéo sont différents à partir des débits binaires audio (valeurs beaucoup plus élevées).

Vous pouvez définir le -crf flag (facteur de taux constant ). Un crf inférieur signifie un débit binaire plus élevé. Aussi, en utilisant libx264 comme codec vidéo aide. Voici une réduction de taille très efficace avec une très petite réduction de qualité :

ffmpeg -i video_input.mp4 -c:v libx264 -crf 28 video_output.mp4

Un crf de 20 à 30 est courant, mais n'hésitez pas à jouer avec la valeur spécifique.

Réduire la fréquence d'images peut fonctionner dans certains cas (bien que cela puisse très facilement rendre la vidéo lente) :

ffmpeg -i video_input.mp4 -r 24 video_output.mp4

-r spécifie la fréquence d'images (dans ce cas 24 ).

Vous pouvez également essayer de réduire la taille de la vidéo (déjà expliqué comment faire). Une astuce supplémentaire consiste à compresser le audio aussi, le rendant stéréo et en réduisant le débit binaire . Par exemple :

ffmpeg -i video_input.mp4 -c:v libx264 -ac 2 -c:a aac -strict -2 -b:a 128k -crf 28 video_output.mp4

Remarque : -strict -2 et -ac 2 prendre soin de la partie stéréo. J'ai déjà couvert la partie qui réduit le débit binaire .

10. Couper les fichiers multimédias (basique)

Pour couper fichiers depuis le début vous devez spécifier une durée en utilisant -t :

ffmpeg -i input_video.mp4 -t 5 output_video.mp4 
ffmpeg -i input_audio.wav -t 00:00:05 output_audio.wav

Comme vous pouvez le constater, cela fonctionne à la fois pour la vidéo et audio des dossiers. Les deux commandes ci-dessus font la même chose :enregistrez les 5 premières secondes du fichier d'entrée dans le fichier de sortie. J'ai utilisé différentes façons de saisir la durée  :un seul nombre (nombre de secondes) et HH:MM:SS (heures, minutes, secondes). La deuxième version agit plus comme une heure de fin .

Vous pouvez aller encore plus loin en spécifiant une heure de début avec -ss , et même une heure de fin avec :

ffmpeg -i input_audio.mp3 -ss 00:01:14 output_audio.mp3
ffmpeg -i input_audio.wav -ss 00:00:30 -t 10 output_audio.wav
ffmpeg -i input_video.h264 -ss 00:01:30 -to 00:01:40 output_video.h264
ffmpeg -i input_audio.ogg -ss 5 output_audio.ogg

Vous pouvez voir l'heure de début (-ss HH:MM:SS ), durée (-t durée ) en secondes, heure de fin (-à HH:MM:SS ) et heure de début (-s durée ) en secondes (commençant après duration secondes).

Toutes ces commandes sont valides et vous pouvez travailler avec n'importe quelle partie d'un fichier multimédia en les utilisant.

Comment utiliser ffmpeg :utilisation avancée

Je vais maintenant couvrir des fonctionnalités légèrement plus avancées (telles que la diffusion d'écran, l'utilisation d'appareils, etc.). Passons au premier point !

1. Diviser les fichiers multimédia

J'ai déjà couvert le coupage des dossiers. Ce que vous devez faire pour séparer un fichier en plusieurs parties est de spécifier plusieurs trims (spécifiant les heures de début , heures de fin ou durée avant chaque fichier de sortie).

Observez cet exemple :

ffmpeg -i video.mp4 -t 00:00:30 video_1.mp4 -ss 00:00:30 video_2.mp4

La syntaxe est assez simple. J'ai spécifié -t 00:00:30 comme durée pour la première partie (la première partie sera constituée des 30 premières secondes de la vidéo originale). Ensuite, j'ai précisé que j'aimerais que le reste fasse partie d'une deuxième vidéo (à partir de la fin de la dernière partie, 00:00:30 ).

Cela peut être fait pour autant de pièces que vous le souhaitez ! Amusez-vous à jouer avec cette fonctionnalité, car elle est très puissante. N'oubliez pas que cela fonctionne également avec l'audio.

2. Concaténer des fichiers multimédias

ffmpeg peut également faire le processus inverse :assembler plusieurs pièces.

Pour ce faire, vous devrez créer un nouveau fichier texte et commencez à modifier à l'aide de votre éditeur préféré.

Comme j'aime utiliser le terminal, j'utiliserai le touch et vim . Peu importe comment vous appelez ce fichier. Je vais appeler le mien join.txt et créez le fichier en utilisant le toucher :

touch videos_to_join.txt

Maintenant, je vais le modifier en utilisant vim :

vim videos_to_join.txt

Vous pouvez utiliser tous les outils que vous voulez (nano, gedit, etc.), c'est juste ce qu'il y a de plus facile à utiliser pour moi.

Ici, entrez les chemins complets à tous les fichiers que vous souhaitez joindre (elles seront jointes dans l'ordre où vous les écrivez ici), une par ligne. Assurez-vous qu'ils ont la même extension (par exemple, mp4 ). Voici le mien :

/home/ubuntu/Desktop/video_1.mp4
/home/ubuntu/Desktop/video_2.mp4
/home/ubuntu/Desktop/video_3.mp4

Enregistrez le fichier que vous venez de modifier. Cette méthode fonctionne pour tous les fichiers audio ou vidéo.

Saisissez maintenant ce qui suit :

ffmpeg -f concat -i join.txt output.mp4

Remarque : Mon fichier de sortie est output.mp4 , mais c'est parce que tous mes fichiers d'entrée ont le mp4 extension.

Cela devrait rejoindre tous les fichiers que vous avez écrits dans join.txt (ou quel que soit le nom que vous avez donné à ce fichier) dans un seul fichier de sortie.

3. Joindre des images dans une vidéo

Voici comment créer un diaporama ou quelque chose de similaire. Je vais vous montrer comment ajouter de l'audio aussi.

La première chose que je recommande de faire est de s'assurer que les photos que vous souhaitez assembler se trouvent dans le même répertoire. Je vais mettre le mien dans un répertoire appelé my_photos . Les extensions recommandé pour les images sont .png et .jpg . Quel que soit votre choix, assurez-vous que toutes les images ont la même extension (sinon, utilisez ffmpeg pourrait avoir des effets indésirables). Vous pouvez simplement convertir le .png fichiers en .jpg ou vice-versa (voir Utilisation de base ).

Le format (-f ) de notre conversion devrait être image2pipe . Pour l'entrée, vous devrez fournir un trait d'union ( ). Qu'est-ce que image2pipe vous permet de faire est tuyau (en utilisant | dans le terminal) les résultats d'une commande telle que cat dans ffmpeg au lieu de saisir tous les noms un par un. C'est exactement ce que je vais faire. Pour que cela fonctionne, nous devrons également mentionner que nous voulons les codecs vidéo être copié (-c:v copier ) (pour bien utiliser les images) :

cat my_photos/* | ffmpeg -f image2pipe -i - -c:v copy video.mkv

Si vous lisez ce fichier, vous pourriez penser que seules quelques images ont été ajoutées au diaporama. En fait, toutes vos photos ont été ajoutées, mais ffmpeg les parcourt aussi vite que possible. Cela signifie 1 image par photo; ffmpeg (par défaut) fonctionne à environ 23 ips .

Pour changer cela, vous devrez spécifier la fréquence d'images (-framerate ) vous voulez :

cat my_photos/* | ffmpeg -framerate 1 -f image2pipe -i - -c:v copy video.mkv 

Dans mon exemple, j'ai défini la fréquence d'images à 1 , cela signifie que chaque cadre (c'est-à-dire chaque image) apparaît pendant 1 seconde .

Pour ajouter de l'audio , comme une chanson de fond, nous devrons spécifier le fichier audio comme fichier d'entrée (-i audo_file ) et copier les codecs audio (-c:une copie ). Pour les codecs , vous pouvez copier les codecs audio et vidéo en même temps avec -c copy . Assurez-vous de définir les codecs juste avant de spécifier le fichier de sortie. Vous pouvez également définir la fréquence d'images afin que toutes vos images se synchronisent avec la durée de l'audio que vous souhaitez utiliser. Pour obtenir cela, divisez le nombre de photos par la durée de l'audio (en secondes) . Pour mon exemple, j'ai un fichier audio de 22 secondes et 9 images. 9 / 22 correspond à environ 0,40, c'est donc ce que je vais utiliser pour ma fréquence d'images :

cat my_photos/* | ffmpeg -framerate 0.40 -f image2pipe -i - -i audio.wav -c copy video.mkv

4. Enregistrez votre écran

Screencasting avec ffmpeg n'est pas un travail difficile. Le format (-f ) que vous devez utiliser est x11grab . Cela capturera votre XSERVER . Comme entrée vous devrez spécifier votre numéro d'affichage d'écran (l'écran principal devrait normalement être 0:0 ). Cependant, cela ne capturera qu'une partie supérieure gauche de l'écran. Vous devez ajouter une taille d'écran (-s ). Le mien est 1920×1080 . La taille de l'écran doit être mentionné avant l'entrée :

ffmpeg -f x11grab -s 1920x1080 -i :0.0 output.mp4

Appuyez sur q ou CTRL+C à tout moment pour arrêter le screencast .

Astuce bonus : Vous pouvez rendre la taille du fichier de sortie plein écran en saisissant ceci après pour la taille (au lieu de 1920×1080 ou de toute autre résolution définie) :

-s $(xdpyinfo | grep dimensions | awk '{print $2;}')

Voici la commande complète :

ffmpeg -f x11grab -s $(xdpyinfo | grep dimensions | awk '{print $2;}') -i :0.0 output.mp4

5. Enregistrez votre webcam

Entrée d'enregistrement depuis votre webcam (ou un autre appareil, comme une caméra USB) est encore plus simple. Sous Linux, appareils sont des magasins dans /dev comme /dev/video0, /dev/video1, etc. :

ffmpeg -i /dev/video0 output.mkv

Encore une fois, q ou CTRL+C pour arrêter l'enregistrement .

6. Enregistrez votre audio

Linux gère l'audio principalement via ALSA et pulseaudio . ffmpeg peut enregistrer les deux, mais je couvrirai pulseaudio , puisque les distributions basées sur Debian l'incluent par défaut. La syntaxe est un peu différente pour les deux méthodes.

Pour pulseaudio , vous devez forcer (-f ) alsa et spécifiez par défaut comme entrée (-i par défaut ):

ffmpeg -f alsa -i default output.mp3

Remarque : Dans vos paramètres de son de distribution, assurez-vous que le périphérique d'enregistrement par défaut est celui que vous voulez enregistrer.

Je joue beaucoup de guitare et j'ai une interface audio donc je peux l'enregistrer. J'ai eu une agréable surprise quand ffmpeg enregistré ma guitare sans problème.

Conseils bonus sur l'enregistrement

Pour tout type d'enregistrement, vous pouvez également spécifier des codecs , bien sûr (déjà couvert). Vous pouvez choisir une fréquence d'images spécifique (-r ). Vous pouvez combiner enregistrement audio avec webcam/enregistrement d'écran également !

ffmpeg -i /dev/video0 -f alsa -i default -c:v libx264 -c:a flac -r 30 output.mkv

Au lieu d'enregistrer de l'audio, vous pouvez tout aussi facilement ajouter un fichier audio comme entrée à enregistrer en plus de votre screencast/webcam :

ffmpeg -f x11grab -s $(xdpyinfo | grep dimensions | awk '{print $2;}') -i :0.0 -i audio.wav -c:a copy output.mp4

Remarque : ffmpeg enregistre en petits morceaux, de sorte qu'un très petit enregistrement peut ne pas être sauvegardé. Je recommande d'enregistrer un peu plus longtemps et de le couper ensuite (si vous ne voulez que quelques secondes), juste pour vous assurer que le fichier sera réellement écrit sur votre disque.

Utilisation de base des filtres dans ffmpeg

Filtres sont une fonctionnalité incroyablement puissante de ffmpeg . Il y a une quantité folle de filtres à votre disposition, ce qui rend ffmpeg complètement capable de gérer n'importe quelle édition Besoins. Puisqu'il y a tellement de filtres et que cet article est déjà complet, je ne couvrirai que quelques filtres simples.

La structure de base pour utiliser un filtre est :

ffmpeg -i input.mp4 -vf "filter=setting_1=value_1:setting_2=value_2,etc" output.mp4
ffmpeg -i input.wav -af "filter=setting_1=value_1:setting_2=value_2,etc" output.wav

Comme vous pouvez le voir, je spécifie des filtres vidéo (-vf , abréviation de -filter:v ) et filtres audio (-af , abréviation de -filter :a ). Les filtres réels sont écrits entre guillemets doubles (" ) et peuvent être chaînés en les séparant par des virgules (, ). Vous pouvez spécifier autant de filtres que vous le souhaitez (j'ai écrit etc pour noter les filtres supplémentaires, cela ne fait pas réellement partie de la commande).

La forme générale d'un filtre est :

filter=setting_2=value_2:setting_2=value_2

Les différents paramètres de filtrage et leurs valeurs sont séparés par des deux-points .

Vous pouvez également exécuter des opérations mathématiques en tant que valeurs pour les différents paramètres .

Remarque : Une couverture plus détaillée des différentes constantes à utiliser dans les expressions et des différents paramètres peut être trouvée dans l'officiel documentation sur le filtre ffmpeg .

Je couvrirai les deux vidéo et audio filtres. Voyons quelques exemples !

1. Mise à l'échelle vidéo

C'est un filtre très simple. Les seuls paramètres sont largeurs et hauteur :

ffmpeg -i input.mp4 -vf "scale=w=800:h=600" output.mp4

J'ai mentionné que vous pouvez utiliser des opérations mathématiques pour les valeurs aussi :

ffmpeg -i input.mkv -vf "scale=w=1/2*in_w:h=1/2*in_h" output.mkv

Cette commande définit la taille de sortie à moitié (1/2 ) de la taille d'entrée (in_w , en_h ).

2. Recadrage vidéo

Quant au filtre de mise à l'échelle , les paramètres sont la largeur et hauteur du fichier résultant. Vous pouvez éventuellement spécifier les coordonnées du coin supérieur gauche de la coupe (par défaut : centre de la vidéo d'entrée) :

ffmpeg -i input.mp4 -vf "crop=w=1280:h=720:x=0:y=0" output.mp4 
ffmpeg -i input.mkv -vf "crop=w=400:h=400" output.mkv

Comme indiqué, la deuxième coupe coupera au centre du fichier d'entrée (puisque je n'ai pas spécifié x et y coordonnées du coin supérieur gauche). La première commande coupera depuis le coin supérieur gauche (x=0:y=0 ).

Voici un exemple qui utilise des expressions mathématiques en tant que valeurs :

ffmpeg -i input.mkv -vf "crop=w=3/4*in_w:h=3/4*in_h" output.mkv

Cette commande définit la taille de sortie à 3/4 de la taille d'entrée (in_w , en_h ).

3. Rotation vidéo

Vous pouvez également faire pivoter une vidéo dans le sens des aiguilles d'une montre par une valeur (en radians ). Pour faciliter les choses, vous pouvez spécifier une valeur en degrés et convertissez-le en radians en multipliant cette valeur avec PI/180 :

ffmpeg -i input.avi -vf "rotate=90*PI/180" 
ffmpeg -i input.mp4 -vf "rotate=PI"

La première commande va tourner la vidéo à 90 degrés dans le sens des aiguilles d'une montre . La deuxième commande va tourner la vidéo à l'envers (PIrad =180 degrés).

4. Remappage des canaux audio

Cela peut être utile si vous n'obtenez que de l'audio dans l'oreille droite ou quelque chose de similaire. Vous pouvez faire de l'audio audible des deux oreilles (dans ce cas particulier) comme ceci :

ffmpeg -i input.mp3 -af "channelmap=1-0|1-1" output.mp3

Cette carte le droit (1 ) canal audio à la fois gauche (0 ) et le droit (1 ) canal audio. (le numéro de gauche représente l'entrée , le bon chiffre représente la sortie ).

5. Multiplication du volume audio

Vous pouvez multiplier le volume audio par n'importe quel réel nombre (entier ou non). Il vous suffit de spécifier le multiplicateur :

ffmpeg -i input.wav -af "volume=1.5" output.wav 
ffmpeg -i input.ogg -af "volume=0.75" output.ogg

La première commande amplifie le volume 1,5 fois. La deuxième commande rend l'audio 1/4 (0,25) fois plus silencieux .

Astuce bonus :ajustements de la vitesse de lecture

J'inclurai à la fois la vidéo (n'affecte pas l'audio) et audio filtres pour cette tâche.

1. Vidéo

Le filtre pour vidéo est setpts (PTS =horodatage de présentation). Cela fonctionne d'une manière quelque peu intéressante. Puisque nous modifions réellement le PTS , un coefficient plus important signifie un résultat plus lent et inversement :

ffmpeg -i input.mkv -vf "setpts=0.5*PTS" output.mkv 
ffmpeg -i input.mp4 -vf "setpts=2*PTS" output,mp4

Comme je viens de l'expliquer, la première commande double la vitesse de lecture et la deuxième commande ralentit la vidéo à 1/2 de la vitesse .A

2. Audio

Le filtre pour cela est atempo . Il y a une petite mise en garde :il ne peut prendre que des valeurs comprises entre 0,5 (la moitié de la vitesse) et 2 (doubler la vitesse). Pour contourner cela, vous pouvez enchaîner atempo filtres :

ffmpeg -i input.wav -af "atempo=0.75" output.wav 
ffmpeg -i input.mp3 -af "atempo=2.0,atempo=2.0" ouutput.mp3

The first command slows the audio by 1/4 of the original speed. The second command speeds up the audio 4 times (2*2).

Remarque : For changing video and audio playback speed with the same command you’ll have to look into filtergraphs .

Conclusion

In this comprehensive guide I covered the installation, basic usage, advanced usage and basics of filters.

I hope that this can be a helpful resource for anyone looking to try out ffmpeg , for someone that wants to use ffmpeg for multiple tasks or even just for someone who is willing to get more familiar with the extensive features of this amazing utility.

Let us know if you found this article useful in the comments below and tell us what are you using ffmpeg for! We look forward to any additions of any kind. Thanks for reading our blog and keep an eye out for an article covering more complex filtering . Amusez-vous !



Linux
  1. 7 astuces pratiques pour utiliser la commande Linux wget

  2. Comment installer Void Linux :un guide complet étape par étape

  3. Installez WordPress sur Rocky Linux 8 en utilisant la pile LAMP - Guide étape par étape ?

  4. Le guide complet du débutant sur LVM sous Linux

  5. Installer Linux Mint 19 sur VirtualBox :Le guide complet

Comment installer un logiciel sous Ubuntu Linux :un guide complet pour les débutants

Un guide pratique pour la commande chroot sous Linux

Un guide complet pour installer Tomcat sur Linux

Le guide complet pour installer MySQL sur Ubuntu

Le guide ultime du sous-système Windows pour Linux (Windows WSL)

Comment installer et utiliser FFmpeg sur les distributions Linux | Guide du débutant