如何从使用ffmpeg的视频中提取单个帧?

问题描述:

我有一堆从Youtube下载的视频,我想从中提取帧。我正在使用的当前命令是:如何从使用ffmpeg的视频中提取单个帧?

ffmpeg -i input.mp4 -an -s qvga %06d.png 

但我也想设置-r和-t选项。我希望fps是每个视频的fps,持续时间是他们的持续时间。我知道如果我不设置-r选项,默认值是25fps。

有人可以帮忙吗?如何添加-r和-t选项?有没有更好更准确的方法来从视频中获取单个帧?非常感谢。

输出图像时无需设置持续时间(-t)或帧频(-r)。默认情况下,ffmpeg将输出所有图像。

其他说明:

  • 如果要限制时间,如只从第一3秒想要的图像,然后使用-t 3

  • 如果您想限制输出帧的数量,例如只想要前100帧,请使用-frames:v 100

  • 单个图像没有帧速率。如果您添加-r,则ffmpeg将复制或丢弃帧,如果-r与输入帧速率不同。省略-r将输出所有图像。

  • 输出图像时不需要。

  • 使用scale filter-s更灵活。它可以防止拉伸,因为它可以保持长宽比:-vf scale=320:-1

+0

非常感谢@LordNeckbeard,它真的拯救了我的一天。你的回答很明确,很有帮助,我很感激。 – yzhu

+0

@yzhu很高兴知道它有帮助。您可以[接受答案](http://*.com/help/someone-answers),以便其他人知道找到了合适的解决方案。 – LordNeckbeard