Actuellement, j’utilise cette commande pour extraire les images:
ffmpeg.exe -i 10fps.h264 -r 10 -f image2 10fps.h264_% 03d.jpeg
Mais comment puis-je améliorer la qualité d’image JPEG?
-qscale:v
Utilisez -qscale:v
(ou l’alias -q:v
) en tant qu’option de sortie. La scope effective pour JPEG est de 2 à 31, 31 étant la qualité la plus mauvaise. Je recommande d’essayer des valeurs de 2-5.
Vous pouvez append -huffman optimal
pour une diminution faible mais mesurable de la taille du fichier de sortie.
ffmpeg -i input.mp4 -qscale:v 2 output_%03d.jpg
ffmpeg -ss 60 -i input.mp4 -qscale:v 4 -frames:v 1 -huffman optimal output.jpg
Cela fonctionnera avec n’importe quelle entrée vidéo. Voir ci-dessous si votre entrée est MJPEG.
Si vous entrez MJPEG (Motion JPEG), les images peuvent être extraites sans aucune perte de qualité.
La sortie de la console ffmpeg
ou ffprobe
peut vous indiquer si votre entrée est MJPEG:
$ ffprobe -v error -select_streams v:0 -show_ensortinges stream=codec_name -of default=nw=1 input.avi codec_name=mjpeg
Ensuite, vous pouvez extraire les images en utilisant le filtre bitstream mjpeg2jpeg
:
$ ffmpeg -i input.avi -codec:v copy -bsf:v mjpeg2jpeg output_%03d.jpg