我在一系列图像上使用命令行中的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个后续帧。最后,我将把视频和照片结合起来。
使用视频时,我没有遇到任何问题,我的理解是in
和out
属性适用于视频,但我还没有能够找到如何扩展图像生成器的可见长度的任何示例。
感谢您的任何想法或提示!我很高兴能够学习这个很棒的工具。
答案 0 :(得分: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进行编译才能获得你想要的图像行为。
答案 1 :(得分:3)
这对你有用吗?
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帧结束。希望很清楚!