Сдвиг зеленого оттенка, преобразование RGBA в YUV420p ffmpeg libavcodec

Мне было интересно, кто-то может помочь. В настоящее время я занимаюсь преобразованием растровых изображений RBGA в YUV420p перед тем, как кодировать кадры с помощью кодека h264 и успешно выгружать закодированные пакеты в файл.

Я также могу воспроизвести видеофайл h264 в VLC. Тем не менее, кажется, что есть цветовой сдвиг, который более очевиден, когда серый на самом деле светлый оттенок экрана. В качестве примера я использовал анимационное видео, которое должно показывать голубое небо на заднем плане, однако после преобразования изображения я получаю оранжевый фон неба. У вас есть идеи, как я могу это исправить, пожалуйста?

Вы случайно не знаете, возможно ли преобразовать rgba в yu, ДО вызова sws_scale и перед кодированием пакета?

2 ответа

Решение

Я использовал неправильный формат пикселей.

Я должен был использовать BGR24, но я использовал RGBA. Я понял это после того, как посмотрел, как я первоначально декодировал кадр в растровое изображение, и он был декодирован как BGR24.

Может быть, вы забыли указать stride? Или использовал неправильный формат цвета? (BGRA, RGB и т. Д.)

Другие вопросы по тегам