Recherche de site Web

Le guide complet d'utilisation de ffmpeg sous Linux


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

ffmpeg est un utilitaire CLI (basé sur une ligne de commande) pour traiter les fichiers multimédias. Il s’agit d’un framework doté d’une multitude de fonctionnalités et, grâce à sa licence open source, il constitue 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 avec ffmpeg, c'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, il s’agit d’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 des fonctionnalités plus complexes.

Voici les sections de ce guide :

  • Installation de ffmpeg

  • Utilisation de base de ffmpeg

  • Utilisation avancée de ffmpeg

  • Bases du filtre

Je vais tout 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 effectué des recherches approfondies sur ffmpeg et testé tout ce que je vais mentionner dans cet article, je n'édite pas de vidéos (ou d'autres médias) sur un 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

L'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.

Installez ffmpeg dans Ubuntu

Dans Ubuntu, ffmpeg est disponible dans le référentiel Universe, alors assurez-vous d'activer le référentiel Universe. 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 du texte décrivant votre configuration ffmpeg (y compris la version).

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

Installez 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

Installez 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

Une fois ffmpeg installé, je vais passer en revue les commandes de base pour vous aider à utiliser cet outil puissant.

0. Commandes ffmpeg

La forme de base d'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 s’appliquent uniquement 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 la balise -y avant le nom du fichier de sortie.

Note

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

1. Obtenez des informations sur les fichiers multimédias

La première utilisation de ffmpeg consiste à afficher 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 l'indicateur -hide_banner :

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 les fichiers multimédias

Une autre façon très utile d'utiliser ffmpeg consiste à effectuer une conversion sans tracas entre différents formats multimédias. Il vous suffit de spécifier les fichiers d'entrée et de sortie, puisque ffmpeg obtiendra le format requis à partir des extensions de fichiers. 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 davantage 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 paramètre -qscale 0 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 les codecs que vous souhaitez utiliser, en ajoutant -c:a (pour audio) et -c:v< (pour vidéo) suivi du nom des codecs, ou copie si vous souhaitez utiliser les mêmes codecs que le fichier original :

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

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

3. Extraire l'audio de la vidéo

Pour extraire l'audio d'un fichier vidéo, effectuez une simple conversion et ajoutez l'indicateur -vn :

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 binaire audio) :

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

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

D'autres options courantes sont -ar (fréquence audio : 22 050, 441 000, 48 000), -ac (nombre de canaux audio), -f (format audio, bien que normalement détecté automatiquement). -ab peut également ê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 dans la vidéo

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

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

Remarque : La balise -an rendra inutiles toutes les options audio de ce fichier de sortie, 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 pendant 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 signifie en fait la séquence image2.

Le dernier paramètre (le fichier de sortie) a un nom assez intéressant : 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. J'en parlerai dans la section Utilisation avancée.

6. Modifier la résolution vidéo ou le rapport hauteur/largeur

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

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

De plus, vous souhaiterez peut-être spécifier -c:a pour vous 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 format d'image en utilisant -aspect :

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

Remarque : Encore une fois, une autre méthode légèrement plus puissante sera mentionnée dans la section Utilisation avancée.

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

Il s'agit d'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 les codecs vidéo, -c:a spécifie les codecs 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 est d'ajouter des sous-titres à une vidéo (par exemple un film). Entrez 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 de votre choix (et toute autre option supplémentaire liée à l'audio/vidéo). Vous pouvez lire cet article sur l'édition graphique des sous-titres sous Linux.

9. Compresser les fichiers multimédias

La compression des fichiers réduit considérablement leur taille, 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 compression excessive des fichiers réduira sensiblement la qualité du fichier résultant.

Tout d'abord, pour les fichiers audio, il suffit de réduire le débit (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 : 96k, 112k, 128k, 160k, 192k, 256k, 320k. Plus le débit binaire est élevé, plus la taille et la qualité du fichier sont élevées.

Pour les fichiers vidéo, vous disposez de davantage d'options. Une solution serait de réduire le débit binaire vidéo (en utilisant -b:v) :

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

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

Vous pouvez définir l'indicateur -crf (Constant Rate Factor). Un crf inférieur signifie un débit binaire plus élevé. De plus, l'utilisation de libx264 comme codec vidéo est utile. 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 (même si cela peut 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 (nous avons déjà expliqué comment procéder). Une astuce supplémentaire consiste àcompresser également l'audio, pour le rendre stéréo et réduire 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 s'occupent de la partie stéréo. J'ai déjà couvert la partie qui réduit le débit binaire.

10. Couper des fichiers multimédias (de base)

Pour découper les 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 les fichiers vidéo et audio. 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 l'habitude de différentes manières de saisir la durée : un seul chiffre (nombre de secondes) et HH:MM:SS (heures, minutes, secondes). La deuxième version agit davantage 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 -to :

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), la durée (-t durée) dans secondes, heure de fin (-à HH:MM:SS) et heure de début (durée -s) en secondes (démarrant après durée 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 aborder des fonctionnalités légèrement plus avancées (telles que la diffusion d'écran, l'utilisation d'appareils, etc.). Allons droit au premier point !

1. Diviser les fichiers multimédias

J'ai déjà couvert les fichiers de découpage. Ce que vous devez faire pour diviser un fichier en plusieurs parties est de spécifier plusieurs coupages (en 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 comprendra les 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 (en commençant par 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. Gardez à l’esprit que cela fonctionne également avec l’audio.

2. Concaténer des fichiers multimédias

ffmpeg peut également effectuer le processus inverse : assembler plusieurs parties.

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

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

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 justement ce qui est le plus simple à utiliser pour moi.

Entrez ici les chemins complets de tous les fichiers que vous souhaitez rejoindre (ils seront joints dans l'ordre dans lequel vous les écrivez ici), un par ligne. Assurez-vous qu'ils ont la même extension (par exemple mp4). Voici la mienne:

/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.

Entrez 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 l'extension mp4.<

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) en un seul fichier de sortie.

3. Joignez des images dans une vidéo

C'est ainsi que vous pouvez créer un diaporama ou quelque chose de similaire. Je vais également vous montrer comment ajouter de l'audio.

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

Le format (-f) de notre conversion doit être image2pipe. Pour la saisie, vous devrez fournir un trait d'union (–). Ce que image2pipe vous permet de faire, c'est de diriger (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 souhaitons que les codecs vidéo soient copiés (-c:v copie) ( 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 images ont été ajoutées, mais ffmpeg les parcourt aussi rapidement que possible. Cela signifie 1 image par photo ; ffmpeg (par défaut) fonctionne à environ 23 ips.

Pour changer cela, vous devrez spécifier la frame rate (-framerate) souhaitée :

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 sur 1, ce qui signifie que chaque image (cela signifie également 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 copiez 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 d'images 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 est d'environ 0,40, c'est donc ce que j'utiliserai 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

La diffusion d'écran avec ffmpeg n'est pas une tâche difficile. Le format (-f) que vous devez utiliser est x11grab. Cela capturera votre XSERVER. En saisie, vous devrez spécifier votre numéro d'affichage d'écran (l'écran principal doit 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ée avant la saisie :

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

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

Astuce bonus : Vous pouvez définir la taille du fichier de sortie plein écran en la saisissant ensuite pour la taille (au lieu de 1920×1080 ou tout autre définir la résolution) :

-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

Enregistrer les données depuis votre webcam (ou un autre appareil, comme une caméra USB) est encore plus simple. Sous Linux, les périphériques sont stockés dans /dev sous la forme /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 parlerai de 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écifier default comme entrée (-i par défaut) :

ffmpeg -f alsa -i default output.mp3

Remarque : Dans les paramètres audio de votre distribution, assurez-vous que le appareil d'enregistrement par défaut est celui que vous souhaitez enregistrer.

Je joue beaucoup de guitare et j'ai une interface audio pour pouvoir l'enregistrer. J'ai eu une agréable surprise lorsque ffmpeg a 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à abordés). Vous pouvez choisir une fréquence d'images spécifique (-r). Vous pouvez également combiner l’enregistrement audio avec l’enregistrement par webcam/écran !

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 au-dessus 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, donc un très petit enregistrement risque de 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

Les Filtres sont une fonctionnalité incroyablement puissante de ffmpeg. Il existe une quantité folle de filtres disponibles, ce qui rend ffmpeg complètement capable de répondre à tous vos besoins d'édition. Comme il existe de nombreux 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 des filtres audio. (-af, abréviation de -filter:a). Les filtres réels sont écrits entre des guillemets doubles (") et peuvent être enchaî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 filtre 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 la documentation officielle du filtre ffmpeg<.

Je couvrirai à la fois les filtres vidéo et audio. Voyons quelques exemples !

1. Mise à l'échelle vidéo

Il s'agit d'un filtre très simple. Les seuls paramètres sont la largeur et la hauteur :

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

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

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 à la moitié (1/2) de la taille d'entrée (in_w , in_h).

2. Recadrage vidéo

Quant au filtre de mise à l'échelle, les paramètres sont la largeur et la 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 sera coupée au centre du fichier d'entrée (puisque je n'ai pas spécifié les coordonnées x et y pour le coin supérieur gauche). La première commande coupera à partir du coin supérieur gauche (x=0:y=0).

Voici un exemple qui utilise des expressions mathématiques comme 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 sur 3/4 de la taille d'entrée (in_w, in_h).

3. Rotation vidéo

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

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

La première commande fera faire pivoter la vidéo dans le sens des aiguilles d'une montre. La deuxième commande retournera la vidéo à l'envers (PI rad=180 degrés).

4. Remappage des canaux audio

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

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

Ceci mappe le canal audio droit (1) sur le canal audio gauche (0 ) et le canal audio droit (1). (le numéro de gauche représente l'entrée, le numéro de droite représente la sortie).

5. Multiplication du volume audio

Vous pouvez multiplier le volume audio par n'importe quel nombre réel (entier ou non). Il vous suffit de préciser 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 les filtres vidéo (n'affecte pas l'audio) et audio pour cette tâche.

1. Vidéo

Le filtre pour la 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 grand signifie un résultat plus lent et vice-versa :

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 (le double de la vitesse). Pour contourner ce problème, vous pouvez enchaîner des filtres atempo :

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

La première commande ralentit l'audio de 1/4 de la vitesse d'origine. La deuxième commande accélère l'audio 4 fois (2*2).

Remarque : Pour modifier la vitesse de lecture vidéo et audio avec la même commande, vous devrez consulter les graphiques de filtrage.

Conclusion

Dans ce guide complet, j'ai couvert l'installation, l'utilisation de base, l'utilisation avancée et les bases des filtres.

J'espère que cela pourra être une ressource utile pour tous ceux qui cherchent à essayer ffmpeg, pour quelqu'un qui souhaite utiliser ffmpeg pour plusieurs tâches ou même simplement pour quelqu'un qui souhaite se familiariser davantage avec les fonctionnalités étendues de cet utilitaire étonnant.

Faites-nous savoir si vous avez trouvé cet article utile dans les commentaires ci-dessous et dites-nous pourquoi vous utilisez ffmpeg ! Nous attendons avec impatience tout ajout de toute nature. Merci d'avoir lu notre blog et gardez un œil sur un article traitant d'un filtrage plus complexe. Apprécier!

Articles connexes: