web-dev-qa-db-fra.com

ImageMagick ne peut pas être détecté par moviepy?

Je suis nouveau sur Linux. J'ai installé ImageMagick comme instruction sur réponse et cela a fonctionné. Mais quand je lance mon code python comme ci-dessous:

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")

cela me donne toujours une erreur comme ceci:

[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

il est indiqué que ImageMagick n'est pas installé sur mon ordinateur (ma version actuelle du système d'exploitation est Ubuntu 16.04 LTS, ma version python est 2.7.12). Quelqu'un m'a aidé? Merci!

4
Tony Chen

J'ai le même problème et j'essaie aussi les deux réponses de pauljohn32 mais cela ne fonctionne pas. Cependant, j'ai résolu le problème.

Tout d'abord, j'installe libmagick++-dev en utilisant Sudo apt install libmagick++-dev. Deuxièmement, je suis la suggestion de reddit . Plus précisément, j'ouvre policy.xml de ImageMagick à l'aide de la commande: Sudo vim /etc/ImageMagick-6/policy.xml, puis commente la stratégie @ en passant de <policy domain="path" rights="none" pattern="@*" /> à <!--<policy domain="path" rights="none" pattern="@*" /> -->.

J'espère que cela fonctionne pour votre cas

7
tndoan

Vous pouvez avoir ImageMagic SPECTATEUR, mais il vous manque probablement la bibliothèque de développement que votre programme Python cherche.

Voici la liste des paquets de mon système. Vous avez probablement besoin de plusieurs paquets. Regardez à la fin, pour les liaisons Python. Je suppose que si vous les installez, ils introduiront les autres exigences. Je ne sais pas combien d'autres fichiers d'en-tête sont nécessaires, mais si vous ne vous retrouvez pas avec libmagick ++-dev, je serais surpris.

$ 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

Plutôt que d'installer manuellement un par un avec apt-get, je recommande aux novices d'installer le programme "synaptic". Il offre une bien meilleure vision de ce qui existe et de ce que vous pouvez obtenir.

Je cherche maintenant dans Synaptic, il me semble qu’il existe plusieurs autres paquets imagicmagick <-> python. Recherchez "python-pythonmagic" ou "python-wand". Il me semble qu'il y a beaucoup à explorer.

2
pauljohn32

Voici une non-réponse différente. Je ressens ta douleur. Je n'aurais pas dû être aussi confiant quant aux éléments de développement manquants python, ce qui est habituel pour les nouveaux utilisateurs.

Même problème discuté dans ce fil Reddit:

https://www.reddit.com/r/moviepy/comments/2q4754/need_help_with_installationconfiguration/

C'est à propos de MS Windows

La page moviepy https://github.com/Zulko/moviepy propose les mêmes conseils aux utilisateurs de Windows, mais indique que Linux devrait fonctionner immédiatement. J'étais confiant en pensant "je peux faire ce travail pour mon nouvel ami ..."

J'ai installé Moviepy pour voir ce qu'il fait. Je n'avais pas votre vidéo, j'ai trouvé une petite chose "toystory.mp4" à tester (mettez une copie dans http://pj.freefaculty.org/scraps si vous voulez essayer). Ce code est un exemple sur leur page d'accueil: 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)

J'ai la même erreur que vous:

>>> 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: erreur MoviePy: la création de Néant a échoué à cause de l'erreur suivante:

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

Je me suis dit, "peut-être que je dois résoudre ce problème comme l'utilisateur Windows"

from moviepy.config import change_settings
change_settings({"IMAGEMAGICK_BINARY": r"/usr/bin/convert"})

Cela échoue de la même manière.

Donc je n'ai pas de réponse.

Mais j'ai une nouvelle hypothèse. Maintenant, je soupçonne que la version d'ImageMagick que nous avons se comporte d'une manière à laquelle Moviepy ne s'attend pas. Cela déclenche ce message d'erreur inutile.

Le bon endroit pour demander de l'aide se trouve dans le film. Tant que vous avez converti installé.

$ 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

J'ai convert-im6, indiqué par/usr/bin/convert. Si cette version est trop récente, cela pourrait causer des problèmes, vous voyez. Désolé c'est le mieux que je puisse faire.

Si vous obtenez une réponse, n'oubliez pas de nous le faire savoir.

1
pauljohn32