ffmpeg 场景检测:只检查每第 n 帧?

ffmpeg scene detection: check only every nth frame?

我正在开发一种工具,我可以用它快速制作较长的电影的超级剪辑。

我正在使用 ffmpeg 场景检测来像这样分割场景(然后在 Python 中解析输出):

ffmpeg -i "video.mp4" -filter_complex "select='gt(scene,0.3)',metadata=print:file=_ffScenes.txt" -vsync vfr scn_%%03d.jpg

很多片子都有淡化,是场景检测的问题。

我不需要准确性,分析 1 fps 处的文件就足够了。我试图将输入帧速率降低到 1 fps,但场景检测仍然检查每一帧。这怎么可能?

谢谢!

将两个 select 过滤器链接在一起,

ffmpeg -i "video.mp4" -filter_complex "select='not(mod(n,X))',select='gt(scene,0.3)',metadata=print:file=_ffScenes.txt" -vsync vfr scn_%%03d.jpg

其中 X 是您的间隔,以帧为单位。