如何使用 ffmpeg 从视频中提取单个帧?
How do i extract individual frames from videos using ffmpeg?
我有一堆从 Youtube 下载的视频,我想从中提取帧。我当前使用的命令是:
ffmpeg -i input.mp4 -an -s qvga %06d.png
但我还想设置 -r 和 -t 选项。我希望 fps 是每个视频的 fps,持续时间是它们的持续时间。我知道如果我不设置 -r 选项,默认是 25 fps。
所以有人可以帮忙吗?如何添加 -r 和 -t 选项?有没有更好更准确的方法从视频中获取单个帧?非常感谢。
输出图像时不需要设置持续时间(-t
)或帧率(-r
)。默认情况下 ffmpeg
将输出所有图像。
其他说明:
如果你想限制持续时间,比如只想要前 3 秒的图像,那么使用 -t 3
.
如果要限制输出帧数,比如只想要前100帧,那么使用-frames:v 100
.
单张图片没有帧率。如果您添加 -r
,那么 ffmpeg
将在 -r
与输入帧速率不同的情况下重复或丢帧。省略 -r
将输出所有图像。
输出图片时不需要-an
使用 scale filter 比 -s
更灵活。它可以防止拉伸,因为它可以保持纵横比:-vf scale=320:-1
我有一堆从 Youtube 下载的视频,我想从中提取帧。我当前使用的命令是:
ffmpeg -i input.mp4 -an -s qvga %06d.png
但我还想设置 -r 和 -t 选项。我希望 fps 是每个视频的 fps,持续时间是它们的持续时间。我知道如果我不设置 -r 选项,默认是 25 fps。
所以有人可以帮忙吗?如何添加 -r 和 -t 选项?有没有更好更准确的方法从视频中获取单个帧?非常感谢。
输出图像时不需要设置持续时间(-t
)或帧率(-r
)。默认情况下 ffmpeg
将输出所有图像。
其他说明:
如果你想限制持续时间,比如只想要前 3 秒的图像,那么使用
-t 3
.如果要限制输出帧数,比如只想要前100帧,那么使用
-frames:v 100
.单张图片没有帧率。如果您添加
-r
,那么ffmpeg
将在-r
与输入帧速率不同的情况下重复或丢帧。省略-r
将输出所有图像。输出图片时不需要
-an
使用 scale filter 比
-s
更灵活。它可以防止拉伸,因为它可以保持纵横比:-vf scale=320:-1