FFMpeg像动画一样绘制文本

时间:2018-10-13 09:54:44

标签: windows command-line ffmpeg

我正在尝试使用ffmpeg在视频上绘制文字。

文字为: “请等待,系统正在加载...”

这是我使用的代码:

ffmpeg -i "input.mp4" -vf drawtext="fontfile=1.ttf: \text='Please Wait, System Is Loading...': fontcolor=0x0080FF: fontsize=48: box=1: boxcolor=white@0.1: \boxborderw=5: x=(w-text_w)/2: y=(h-(text_h+25))" -codec:a copy "output.mp4"

效果很好,但是我喜欢的是使文本看起来像动画的: 因此,每0.5秒应更改为以下几行并循环:

请稍候,系统正在加载。

请稍等,系统正在加载。

请稍候,系统正在加载...

请稍候,系统正在加载...!

我知道我有可能只是想出如何:(

先谢谢 最好的问候

1 个答案:

答案 0 :(得分:0)

也许为时已晚,但解决方案在抽奖文字过滤器上可用enable='between(t, {start}, {end})'

您将必须通过单独的过滤器绘制每个文本,因此您将创建4个文本并将其添加到透明背景上:

-t 2 -i color=black@0:{size}, format=rgba -i your_video.mp4

-filter_complex "[0] drawtext=...:enable='between(t, 0, 0.5)', drawtext=...:enable='between(t, 0.501, 1)', ... [texts]"

彩色背景的持续时间设置为2秒钟(4个文本,每个0.5秒)。

然后您将其叠加在视频上:

[1] [texts] overlay={x}:{y}:eof_action=repeat [out]

然后映射您的输出流:

-map [out] -map 1:a {codecs}

通过这种方式,从过滤器中提取视频,并从视频中提取音频。