ffmpeg的 - 如何移动覆盖/文本命令?(ffmpeg - how does moving ov

2019-06-25 13:19发布

在ffmpeg的可以创建移动文本:

ffmpeg -y -t 10 -s qcif -f rawvideo -pix_fmt rgb24 -s 1280x720 -i /dev/zero -g 1 -r 24 -vf drawtext="fontfile=~/fonts/Trebuchet_MS.ttf:text='thing crawls':fontsize=155:fontcolor=red:y=h-20*t" wow.mpg

因此,这会给我的“东西爬网”慢慢地从下往上去黑框..

如果我知道视频(20秒)的长度和希望,例如打造“东西落在”即开始在屏幕的顶部在时间0和转到屏幕的底部,直到00:00:20,如何我该怎么办呢?

还可以创建的情况下,文本将开始从顶部到底部,但在屏幕的中间停下来?

Answer 1:

ffmpeg的文档给您必须使用DrawText的过滤器时与工作变量的完整列表,但对于移动文本有一些特别关注的:

'N'
输入帧的数量,从0开始

'T'
时间戳以秒表示,NAN如果输入时间戳是未知

有了这些,你可以设置在相对于多少帧已经看到的文本位置。 这就是在y=h-20*t在你的例子表达在做什么。 如t增加,文本移近视频的顶部, h-20*t减小。

为了让你的榜样“的事瀑布”,你会希望有一个长期像20*t代替。 因为y位置从0在视频的顶部开始,因为t增加,它会向下移动屏幕。

对于在屏幕中间停止的文字,你很可能做一些花哨的数学,或者只是使用FFmpeg的丰富的逻辑功能 。 喜欢的东西y=t*20*lte(t*20,h/2) + h/2*gt(t*20,h/2)其中当移动文本t*20是不到一半的高度,然后保持所述y在位置h/2一旦t*20是一半以上的高度。



文章来源: ffmpeg - how does moving overlay / text command work?
标签: video ffmpeg