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.
/* Set up the standard Huffman tables (cf. JPEG standard section K.3) */
/* IMPORTANT: these are only valid for 8-bit data precision! */
const uint8_t ff_mjpeg_bits_dc_luminance[17] =
{ /* 0-base */ 0, 0, 1, 5, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0 };
const uint8_t ff_mjpeg_val_dc[12] =
{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 };
const uint8_t ff_mjpeg_bits_dc_chrominance[17] =
{ /* 0-base */ 0, 0, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0 };
const uint8_t ff_mjpeg_bits_ac_luminance[17] =
{ /* 0-base */ 0, 0, 2, 1, 3, 3, 2, 4, 3, 5, 5, 4, 4, 0, 0, 1, 0x7d };
const uint8_t ff_mjpeg_val_ac_luminance[] =
{ 0x01, 0x02, 0x03, 0x00, 0x04, 0x11, 0x05, 0x12,
-c:v copy -bsf:v mjpeg2jpeg
au lieu deq:v 1
.