【发布时间】:2019-04-25 12:25:48
【问题描述】:
我想将图像序列转换为 gif,并且希望每一帧持续一定的时间,但我找不到如何执行此操作的示例。
我知道这个基本命令有效
ffmpeg -y -i %0d_Frame.jpg output.gif
但是我怎样才能让每一帧停留 1 秒呢?
【问题讨论】:
我想将图像序列转换为 gif,并且希望每一帧持续一定的时间,但我找不到如何执行此操作的示例。
我知道这个基本命令有效
ffmpeg -y -i %0d_Frame.jpg output.gif
但是我怎样才能让每一帧停留 1 秒呢?
【问题讨论】:
答案很简单:
ffmpeg -framerate X -y -i %0d_Frame.jpg output.gif
命令的顺序很重要,我一直将-framerate 放在-y -i 之后,但它不起作用。
【讨论】:
使用 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)中的一半
【讨论】: