我是 Linux 新手。我按照说明安装了 ImageMagick回答并且成功了。但是当我运行下面的 Python 代码时:
from moviepy.editor import *
clip = VideoFileClip("video.mkv").subclip(50,60)
clip = clip.volumex(0.8)
txt_clip = TextClip("My Holidays 2013", fontsize = 70, color = 'white')
txt_clip = txt_clip.set_pos('center').set_duration(10)
video = CompositeVideoClip([clip, txt_clip])
video.write_videofile("modifiedVideo.mp4")
它仍然给我这样的错误:
[MoviePy] This command returned an error !Traceback (most recent call last):
File "tst.py", line 5, in <module>
txt_clip = TextClip("My Holidays 2013", fontsize = 70, color = 'white')
File "/usr/local/lib/python2.7/dist-packages/moviepy/video/VideoClip.py", line 1145, in __init__
raise IOError(error)
IOError: MoviePy Error: creation of None failed because of the following error:
convert: not authorized `@/tmp/tmp920Byo.txt' @ error/property.c/InterpretImageProperties/3405.
convert: no images defined `PNG32:/tmp/tmpUoKRUA.png' @ error/convert.c/ConvertImageCommand/3210.
.
.This error can be due to the fact that ImageMagick is not installed on your computer, or (for Windows users) that you didn't specify the path to the ImageMagick binary in file conf.py, or.that the path you specified is incorrect
它说ImageMagick
我的电脑上没有安装(我当前的操作系统版本是Ubuntu 16.04 LTS
,我的 Python 版本是2.7.12
)。有人能帮我吗?谢谢!
答案1
我有同样的问题,我也尝试了 pauljohn32 的两个答案,但没有用。不过,我已经解决了这个问题。
首先,我libmagick++-dev
使用 进行安装sudo apt install libmagick++-dev
。其次,我遵循Reddit。具体来说,我policy.xml
使用命令打开 ImageMagick:sudo vim /etc/ImageMagick-6/policy.xml
然后通过将 @ 策略从 更改为 来注释掉<policy domain="path" rights="none" pattern="@*" />
它<!--<policy domain="path" rights="none" pattern="@*" /> -->
。
我希望它对你有用
答案2
您可能有 ImageMagic查看器,但您可能缺少 Python 程序所需的 devel 库。
以下是我系统中的软件包列表。您可能需要几个软件包。查看最后,找到 Python 绑定。我怀疑如果您安装它们,它们会带来其他要求。我不知道您需要多少其他头文件,但如果您最终没有使用 libmagick++-dev,我会感到惊讶。
$ dpkg -l | grep magic
ii file 1:5.28-2ubuntu1 amd64 Determines file type using "magic" numbers
ii imagemagick 8:6.8.9.9-7ubuntu8.2 amd64 image manipulation programs -- binaries
ii imagemagick-6.q16 8:6.8.9.9-7ubuntu8.2 amd64 image manipulation programs -- quantum depth Q16
ii imagemagick-common 8:6.8.9.9-7ubuntu8.2 all image manipulation programs -- infrastructure
ii libgraphicsmagick-q16-3 1.3.25-1 amd64 format-independent image processing - C shared library
ii libimage-magick-perl 8:6.8.9.9-7ubuntu8.2 all Perl interface to the ImageMagick graphics routines
ii libimage-magick-q16-perl 8:6.8.9.9-7ubuntu8.2 amd64 Perl interface to the ImageMagick graphics routines -- Q16 version
ii libmagic1:amd64 1:5.28-2ubuntu1 amd64 File type determination library using "magi" numbers
ii libmagick++-6-headers 8:6.8.9.9-7ubuntu8.2 all object-oriented C++ interface to ImageMagick - header files
ii libmagick++-6.q16-5v5:amd64 8:6.8.9.9-7ubuntu8.2 amd64 object-oriented C++ interface to ImageMagick
ii libmagick++-6.q16-dev:amd64 8:6.8.9.9-7ubuntu8.2 amd64 object-oriented C++ interface to ImageMagick - development files
ii libmagick++-dev 8:6.8.9.9-7ubuntu8.2 all object-oriented C++ interface to ImageMagick
ii libmagickcore-6-arch-config:amd64 8:6.8.9.9-7ubuntu8.2 amd64 low-level image manipulation library - architecture header files
ii libmagickcore-6-headers 8:6.8.9.9-7ubuntu8.2 all low-level image manipulation library - header files
ii libmagickcore-6.q16-2:amd64 8:6.8.9.9-7ubuntu8.2 amd64 low-level image manipulation library -- quantum depth Q16
ii libmagickcore-6.q16-2-extra:amd64 8:6.8.9.9-7ubuntu8.2 amd64 low-level image manipulation library - extra codecs (Q16)
ii libmagickcore-6.q16-dev:amd64 8:6.8.9.9-7ubuntu8.2 amd64 low-level image manipulation library - development files (Q16)
ii libmagickwand-6-headers 8:6.8.9.9-7ubuntu8.2 all image manipulation library - headers files
ii libmagickwand-6.q16-2:amd64 8:6.8.9.9-7ubuntu8.2 amd64 image manipulation library
ii libmagickwand-6.q16-dev:amd64 8:6.8.9.9-7ubuntu8.2 amd64 image manipulation library - development files
ii libvariable-magic-perl 0.59-2 amd64 module to associate user-defined magic to variables from Perl
ii python-magic 1:5.28-2ubuntu1 all File type determination library using "magi" numbers (Python bindings)
ii python3-magic 1:5.28-2ubuntu1 all File type determination library using "magi" numbers (Python 3 bindings
我建议新手不要用 apt-get 一个一个手动安装,而是安装程序“synaptic”。它能更好地展示有哪些东西以及你能得到什么。
我现在正在 synaptic 中查找,我发现还有其他几个 imagicmagick<->python 包。查找“python-pythonmagic”或“python-wand”。我发现有很多东西值得探索。
答案3
这是另一个非答案。我理解你的痛苦。我不应该对缺少的 python devel 内容如此自信,这对新用户来说是很常见的事。
Reddit 帖子中讨论了同样的问题:
https://www.reddit.com/r/moviepy/comments/2q4754/need_help_with_installationconfiguration/
这是关于微软 Windows 的
moviepy 页面https://github.com/Zulko/moviepy对 Windows 用户也有同样的建议,但表示 Linux 应该开箱即用。我很有信心地想“我可以为我的新朋友做到这一点...”
我安装了 moviepy 来看看它能做什么。我没有你的视频,我找到了一个小东西“toystory.mp4”用于测试(将副本放在http://pj.freefaculty.org/scraps如果你想尝试的话)。此代码是其主页上的一个示例:https://github.com/Zulko/moviepy
from moviepy.editor import *
video = VideoFileClip("toystory.mp4").subclip(50,60)
# Make the text. Many more options are available.
txt_clip = ( TextClip("Toy",fontsize=70,color='white')
.set_position('center')
.set_duration(10) )
result = CompositeVideoClip([video, txt_clip]) # Overlay text on video
result.write_videofile("toy.webm",fps=25)
我得到了和你一样的错误:
>>> txt_clip = ( TextClip("Toy",fontsize=70,color='white')
... .set_position('center')
... .set_duration(10) )
[MoviePy] This command returned an error !Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/pauljohn/.local/lib/python2.7/site-packages/moviepy/video/VideoClip.py", line 1145, in __init__
raise IOError(error)
IOError:MoviePy 错误:由于以下错误,创建 None 失败:
convert: not authorized `@/tmp/tmp8uDl3E.txt' @ error/property.c /InterpretImageProperties/3405.
convert: no images defined `PNG32:/tmp/tmprHOK9n.png' @ error/convert.c/ConvertImageCommand/3210.
。
.This error can be due to the fact that ImageMagick is not installed on
your computer, or (for Windows users) that you didn't specify the path
to the ImageMagick binary in file conf.py, or.that the path you
specified is incorrect
我心想,“也许我需要像 Windows 用户一样修复这个问题”
from moviepy.config import change_settings
change_settings({"IMAGEMAGICK_BINARY": r"/usr/bin/convert"})
那也是同样失败的。
所以我没有答案。
但我有了一个新的猜测。现在我怀疑我们拥有的 ImageMagick 版本的行为方式不符合 moviepy 的预期。这会触发无用的错误消息。
寻求帮助的正确地方是 moviepy。只要您安装了 convert 即可。
$ ls -la /usr/bin/convert
lrwxrwxrwx 1 root root 25 Jun 11 2016 /usr/bin/convert -> /etc/alternatives/convert
$ ls -la /etc/alternatives/convert
lrwxrwxrwx 1 root root 20 Jun 11 2016 /etc/alternatives/convert -> /usr/bin/convert-im6
我有 convert-im6,它由 /usr/bin/convert 指向。如果该版本太新,可能会导致问题。抱歉,这是我能做的最好的。
如果您得到了答案,请不要忘记告诉我们答案。