Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
ffmpeg [Le 11/09/2023, 19:27]
193.32.127.233 [Utilisation]
ffmpeg [Le 27/08/2024, 16:29] (Version actuelle)
ouvradou [Transformer la vidéo]
Ligne 35: Ligne 35:
 Cependant, il est utile de savoir que **ffmpeg** intègre par défaut un lecteur minimaliste audio-video **ffplay** utilisable depuis le terminal. 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 que vous ne pouvez que lire.\\ +Attention, minimaliste ne veut pas dire peu performant.\\ 
-Avec toutes les possibilités de ffmpeg vous pouvez aller bien plus loin que n'​importe quel lecteur. +Avec toutes les possibilités de ffmpeg vous pouvez aller bien plus loin que n'​importe quel lecteur.\\ 
-Seul ressource pour cela ... connaitre les arguments à entrer ​en ligne de commande.+Seul ressource pour cela ... connaitre les arguments à entrer ​dans la commande ​terminal.
  
-Donc par défaut, ​plus léger, plus simple et plus qualitatif ​je crois qu'il n'y a pas. Par choix, vous pouvez ​aller plus loin.+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.
  
  
Ligne 47: Ligne 47:
  
 __Pour un fichier video__\\ __Pour un fichier video__\\
-ffplay "​le_chemin_du_fichier_que_je_veux_lire.mkv"​ (ou .l'​extension du fichier à lire)+<​code>​ffplay "​le_chemin_du_fichier_que_je_veux_lire.mkv"​ (ou .mp4, etc.;l'​extension du fichier à lire)</​code>​
  
 __Pour un fichier audio__\\ __Pour un fichier audio__\\
-ffplay "​le_chemin_du_fichier_que_je_veux_lire.wav"​ (ou .l'​extension du fichier à lire)+<​code>​ffplay "​le_chemin_du_fichier_que_je_veux_lire.wav"​ (ou .aac, etc.;l'​extension du fichier à lire)</​code>​
  
 //NB les guillemets sont importants car ils vous éviteront une erreur si le chemin a des espaces ou des caractères spéciaux// //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 "​Echap"​ ou "​q"​\\ Pour arrêter la lecture appuyer sur "​Echap"​ ou "​q"​\\
 +**IMPORTANT** Quitter proprement le terminal en tapant ​ //​exit// ​ une fois pour terminer le processus son, et une autre fois pour fermer le terminal\\
 +\\
  
-**Utilisation pour lire plusieurs fichiers audio ou video CONTENUS __DANS UN SEUL ET MEME REPERTOIRE__**+**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 "​Entrée" ​ du clavier\\ Tapez dans le terminal ce qui suit et appuyez sur la touche "​Entrée" ​ du clavier\\
  
-cd /​le_chemin_de_votre_repertoire_contenant_les_fichiers_a_lire\\+<​code>​cd /​le_chemin_de_votre_repertoire_contenant_les_fichiers_a_lire</​code>​
 puis\\ puis\\
-for f in *.wav ; do ffplay -nodisp -autoexit ​-hide_banner ​"​$f";​ done\\+<​code>​for f in *.wav ; do ffplay ​-hide_banner ​-nodisp -autoexit "​$f";​ done</​code>​
  
-//(.wav à remplacer par votre format .flac .ogg .mp3 .mp4 .m4a .aac .opus)//+// si vous lisez une video supprimez dans la commande ci-dessus l'​option -nodisp qui indique de ne pas afficher la fenêtre du graph audio//\\ 
 +//​-hide_banner bloque l'​affichage des infos sur ffmpeg//​\\ 
 +//-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 + C pour passer au morceau suivant\\
 Ctrl + Z pour arrêter\\ Ctrl + Z pour arrêter\\
 +**IMPORTANT** Quitter proprement le terminal en tapant ​ //​exit// ​ une fois pour terminer le processus son, et une autre fois pour fermer le terminal\\
 \\ \\
  
-J'​invite les pros de ffmpeg à ajouter une rubrique à la fin de cette page pour les commandes détaillées de ffplay en ce qui concerne les fichiers videos ​avec la sélection des langues et sous-titres ​et l'​augmentation du format pour supprimer les bandes noires et utiliser tout l'​écran.\\+**Utilisation pour lire TOUT LE CONTENU D'UN RÉPERTOIRE contenant PLUSIEURS DOSSIERS avec des fichiers audio** 
 + 
 +<​code>​find /​chemin_du_repertoire/​ma_musique/​ -type f > filelist.txt && while [ 1 ]; do SDL_AUDIODRIVER=alsa AUDIODEV=hw:​2,​0 ffplay -hide_banner -nodisp -autoexit "`shuf -n 1 filelist.txt`";​ done</​code>​\\ 
 +NB //​SDL_AUDIODRIVER=alsa AUDIODEV=hw:​2,​0//​ sert à contourner le mixeur du PC pour envoyer cela directement sur la sortie USB, ici hw:2,0; trouvez la vôtre avec la commande\\ 
 +<​code>​cat /​proc/​asound/​cards</​code>​ 
 +Ctrl + C pour passer au morceau suivant\\ 
 +Ctrl + Z pour arrêter\\ 
 +**IMPORTANT** Quitter proprement le terminal en tapant ​ //​exit// ​ une fois pour terminer le processus son, et une autre fois pour fermer le terminal\\ 
 + 
 +J'​invite les pros de ffmpeg à ajouter une rubrique à la fin de cette page pour les commandes détaillées de ffplay en ce qui concerne les fichiers videos ​et la sélection ​directe ​des langues et sous-titres ​ainsi que l'​augmentation du format pour supprimer les bandes noires et utiliser tout l'​écran.\\
  
 ==== Commencer sur une bonne base ==== ==== Commencer sur une bonne base ====
Ligne 385: Ligne 400:
 <​code>​-aspect aspect</​code>​ <​code>​-aspect aspect</​code>​
 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 :
 +<​code>​$ ffmpeg
 +ffmpeg version n7.0.1 Copyright (c) 2000-2024 the FFmpeg developers
 +  built with gcc 14.1.1 (GCC) 20240522
 +  configuration: ​
 +  ... --enable-libvidstab ...
 +</​code>​
 +
 +ffmpeg effectue la stabilisation d'une vidéo en deux passes :
 +  - une passe d'​analyse de la vidéo qui produit un fichier nommé //​transforms.trf//​
 +  - une passe de traitement qui exploite ce fichier et produit la vidéo stabilisée.
 +
 +La [[https://​github.com/​georgmartius/​vid.stab|bibliothèque vidstab]] utilise de nombreux paramètres pour analyser les tremblements.
 +Dans une approche simplissime,​ on peut se reposer sur les valeurs par défaut de ceux-ci.
 +
 +Supposons que la vidéo à stabiliser se nomme //​inputFile//​ et qu'on souhaite encoder la version stabilisée avec le codec vidéo x264 et une qualité crf=20 et l'​audio avec le codec aac avec une bande passante de 192 kbit/s.
 +On saisira les deux lignes ci-dessous :
 +
 +<​code>​
 +ffmpeg -i inputFile -vf vidstabdetect -f null transforms.trf
 +ffmpeg -i inputFile -vf vidstabtransform=:​input=transforms.trf -c:v libx264 -crf 20 -c:a aac -ab 192k output.mp4
 +</​code>​
 +
 +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 (//​smoothing//​) qui peut montrer une bonne efficacité.
 +Sa valeur par défaut est 10. On peut tenter de l'​augmenter sensiblement et visualiser l'​effet.
 +
 +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) :
 +<​code>​
 +ffmpeg -i inputFile -vf vidstabdetect -f null transforms.trf
 +ffmpeg -i inputFile -vf vidstabtransform=smoothing=40:​input=transforms.trf -c:v libx264 -crf 20 -c:a aac -ab 192k output.mp4
 +</​code>​
 +
 +À noter que le processus de stabilisation applique une certaine valeur de zoom à l'​image pour pouvoir la décaler sans faire apparaître de bordures noires.
 +<​note>​Si on ne souhaite pas de ré-encodage de l'​audio : remplacer <​code>"​-c:​a aac -ab 192k" par "-c:a copy"</​code></​note>​
  
 ==== Faire des essais de conversion avec FFmpeg sur une portion de fichier ==== ==== Faire des essais de conversion avec FFmpeg sur une portion de fichier ====
  • ffmpeg.1694453244.txt.gz
  • Dernière modification: Le 11/09/2023, 19:27
  • par 193.32.127.233