下一个drawtext清除前一个ffmpeg

Next drawtext clears the previous one ffmpeg

ffmpeg.exe -i ffmpeg_inputs/zheltiy_chelik.mp4  -vf "[in]drawtext=fonts/Temporarium.otf:text='r':fontcolor=orange:fontsize=100:x=(w-text_w)/2+0:y=0:enable='between(t,0, 11)', drawtext =fonts/Temporarium.otf:text = 'r':fontcolor=orange:fontsize=100:x=(w-text_w)/2+20:y=0:enable='between(t,11, 22)', drawtext =fonts/Temporarium.otf:text = 'r':fontcolor=orange:fontsize=100:x=(w-text_w)/2+40:y=0:enable='between(t,22, 33)'[out]" ffmpeg_outputs/test2.mp4 -y 

有这样的ffmpeg行。它的意思是每11秒在单词当前位置右边20个像素处画一个字母,这样“写单词”。但这就是问题所在——当第二个字母开始呈现时,它会覆盖第一个字母,而第三个字母会分别覆盖第二个字母。字符串似乎规定了[in]和[out]但没有帮助,也许有人有想法

如果我没理解错的话,你想要打字机效果。

您的三个 drawtext 过滤器具有不重叠的启用时间范围。为了达到效果,每个应该同时结束。

ffmpeg.exe -i ffmpeg_inputs/zheltiy_chelik.mp4 -vf "[in]drawtext=fonts/Temporarium.otf:text='r':fontcolor=orange:fontsize=100:x=(w-text_w)/2+0:y=0:enable='between(t,0, 33)', drawtext =fonts/Temporarium.otf:text = 'r':fontcolor=orange:fontsize=100:x=(w-text_w)/2+20:y=0:enable='between(t,11, 33)', drawtext =fonts/Temporarium.otf:text = 'r':fontcolor=orange:fontsize=100:x=(w-text_w)/2+40:y=0:enable='between(t,22, 33)'[out]" ffmpeg_outputs/test2.mp4 -y