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édentesRévision précédente
Prochaine révision
Révision précédente
ffmpeg [Le 25/08/2024, 16:26] – [Transformer la vidéo] ouvradouffmpeg [Le 18/01/2026, 10:46] (Version actuelle) – [Exemples de conversions] extraction au lieu de conversion (vidéo -> audio) bcag2
Ligne 103: 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
 </code> </code>
 +<note tip>Un utilitaire très léger est dédié à l'accés au métadonnées des fichiers média : [[:mediainfo]]</note>
 +
 Le nombre d'instructions à passer peut être grand, il faudra en ajouter bout à bout et au final vous finirez par créer vous-même une commande correspondant à vos besoins ! Le nombre d'instructions à passer peut être grand, il faudra en ajouter bout à bout et au final vous finirez par créer vous-même une commande correspondant à vos besoins !
 Une commande finale ressemblera à ça : Une commande finale ressemblera à ça :
Ligne 402: Ligne 404:
  
 === Stabiliser la vidéo === === Stabiliser la vidéo ===
-Pour réduire les tremblements de la caméra en post-production+ 
-Prérequis : la bibliothèque vidstab doit être intégrée à la configuration de ffmpeg. +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 : Pour le vérifier :
 <code>$ ffmpeg <code>$ ffmpeg
Ligne 411: Ligne 416:
   ... --enable-libvidstab ...   ... --enable-libvidstab ...
 </code> </code>
 +
 ffmpeg effectue la stabilisation d'une vidéo en deux passes : 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 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.   - 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 ====
Ligne 443: Ligne 472:
 avconv -i 'fichier source' -threads 0 -vcodec libvpx -b 1500k -minrate 0 -maxrate 9000k -rc_lookahead 16 -keyint_min 0 -g 360 -skip_threshold 0 -level 116 -qmin 1 -qmax 51 -acodec libvorbis -ab 192k -pass 2 -passlogfile pass1.fpf "fichier final.webm"</code> avconv -i 'fichier source' -threads 0 -vcodec libvpx -b 1500k -minrate 0 -maxrate 9000k -rc_lookahead 16 -keyint_min 0 -g 360 -skip_threshold 0 -level 116 -qmin 1 -qmax 51 -acodec libvorbis -ab 192k -pass 2 -passlogfile pass1.fpf "fichier final.webm"</code>
  
-===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, il vous faudra sans doute modifier le format (il n'est généralement pas reconnu). Pour passer la vidéo 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, il vous faudra sans doute modifier le format (il n'est généralement pas reconnu). Pour passer la vidéo webm en .mp4 :
  
Ligne 482: 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 un grand nombre de fichiers Vidéo vers le format MP3===+=== Extraire un grand nombre de bandes-son à partir de fichiers Vidéo vers le format MP3 ===
  
-Ce script permet d'automatiser la conversion de vidéos de plusieurs formats ( Mpeg4, Avi, Flv etc... ) vers le format MP3.+Ce script permet d'automatiser, à partir de vidéos de plusieurs formats ( Mpeg4, Avi, Flv etc... ), l'extraction de la bande-son au format MP3.
 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 599: Ligne 628:
 ffmpeg -framerate 1 -pattern_type glob -i 'img*.png' -c:v libx264 -pix_fmt yuv420p output.mp4 ffmpeg -framerate 1 -pattern_type glob -i 'img*.png' -c:v libx264 -pix_fmt yuv420p output.mp4
 </code> </code>
-<note important>le //framerate// est le nombre d'images pas seconde en entrée (ips)… si vous avez 24 images et définissez 24… vous n'aurez qu'une seconde de vidéo et n'aurez pas le temps de voir les images si elles sont très différentes. Pour 10 secondes de vidéo à 24 ips, il faut donc 240 images ! Il est possible d'avoir un //framerate// sur les images fournies en entrée et un //fps// en sortie différentffmpeg laissera la même image plusieurs fois ou au contraire en enlèvera ((https://trac.ffmpeg.org/wiki/Slideshow#Framerates))</note>+<note important>le //framerate// est le nombre d'images pas seconde en entrée (ips)… si vous avez 24 images et définissez 24… vous n'aurez qu'une seconde de vidéo et n'aurez pas le temps de voir les images si elles sont très différentes. On peut utiliser 1 (1sec/image) 1/3 (3secondes par image)… 1/5 ! Pour le //framerate// en sortie, ajouter l'option **-r** suivi de la valeur, par exemple **//-r 12.5//** ((https://trac.ffmpeg.org/wiki/Slideshow#Framerates)) 
 + 
 + 
 +En cas d'erreur //height not divisible by 2//, ajouter l'option //-vf "pad=ceil(iw/2)*2:ceil(ih/2)*2"// (avant l'option -pix_fmt) 
 +</note>
  
 ==== Découper une vidéo ==== ==== Découper une vidéo ====
Ligne 707: Ligne 740:
  ----  ----
  
-//Contributeurs principaux : loup_74, ElGeneralMidi, [[utilisateurs:Wido]], [[utilisateurs:laurentb|Laurent Bellegarde]], Isamaya (pour l'extraction des flux audio et vidéo).//+//Contributeurs principaux : loup_74, ElGeneralMidi, [[utilisateurs:Wido]], [[utilisateurs:laurentb|Laurent Bellegarde]], Isamaya (pour l'extraction des flux audio et vidéo), [[:utilisateurs:bcag2]].//