使用 MLT 框架向视频添加文本

Adding text to videos using MLT Framework

我正在使用 MLT 框架渲染视频,但无法使用代码中包含的演示成功添加文本。

当我执行 mlt_my_name_is 演示时,我收到以下错误:

./mlt_my_name_is 
Failed to load "+My name is Inigo Montoya.txt"
Failed to load "+Prepare to die!.txt"
Failed to load "+You killed my father.txt"
Failed to load "+My name is Inigo Montoya.txt"
Failed to load "+Prepare to die!.txt"
Failed to load "+You killed my father.txt"
+-----+ +-----+ +-----+ +-----+ +-----+ +-----+ +-----+ +-----+ +-----+
|1=-10| |2= -5| |3= -2| |4= -1| |5=  0| |6=  1| |7=  2| |8=  5| |9= 10|
+-----+ +-----+ +-----+ +-----+ +-----+ +-----+ +-----+ +-----+ +-----+
+---------------------------------------------------------------------+
|               H = back 1 minute,  L = forward 1 minute              |
|                 h = previous frame,  l = next frame                 |
|           g = start of clip, j = next clip, k = previous clip       |
|                0 = restart, q = quit, space = play                  |
+---------------------------------------------------------------------+
Current Position:         49

特别是,文档指出,当对 .txt 文件的引用以 + 开头时,应直接解释文本,但该工具似乎正在尝试加载一个不存在的文件。

其次,我找不到有关文本放置和格式设置的扩展文档。 ProducerPango references a document at https://developer.gnome.org/doc/API/2.0/pango/PangoMarkupFormat.html 的文档,但是这个 URL returns 是 404。任何人都可以指出 Pango 生产者的更新文档或具有相同目的的不同生产者吗?

您没有可用的 gtk2 或 qt 模块。这很可能是因为您自己编译了它并且没有安装相应的 -dev 或 -devel 包。请参阅网站上有关 运行 和 build scripts. You can also install Shotcut 的(有些过时)依赖项的页面,并使用 运行 Shotcut 附带的熔体。app/melt(不是 bin/melt).

MLT 可以使用 pango 或 qtext 生产者来响应 +....txt 输入。作为最后的手段,尝试基于 FFmpeg 的 avformat 生产者的所有输入。当没有生产者接受输入时,melt 只报告你看到的消息。它确实未能加载您指定的输入;它不需要澄清它认为您的输入是文件名、URL 还是标记。

可以使用任何网络搜索引擎轻松找到 pango markup format 文档。但是,它不允许您调整大小和位置;生产者只是生产文本。您需要使用其他 MLT 过滤器(例如水印或仿射)来控制大小和位置。文本的 size 属性只是控制在放置到 compositing/transformation 矩形之前创建的文本图像的大小。

除了 Dan 的评论外,我还建议对文本使用 "dynamictext" 过滤器而不是 "watermark" 过滤器。 dynamictext 具有相同的功能,但不需要在文本上使用“+”前缀和“.txt”后缀。使用dynamictext时仍然需要pango和qtext。