FFmpeg在一系列帧上绘制文字

时间:2013-07-10 13:27:05

标签: 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)'

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

我已经问过ffmpeg并搜索doc或者示例来组合表达式。以下不起作用:

: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

提前致谢

1 个答案:

答案 0 :(得分:2)

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

这两个表达对我来说都很好:

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

此处有更多信息:http://ffmpeg.org/ffmpeg-all.html#Expression-Evaluation