在 ffmpeg 渲染的视频中,红色和绿色通道被交换

在 ffmpeg 渲染的视频中,红色和绿色通道被交换

我正在使用类似的代码将 OpenGL 图像数据直接传送到 ffmpeg。我使用这个 readpixels 调用:

qglReadPixels( 0, 0, glConfig.vidWidth, glConfig.vidHeight, GL_RGB, GL_UNSIGNED_BYTE, 0 );

但是我必须使用 GL_RGB 而不是 GL_RGBA。在 ffmpeg 命令行中,我相应地将 RGBA 更改为 RGB24。但是,输出视频颜色通道混乱(红色与绿色交换)。我似乎找不到任何 GRB 颜色格式,那么是否有某种方法可以在 ffmpeg 中使用 交换红色和绿色通道colorchannelmixer

编辑:这将涉及将 RR 设置为 0、将 RG 设置为 1、将 GG 设置为 0、将 GR 设置为 1?其语法是什么?

谢谢。

答案1

假设只需要交换红色和绿色通道,使用

colorchannelmixer=rr=0:rg=1:gr=1:gg=0

相关内容