Как установить ffmpeg qscale в C / C ++ для кодирования изображений - PullRequest
0 голосов
/ 20 сентября 2018

У меня есть рабочий кодировщик изображений в C ++, использующий ffmpeg в качестве бэкэнда.Я снимаю видео и сохраняю кадры в формате jpeg, но у меня возникают трудности с настройкой качества выходного JPEG.
Что я пробовал:
Настройка AVCodecContext '* global_quality и compression_level полей.
Я также пытался установить qscale с AVDictionary опциями, но там тоже не получилось.

Я знаю, что это возможно, потому что с помощью командной строки я могу
ffmpeg -i INPUT -q:v 2 output_frame_%02d.jpg и получать изображения более высокого качества.

1 Ответ

0 голосов
/ 20 сентября 2018

Опция командной строки -q влияет на две вещи

    enc_ctx->flags |= AV_CODEC_FLAG_QSCALE;
    enc_ctx->global_quality = FF_QP2LAMBDA * qscale;

, где enc_ctx - AVCodecContext для выходного потока, а FF_QP2LAMBDA - 118

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...