我正在编写一个导出我捕获的视频(PAL SDI)的应用程序。原始颜色空间是UYVY(4:2:2)。当我将SWSCale转换为4:2:0并使用Avcodec进行编码时,我在字段之间获得颜色出血。我怀疑这是来自SWScale没有意识到被隔行界限的帧。以下是来自My导出的视频的Bob-de隔间帧的一部分示例,显示了其中一个字段:

正如您所看到的,颜色从另一个字段中出现。如何将其保留发生?我看过图书馆,并试图在Swscale中找到任何东西,告诉它尊重字段,但我还没有找到任何东西。

我将每个字段存储在单独的缓冲区中,因此我可以在手头前单独处理字段,如果这将有所帮助。

感谢您的任何帮助!

问候 Carl

编辑:基本上,我想要的是输出pal dv。我怀疑SWScale能够以某种方式产生这种类型的交错420,因为FFMPEG(应用程序)可以处理这个(我认为)。

有帮助吗?

解决方案

答案是执行两个SWScale操作,一个用于每个字段。您可以欺骗SWScale通过指定具有双倍的一半高度,然后按一行偏移第二个操作来使用相同的缓冲区。

我终于从libav-user列表中得到了答案。可以在mplayer / libmpcodecs / vf_scale.c和libavfilter / vf_scale.c

中找到示例代码

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top