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
This 答案对我学习如何使用 ffmepg 在视频中包含文本非常有用。现在在视频的一个位置,我想始终显示一段文字,但它发生了变化。所以我所做的是针对我使用的一个文本 enable='between(t,0,5)'
和下一个 enable='between(t,5,10)'
。现在,在 5 秒的帧处,视频显示了两个文本。那不是我想要的。我猜原因是 enable='between(t,0,5)'
包括区间的边界。所以我不知何故需要 ffmpeg 停止在一帧前显示第一个文本。我该怎么做?
使用“t>=t0 AND t 或者,如果您的视频是 cfr(恒定帧速率),则改用帧索引。例如,如果 fps=30,则 t=5 -> n=150 和 t=10 -> n=300。因此, 最后,你可以做一个hack-job: 您可以阅读更多关于 FFmpeg 表达式的内容 in the documentationenable='gte(t,0)*gt(t,5)'
enable='gte(t,5)*gt(t,10)'
enable='between(n,0,149)'
enable='between(n,150,300)'
enable='between(t,0,4.999)'