【问题标题】:MLT (Media Lovin' Toolkit) Photo Slide VideoMLT(Media Lovin' Toolkit)照片幻灯片视频
【发布时间】:2016-03-03 11:33:19
【问题描述】:

我正在从命令行对一系列图像使用 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 属性适用于视频,但我找不到任何关于如何扩展图像生产者的可见长度。

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

【问题讨论】:

    标签: video-editing mlt


    【解决方案1】:

    您正在寻找的魔法是“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 张照片。例如,我在我的图像文件夹中运行它:melt *.jpg ttl=100 它生成了一个 24 帧长的视频,包含 24 张图像。我还尝试运行博客文章中显示的 melt 命令,它做了同样的事情。这些命令对您有用吗?我从 0.9.8 上的新构建文件重新安装,同样的问题仍然存在。谢谢!
    • 为我工作。不要使用“*.jpg”,使用“.all.jpg”:melt .all.jpg ttl=100
    • 当我运行 melt .all.jpg ttl=100 时,我得到响应加载“.all.jpg”失败。我在 Mac OS X 上,也许这就是问题所在?我还通过自制软件安装了一些依赖项,所以我想知道是否是较低级别的库导致了这个问题。您是否偶然运行 OS X?
    • 我在上面的答案中更新了一些你可以尝试调试问题的东西。
    • 感谢您提供的调试技巧 - 帮助很大。事实证明,MLT 无法识别 pixbuf,因为没有安装 gtk+。我通过自制软件安装了 gtk+,但它不包含导致问题的 x11 后端。我会将这些作为单独的问题来解决,但是您的帮助使我走上了故障排除的道路。谢谢!
    【解决方案2】:

    这对你有用吗?

    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 帧结束。希望这很清楚!

    【讨论】:

    • 感谢您的评论!我尝试了您概述的长度属性,但同样的问题,每张照片只占用 1 帧。在这一点上,它似乎一定是某种配置问题。我正在考虑安装一个 Linux VM 来测试它。你介意让我知道你在什么系统上成功运行了 Melt 吗?谢谢!
    猜你喜欢
    • 1970-01-01
    • 2019-12-06
    • 1970-01-01
    • 2023-03-28
    • 1970-01-01
    • 2019-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多