将 RGBA 转换为 YUV420p ffmpeg libavcodec 的绿色色调色移

Green tint color shift converting RGBA to YUV420p ffmpeg libavcodec

我想知道有人可以提供帮助。我目前正在将 RBGA 位图转换为 YUV420p,然后使用 h264 编解码器对帧进行编码并将编码的数据包成功转储到文件中。

我还可以在 VLC 中播放 h264 视频文件。然而,似乎有一个颜色偏移更明显,灰色实际上是屏幕的浅色。我使用了一个动画视频作为我的示例,它应该在背景中显示蓝天,但是在转换图像之后,我得到了一个橙色的天空背景。请问我该如何解决这个问题?

你知道是否可以在调用 sws_scale 和编码数据包之前将 rgba 转换为 yuv 吗?

也许您忘记了指定 stride? 或者使用了错误的颜色格式? (BGRA、RGB 等)

我使用了错误的像素格式。

我应该使用 BGR24,但我使用的是 RGBA。在查看我最初将帧解码为位图并将其解码为 BGR24

之后,我意识到了这一点