Hi there, I tried to run the sample/example code for the moviePy but I'm getting this error. I don't know how to resolve. I'm an novice in the field so don't have an experience like you guys.
from moviepy.editor import *
clip = VideoFileClip("myHolidays.mp4").subclip(5,15)
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("myHolidays_edited.avi")
Error message:
[MoviePy] This command returned an error !
Traceback (most recent call last):
File "/home/pi/clip_example.py", line 11, 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 1173, in __init__
raise IOError(error)
IOError: MoviePy Error: creation of None failed because of the following error:
convert: not authorized `@/tmp/tmpIJUQvL.txt' @ error/property.c/InterpretImageProperties/3405.
convert: no images defined `PNG32:/tmp/tmpt9CCfR.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
@bhavin20feb You'll need to install imagemagick. If you're on OSX, you can install it via macports or brew. Also, the code you're referencing is merely an example. You will need to modify the myHolidays.mp4 filename reference to an existing MP4 file for this example to work.
Let me know if that resolves your issue!
Let me know if that resolves your issue!
Hi, @mbeacom thanks a lot for responding on my post. I'm on Raspbian Jessie.
I have already installed FFmpeg, imagemagic, as well as moviepy. But I'm still getting this error.
Also, before executing the code I renamed one mp4 video to myHolidays.mp4
I also tried executing this code,
from moviepy.editor import *
video = VideoFileClip("vidnew.mpg").subclip(5,15)
video.write_videofile("vidnew_edited.mpg",fps=24, codec='mpeg4')
Still getting the errors.
My goal is to take the subclips (ex. clip1, clip2, etc.) from different videos and then concatenate them.
I read on zulko.github.io that for composite video clips one can use the following code,
video = concatenate([clip1,clip2,clip3])
video = CompositeVideoClip([clip1,clip2,clip3])
but I'm unable to extract a simple 10 second clip from a single video.
I just figured this out.. imagemagick (ie, convert) has a policy.xml file that stops you from accessing any resource that starts with '@'.
type identify -list policy
the first line should tell you where your policy.xml file is located. My policy.xml file is lcoated at /etc/ImageMagick-6/policy.xml
open that file, and goto to the end and comment out (or remove the line that reads)
<policy domain="path" rights="none" pattern="@*" />
since this is xml, you can comment out this line by appending the line with <!-- and ending it with -->
Hope this helps!
Hi, @earney, I tried again by making the changes you've suggested, but I'm still getting an error.
TypeError: Type str doesn't support the buffer API
Hi.. I don't get this exact error, so can you copy and paste the output that is on your screen?
This is my code to extract 10 seconds clip from a video
from moviepy.editor import *
video = VideoFileClip("vidnew.mpg").subclip(5,15)
video.write_videofile("vidnew_edited.mpg",fps=24, codec='mpeg4')
And this is the output error
>
> >>> ================================ RESTART ================================
> >>>
> [MoviePy] >>>> Building video vidnew_edited.mpg
> [MoviePy] Writing video vidnew_edited.mpg
>
> 0%| | 0/241 [00:00<?, ?it/s]
> Traceback (most recent call last):
> File "/usr/local/lib/python3.4/dist-packages/moviepy/video/io/ffmpeg_writer.py", line 137, in write_frame
> self.proc.stdin.write(img_array.tostring())
> BrokenPipeError: [Errno 32] Broken pipe
>
> During handling of the above exception, another exception occurred:
>
> Traceback (most recent call last):
> File "/home/pi/clip_example1.py", line 5, in <module>
> video.write_videofile("vidnew_edited.mpg",fps=24, codec='mpeg4')
> File "<decorator-gen-51>", line 2, in write_videofile
> File "/usr/local/lib/python3.4/dist-packages/moviepy/decorators.py", line 54, in requires_duration
> return f(clip, *a, **k)
> File "<decorator-gen-50>", line 2, in write_videofile
> File "/usr/local/lib/python3.4/dist-packages/moviepy/decorators.py", line 137, in use_clip_fps_by_default
> return f(clip, *new_a, **new_kw)
> File "<decorator-gen-49>", line 2, in write_videofile
> File "/usr/local/lib/python3.4/dist-packages/moviepy/decorators.py", line 22, in convert_masks_to_RGB
> return f(clip, *a, **k)
> File "/usr/local/lib/python3.4/dist-packages/moviepy/video/VideoClip.py", line 338, in write_videofile
> ffmpeg_params=ffmpeg_params)
> File "/usr/local/lib/python3.4/dist-packages/moviepy/video/io/ffmpeg_writer.py", line 216, in ffmpeg_write_video
> writer.write_frame(frame)
> File "/usr/local/lib/python3.4/dist-packages/moviepy/video/io/ffmpeg_writer.py", line 144, in write_frame
> if "Unknown encoder" in ffmpeg_error:
> TypeError: Type str doesn't support the buffer API
> >>>
>
Goto line 144 and modify the line so that there is a b before the double
quote.
If b"Unknown error"
On Feb 9, 2017 3:12 PM, "Bruce Wayne" notifications@github.com wrote:
This is my code to extract 10 seconds clip from a video
from moviepy.editor import * video = VideoFileClip("vidnew.mpg").subclip(5,15)
video.write_videofile("vidnew_edited.mpg",fps=24, codec='mpeg4')
And this is the output error
================================ RESTART ================================
[MoviePy] >>>> Building video vidnew_edited.mpg
[MoviePy] Writing video vidnew_edited.mpg
0%| | 0/241 [00:00, ?it/s]
Traceback (most recent call last):
File "/usr/local/lib/python3.4/dist-packages/moviepy/video/io/ffmpeg_writer.py",
line 137, in write_frame
self.proc.stdin.write(img_array.tostring())
BrokenPipeError: [Errno 32] Broken pipe
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/pi/clip_example1.py", line 5, in
video.write_videofile("vidnew_edited.mpg",fps=24, codec='mpeg4')
File "", line 2, in write_videofile
File "/usr/local/lib/python3.4/dist-packages/moviepy/decorators.py", line
54, in requires_duration
return f(clip, a, *k)
File "", line 2, in write_videofile
File "/usr/local/lib/python3.4/dist-packages/moviepy/decorators.py", line
137, in use_clip_fps_by_default
return f(clip, new_a, *new_kw)
File "", line 2, in write_videofile
File "/usr/local/lib/python3.4/dist-packages/moviepy/decorators.py", line
22, in convert_masks_to_RGB
return f(clip, a, *k)
File "/usr/local/lib/python3.4/dist-packages/moviepy/video/VideoClip.py",
line 338, in write_videofile
ffmpeg_params=ffmpeg_params)
File "/usr/local/lib/python3.4/dist-packages/moviepy/video/io/ffmpeg_writer.py",
line 216, in ffmpeg_write_video
writer.write_frame(frame)
File "/usr/local/lib/python3.4/dist-packages/moviepy/video/io/ffmpeg_writer.py",
line 144, in write_frame
if "Unknown encoder" in ffmpeg_error:
TypeError: Type str doesn't support the buffer API
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/Zulko/moviepy/issues/401#issuecomment-278775155, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ABGu8v6wOtNdeCgKRaCAkPFfemaJRhuoks5ra4FIgaJpZM4L7Hkz
.
goto line 144 of file "/usr/local/lib/python3.4/dist-packages/moviepy/video/io/ffmpeg_writer.py"
and modify the line so that there is a b before the double quote.
If b"Unknown error"
it seems some of these files do not work with python 3.4 or python 3.5
if you continue having issues, try the enclosed version of the file. I had to make a few additional adjustments to get this working for your example. You will need to remove the .txt extension of the file. github will not allow me to upload a file with an extension of .py.
we believe the newest version should fix this issue. Please reopen if you see that the issue has not been resolved.
What does "creation of none failed" mean?
It is looking for convert.exe in wrong location?
I need an older version of imagemagic or something?
Or you can just copy magick.exe to convert.exe. :) Problem solved in my case.
What @earney mentioned works perfectly,
Just to add some details for mac Sierra users the policy.xml will be at somewhere like this /usr/local/Cellar/imagemagick/7.0.8-11_1/etc/ImageMagick-7/policy.xml
and if you dont find imagemagic in /usr/local/Cellar/ try https://github.com/Zulko/moviepy/issues/347
any one able to solve this issue in window
Most helpful comment
I just figured this out.. imagemagick (ie, convert) has a policy.xml file that stops you from accessing any resource that starts with '@'.
type
identify -list policythe first line should tell you where your policy.xml file is located. My policy.xml file is lcoated at /etc/ImageMagick-6/policy.xml
open that file, and goto to the end and comment out (or remove the line that reads)
since this is xml, you can comment out this line by appending the line with
<!--and ending it with-->Hope this helps!