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 30/04/2020, 15:23] – [Effectuer une capture vidéo (screencast) de l'écran] bcag2 | ffmpeg [Le 18/01/2026, 10:46] (Version actuelle) – [Exemples de conversions] extraction au lieu de conversion (vidéo -> audio) bcag2 | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | {{tag>Xenial | + | {{tag>Focal audio vidéo encodage montage_vidéo capture_vidéo multimédia}} |
| ---- | ---- | ||
| Ligne 7: | Ligne 7: | ||
| **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]], | ||
| - | |||
| - | <note importante> | ||
| ===== Utilisation graphique ===== | ===== Utilisation graphique ===== | ||
| Ligne 15: | Ligne 13: | ||
| * [[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 25: | Ligne 22: | ||
| * [[Cinelerra]] - Application de montage extrêmement puissante, ne convient pas aux débutants et ne propose pas une interface simple d' | * [[Cinelerra]] - Application de montage extrêmement puissante, ne convient pas aux débutants et ne propose pas une interface simple d' | ||
| * [[Kino]] - Application de montage et de transcodage destinée aux débutants. | * [[Kino]] - Application de montage et de transcodage destinée aux débutants. | ||
| - | * [[http:// | + | * [[https:// |
| ===== Installation ===== | ===== Installation ===== | ||
| - | ==== Via les dépôts officiels==== | + | [[: |
| - | [[: | + | ===== Utilisation ===== |
| - | ====Via un PPA pour Ubuntu 14.04 uniquement==== | + | **Tout ce qui suit parlera de la partie manipulation de fichier Audio - Video.** |
| - | Pour utiliser **FFmpeg** sous [[: | + | Cependant, il est utile de savoir que **ffmpeg** |
| - | - [[: | + | |
| - | - [[: | + | |
| - | - [[: | + | |
| - | | + | |
| + | 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. | ||
| - | À noter que le binaire fourni | + | En bref : plus léger, plus simple et plus qualitatif |
| - | ===== Utilisation ===== | + | **Utilisation |
| + | |||
| + | 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 55: | Ligne 95: | ||
| Pour identifier le format d'un fichier multimedia (audio et/ou video), tapez : | Pour identifier le format d'un fichier multimedia (audio et/ou video), tapez : | ||
| - | ffmpeg -i fichier 2>&1 | egrep " | + | ffmpeg -i fichier 2>&1 | grep -E " |
| < | < | ||
| Seems stream 1 codec frame rate differs from container frame rate: 1000.00 (1000/1) -> 25.00 (25/1) | Seems stream 1 codec frame rate differs from container frame rate: 1000.00 (1000/1) -> 25.00 (25/1) | ||
| Ligne 63: | Ligne 103: | ||
| 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 195: | Ligne 237: | ||
| 2 étant le nombre de voies (2 : stéréo, 6 : 5.1, etc ...) | 2 étant le nombre de voies (2 : stéréo, 6 : 5.1, etc ...) | ||
| + | Pour supprimer l' | ||
| + | < | ||
| ==== Instructions d' | ==== Instructions d' | ||
| Ligne 331: | Ligne 375: | ||
| - | | qqvga | qvga | vga | svga | wvga | | + | | qqvga | qvga | vga | svga | wvga | |
| - | | 160x120 | 320x240 | 640x480 | 800x600 | 852x480 | | + | | 160x120 | 320x240 | 640x480 | 800x600 | 852x480 | |
| | xga | uxga | sxga | wxga | wsxga | wuxga | qxga | woxga | qsxga | wqsxga | | xga | uxga | sxga | wxga | wsxga | wuxga | qxga | woxga | qsxga | wqsxga | ||
| Ligne 358: | Ligne 402: | ||
| < | < | ||
| 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 371: | Ligne 456: | ||
| ==== Exemples de conversions ==== | ==== Exemples de conversions ==== | ||
| + | |||
| + | === Convertir un fichier video pour faciliter le partage sur les clouds, réseaux sociaux et messageries === | ||
| + | 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 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 380: | Ligne 472: | ||
| 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 419: | Ligne 511: | ||
| 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> | ||
| + | #!/bin/bash | ||
| - | < | + | echo videos to mp3 converter! |
| - | #Fichier " | + | |
| - | echo "Création | + | VIDEO_DIR="$HOME/ |
| - | cd CHEMIN_VERS_LES_VIDEOS ( par exemple ~/Downloads ou ~/Videos ) | + | MUSIQUE_DIR="$HOME/Musique" |
| - | ls *.* > to_convert | + | |
| - | echo "Préparation | + | cd "$VIDEO_DIR" |
| - | while read line | + | |
| - | do | + | for FILE in *.*; do |
| - | echo | + | if file --mime-type |
| - | done < to_convert | + | echo -e "Processing file ' |
| - | #On s' | + | ffmpeg |
| - | while read line | + | fi |
| - | do | + | done |
| - | sed -i -e "s/(//g" | + | </file> |
| - | sed -i -e "s/)//g" | + | |
| - | sed -i -e "s/\[//g" | + | |
| - | sed -i -e " | + | |
| - | sed -i -e "s/\ /\./g" to_convert | + | |
| - | done < to_convert | + | |
| - | #Ceci permet de contourner le problème posé par d' | + | |
| - | echo " | + | |
| - | while read line | + | |
| - | do | + | |
| - | rename=`echo | + | |
| - | original=`ls CHEMIN_VERS_LES_VIDEOS| grep $rename` | + | |
| - | mv CHEMIN_VERS_LES_VIDEOS/ | + | |
| - | echo "$line loaded" | + | |
| - | done < to_convert | + | |
| - | echo " | + | |
| - | echo "La conversion a démarré : " | + | |
| - | while read line | + | |
| - | do | + | |
| - | sdot=`echo | + | |
| - | echo " | + | |
| - | ffmpeg -ab 192k -i `echo " | + | |
| - | #Le fichier log de la conversion seront stockés dans le dossier courant sous le nom " | + | |
| - | mv $line / | + | |
| - | mv " | + | |
| - | echo "→ OK !" | + | |
| - | done < to_convert | + | |
| - | rm to_convert | + | |
| - | </code> | + | |
| === Convertir tous les fichiers Windows Media Audio ( WMA ) en mp3 === | === Convertir tous les fichiers Windows Media Audio ( WMA ) en mp3 === | ||
| Ligne 518: | Ligne 583: | ||
| du fait du codec audio utilisé, //aac//, une erreur est survenu en précisant d' | du fait du codec audio utilisé, //aac//, une erreur est survenu en précisant d' | ||
| < | < | ||
| - | ==== Effectuer une capture vidéo (screencast) de l' | ||
| + | ==== Effectuer une capture vidéo (screencast) de l' | ||
| Après avoir exécuté cette commande, appuyez sur q pour arrêter la capture. | Après avoir exécuté cette commande, appuyez sur q pour arrêter la capture. | ||
| Ligne 532: | Ligne 597: | ||
| < | < | ||
| </ | </ | ||
| + | |||
| + | **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 556: | Ligne 650: | ||
| </ | </ | ||
| </ | </ | ||
| + | <note tip> | ||
| + | < | ||
| + | ffmpeg -ss 00:18:00.00 -t 00:12:18.25 -i fichieradecouper.mp4 fichierdecoupe.mp4 | ||
| + | </ | ||
| + | |||
| ==== Pivoter une vidéo ==== | ==== Pivoter une vidéo ==== | ||
| Utile par exemple pour redresser une vidéo réalisée avec un téléphone mobile tourné dans le mauvais sens | Utile par exemple pour redresser une vidéo réalisée avec un téléphone mobile tourné dans le mauvais sens | ||
| Ligne 568: | Ligne 667: | ||
| | 3 | Rotation à 90° sens inverse des aiguilles d'une montre et miroir vertical (défaut) | | | 3 | Rotation à 90° sens inverse des aiguilles d'une montre et miroir vertical (défaut) | | ||
| - | ==== Concaténer plusieurs | + | ==== Concaténer plusieurs |
| - | Abouter (enfiler plusieurs vidéos successivement en une seule plus longue) plusieurs | + | Abouter (enfiler plusieurs vidéos successivement en une seule plus longue) plusieurs |
| === Concaténation simple === | === Concaténation simple === | ||
| Quelques rares formats ("file level" | Quelques rares formats ("file level" | ||
| Ligne 580: | Ligne 680: | ||
| </ | </ | ||
| <note tip>Si la qualité des fichiers s'y prête, il peut être plus simple de convertir les fichiers à concaténer en mpg, de réaliser la concaténation en mpg puis de ré-encoder le fichier concaténé dans votre format de prédilection.</ | <note tip>Si la qualité des fichiers s'y prête, il peut être plus simple de convertir les fichiers à concaténer en mpg, de réaliser la concaténation en mpg puis de ré-encoder le fichier concaténé dans votre format de prédilection.</ | ||
| + | |||
| === Avec concat === | === Avec concat === | ||
| Le filtre concat opère sur des segments synchrones de flux vidéo et audio. Tous les segments doivent avoir le même nombre de flux, qui sera également celui du fichier concaténé. | Le filtre concat opère sur des segments synchrones de flux vidéo et audio. Tous les segments doivent avoir le même nombre de flux, qui sera également celui du fichier concaténé. | ||
| Ligne 596: | Ligne 697: | ||
| === Autres cas et cas complexes === | === Autres cas et cas complexes === | ||
| Voir la documentation (en anglais), notamment [[https:// | Voir la documentation (en anglais), notamment [[https:// | ||
| + | |||
| + | ==== Méta-données ==== | ||
| + | On peut visualiser quelques méta-données en exécutant : | ||
| + | <code bash> | ||
| + | qui va nous retourner l' | ||
| + | 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 ==== | ||
| < | < | ||
| - | ===== JDownloader 2 Beta ===== | + | Pour une synthèse des options |
| - | + | < | |
| - | FFmpeg is missing ! Pour résoudre ce problème, notamment avec le site Youtube, il faut: | + | |
| - | * Installer FFmpeg avec la Logithèque | + | |
| - | * Ouvrir JD et aller dans les Préférences | + | |
| - | * Puis dans les Paramètres avancés | + | |
| - | * Trouver la clef FFmpegSetup: | + | |
| - | * A la place de ' | + | |
| - | * Arrêter les téléchargements (bouton Stop), puis redémarrer les (bouton Lecture) | + | |
| - | * Enjoy ! | + | |
| ===== Pour en savoir plus sur Internet ===== | ===== Pour en savoir plus sur Internet ===== | ||
| - | |||
| * '' | * '' | ||
| * '' | * '' | ||
| Ligne 620: | Ligne 740: | ||
| ---- | ---- | ||
| - | // | + | // |
