visual Как изменить цветовую схему кадра, извлеченного с помощью библиотеки FFMPEG на C ++?

Мне удалось декодировать видеофайл с помощью FFMPEG, а также сохранить их в * .ppm файлах.

Я хотел бы знать, как я могу изменить цвет каждого кадра вскоре после декодирования и перед их сохранением?

Например: если у меня есть цветная рамка, которую я декодировал и извлекал из видеофайла, я бы хотел изменить ее на черно-белую рамку, а затем сохранить ее в файл.

Я довольно новичок в библиотеке FFMPEG и, кроме того, для разработчиков доступно более менее документации. Поэтому любая помощь в этом была бы весьма заметна.

Спасибо

0

Решение

Я был в состоянии преобразовать его в оттенки серого, используя метод sws_getContext.

Мой метод здесь:

mpFrameSwsContext = sws_getContext(mpAVCodecContext->width,
mpAVCodecContext->height, mpAVCodecContext->pix_fmt, mpAVCodecContext->width,
mpAVCodecContext->height, PIX_FMT_GRAY8, PIX_FMT_GRAY8 , NULL, NULL, NULL);

Но в итоге полученное изображение выглядит так, как показано ниже:

введите описание изображения здесь

Кто-нибудь может предложить какие-либо исправления?

Спасибо

0

Другие решения