FFMPEG-将视频转换为图像

hac*_*ack 24 ffmpeg

如何使用ffmpeg将视频转换为图像?示例am具有总持续时间为60秒的视频.我希望图像在不同的持续时间之间,如2-6秒,然后在15-24秒之间,依此类推.这可能使用ffmpeg吗?

Gya*_*yan 24

您可以将选择过滤器用于一组自定义范围:

ffmpeg -i in.mp4 -vf select='between(t,2,6)+between(t,15,24)' -vsync 0 out%d.png
Run Code Online (Sandbox Code Playgroud)

  • 使用`-vf fps=5,select='between(t,2,6)+between(t,15,24)'` (2认同)
  • 另外,我可以提到使用“ss”过滤器设置的多个持续时间吗?`ffmpeg -ss 10 -i video.mp4 -to 12 -copyts -vf fps=1 v2f/out%d.png` 这将创建 10 秒到 12 秒的图像。我可以在这里设置多个持续时间吗? (2认同)
  • 用于输出图像序列的image2混合器默认为CFR。因此,当给定帧的时间戳差异大于1 / fps时,ffmpeg将复制帧以保持CFR。这里将发生在选择t = 6帧和t = 15帧之间时,“ vsync 0”阻止了这种情况。 (2认同)

Vit*_*nko 19

官方ffmpeg文档:每隔X秒创建一个缩略图图像

每秒输出一个图像:

ffmpeg -i input.mp4 -vf fps=1 out%d.png
Run Code Online (Sandbox Code Playgroud)

每分钟输出一张图片:

ffmpeg -i test.mp4 -vf fps=1/60 thumb%04d.png
Run Code Online (Sandbox Code Playgroud)

每10分钟输出一幅图像:

ffmpeg -i test.mp4 -vf fps=1/600 thumb%04d.png
Run Code Online (Sandbox Code Playgroud)

  • `fps = 1/600`每隔十分钟指定一个图像.每分钟一张图像使用`fps = 1/60` (3认同)