2

我正在尝试通过检测帧中是否存在标记(图像)来分割视频。我已经查看了文档,我看到removelogo但没有detectlogo

有谁知道如何做到这一点?我知道徽标是什么以及它将位于的区域。

我在想我可以将所有帧提取到 png 中,然后一一分析(或 n × n),但这可能是一个漫长的过程......

任何指针?

4

2 回答 2

3

ffmpeg 本身没有任何这样的能力。过滤器的delogo工作原理是在其参数中取一个矩形区域并根据其周围环境对该区域进行插值。它不关心该区域以前包含什么;不管它以前包含什么,它都会填充该区域。

如果您需要检测徽标的存在,那是完全不同的任务。您需要自己创建它;如果您对此很认真,我建议您开始熟悉 ffmpeg 过滤器 API 并准备好动手。如果徽标具有独特的颜色,那可能是检测它的好方法。

由于您所追求的可能只是输出有关哪些帧包含(或不包含)徽标的信息,因此作为模型查看的一个过滤器将是blackframe过滤器(搜索全黑帧)。

于 2012-07-13T21:53:19.900 回答
2

您可以编写一个检测徽标模块,解码视频(YUV 420P 格式),将原始帧提供给该模块,在您期望徽标的区域执行 SAD(绝对差和),如果 SAD 可以忽略不计,则匹配,记录帧号。您可以在这些帧处分割视频。SAD 仅在 Y(luma) 帧上完成。为了节省处理,您可以在解码之前将视频缩放到较低的分辨率。

于 2012-07-15T01:29:34.530 回答