FFmpeg 在一系列帧上绘制文本

Arn*_*aud 2 ffmpeg draw drawtext

drawtext 选项有一个“draw”表达式,指定是否应绘制文本。 http://www.ffmpeg.org/ffmpeg-filters.html#drawtext-1

我发现我们可以使用以下表达式在特定帧上、之前或之后进行书写:

:draw='eq(n,42)', :draw='lt(n,42)', :draw='gt(n,42)'
Run Code Online (Sandbox Code Playgroud)

您知道如何组合两个表达式来写入文本,例如在第 10 帧和第 42 帧之间的每一帧上

我询问了 ffmpeg 并搜索了组合表达式的文档或示例。以下内容不起作用:

:draw='gt(n,10)&&lt(n,42)' -> crash
:draw='gt(n,10);lt(n,42)' -> only applies second expression
:draw='gt(n,10)':draw='lt(n,42)' -> only applies second expression
Run Code Online (Sandbox Code Playgroud)

我正在使用 ffmpeg 版本 0.8.6-4:0.8.6-0ubuntu0.12.04.1

提前致谢

Arn*_*aud 5

好的,我刚刚在 ffmpeg 论坛上找到了答案,并得到了 ffmpeg 开发人员的帮助。

两种表达方式都适合我:

draw='gt(n,10)*lt(n,42)'
draw='if(gt(n,10),lt(n,42))'
Run Code Online (Sandbox Code Playgroud)

更多信息在这里:http://ffmpeg.org/ffmpeg-all.html#Expression-Evaluation