1

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

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

:draw='eq(n,42)', :draw='lt(n,42)', :draw='gt(n,42)'

你知道如何组合两个表达式来编写文本,例如,在第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

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

提前致谢

4

1 回答 1

2

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

这两种表达方式对我来说都很好:

draw='gt(n,10)*lt(n,42)'
draw='if(gt(n,10),lt(n,42))'

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

于 2013-07-10T13:45:57.327 回答