ffmpeg:提取具有指定间隔的帧时出现意外行为

ffmpeg:提取具有指定间隔的帧时出现意外行为

我需要从一段视频中获取间隔 30 秒的快照。网上推荐使用以下命令:

ffmpeg -i <video_file_path> -vf fps=1/30 <directory>/%04d.jpg

它可以工作,但与文件开头有 15 秒的偏移。使用不同的视频格式进行了测试:
- 预期:拍摄图像的时间为 30 秒 -> 1 分钟 -> 1 分 30 秒,等等;
- 实际结果:15 秒 -> 45 秒,等等。

我究竟做错了什么?

答案1

感谢 Gyan,我通过链接找到了解决方案。

有几个圆形的选项,可以与每秒帧数以下方式:

-vf fps=1/30:round=<value>

允许使用以下值:信息向下向上靠近

我在一段时长 1 分 46 秒的视频上测试了所有这些选项。结果:
-向下:30 秒、1 分、1 分 30 秒拍摄的图像 - 共 3 张图像;
-信息向上执行相同操作,添加视频最开始的一张快照 - 总共 4 张图像;
-靠近(默认值):15s、45s、1m 15s、1m 45s - 共 4 张图像。

准备使用或者向下,因为我没有发现任何差异而且结果正是我需要的。

更多信息请阅读此处:https://ffmpeg.org/ffmpeg-filters.html#fps-1

相关内容