使用 ffmpeg 从视频中提取帧——帧精确吗?

使用 ffmpeg 从视频中提取帧——帧精确吗?

我需要从视频中提取最高质量的帧。我将使用ffmpeg这边走:

ffmpeg -i source_vid.mp4 -ss 15:10.123 -to 15:11.249 frames/frame_%03d.png

我的问题:

  1. 是否会ffmpeg自动找到相对于时间的“适当”帧,或者如果时间没有准确地落在帧的时间上,-ss它将在两个帧之间“插入”吗?-ss
  2. 如果上述问题的答案是“插值”,我如何确保获得精确的“正确”帧而不是“插值”帧?

(如果我使用的术语不准确或不正确,我深感抱歉;请随意纠正我的术语)

谢谢你!

答案1

由于您已指定ssto作为输出选项,FFmpeg 将从文件开头生成所有帧,但会丢弃它们直到到达起始位置。将这些选项移至输入之前。

ffmpeg -ss 15:10.123 -to 15:11.249 -i source_vid.mp4 frames/frame_%03d.png

除非指定了过滤器,否则 FFmpeg 不会进行插值。

对于按索引精确提取帧,使用

ffmpeg -i source_vid.mp4 -vf trim=start_frame=n:end_frame=m frames/frame_%03d.png

相关内容