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

如您所见,颜色从另一个字段中渗出。我如何防止这种情况发生?我已经查看了这个库,并试图在swscale中找到任何告诉它要尊重字段的内容,但我什么也没找到。
我将每个字段存储在单独的缓冲区中,因此如果有帮助,我可以提前单独处理这些字段。
感谢大家在这方面的帮助!
致敬卡尔
编辑:基本上,我想要的是输出PAL DV。我怀疑swscale能够以某种方式产生这种类型的交错420,因为ffmpeg (应用程序)可以处理这(我认为)。
发布于 2012-05-29 15:45:14
答案是执行两个swscale操作,每个字段一个。您可以欺骗swscale使用相同的缓冲区,方法是用两倍的步幅指定高度的一半,然后将第二个操作偏移一行。
我终于从libav-user列表中得到了答案。示例代码可以在MPlayer/libmpcodecs/vf_scale.c和libavfilter/vf_scale.c中找到
https://stackoverflow.com/questions/9681059
复制相似问题