Outils pour utilisateurs

Outils du site


Panneau latéral

ffmpeg

FFMPEG & IMAGEMAGICK

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.
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 :

ligne de commande typique

ffmpeg option_générales option_input -i input options_output output

parmis les options intéressantes, on retrouve :

# input, output
-r fps      # règle le taux de rafraichissement de la vidéo
-s 1280x720 # règle la définition de la vidéo
# output
-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

Extraire une piste audio

On souhaite extraire la piste audio sans l'altérer:

# 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)

Time lapse

Mon activité (astro)photographique m'a amené à effectuer des timelapse. Ne voulant pas utiliser l'outil intégré àl'appareil car je souhaite conserver le format raw, je dois maintenant me retrousser les manches pour ré-assembler les photos en vidéo…

Préparation

A l'aide de son logiciel de développement de raw favori, on exporte l'ensemble des photos des la vidéos dans un dossier D:\temp et en prenant soin de les renommer img-0001.jpg. Il est important de commencer la numérotation à 0001.

Mes lignes de commandes

# 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 -s 1280x720 D:\temp\out.mkv
 
# 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 -s 1280x720 D:\temp\out.webm
 
# 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 -s 1280x720 D:\temp\out.mp4
 
# vidéo en SD pour le web (IE - mp4/h264)
D:\Applis\ffmpeg\bin\ffmpeg -r 24 -i D:\temp\img-%04d.jpg -c:v h264 -b:v 2M -r 24 -s 640x360 D:\temp\out.mp4

Filtres vidéos

On peut traiter la qualité d'image, par exemple pour compenser une exposition. Cela peut être fait dans le cas d'un timelapse, ou d'une conversion de format d'une vidéo.

Les filtres sont invoqués avec l'option -vf. On peut en ajouter plusieurs -vf “filtre1, fitre2”.

Quelques filtres que j'ai utilisés:

# Exemples
 
# correction d'exposition +1,5 EV
ffmpeg  -r 24 -i folder/image%08d.jpg -c:v libx264 -b:v 8M -s 1280x720 -vf "exposure=1.5" out.mkv
 
# correction d'expo + hflip
ffmpeg  -r 24 -i folder/image%08d.jpg -c:v libx264 -b:v 8M -s 1280x720 -vf "exposure=1.5, hflip" out.mkv

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é, …).

Docs officielles avec les options et comment les utiliser et exemples de résultats d'algorithme

Exemples de commandes

# 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]
# 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

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

# dans un dossier ne contenant que des image_001.jpg à image_100.jpg et un dossier out/
mogrify -path out/ -auto-level *.jpeg
ffmpeg.txt · Dernière modification: 2023/10/14 09:26 de luc