Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| ffmpeg [Le 11/09/2022, 11:51] – Suppression des espaces en fin de ligne (détecté et corrigé via le bot wiki-corrector (https://forum.ubuntu-fr.org/viewtopic.php?id=2067892) moths-art | ffmpeg [Le 03/11/2026, 16:27] (Version actuelle) – màj liens internes krodelabestiole | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | {{tag> | + | {{tag> |
| - | ---- | + | {{ https://upload.wikimedia.org/wikipedia/ |
| - | + | ||
| - | {{ http://ffmpeg.org/ffmpeg-logo.png?150| Logo de ffmpeg}} | + | |
| ====== FFmpeg ====== | ====== FFmpeg ====== | ||
| - | **FFmpeg** est une application de lecture et encodage de vidéo. Très puissante comme son alter ego [[Mencoder]], | + | **FFmpeg** est une application de lecture et encodage de vidéo. Très puissante comme son alter ego [[Mencoder]], |
| ===== Utilisation graphique ===== | ===== Utilisation graphique ===== | ||
| Il existe des interfaces graphiques permettant de simplifier grandement le transcodage de fichiers : | Il existe des interfaces graphiques permettant de simplifier grandement le transcodage de fichiers : | ||
| + | * [[https:// | ||
| * [[http:// | * [[http:// | ||
| - | * [[WinFF]] - Cette application vous permet de choisir parmi une liste de profils un encodage vidéo qui conviendra à vos attentes. Par exemple si vous voulez faire une vidéo compatible Blackberry, il ne vous sera même pas nécessaire de savoir quel est l' | + | * [[WinFF]] - Cette application vous permet de choisir parmi une liste de profils un [[:encodage vidéo]] qui conviendra à vos attentes. Par exemple si vous voulez faire une vidéo compatible Blackberry, il ne vous sera même pas nécessaire de savoir quel est l' |
| D' | D' | ||
| Ligne 30: | Ligne 29: | ||
| ===== Utilisation ===== | ===== Utilisation ===== | ||
| + | |||
| + | **Tout ce qui suit parlera de la partie manipulation de fichier Audio - Video.** | ||
| + | |||
| + | Cependant, il est utile de savoir que **ffmpeg** intègre par défaut un lecteur minimaliste audio-video **ffplay** utilisable depuis le terminal. | ||
| + | |||
| + | Attention, minimaliste ne veut pas dire peu performant.\\ | ||
| + | Avec toutes les possibilités de ffmpeg vous pouvez aller bien plus loin que n' | ||
| + | Seul ressource pour cela ... connaitre les arguments à entrer dans la commande terminal. | ||
| + | |||
| + | En bref : plus léger, plus simple et plus qualitatif par défaut. Par choix, plus tout ce que vous voulez pour aller plus loin. | ||
| + | |||
| + | |||
| + | **Utilisation pour lire UN SEUL fichier Audio ou Video** | ||
| + | |||
| + | Tapez dans le terminal ce qui suit et appuyez sur la touche " | ||
| + | |||
| + | __Pour un fichier video__\\ | ||
| + | < | ||
| + | |||
| + | __Pour un fichier audio__\\ | ||
| + | < | ||
| + | |||
| + | //NB les guillemets sont importants car ils vous éviteront une erreur si le chemin a des espaces ou des caractères spéciaux// | ||
| + | |||
| + | Pour arrêter la lecture appuyer sur " | ||
| + | **IMPORTANT** Quitter proprement le terminal en tapant | ||
| + | \\ | ||
| + | |||
| + | **Utilisation pour lire plusieurs fichiers audio ou video CONTENUS __DANS UN SEUL ET MEME REPERTOIRE__**\\ | ||
| + | |||
| + | |||
| + | Tapez dans le terminal ce qui suit et appuyez sur la touche " | ||
| + | |||
| + | < | ||
| + | puis\\ | ||
| + | < | ||
| + | |||
| + | // si vous lisez une video supprimez dans la commande ci-dessus l' | ||
| + | // | ||
| + | //-autoexit ferme ffplay quand le fichier est lu//\\ | ||
| + | //(.wav à remplacer par votre format .flac .ogg .mp3 .mp4 .m4a .aac .opus .mkv .webm etc.)// | ||
| + | |||
| + | Ctrl + C pour passer au morceau suivant\\ | ||
| + | Ctrl + Z pour arrêter\\ | ||
| + | **IMPORTANT** Quitter proprement le terminal en tapant | ||
| + | \\ | ||
| + | |||
| + | **Utilisation pour lire TOUT LE CONTENU D'UN RÉPERTOIRE contenant PLUSIEURS DOSSIERS avec des fichiers audio** | ||
| + | |||
| + | < | ||
| + | NB // | ||
| + | < | ||
| + | Ctrl + C pour passer au morceau suivant\\ | ||
| + | Ctrl + Z pour arrêter\\ | ||
| + | **IMPORTANT** Quitter proprement le terminal en tapant | ||
| + | |||
| + | J' | ||
| ==== Commencer sur une bonne base ==== | ==== Commencer sur une bonne base ==== | ||
| Ligne 46: | Ligne 102: | ||
| Stream #0.1: Video: wmv3, yuv420p, 320x240, 323 kb/s, 25 tbr, 1k tbn, 1k tbc | Stream #0.1: Video: wmv3, yuv420p, 320x240, 323 kb/s, 25 tbr, 1k tbn, 1k tbc | ||
| </ | </ | ||
| + | <note tip>Un utilitaire très léger est dédié à l' | ||
| + | |||
| Le nombre d' | Le nombre d' | ||
| Une commande finale ressemblera à ça : | Une commande finale ressemblera à ça : | ||
| Ligne 86: | Ligne 144: | ||
| === Utilisation Multithreads === | === Utilisation Multithreads === | ||
| - | Si FFmpeg est compilé avec la possibilité de faire du **[[multithreading]]** (la version par défaut d' | + | Si FFmpeg est compilé avec la possibilité de faire du //[[wpfr>multithreading]]// (la version par défaut d' |
| < | < | ||
| Ligne 94: | Ligne 152: | ||
| N étant le nombre de threads à utiliser. Vous pouvez donc en utiliser seulement 3 sur un processeur Quad Core pour garder une grande réactivité sur une autre tâche. | N étant le nombre de threads à utiliser. Vous pouvez donc en utiliser seulement 3 sur un processeur Quad Core pour garder une grande réactivité sur une autre tâche. | ||
| - | Vous pouvez ensuite compléter par n' | + | Vous pouvez ensuite compléter par n' |
| === Fichiers d' | === Fichiers d' | ||
| Ligne 156: | Ligne 214: | ||
| Ici cependant, on peut se contenter d' | Ici cependant, on peut se contenter d' | ||
| __Remarque__: | __Remarque__: | ||
| + | |||
| ==== Instructions d' | ==== Instructions d' | ||
| + | |||
| + | < | ||
| + | |||
| Il faut paramétrer le son. Et c'est très simple ! | Il faut paramétrer le son. Et c'est très simple ! | ||
| < | < | ||
| Ligne 180: | Ligne 242: | ||
| Pour supprimer l' | Pour supprimer l' | ||
| < | < | ||
| + | |||
| ==== Instructions d' | ==== Instructions d' | ||
| - | C'est là où ça se complique car il y a plein de codecs vidéo, et ils ont souvent des instructions obscures, même pour les utilisateurs | + | < |
| + | |||
| + | C'est là où ça se complique car il y a plein de codecs vidéo, et ils ont souvent des instructions obscures, même pour des utilisateurs avertis... | ||
| Mais ne vous inquiétez pas, nous allons vous expliquer comment éviter les plus gros pièges ! | Mais ne vous inquiétez pas, nous allons vous expliquer comment éviter les plus gros pièges ! | ||
| Ligne 296: | Ligne 361: | ||
| Si, en revanche, vous voulez une taille de fichier final bien précise, utilisez un encodage en 2 passes. | Si, en revanche, vous voulez une taille de fichier final bien précise, utilisez un encodage en 2 passes. | ||
| - | Voir : [[encodage_dvd_mkv|Encodage DVD → MKV]] | + | Voir : [[:encodage_dvd_mkv|Encodage DVD → MKV]] |
| </ | </ | ||
| Ligne 343: | Ligne 408: | ||
| < | < | ||
| Aspect étant 4:3, 16:9 ou 1.3333, 1.7777. Vous pouvez faire des aspects spéciaux si vous le voulez. | Aspect étant 4:3, 16:9 ou 1.3333, 1.7777. Vous pouvez faire des aspects spéciaux si vous le voulez. | ||
| + | |||
| + | === Stabiliser la vidéo === | ||
| + | |||
| + | Pour réduire en post-production les tremblements de la caméra lors de la prise de vue. | ||
| + | |||
| + | Prérequis : la bibliothèque vidstab doit être intégrée à la configuration de ffmpeg. | ||
| + | |||
| + | Pour le vérifier : | ||
| + | < | ||
| + | ffmpeg version n7.0.1 Copyright (c) 2000-2024 the FFmpeg developers | ||
| + | built with gcc 14.1.1 (GCC) 20240522 | ||
| + | configuration: | ||
| + | ... --enable-libvidstab ... | ||
| + | </ | ||
| + | |||
| + | ffmpeg effectue la stabilisation d'une vidéo en deux passes : | ||
| + | - une passe d' | ||
| + | - une passe de traitement qui exploite ce fichier et produit la vidéo stabilisée. | ||
| + | |||
| + | La [[https:// | ||
| + | Dans une approche simplissime, | ||
| + | |||
| + | Supposons que la vidéo à stabiliser se nomme // | ||
| + | On saisira les deux lignes ci-dessous : | ||
| + | |||
| + | < | ||
| + | ffmpeg -i inputFile -vf vidstabdetect -f null transforms.trf | ||
| + | ffmpeg -i inputFile -vf vidstabtransform=: | ||
| + | </ | ||
| + | |||
| + | Si le résultat de la stabilisation ne paraît pas suffisant mais si on ne souhaite pas se confronter à la complexité du traitement, on peut se limiter à jouer sur le seul paramètre de lissage (// | ||
| + | Sa valeur par défaut est 10. On peut tenter de l' | ||
| + | |||
| + | Ainsi pour lui donner une valeur de 40, par exemple, on saisira les lignes suivantes (première ligne inchangée donc optionnelle si elle a déjà été exécutée) : | ||
| + | < | ||
| + | ffmpeg -i inputFile -vf vidstabdetect -f null transforms.trf | ||
| + | ffmpeg -i inputFile -vf vidstabtransform=smoothing=40: | ||
| + | </ | ||
| + | |||
| + | À noter que le processus de stabilisation applique une certaine valeur de zoom à l' | ||
| + | < | ||
| ==== Faire des essais de conversion avec FFmpeg sur une portion de fichier ==== | ==== Faire des essais de conversion avec FFmpeg sur une portion de fichier ==== | ||
| Ligne 357: | Ligne 463: | ||
| ==== Exemples de conversions ==== | ==== Exemples de conversions ==== | ||
| - | === Convertir un fichier video pour les réseaux sociaux et messageries | + | === Convertir un fichier video pour faciliter le partage sur les clouds, |
| Cette conversion est utile pour réduire de façon drastique la taille des fichiers en conservant une qualité suffisante pour le regarder sur un téléphone. | Cette conversion est utile pour réduire de façon drastique la taille des fichiers en conservant une qualité suffisante pour le regarder sur un téléphone. | ||
| < | < | ||
| - | Si la source est en HD, vous pouvez réduire | + | Si la source est en HD, vous pouvez réduire la définition pour réduire de façon importante la taille du fichier : |
| < | < | ||
| + | (on peut remplacer //wvga// par //hd720//, cf. [[wpfr> | ||
| === Convertir une vidéo en WebM (VP8+Vorbis) en deux passes === | === Convertir une vidéo en WebM (VP8+Vorbis) en deux passes === | ||
| Ligne 371: | Ligne 478: | ||
| avconv -i ' | avconv -i ' | ||
| - | ===Convertir un fichier webm en .mp4=== | + | === Convertir un fichier webm en .mp4 === |
| Le format [[webm|webm]] est largement utilisé sur internet, en particulier pour youtube. Vous pouvez télécharger ces vidéos de différentes façons, par exemple via [[youtube-dl|youtube-dl]]. Pour voir ces vidéos sur une télévision, | Le format [[webm|webm]] est largement utilisé sur internet, en particulier pour youtube. Vous pouvez télécharger ces vidéos de différentes façons, par exemple via [[youtube-dl|youtube-dl]]. Pour voir ces vidéos sur une télévision, | ||
| Ligne 410: | Ligne 517: | ||
| Attention, ici le chemin n'est pas précisé. Le fichier doit se trouver dans votre dossier personnel pour que cela fonctionne. | Attention, ici le chemin n'est pas précisé. Le fichier doit se trouver dans votre dossier personnel pour que cela fonctionne. | ||
| - | === Convertir | + | === Extraire |
| - | Ce script permet d' | + | Ce script permet d' |
| Plusieurs formats de vidéos peuvent se trouver dans le même dossier au moment de la conversion. | Plusieurs formats de vidéos peuvent se trouver dans le même dossier au moment de la conversion. | ||
| <file bash videos_to_mp3_converter.sh> | <file bash videos_to_mp3_converter.sh> | ||
| Ligne 496: | Ligne 603: | ||
| < | < | ||
| </ | </ | ||
| + | |||
| + | **NB1** vous pouvez changer | ||
| + | |||
| + | **NB2** pour la même raison que NB1 vous pouvez aussi changer l' | ||
| + | |||
| + | **PROBLEME DE CAPTURE ECRAN SANS L' | ||
| + | |||
| + | Dans le terminal lancez la commande | ||
| + | |||
| + | Appuyez sur F6 et choisissez | ||
| + | |||
| + | Si vous utilisez une carte son, après avoir fait F6 choisissez là afin de vérifier-ajuster le volume à son maximum. | ||
| + | Ensuite | ||
| + | |||
| + | Ensuite toujours dans le terminal tapez pavucontrol | ||
| + | Vérifiez que vous avez bien choisi la source de sortie que vous utilisez habituellement, | ||
| + | |||
| + | ENFIN, redémarrez votre PC car j'ai relevé que sur certains PC tout devenait fonctionnel après un redémarrage (???). Ne me demandez pas pourquoi je ne suis pas un expert hardware-software bas/ | ||
| + | |||
| ==== Pour créer une vidéo à partir de photos ==== | ==== Pour créer une vidéo à partir de photos ==== | ||
| - | À partir des images // | + | À partir des images // |
| + | FIXME (le code ci-dessous ne fonctionne pas sous [[:Jammy]] | ||
| < | < | ||
| ffmpeg -framerate 24 -i img%03d.png output.mp4 | ffmpeg -framerate 24 -i img%03d.png output.mp4 | ||
| </ | </ | ||
| - | [[https:// | + | [[https:// |
| + | Alternative ((src (en) : https:// | ||
| + | <code bash> | ||
| + | ffmpeg -framerate 1 -pattern_type glob -i ' | ||
| + | </ | ||
| + | <note important> | ||
| + | |||
| + | |||
| + | En cas d' | ||
| + | </ | ||
| ==== Découper une vidéo ==== | ==== Découper une vidéo ==== | ||
| Ligne 574: | Ligne 710: | ||
| Pour les méta-données, | Pour les méta-données, | ||
| + | ==== Ajouter une piste son ainsi que des sous-titres ==== | ||
| + | Dans cet exemple : | ||
| + | * on va ajouter une deuxième piste son (française) au fichier video.mp4 qui en possède déjà une (anglaise) | ||
| + | * on va ajouter des sous-titres dans chacune des deux langues | ||
| + | * on va ajouter une image de couverture image.jpg | ||
| + | * on va mettre à jour des métadonnées | ||
| + | <code bash> | ||
| + | </ | ||
| + | <note tip> | ||
| + | * -c copy : copie sans réencoder | ||
| + | * -metadata comment=" | ||
| + | * -metadata title=" | ||
| + | * -metadata: | ||
| + | * -metadata: | ||
| + | * -metadata: | ||
| + | * -metadata: | ||
| + | * -metadata: | ||
| + | * -c:s mov_text : convertit les fichiers srt en sous-titres mov_text pour mp4 | ||
| + | * -metadata: | ||
| + | * -metadata: | ||
| + | * output.mp4 : fichier de sortie | ||
| + | </ | ||
| ==== Pour consulter le manuel de FFmpeg ==== | ==== Pour consulter le manuel de FFmpeg ==== | ||
| Ligne 581: | Ligne 739: | ||
| < | < | ||
| - | ===== Pour en savoir plus sur Internet | + | ===== Voir aussi ===== |
| - | * '' | + | |
| - | * '' | + | |
| - | * '' | + | |
| - | ---- | + | * **(// |
| + | * [[http:// | ||
| + | * [[http:// | ||
| + | * [[:Encodage vidéo]] | ||
| + | * [[:Encodage audio]] | ||
| - | // | + | ---- |
| + | //[[:Contributeurs]] : loup_74, ElGeneralMidi, | ||
