3

我正在编写一个应用程序来导出我捕获的视频(PAL SDI)。原始色彩空间是 uyvy (4:2:2)。当我使用 swscale 将帧转换为 4:2:0 并使用 avcodec 进行编码时,我会在字段之间出现颜色溢出。我怀疑这是因为 swscale 没有意识到帧被隔行扫描。以下是我导出的视频中显示其中一个字段的 bob-deinterlaced 帧的一部分示例:

场间渗色

如您所见,颜色从另一场渗出。我如何防止这种情况发生?我查看了图书馆并试图在 swscale 中找到任何告诉它尊重字段的东西,但我没有找到任何东西。

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

感谢您对此的任何帮助!

问候卡尔

编辑:基本上,我想要的是输出 PAL DV。我怀疑 swscale 能够以某种方式产生这种类型的隔行扫描 420,因为 ffmpeg(应用程序)可以处理这个(我认为)。

4

1 回答 1

3

答案是进行两次 swscale 操作,每个字段一次。您可以通过以两倍的步幅指定一半的高度,然后将第二个操作偏移一行来欺骗 swscale 使用相同的缓冲区。

我终于从 libav-user 列表中得到了答案。示例代码可以在 MPlayer/libmpcodecs/vf_scale.c 和 libavfilter/vf_scale.c 中找到

于 2012-05-29T07:45:13.840 回答