ffmpeg:几秒钟后的新文本,一帧没有同时出现两个文本

ffmpeg: New text after a few seconds without having both texts at the same time for one frame

This 答案对我学习如何使用 ffmepg 在视频中包含文本非常有用。现在在视频的一个位置,我想始终显示一段文字,但它发生了变化。所以我所做的是针对我使用的一个文本 enable='between(t,0,5)' 和下一个 enable='between(t,5,10)'。现在,在 5 秒的帧处,视频显示了两个文本。那不是我想要的。我猜原因是 enable='between(t,0,5)' 包括区间的边界。所以我不知何故需要 ffmpeg 停止在一帧前显示第一个文本。我该怎么做?

使用“t>=t0 AND t

enable='gte(t,0)*gt(t,5)'
enable='gte(t,5)*gt(t,10)'

或者,如果您的视频是 cfr(恒定帧速率),则改用帧索引。例如,如果 fps=30,则 t=5 -> n=150 和 t=10 -> n=300。因此,

enable='between(n,0,149)'
enable='between(n,150,300)'

最后,你可以做一个hack-job:

enable='between(t,0,4.999)'

您可以阅读更多关于 FFmpeg 表达式的内容 in the documentation