我如何使用 ffmpeg 提取具有特定 fps 和缩放比例的帧

eri*_*don 2 video ffmpeg

我想以 fps=25 提取帧,并将帧重新缩放为 320x240。

我尝试过的:

ffmpeg -i video.avi -vf scale="320x240" fps=25   frames/c01_%04d.jpeg
Run Code Online (Sandbox Code Playgroud)

它返回 fps=25: Invalid argument

但是当我使用 fps 或 scale 运行它时,它可以工作。

ffmpeg -i video.avi -vf scale="320x240"    frames/c01_%04d.jpeg
Run Code Online (Sandbox Code Playgroud)

或者

ffmpeg -i video.avi -vf  fps=25   frames/c01_%04d.jpeg
Run Code Online (Sandbox Code Playgroud)

有用。如何使用比例和 fps 过滤器运行 ffmpeg?

llo*_*gan 7

用逗号连接简单的过滤器:

ffmpeg -i video.avi -vf "scale=320:240,fps=25" frames/c01_%04d.jpeg
Run Code Online (Sandbox Code Playgroud)

帧率

使用 fps 过滤器提取帧时请注意,如果输入帧速率:

  • 与 fps 值相同,则过滤器不执行任何操作,您可以将其删除。

  • 高于 fps 值,则将省略某些帧以匹配 fps 值。如果是这种情况,那么在缩放之前使用 fps,过程会更快。

  • 低于 fps 值,则将复制一些帧以匹配 fps 值。

如果您只想提取所有帧,请删除 fps 过滤器。

规模

考虑仅声明 widthheight 并将其-1用作另一个的值,例如320:-1or -1:240。这样做将允许过滤器自动选择适当的值,同时保留纵横比。这将防止拉伸输出图像纵横比。

JPEG格式

使用-q:v-qscale:v来控制质量