在 FFMPEG 中合并 RGB 通道

在 FFMPEG 中合并 RGB 通道

我有三个灰度视频,分别代表视频中的红色、绿色和蓝色通道。我使用extractplanes过滤器提取它们,然后将它们发送到不同的管道。

现在我想再次将它们结合起来。但是虽然extractplanes它工作得很好,mergeplanes但不是。我最初的尝试是这样的:

[r][g][b] mergeplanes=0x001020 [output]

这会将我的 RGB 通道解释为 YUV,这不是我想要的。我的下一次尝试是这样的:

[r][g][b] mergeplanes=0x001020:rgb24 [output]

但根据错误信息,Only planar formats with more than one component are supported.(我尝试的所有其他 RGB 和 RGBA 像素格式都一样。)

还有其他方法可以将这些通道重新组合在一起吗?或者有其他方法可以输出mergeplanesRGB?

答案1

正如错误消息所示,mergeplanes只能以平面格式输出:即,所有第一分量值放在一起,然后所有第二分量值放在一起,依此类推。FFMPEG 的 RGB 格式是非平面的:它们按像素而不是按分量对值进行分组。因此mergeplanes无法使用它们。

但是,FFMPEG 支持 GBRP(绿-蓝-红平面)格式。因此您可以mergeplanes导出到该格式,然后从那里转换为 RGB。只需更改组件的顺序即可。

相关内容