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 是您的间隔,以帧为单位。
我正在开发一种工具,我可以用它快速制作较长的电影的超级剪辑。
我正在使用 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 是您的间隔,以帧为单位。