Сдвиг зеленого оттенка, преобразование RGBA в YUV420p ffmpeg libavcodec
Мне было интересно, кто-то может помочь. В настоящее время я занимаюсь преобразованием растровых изображений RBGA в YUV420p перед тем, как кодировать кадры с помощью кодека h264 и успешно выгружать закодированные пакеты в файл.
Я также могу воспроизвести видеофайл h264 в VLC. Тем не менее, кажется, что есть цветовой сдвиг, который более очевиден, когда серый на самом деле светлый оттенок экрана. В качестве примера я использовал анимационное видео, которое должно показывать голубое небо на заднем плане, однако после преобразования изображения я получаю оранжевый фон неба. У вас есть идеи, как я могу это исправить, пожалуйста?
Вы случайно не знаете, возможно ли преобразовать rgba в yu, ДО вызова sws_scale и перед кодированием пакета?
2 ответа
Я использовал неправильный формат пикселей.
Я должен был использовать BGR24, но я использовал RGBA. Я понял это после того, как посмотрел, как я первоначально декодировал кадр в растровое изображение, и он был декодирован как BGR24.
Может быть, вы забыли указать stride
? Или использовал неправильный формат цвета? (BGRA, RGB и т. Д.)