Potresti provare ad esportare in PPM e usare qualche altro strumento per convertire in JPEG.
Ho esaminato ffmpeg / libavcodec / mjpeg.c. Credo che la qualità sia impostata su un valore fisso.
Inoltre ti sembra di convertire un video MJPEG in fotogrammi fissi JPEG. Penso che in questo caso il codice in ffmpeg / libavcodec / mjpeg2jpeg_bsf.c venga eseguito e i dati non vengano ricodificati. Quindi la qualità dell'immagine non migliorerebbe comunque.
Questa è la definizione della tabella di quantizzazione, non ho visto alcun riferimento a * val_? C dove i valori sono stati ridimensionati prima dell'uso.
/* 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
invece diq:v 1
.