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?
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?
Réponses:
-qscale:vUtilisez -qscale:v(ou l'alias -q:v) comme option de sortie. La plage effective pour JPEG est de 2 à 31, 31 étant la plus mauvaise qualité. Je recommande d'essayer des valeurs de 2 à 5.
ffmpeg -i input.mp4 -qscale:v 2 output_%03d.jpg
ffmpeg -ss 60 -i input.mp4 -qscale:v 4 -frames:v 1 output.jpg
Cela fonctionnera avec n'importe quelle entrée vidéo. Voyez ci-dessous si votre entrée est MJPEG.
Si votre entrée est MJPEG (Motion JPEG), les images peuvent être extraites sans aucune perte de qualité.
La sortie de la console ffmpegou ffprobepeut vous dire si votre entrée est MJPEG:
$ ffprobe -v error -select_streams v:0 -show_entries stream=codec_name -of default=nw=1 input.avi
codec_name=mjpeg
Ensuite, vous pouvez extraire les trames à l'aide du mjpeg2jpegfiltre de flux binaire :
$ ffmpeg -i input.avi -codec:v copy -bsf:v mjpeg2jpeg output_%03d.jpg
-qmin 1 -qmax 1en plus a -q:v 1doublé la taille du fichier. Et je peux sembler voir une très légère amélioration également.
-qmin 1 -qmax 1un fichier plus volumineux, mais me donne exactement la même image. J'ai validé cela via photoshop, 2 couches et filtre de différence. Les pixels sont les mêmes.
-qmin 1 -q:v 1.
Sortez les images dans un format sans perte tel que PNG:
ffmpeg.exe -i 10fps.h264 -r 10 -f image2 10fps.h264_%03d.png
Ensuite, utilisez un autre programme (où vous pouvez spécifier plus précisément la qualité, le sous-échantillonnage et la méthode DCT - par exemple GIMP) pour convertir les PNG que vous voulez en JPEG.
Il est possible d'obtenir des images légèrement plus nettes au format JPEG de cette manière que ce qui est possible avec -qmin 1 -q:v 1et de sortir directement au format JPEG à partir de ffmpeg.
ffmpeggénère des PNG8fichiers qui n'utilisent que 256 couleurs (comme GIF). donc c'est en fait très perdant.
ffmpegcommande [ ], j'obtiens des png de haute qualité qui sont de qualité identique à la vidéo originale." Quelle version de ffmpegutilisez-vous pour générer des PNG8fichiers et quel est votre format d'entrée?
identify image.pngdonne un résultat "8 bits" alors qu'en fait ce n'est pas vraiment un canal unique de 8 bits, mais 8 bits pour R, G et B. IDK comment l' identifyutilisateur moyen est censé comprendre que tho.