如何在使用ffmpeg将图像转换为gif时设置帧延迟

时间:2018-11-22 20:00:26

标签: ffmpeg gif encode

我想将图像序列转换为gif,并且希望每个帧持续一定的时间,但是我找不到如何执行此操作的示例。

我知道此基本命令有效

ffmpeg -y -i %0d_Frame.jpg output.gif

但是如何让每个帧停留1秒钟?

2 个答案:

答案 0 :(得分:0)

使用 ffmpeg 创建 gif 的关键管理帧延迟很简单:setpts

在我的代码中,我将 mp4 文件转换为 gif。

ffmpeg -y -i "input.mp4" -filter_complex "[0:v]fps=5,split[a][b];[b]palettegen[p];[a][p]paletteuse,setpts=0.5*PTS[v]" -map '[v]' "output.mp4"

使用 fps,我们选择了多少帧以及我们为 gif 使用的帧数

通过setpts,我们选择了帧之间的延迟。 0.5 将帧之间的延迟减少到原始文件 (input.mp4) 中的一半

答案 1 :(得分:-1)

答案很简单: ffmpeg -framerate X -y -i %0d_Frame.jpg output.gif

命令的顺序很重要,我一直将-framerate放在-y -i之后,但这种方式行不通。