Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
ffmpeg [Le 12/09/2023, 12:31] 146.70.126.247 [Utilisation] |
ffmpeg [Le 27/08/2024, 16:29] (Version actuelle) ouvradou [Transformer la vidéo] |
||
---|---|---|---|
Ligne 55: | Ligne 55: | ||
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__**\\ |
Ligne 68: | Ligne 70: | ||
//-hide_banner bloque l'affichage des infos sur ffmpeg//\\ | //-hide_banner bloque l'affichage des infos sur ffmpeg//\\ | ||
//-autoexit ferme ffplay quand le fichier est lu//\\ | //-autoexit ferme ffplay quand le fichier est lu//\\ | ||
- | //(.wav à remplacer par votre format .flac .ogg .mp3 .mp4 .m4a .aac .opus)// | + | //(.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 388: | 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 ==== |