![如何使用 ffmpeg 提取具有特定 fps 和缩放比例的帧](https://linux22.com/image/899584/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%20ffmpeg%20%E6%8F%90%E5%8F%96%E5%85%B7%E6%9C%89%E7%89%B9%E5%AE%9A%20fps%20%E5%92%8C%E7%BC%A9%E6%94%BE%E6%AF%94%E4%BE%8B%E7%9A%84%E5%B8%A7.png)
我想提取 fps=25 的帧并将帧重新缩放为 320x240。
我已尝试过:
ffmpeg -i video.avi -vf scale="320x240" fps=25 frames/c01_%04d.jpeg
它返回fps=25: Invalid argument
但是当我使用 fps 或 scale 运行它时它可以工作。
ffmpeg -i video.avi -vf scale="320x240" frames/c01_%04d.jpeg
或者
ffmpeg -i video.avi -vf fps=25 frames/c01_%04d.jpeg
可以了。如何使用 scale 和 fps 过滤器运行 ffmpeg?
答案1
使用逗号连接简单的过滤器:
ffmpeg -i video.avi -vf "scale=320:240,fps=25" frames/c01_%04d.jpeg
每秒帧数
使用 fps 过滤器提取帧时请注意,如果输入帧速率:
与 fps 值相同,则过滤器不执行任何操作,您可以将其删除。
高于 fps 值,则将省略一些帧以匹配 fps 值。如果是这种情况,则在缩放之前使用 fps,过程将更快。
低于 fps 值,则一些帧将被复制以匹配 fps 值。
如果你想要简单地提取全部然后删除帧数过滤器。
规模
考虑只声明宽度或者高度并使用-1
作为另一个的值,例如320:-1
或-1:240
。这样做将允许过滤器自动选择适当的值,同时保留纵横比。这将防止输出图像纵横比的拉伸。