2

我在一系列图像的命令行中使用 MLT。当我运行时:

melt 0.jpg 1.jpg 2.jpg 3.jpg

它会生成一个视频,其中每张照片占用一帧(4 帧长的视频)。我希望每张照片占据 100 帧。我已经尝试了我能想到的所有属性组合,例如:

melt 0.jpg out=100 1.jpg in=100 out=200 2.jpg in=200 out=300等等

但结果并不如预期。我也尝试过组织成轨道,并从 XML 文件中融合。充其量,我已经能够让照片出现在第一个预期的帧上,然后是 99 个空白帧。

延长照片可见长度的最佳做法是什么?举个简单的例子,我想要一个包含 10 张照片的轨道,其中每张照片被组织成 100 个后续帧。最终,我将合并视频和照片。

在处理视频时,我没有遇到任何问题,我的理解是inout属性适用于视频,但我无法找到任何关于如何扩展图像生成器的可见长度的示例。

感谢您的任何想法或提示!我真的很高兴能够学习这个很棒的工具。

4

2 回答 2

5

您正在寻找的魔法是“ttl”。将 ttl 参数设置为您希望图像持续的帧数。

melt .all.jpg ttl=100

这里有一些很好的例子:

https://github.com/mltframework/mlt/blob/master/demo/mlt_slideshow

https://github.com/mltframework/mlt/blob/master/demo/mlt_slideshow2

https://github.com/mltframework/mlt/blob/master/demo/mlt_slideshow_black

这里还有一篇有趣的博客文章:

http://mltframework.blogspot.com/2010/08/making-nice-slideshows.html

更新:

“*.jpg”语法对我不起作用。我很确定你必须使用“.all.jpg”。看来您的安装可能有一些问题。这里有一些东西可以尝试......

MLT 有几个可以处理图像的模块。如果您不指定模块,MLT 会为您选择一个。尝试明确指定两个模块,看看一个是否比另一个更好:

melt pixbuf:.all.jpg ttl=100

和:

melt qimage:.all.jpg ttl=100

另外,也许尝试添加引号?

melt pixbuf:".all.jpg" ttl=100

以上所有对我有用。

如果上述所有方法都失败,请尝试列出所有生产者并检查 pixbuf 和 qimage:

melt -query producers

我使用的是 Ubuntu,所以如果这是 OSX 特定的问题,我不会有太大帮助。但我可以告诉您,MLT 绝对需要针对 qt 或 gtk 进行编译,才能获得您正在寻找的图像行为。

于 2015-11-30T16:23:07.583 回答
4

这对你有用吗?

melt \
0.jpg length=100 \
1.jpg length=100 \
2.jpg length=100

如果您寻求更多控制(如果您希望一个图像持续 200 帧,然后再持续 50 帧),此方法可能会更好。

但是,如果这无关紧要,假设所有图像都以 .jpg 结尾,Brian 的方法会更方便。

当您使用in=200 out=300时,就是说从第 200 帧开始图像,并在第 300 帧结束。

由于它是图像,因此无需从第 200 帧开始。如果是视频,那么您将跳过前 199 帧,它将在第 300 帧结束。希望这很清楚!

于 2015-12-01T21:34:22.333 回答