Swscale颜色空间转换隔行扫描框架?
-
13-12-2019 - |
题
我正在编写一个导出我捕获的视频(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
中找到示例代码不隶属于 StackOverflow