【问题标题】:Imagemagick convert command creating video from images gives avconv error on MacImagemagick convert 命令从图像创建视频在 Mac 上会出现 avconv 错误
【发布时间】:2018-01-29 00:57:02
【问题描述】:

我想通过 imagemagick 将图像转换为视频。不幸的是运行命令:

convert img1.jpg img2.jpg img3.jpg out.mpg

运行 avconv 时出错

convert: delegate failed `'avconv' -nostdin -v -1 -i '%M%%d.jpg' '%u.%m' 2> '%u'' @ error/delegate.c/InvokeDelegate/1919.

我还读到delegate.xml 可能有错误的avconv 程序名称。但我不知道如何检查。

我已经在我的 Mac 上的 High Sierra 上安装了 imagemagick、ffmpeg (brew) 和 avcon(在我只安装前两个时出现了同样的错误。我安装了 vi brew install libav)。

我有 avconv(12.2 版)以及一个名为 avconvert 的程序。并转换版本 6.9.9-26。

感谢您的帮助!

【问题讨论】:

    标签: macos ffmpeg imagemagick macos-high-sierra avconv


    【解决方案1】:

    我建议您直接使用 FFMPEG 来创建您的视频。添加 ImageMagick 只会增加一层复杂性。

    https://www.imagemagick.org/Usage/formats/#mpeg

    但还是试试下面的方法:

    convert img1.jpg img2.jpg img3.jpg MPG:out.mpg
    

    convert img1.jpg img2.jpg img3.jpg M2V:out.mpg
    


    您是否安装了 ImageMagick 以便它可以看到 FFMPEG。您可以通过 convert -list 格式查看 ImageMagick 是否知道 ffmpg。它是否列出了 MPG 和 MPEG?

    在您的系统上找到您的 delegates.xml 文件。我的(在我的 Mac Sierra 上)位于 /usr/local/etc/ImageMagick-6/delegates.xml。但它也可能在 /opt/local/etc/ImageMagick-6/delegates.xml 中。我的节目

      <delegate encode="mpeg:encode" stealth="True" command="&quot;ffmpeg&quot; -nostdin -v -1 -i &quot;%M%%d.jpg&quot; &quot;%u.%m&quot; 2&gt; &quot;%u&quot;"/>
    


    我不知道 avconv 与创建 mpg 或 ffmpeg 有什么关系。

    但是在谷歌上搜索 avconv,我找到了http://www.autodidacts.io/convert-media-files-like-a-geek-a-guide-to-video-transcoding-with-avconv-ffmpeg/。看来 avconv (Libav) 是 ffmpeg 的一个分支。因此,也许您的 delegate.xml 文件正在寻找 avconv 而不是 ffmpeg。如果需要,请尝试编辑它以指向 ffmpeg。您可能需要将完整路径放入 ffmpeg

    附:我通常从 MacPorts 安装我的所有代表,然后从源代码安装 ImageMagick。见https://www.imagemagick.org/discourse-server/viewtopic.php?f=1&t=21502&p=88202&hilit=OSX+MacPorts#p88202。不幸的是,我没有使用 Homebrew 的经验。

    附: 2 如果你只有几帧,你可以创建一个简单的gif动画,如果这样做如下:

    convert -delay 50 img1.jpg img2.jpg img3.jpg -loop 0 out.gif
    

    根据需要调整延迟。该值以滴答为单位(1/100 秒 = 1 个滴答)。见https://www.imagemagick.org/script/command-line-options.php#delay。循环 0 表示循环不停止。 1 的循环将在每帧仅显示一次后停止。

    【讨论】:

    • 谢谢!将 mpeg 标签的委托从 aconv 更改为 ffmpeg 完成了这项工作。是的,直接使用 ffmpeg 更方便,因为它允许一次性完成所有操作并指定所有参数,例如 ffmpeg -r 1/2 -i img%1d.jpg -c:v libx264 -vf fps=25 -pix_fmt yuv420p out.mp4 我还在 mac 上找到了安装指南 trac.ffmpeg.org/wiki/CompilationGuide/macOS
    • 如果我的回答有帮助,请考虑给它投票。
    • 曾经是,一旦我有足够的声誉,我会的:)
    • 好的。谢谢。我明白了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-28
    • 2019-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多