Outils pour utilisateurs

Outils du site


ffmpeg

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 [2022/04/17 19:17]
luc
ffmpeg [2023/10/14 09:26] (Version actuelle)
luc
Ligne 1: Ligne 1:
-====== FFMPEG ======+====== FFMPEG & IMAGEMAGICK ======
  
-===== Intro =====+===== FFMPEG = STREAM (audio ou video) =====
  
 Cet outil est efficace car autonome : il ne nécessite pas d'autres soft ou autre pour fonctionner ou faire des choses intéressantes.\\ Cet outil est efficace car autonome : il ne nécessite pas d'autres soft ou autre pour fonctionner ou faire des choses intéressantes.\\
 +''ffmpeg'' ne fonctionne que sur des streams, qu'ils soient audio ou vidéo (ou pour les assembler/fabriquer/modifier...). Pour les images fixes, voir ci dessous ''ImageMagick''.
 +
 Ce chapitre recense qques lignes de commandes qui me sont utiles, mais juste avant, en qques mots comment ça marche : Ce chapitre recense qques lignes de commandes qui me sont utiles, mais juste avant, en qques mots comment ça marche :
  
Ligne 17: Ligne 19:
 -c:v h264   # règle le codec de la vidéo de sortie -c:v h264   # règle le codec de la vidéo de sortie
 -b:v 8M     # règle le bitrate de la vidéo de sortie -b:v 8M     # règle le bitrate de la vidéo de sortie
 +</code>
 +
 +===== Extraire une piste audio =====
 +On souhaite extraire la piste audio sans l'altérer:
 +<code bash>
 +# quel est le format du stream ?
 +ffmpeg -i <mon_fichier> output.ext
 +# note : l'extension .ext n'est pas reconnue, mais ffmpeg va afficher le contenu du fichier, ex :
 +#  ...
 +#  Duration: 00:06:26.45, start: 0.000000, bitrate: 153 kb/s
 +#  Stream #0:0[0x1](und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(progressive), 480x360 [SAR 1:1 DAR 4:3], 25 kb/s, 25 fps, 25 tbr, 90k tbn (default)
 +#    Metadata:
 +#      creation_time   : 2015-09-14T10:01:24.000000Z
 +#  ...
 +#  Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 125 kb/s (default)
 +#  ...
 +# Le stream 0:1 correspond donc à notre audio, et le format est aac / mp4
 +
 +# Extraire le stream audio 
 +ffmpeg -i <mon_fichier> -map 0:1 -acodec copy <monFichierAudio.mp4>
 +
 +# -acodec codec       force audio codec ('copy' to copy stream)
 </code> </code>
  
Ligne 31: Ligne 55:
 <code bash> <code bash>
 # vidéo en HD pour regarder chez soi # vidéo en HD pour regarder chez soi
-D:\Applis\ffmpeg\bin\ffmpeg -r 24 -i D:\temp\img-%04d.jpg -c:v libx264 -b:v 8M -r 24 -s 1280x720 D:\temp\out.mkv+D:\Applis\ffmpeg\bin\ffmpeg -r 24 -i D:\temp\img-%04d.jpg -c:v libx264 -b:v 8M -s 1280x720 D:\temp\out.mkv
  
 # vidéo en HD pour le web (chrome - webm/VP8) # vidéo en HD pour le web (chrome - webm/VP8)
-D:\Applis\ffmpeg\bin\ffmpeg -r 24 -i D:\temp\img-%04d.jpg -c:v libvpx -b:v 8M -r 24 -s 1280x720 D:\temp\out.webm+D:\Applis\ffmpeg\bin\ffmpeg -r 24 -i D:\temp\img-%04d.jpg -c:v libvpx -b:v 8M -s 1280x720 D:\temp\out.webm
  
 # vidéo en HD pour le web (IE - mp4/h264) # vidéo en HD pour le web (IE - mp4/h264)
-D:\Applis\ffmpeg\bin\ffmpeg -r 24 -i D:\temp\img-%04d.jpg -c:v h264 -b:v 8M -r 24 -s 1280x720 D:\temp\out.mp4+D:\Applis\ffmpeg\bin\ffmpeg -r 24 -i D:\temp\img-%04d.jpg -c:v h264 -b:v 8M -s 1280x720 D:\temp\out.mp4
  
 # vidéo en SD pour le web (IE - mp4/h264) # vidéo en SD pour le web (IE - mp4/h264)
Ligne 64: Ligne 88:
  
 </code> </code>
 +
 +===== ImageMagick = Image fixe =====
 +
 +Cet outil, utilisable également en ligne de commande peut servir à la **conversion** de format d'image, au traitement d'image comme le resize, ou encore pour effectuer des transformations (contraste, luminosité, ...).
 +
 +[[https://imagemagick.org/script/magick.php|Docs officielles avec les options et comment les utiliser]] et [[https://imagemagick.org/script/examples.php|exemples de résultats d'algorithme]]
 +
 +==== Exemples de commandes ====
 +<code bash>
 +# Structure typique d'une commande
 +magick fichier_source -option <paramètre de l option - facultatif> fichier_sortie
 +
 +# Conversion de format d'image
 +magick bateau.png -quality 95 bateau.jpeg
 +# quality permet de modifier la qualité de l'encodage avec perte de jpeg [0, 100] ou de png [0, 4]
 +</code>
 +
 +<code bash>
 +# Appliquer un traitement 
 +# AUTO-LEVEL : comme les niveaux de gimp mais en automatique à partir des valeurs min et max de l'image
 +magick bateau_sombre.jpeg -auto-level joli_bateau.jpeg
 +
 +# GAMMA : une valeur > 1 éclaircit l'image, < 1 l'assombrit
 +magick bateau_sombre.jpeg -gamma 1.25 bateau_clair.jpeg
 +
 +# BRIGHTNESS : peut éclaircir l'image, peut être combiné avec une modif de contraste (-100, +100): brightness{xcontrast}
 +magick bateau_brut.jpeg -brightness-contrast 25x33 bateau_retouche.jpeg
 +
 +# CLAHE : Contrast limited adaptive histogram equalization
 +# widthxheight{%}+number-bins+clip-limit
 +# https://imagemagick.org/script/command-line-options.php#clahe
 +magick bateau_moche.jpeg -clahe 50x50%+128+2.5 bateau_chouette.jpeg
 +
 +# On peut combiner plusieurs effets :
 +magick bateau_brut.jpeg -auto-level -gamma 1.5 super_bateau.jpeg
 +
 +</code>
 +
 +==== Traitement par lot de multiples images ====
 +
 +Note, bien qu'on puisse utiliser ''magick'' avec plusieurs images et les combiner pour faire des gif, nous nous intéressons ici à la réalisation d'un traitement similaire sur plusieurs images (par un exemple un lot de 100 images).
 +
 +L'outil ''mogrify'' (fourni avec magick) permet d'effectuer tout pareil que ''magick'' mais en écrasant le fichier d'origine... ou vers un dossier choisi ave c''-path''
 +<code bash>
 +# dans un dossier ne contenant que des image_001.jpg à image_100.jpg et un dossier out/
 +mogrify -path out/ -auto-level *.jpeg
 +</code> 
 +
ffmpeg.1650223067.txt.gz · Dernière modification: 2022/04/17 19:17 de luc