制作每秒变化一次的文本的 gif

制作每秒变化一次的文本的 gif

我目前正在尝试重现像这样的 gif。

在此处输入图片描述

但我遇到的问题是,为了制作带有文本叠加的 gif,我会执行以下命令

ffmpeg -ss 30 -t 3 -i input.flv -i palette.png -filter_complex \
"fps=10,scale=320:-1:flags=lanczos,drawtext="fontfile=/path/to/font.ttf: \
 text='Stack Overflow': fontcolor=black: x=160: y=-1"[x];[x][1:v]paletteuse" output.gif

我知道 ffmpeg 提供字幕但我不确定这是否可以改变文本的位置以及让它每秒显示不同的文本。

我是否必须制作多幅图像并将它们粘贴在一起?

答案1

我搞明白了,ffmpeg 有一个between选项。因此,您可以按如下方式指定持续时间的绘制文本

ffmpeg -ss 30 -t 3 -i file.flv -filter_complex "fps=10,scale=720:-1:flags=lanczos,drawtext=enable='between(t,0,1)':fontfile=font3.ttf:text='word':fontsize=24:fontcolor=white:x=(w-tw)/2:y=(h/PHI)+th,drawtext=enable='between(t,1,2)':fontfile=font3.ttf:text='word what':fontsize=24:fontcolor=white:x=(w-tw)/2:y=(h/PHI)+th,split[x1][x2];[x1]palettegen[p];[x2][p]paletteuse" output.gif

相关内容