问题描述
我正在从一系列标记为 img_00.png、img_01.png 等的 png 生成动画 gif。我想在从 png 生成的每一帧的动画 gif 的右上角插入文本以显示一些具体信息。例如说我有 3 个 png、img_00、img_01 和 img_02...我想要的 gif 是:
对于从 img_00 生成的帧,显示“This is from img_00”。 对于从 img_01 生成的帧,显示“This is from img_01”。 对于从 img_02 生成的帧,显示“这是从 img_02 生成的最后一张图像!”。
到目前为止,我一直在使用 drawtext 选项(假设 framerate=1):
ffmpeg -f image2 -framerate 1 -i img_%02d.png -filter_complex "drawtext=enable='between(t,1)':text='word1':fontsize=24:fontcolor=white:x=w-tw:y=0,drawtext=enable='between(t,1,2)':text='word2':fontsize=24:fontcolor=white:x=w-tw:y=0" out.gif
但我得到“word1”和“word2”重叠在一起。是否有更好的方法来执行此操作或以某种方式修复绘图文本,以免发生重叠?
解决方法
between(t,1)
和 between(t,1,2)
将重叠 t=1
。应该调整第一个范围的结束时间或第二个范围的开始时间,例如您可以将第一个范围设为 between(t,0.9)
。