J'utilise ffmpeg pour prendre un flux mjpeg à partir d'une caméra IP et le convertir en une série d'images jpeg fixes. Voici la commande que j'utilise:
ffmpeg -i http://xxx:[email protected]/vid.mjpg -f image2 -vcodec mjpeg %05d.jpg
Quelqu'un connaît-il un moyen de spécifier le niveau de compression jpg lors de l'utilisation de ffmpeg pour créer des images fixes?
-c:v copy -bsf:v mjpeg2jpeg
au lieu deq:v 1
.q
. Ici c'est 24.8 par exempleframe= 64 fps=5.0 q=24.8 Lsize=N/A time=00:00:16.00 bitrate=N/A dup=10 drop=299 speed=1.25x
$ ffmpeg -r 1/4 -i %03d.jpg -b 5000 -vcodec mjpeg -qscale 1 5000.avi
OU
$ ffmpeg -r 1/4 -i %03d.jpg -vcodec copy -qscale 1 copy.avi
Référence:
la source
Vous pouvez essayer d'exporter en PPM et utiliser un autre outil pour convertir en JPEG.
J'ai regardé dans ffmpeg / libavcodec / mjpeg.c. Je crois que la qualité est fixée à une valeur fixe.
Vous semblez également convertir une vidéo MJPEG en images fixes JPEG. Je pense que dans ce cas, le code dans ffmpeg / libavcodec / mjpeg2jpeg_bsf.c s'exécute et les données ne sont pas recodées. La qualité d'image ne s'améliorerait donc pas de toute façon.
Ceci est la définition de la table de quantification, je n'ai vu aucune référence à * val_? C où les valeurs ont été mises à l'échelle avant utilisation.
la source
-vcodec ppm
est nécessaire pour exporter ppm