如何使用ffmpeg按时间将文本添加到视频中

5

我使用以下命令创建幻灯片:

"ffmpeg" -f concat -safe 0 -i /path/to/text.txt -i /path/to/audio.mp3 -vsync vfr -pix_fmt yuv420p /path/to/output.mp4

text.txt的内容

file '/path/to/img1.jpg'
duration 6
file '/path/to/img2.jpg'
duration 6
file '/path/to/img3.jpg'
duration 6
file '/path/to/img4.jpg'
duration 6
file '/path/to/img5.jpg'
duration 6
file '/path/to/img6.jpg'
duration 6

视频已经成功创建。现在我想为每个显示的图像添加标题。例如:
  • img1.jpg 显示,显示标题 Title 1
  • img2.jpg 显示,显示标题 Title 2
  • img3.jpg 显示,显示标题 Title 3
我搜索了很多但没有找到解决方案。任何人能帮帮我吗?我卡住了。
1个回答

6

您需要添加级联的drawtext过滤器。

-vf "drawtext=text='Title1':enable='between(t,0,6)',
     drawtext=text='Title2':enable='between(t,6,12)',
     drawtext=text='Title3':enable='between(t,12,18)'"

请查看drawtext文档了解所有选项。您需要指定字体文件、字体颜色、字体大小以及x和y坐标。


我尝试了演示,看起来不错。但是文字重叠了。你有什么想法吗? - Thanh Dao
重叠还是临时? - Gyan
视频的完整时长。下一行文字重叠上一行。 - Thanh Dao
Title3 与 Title1 重叠了吗? - Gyan
哎呀兄弟,所有的行文本都重叠在一起了 :( - Thanh Dao
您可能需要在第一个drawtext之前添加fps = 25来生成视频CFR。-- 或者 -- 更改时间表达式为enable ='eq(n,0)'等等。 - Gyan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接