Swscale色彩空间转换隔行帧?

3
我正在编写一个导出我所捕获的视频(PAL SDI)的应用程序。原始的颜色空间是uyvy(4:2:2)。当我使用swscale将帧转换为4:2:0并使用avcodec编码时,字段之间会出现色彩渗透。我怀疑这是由于swscale不知道帧是交错的。下面是我的导出视频中一部分鲍勃去隔行的帧示例,显示其中一个字段:
如您所见,颜色从另一个字段波及。我该如何避免发生这种情况?我查看了库,并尝试查找swscale中告诉它要尊重字段的任何内容,但我没有找到任何东西。
我将每个字段存储在单独的缓冲区中,因此如果可以,我可以预先处理每个字段。
感谢您对此问题的任何帮助!
问候 卡尔
编辑:基本上,我想要输出PAL DV。我怀疑swscale能够以某种方式生成这种类型的交错420,因为ffmpeg(应用程序)可以处理这种情况(我想)。
1个回答

3
答案是进行两个swscale操作,每个字段一个。您可以通过使用双倍步幅的一半高度来欺骗swscale使用相同的缓冲区,然后通过一行偏移第二个操作。
我最终从libav-user列表中得到了答案。示例代码可以在MPlayer / libmpcodecs / vf_scale.c和libavfilter / vf_scale.c中找到。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接