我需要从视频中提取最高质量的帧。我将使用ffmpeg
这边走:
ffmpeg -i source_vid.mp4 -ss 15:10.123 -to 15:11.249 frames/frame_%03d.png
我的问题:
- 是否会
ffmpeg
自动找到相对于时间的“适当”帧,或者如果时间没有准确地落在帧的时间上,-ss
它将在两个帧之间“插入”吗?-ss
- 如果上述问题的答案是“插值”,我如何确保获得精确的“正确”帧而不是“插值”帧?
(如果我使用的术语不准确或不正确,我深感抱歉;请随意纠正我的术语)
谢谢你!
答案1
由于您已指定ss
和to
作为输出选项,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