Paris contact@docbrown.fr 06 66 54 64 62

La puissance de ffmpeg !


Visuel 1
Visuel 2

Introduction

FFmpeg est un puissant logiciel open-source reconnu pour son rôle central dans le traitement et la manipulation de flux audiovisuels. En constante évolution depuis sa création en 2000, ce framework multimédia offre une panoplie d'outils, de bibliothèques et de programmes pour la gestion, la conversion et l'édition de contenus vidéo et audio. FFmpeg est réputé pour sa polyvalence, sa robustesse et sa compatibilité multiplateforme, en faisant un choix de prédilection pour les professionnels et les passionnés du monde de l'audiovisuel.

Pour faire simple, pour les utilisateurs de Windows, c'est un logiciel gratuit constitué d'un unique exécutable de bientôt 40Mo (il est de plus en plus gros mais on lui pardonne :-)), sans installation. Il est principalement utilisé pour la conversion / compression / modification de vidéo et audio. Il est tellement stable et robuste que ce logiciel est utilisé par d'autres logiciels...

Caractéristiques principales

  • Conversion de formats

    FFmpeg est renommé pour sa capacité à convertir une vaste gamme de formats audio et vidéo. Que ce soit pour transcoder des fichiers, extraire des segments, ou ajuster des paramètres tels que la résolution, le bitrate ou le codec, FFmpeg offre une flexibilité inégalée.

  • Traitement avancé

    Sa boîte à outils exhaustive permet le traitement avancé de fichiers multimédias. Des fonctionnalités telles que la réduction de bruit, l'édition de sous-titres, l'ajustement de la qualité, la fusion de flux, et bien d'autres, font de FFmpeg un atout précieux pour les professionnels de l'édition audiovisuelle.

  • Streaming et enregistrement

    FFmpeg supporte le streaming en direct, offrant la possibilité d'enregistrer et diffuser du contenu sur diverses plateformes. Cette fonctionnalité est plébiscitée dans les applications de diffusion en direct, les conférences web, et autres services de streaming.

  • Architecture open-source et multiplateforme

    FFmpeg est distribué sous licence LGPL et est compatible avec divers systèmes d'exploitation, ce qui en fait un choix idéal pour une grande variété de projets et de besoins, du développement logiciel à l'utilisation personnelle.

Utilisations courantes

  • Édition vidéo et audio

    Pour les montages, les retouches et les ajustements divers.

  • Diffusion en direct

    Idéal pour les plateformes de streaming en direct.

  • Automatisation des processus

    Intégré dans des pipelines de traitement de médias.

  • Développement logiciel

    Utilisé dans des applications nécessitant des fonctionnalités multimédias.

Quelques exemples de lignes de commande

Attention, tous les exemples sous-entendent que vous avez téléchargé ffmpeg.exe et que vous vous situez dans le dossier où il y a l'exécutable et les vidéos/audios.

  • Pour connaître le contenu d'une vidéo (codec, résolution, taux de compression, fps, ...)
    ffmpeg.exe -i input.mp4

  • Pour transformer une vidéo en GIF
    ffmpeg.exe -i input.mp4 output.gif

  • Pour décomposer une vidéo en images. Sans paramètres supplémentaires, il va extraire 25 images par seconde. Sinon utiliser -r 30 pour extraire 30 images par seconde (par exemple)
    ffmpeg.exe -i input.mp4 image%d.jpg

  • Pour doubler le volume d'une vidéo (fonctionne aussi avec des audios bien sûr)
    ffmpeg.exe -i input.mp4 -af 'volume=2' output.mp4

  • Pour changer la résolution (forcée à 1920x1080 (-s 1920x1080 est similaire à -vf scale=1920:1080)) d'une vidéo sans toucher au son (-c:a est identique à -codec:a)
    ffmpeg.exe -i input.mp4 -s 1920x1080 -c:a copy output.mp4

  • Pour changer le résolution d'une vidéo, mais cette fois uniquement la largeur est forcée, la hauteur sera calculée pour garder les proportions
    ffmpeg.exe -i input.mp4 -vf scale=1280:-1 -c:a copy output.mp4

  • Pour changer le taux de compression d'un fichier mp3 (la valeur est en kbps)
    ffmpeg.exe -i input.mp3 -b:a 192k output.mp3

  • Sans entrer dans les détails, la ligne ci-dessus fixe le taux à 192kbps constant. Dans une utilisation "normale", il est vivement recommandé d'utiliser (par exemple) un taux variable autour de 192kbps (il oscillera entre 170kbps et 210kbps). Pour cela, il faut utiliser -q:a (identique à -qscale:a) au lieu de -b:a. Je vous laisse aller voir la documentation pour savoir pourquoi je lui ai donné la valeur 2.
    ffmpeg.exe -i input.mp3 -q:a 2 output.mp3

  • Pour faire une rotation de l'image d'une vidéo (0 = rotation 90° anti-horaire et symétrie verticale, 1 = rotation 90° horaire, 2 = rotation 90° anti-horaire, 3 = rotation 90° horaire et symétrie vertical). Pour une rotation à 180°, utilisez -vf "transpose=2,transpose=2"
    ffmpeg.exe -i input.mp4 -vf "transpose=1" output.mp4

  • Pour recompresser un fichier (quel que soit le format d'entré) wav dans l'exemple en fichier mp3. Dans l'exemple, on ne précise pas la qualité (bitrate) désiré, ffmpeg va donc utiliser la valeur par defaut : -q:a 4. Mais vous pouvez choisir la valeur vous même !
    ffmpeg.exe -i input.wav -acodec libmp3lame output.mp3

  • Pour couper un fichier audio en plusieurs segments de 30 secondes.
    ffmpeg.exe -i input.mp3 -f segment -segment_time 30 -c copy output%%09d.mp3

  • Pour convertir une vidéo au format H264 sans aucune perte de qualité. Pour rappel la qualité va de 0 (aucune perte mais très lourd) à 51 (beaucoup de perte mais très léger).
    ffmpeg.exe -i input.mp4 -vcodec libx264 -crf 0 -c:a copy -q:a 4 output.mp4

  • Pour ne conserver que certains flux d'une vidéo. Par exemple le 1er flux vidéo, le 1er flux audio et le 4éme flux de sous-titre.
    ffmpeg.exe -i input.mp4 -map 0:v:0 -map 0:a:0 -map 0:s:3 output.mp4

  • Pour supprimer certains flux de la vidéo. Dans l'exemple, je supprime le 2éme flux audio et le 1er flux de sous-titre.
    ffmpeg.exe -i input.mp4 -map -0:a:1 -map -0:s:0 output.mp4

  • Pour gérer les flux de plusieurs vidéos en entrée vers une seule en sortie. Dans l'exemple, je garde uniquement le 1er flux vidéo de la 1ere vidéo et le 3ème flux audio de la seconde.
    ffmpeg.exe -i input1.mp4 -i input2.mp4 -map 0:v:0 -map 1:a:2 output.mp4

  • Pour modifier le nombre d'image par seconde (fps) d'une vidéo, fixé à 30 dans l'exemple. ffmpeg va inventer des images si nécessaire en faisant une interpolation des images existantes.
    ffmpeg.exe -i input.mp4 -vf minterpolate=fps=30 output.mp4

  • Pour supprimer l'audio (a) d'un fichier. Je vous laisse deviner pour supprimer la vidéo (v), les sous-titres (s) ou les données (d) d'un fichier.
    ffmpeg.exe -i input.mp4 -an output.mp3

  • Pour extraire une portion de vidéo. De 15 minutes à 45 minutes dans l'exemple.
    ffmpeg.exe -i input.mp4 -ss 00:15:00 -to 00:45:00 -vcodec libx264 -crf 23 -acodec libmp3lame -q:a 5 output.mp4

  • Pour recadrer une vidéo. Par exemple, pour supprimer les bandes noires. Dans l'exemple 1920 est la largeur, 920 est la hauteur, (0,200) sont les coordonnées du point où commence le rectangle de recadrage.
    ffmpeg.exe -i input.mp4 -filter:v "crop=1920:920:0:200" output.mp4

  • Pour reconstituer une vidéo (pour les audios, le principe est le même) de plusieurs morceaux en un seul.
    ffmpeg.exe -i "concat:input1.mp4|input2.mp4|input3.mp4" -c copy output.mp4

  • Pour faire un fadein de 5 secondes sur un fichier audio.
    ffmpeg.exe -i input.mp3 -af "afade=t=in:ss=0:d=5" output.mp3

    Pour le fadeout de 5 secondes pour un fichier de 30 secondes, voici l'exemple.
    ffmpeg.exe -i input.mp3 -af "afade=t=out:st=25:d=5" output.mp3

    Pour faire un fadein et fadeout dans la même ligne.
    ffmpeg.exe -i input.mp3 -af "afade=t=in:ss=0:d=5,afade=t=out:st=25:d=5" output.mp3

  • Pour incruster les sous-titres dans une vidéo, il faut dans un premier temps les extraire dans un fichier texte.
    ffmpeg.exe -i "input.mkv" -map 0:s:0 soustitres.srt

    Puis les incruster dans la vidéo. Il est possible de paramétrer l'écriture (police, taille, couleur, espacement des lettres, ...).
    ffmpeg.exe -i input.mkv -vf "subtitles=soustitres.srt:force_style='PrimaryColour=&Hffffff,Italic=0,Spacing=0.8'" -vcodec libx264 -crf 23 -acodec libmp3lame -q:a 5 output.mkv

Ce n'est qu'une infime partie de ce qu'il est possible de faire avec cet outil. Par la suite, un autre article sera sans doute rédigé pour donner d'autres lignes de commande d'exemple.

Conclusion

FFmpeg demeure un pilier essentiel dans le domaine du traitement audiovisuel. Sa combinaison unique de fonctionnalités avancées, de polyvalence et de support multiplateforme en fait un outil incontournable pour les professionnels de l'audiovisuel, les développeurs de logiciels et toute personne cherchant à manipuler et gérer du contenu multimédia de manière efficace.

Que vous soyez un passionné d'édition vidéo, un professionnel de l'industrie ou un développeur en quête de puissance et de flexibilité, FFmpeg est l'outil incontournable pour répondre à vos besoins en matière de traitement audiovisuel.