[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
debug moviepy with jgart
From: |
jgart |
Subject: |
debug moviepy with jgart |
Date: |
Sat, 28 Jan 2023 04:12:11 +0000 |
Hi,
I'm trying to get the tests to pass for a Guix package that I am writing for
moviepy.
Any thoughts on how to resolve the below failures?
I need to make some dir writeable?
```
starting phase `check'
============================= test session starts ==============================
platform linux -- Python 3.9.9, pytest-6.2.5, py-1.10.0, pluggy-0.13.1 --
/gnu/store/slsh0qjv5j68xda2bb6h8gsxwyi1j25a-python-wrapper-3.9.9/bin/python
cachedir: .pytest_cache
hypothesis profile 'default' ->
database=DirectoryBasedExampleDatabase('/tmp/guix-build-python-moviepy-1.0.3.drv-0/source/.hypothesis/examples')
rootdir: /tmp/guix-build-python-moviepy-1.0.3.drv-0/source
plugins: hypothesis-6.0.2, cov-3.0.0
collecting ... collected 110 items
tests/test_AudioClips.py::test_audio_coreader PASSED [ 0%]
tests/test_AudioClips.py::test_audioclip PASSED [ 1%]
tests/test_AudioClips.py::test_audioclip_concat PASSED [ 2%]
tests/test_AudioClips.py::test_audioclip_with_file_concat PASSED [ 3%]
tests/test_AudioClips.py::test_audiofileclip_concat PASSED [ 4%]
tests/test_ImageSequenceClip.py::test_1 FAILED [ 5%]
tests/test_ImageSequenceClip.py::test_2 PASSED [ 6%]
tests/test_PR.py::test_PR_306 PASSED [ 7%]
tests/test_PR.py::test_PR_339 FAILED [ 8%]
tests/test_PR.py::test_PR_373 PASSED [ 9%]
tests/test_PR.py::test_PR_424 PASSED [ 10%]
tests/test_PR.py::test_PR_458 FAILED [ 10%]
tests/test_PR.py::test_PR_515 PASSED [ 11%]
tests/test_PR.py::test_PR_528 FAILED [ 12%]
tests/test_PR.py::test_PR_529 FAILED [ 13%]
tests/test_PR.py::test_PR_610 PASSED [ 14%]
tests/test_TextClip.py::test_fontlist PASSED [ 15%]
tests/test_TextClip.py::test_duration FAILED [ 16%]
tests/test_TextClip.py::test_if_textclip_crashes_in_caption_mode FAILED [ 17%]
tests/test_TextClip.py::test_if_textclip_crashes_in_label_mode FAILED [ 18%]
tests/test_VideoClip.py::test_check_codec PASSED [ 19%]
tests/test_VideoClip.py::test_save_frame PASSED [ 20%]
tests/test_VideoClip.py::test_write_image_sequence FAILED [ 20%]
tests/test_VideoClip.py::test_write_gif_imageio PASSED [ 21%]
tests/test_VideoClip.py::test_write_gif_ffmpeg PASSED [ 22%]
tests/test_VideoClip.py::test_write_gif_ffmpeg_tmpfiles PASSED [ 23%]
tests/test_VideoClip.py::test_write_gif_ImageMagick PASSED [ 24%]
tests/test_VideoClip.py::test_write_gif_ImageMagick_tmpfiles PASSED [ 25%]
tests/test_VideoClip.py::test_subfx FAILED [ 26%]
tests/test_VideoClip.py::test_oncolor FAILED [ 27%]
tests/test_VideoClip.py::test_setaudio FAILED [ 28%]
tests/test_VideoClip.py::test_setaudio_with_audiofile FAILED [ 29%]
tests/test_VideoClip.py::test_setopacity FAILED [ 30%]
tests/test_VideoClip.py::test_toimageclip FAILED [ 30%]
tests/test_VideoClip.py::test_withoutaudio PASSED [ 31%]
tests/test_VideoFileClip.py::test_setup FAILED [ 32%]
tests/test_VideoFileClip.py::test_ffmpeg_resizing PASSED [ 33%]
tests/test_VideoFileClip.py::test_shallow_copy PASSED [ 34%]
tests/test_Videos.py::test_afterimage FAILED [ 35%]
tests/test_compositing.py::test_clips_array PASSED [ 36%]
tests/test_compositing.py::test_clips_array_duration FAILED [ 37%]
tests/test_examples.py::test_matplotlib SKIPPED (no mpl) [ 38%]
tests/test_ffmpeg_reader.py::test_ffmpeg_parse_infos PASSED [ 39%]
tests/test_ffmpeg_reader.py::test_ffmpeg_parse_infos_for_i926 PASSED [ 40%]
tests/test_fx.py::test_blackwhite FAILED [ 40%]
tests/test_fx.py::test_colorx FAILED [ 41%]
tests/test_fx.py::test_crop FAILED [ 42%]
tests/test_fx.py::test_fadein FAILED [ 43%]
tests/test_fx.py::test_fadeout FAILED [ 44%]
tests/test_fx.py::test_invert_colors FAILED [ 45%]
tests/test_fx.py::test_loop PASSED [ 46%]
tests/test_fx.py::test_lum_contrast FAILED [ 47%]
tests/test_fx.py::test_make_loopable FAILED [ 48%]
tests/test_fx.py::test_margin FAILED [ 49%]
tests/test_fx.py::test_mask_and PASSED [ 50%]
tests/test_fx.py::test_mask_color PASSED [ 50%]
tests/test_fx.py::test_mask_or PASSED [ 51%]
tests/test_fx.py::test_mirror_x FAILED [ 52%]
tests/test_fx.py::test_mirror_y FAILED [ 53%]
tests/test_fx.py::test_painting PASSED [ 54%]
tests/test_fx.py::test_resize FAILED [ 55%]
tests/test_fx.py::test_rotate FAILED [ 56%]
tests/test_fx.py::test_scroll PASSED [ 57%]
tests/test_fx.py::test_speedx FAILED [ 58%]
tests/test_fx.py::test_supersample PASSED [ 59%]
tests/test_fx.py::test_time_mirror FAILED [ 60%]
tests/test_fx.py::test_time_symmetrize FAILED [ 60%]
tests/test_fx.py::test_normalize PASSED [ 61%]
tests/test_issues.py::test_issue_145 PASSED [ 62%]
tests/test_issues.py::test_issue_190 PASSED [ 63%]
tests/test_issues.py::test_issue_285 PASSED [ 64%]
tests/test_issues.py::test_issue_334 FAILED [ 65%]
tests/test_issues.py::test_issue_354 PASSED [ 66%]
tests/test_issues.py::test_issue_359 PASSED [ 67%]
tests/test_issues.py::test_issue_407 PASSED [ 68%]
tests/test_issues.py::test_issue_416 PASSED [ 69%]
tests/test_issues.py::test_issue_417 PASSED [ 70%]
tests/test_issues.py::test_issue_467 PASSED [ 70%]
tests/test_issues.py::test_issue_470 FAILED [ 71%]
tests/test_issues.py::test_issue_246 PASSED [ 72%]
tests/test_issues.py::test_issue_547 FAILED [ 73%]
tests/test_issues.py::test_issue_636 PASSED [ 74%]
tests/test_issues.py::test_issue_655 PASSED [ 75%]
tests/test_misc.py::test_cuts1 PASSED [ 76%]
tests/test_misc.py::test_subtitles FAILED [ 77%]
tests/test_misc.py::test_file_to_subtitles PASSED [ 78%]
tests/test_resourcerelease.py::test_release_of_file_via_close FAILED [ 79%]
tests/test_resourcereleasedemo.py::test_failure_to_release_file FAILED [ 80%]
tests/test_tools.py::test_find_extensions[libx264-mp4] PASSED [ 80%]
tests/test_tools.py::test_find_extensions[libmpeg4-mp4] PASSED [ 81%]
tests/test_tools.py::test_find_extensions[libtheora-ogv] PASSED [ 82%]
tests/test_tools.py::test_find_extensions[libvpx-webm] PASSED [ 83%]
tests/test_tools.py::test_find_extensions_not_found PASSED [ 84%]
tests/test_tools.py::test_cvsecs[15.4-15.4] PASSED [ 85%]
tests/test_tools.py::test_cvsecs[given1-81.5] PASSED [ 86%]
tests/test_tools.py::test_cvsecs[given2-3662] PASSED [ 87%]
tests/test_tools.py::test_cvsecs[given3-3662] PASSED [ 88%]
tests/test_tools.py::test_cvsecs[01:01:33.5-3693.5] PASSED [ 89%]
tests/test_tools.py::test_cvsecs[01:01:33.045-3693.045] PASSED [ 90%]
tests/test_tools.py::test_cvsecs[01:01:33,5-3693.5] PASSED [ 90%]
tests/test_tools.py::test_cvsecs[1:33-93.0] PASSED [ 91%]
tests/test_tools.py::test_cvsecs[33.4-33.4] PASSED [ 92%]
tests/test_tools.py::test_cvsecs[None-None] PASSED [ 93%]
tests/test_tools.py::test_is_string[hello straight string-True] PASSED [ 94%]
tests/test_tools.py::test_is_string[hello raw string-True] PASSED [ 95%]
tests/test_tools.py::test_is_string[42-False] PASSED [ 96%]
tests/test_tools.py::test_is_string[True-False] PASSED [ 97%]
tests/test_tools.py::test_is_string[hello bytes-False] PASSED [ 98%]
tests/test_tools.py::test_sys_write_flush FAILED [ 99%]
tests/test_videotools.py::test_credits FAILED [100%]
=================================== FAILURES ===================================
____________________________________ test_1 ____________________________________
def test_1():
images=[]
durations=[]
for i in range(5):
durations.append(i)
images.append("media/python_logo.png")
durations.append(i)
images.append("media/python_logo_upside_down.png")
with ImageSequenceClip(images, durations=durations) as clip:
assert clip.duration == sum(durations)
> clip.write_videofile(os.path.join(TMP_DIR,
> "ImageSequenceClip1.mp4"), fps=30)
tests/test_ImageSequenceClip.py:25:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:54: in requires_duration
return f(clip, *a, **k)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:135: in use_clip_fps_by_default
return f(clip, *new_a, **new_kw)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:22: in convert_masks_to_RGB
return f(clip, *a, **k)
moviepy/video/VideoClip.py:300: in write_videofile
ffmpeg_write_video(self, filename, fps, codec,
moviepy/video/io/ffmpeg_writer.py:213: in ffmpeg_write_video
with FFMPEG_VideoWriter(filename, clip.size, fps, codec = codec,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <moviepy.video.io.ffmpeg_writer.FFMPEG_VideoWriter object at
0x7fffd89ba160>
filename = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/ImageSequenceClip1.mp4'
size = (260, 77), fps = None, codec = 'libx264', audiofile = None
preset = 'medium', bitrate = None, withmask = False, logfile = -1
threads = None, ffmpeg_params = None
def __init__(self, filename, size, fps, codec="libx264", audiofile=None,
preset="medium", bitrate=None, withmask=False,
logfile=None, threads=None, ffmpeg_params=None):
if logfile is None:
logfile = sp.PIPE
self.filename = filename
self.codec = codec
self.ext = self.filename.split(".")[-1]
# order is important
cmd = [
get_setting("FFMPEG_BINARY"),
'-y',
'-loglevel', 'error' if logfile == sp.PIPE else 'info',
'-f', 'rawvideo',
'-vcodec', 'rawvideo',
'-s', '%dx%d' % (size[0], size[1]),
'-pix_fmt', 'rgba' if withmask else 'rgb24',
> '-r', '%.02f' % fps,
'-an', '-i', '-'
]
E TypeError: must be real number, not NoneType
moviepy/video/io/ffmpeg_writer.py:88: TypeError
----------------------------- Captured stdout call -----------------------------
Moviepy - Building video
/tmp/guix-build-python-moviepy-1.0.3.drv-0/ImageSequenceClip1.mp4.
Moviepy - Writing video
/tmp/guix-build-python-moviepy-1.0.3.drv-0/ImageSequenceClip1.mp4
_________________________________ test_PR_339 __________________________________
self = <moviepy.video.VideoClip.TextClip object at 0x7fffd87fcfd0>
txt = '@/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmpripxn2wv.txt'
filename = None, size = ('640', '480'), color = 'white'
bg_color = 'transparent', fontsize = 25, font = 'Liberation-Mono'
stroke_color = None, stroke_width = 1, method = 'caption', kerning = None
align = 'center', interline = None
tempfilename = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmpq8n3akh7.png'
temptxt = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmpripxn2wv.txt'
transparent = True, remove_temp = True, print_cmd = False
def __init__(self, txt=None, filename=None, size=None, color='black',
bg_color='transparent', fontsize=None, font='Courier',
stroke_color=None, stroke_width=1, method='label',
kerning=None, align='center', interline=None,
tempfilename=None, temptxt=None,
transparent=True, remove_temp=True,
print_cmd=False):
if txt is not None:
if temptxt is None:
temptxt_fd, temptxt = tempfile.mkstemp(suffix='.txt')
try: # only in Python3 will this work
os.write(temptxt_fd, bytes(txt, 'UTF8'))
except TypeError: # oops, fall back to Python2
os.write(temptxt_fd, txt)
os.close(temptxt_fd)
txt = '@' + temptxt
else:
# use a file instead of a text.
txt = "@%" + filename
if size is not None:
size = ('' if size[0] is None else str(size[0]),
'' if size[1] is None else str(size[1]))
cmd = ([get_setting("IMAGEMAGICK_BINARY"),
"-background", bg_color,
"-fill", color,
"-font", font])
if fontsize is not None:
cmd += ["-pointsize", "%d" % fontsize]
if kerning is not None:
cmd += ["-kerning", "%0.1f" % kerning]
if stroke_color is not None:
cmd += ["-stroke", stroke_color, "-strokewidth",
"%.01f" % stroke_width]
if size is not None:
cmd += ["-size", "%sx%s" % (size[0], size[1])]
if align is not None:
cmd += ["-gravity", align]
if interline is not None:
cmd += ["-interline-spacing", "%d" % interline]
if tempfilename is None:
tempfile_fd, tempfilename = tempfile.mkstemp(suffix='.png')
os.close(tempfile_fd)
cmd += ["%s:%s" % (method, txt),
"-type", "truecolormatte", "PNG32:%s" % tempfilename]
if print_cmd:
print(" ".join(cmd))
try:
> subprocess_call(cmd, logger=None)
moviepy/video/VideoClip.py:1137:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
cmd = ['convert', '-background', 'transparent', '-fill', 'white', '-font', ...]
logger = <proglog.proglog.MuteProgressBarLogger object at 0x7fffd87fcee0>
errorprint = True
def subprocess_call(cmd, logger='bar', errorprint=True):
""" Executes the given subprocess command.
Set logger to None or a custom Proglog logger to avoid printings.
"""
logger = proglog.default_bar_logger(logger)
logger(message='Moviepy - Running:\n>>> "+ " ".join(cmd)')
popen_params = {"stdout": DEVNULL,
"stderr": sp.PIPE,
"stdin": DEVNULL}
if os.name == "nt":
popen_params["creationflags"] = 0x08000000
proc = sp.Popen(cmd, **popen_params)
out, err = proc.communicate() # proc.wait()
proc.stderr.close()
if proc.returncode:
if errorprint:
logger(message='Moviepy - Command returned an error')
> raise IOError(err.decode('utf8'))
E OSError: Fontconfig error: No writable cache directories
E Fontconfig error: No writable cache directories
E convert: no images defined
`PNG32:/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmpq8n3akh7.png' @
error/convert.c/ConvertImageCommand/3229.
moviepy/tools.py:54: OSError
During handling of the above exception, another exception occurred:
def test_PR_339():
# In caption mode.
> TextClip(txt='foo', color='white', font=FONT, size=(640, 480),
method='caption', align='center', fontsize=25).close()
tests/test_PR.py:29:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <moviepy.video.VideoClip.TextClip object at 0x7fffd87fcfd0>
txt = '@/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmpripxn2wv.txt'
filename = None, size = ('640', '480'), color = 'white'
bg_color = 'transparent', fontsize = 25, font = 'Liberation-Mono'
stroke_color = None, stroke_width = 1, method = 'caption', kerning = None
align = 'center', interline = None
tempfilename = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmpq8n3akh7.png'
temptxt = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmpripxn2wv.txt'
transparent = True, remove_temp = True, print_cmd = False
def __init__(self, txt=None, filename=None, size=None, color='black',
bg_color='transparent', fontsize=None, font='Courier',
stroke_color=None, stroke_width=1, method='label',
kerning=None, align='center', interline=None,
tempfilename=None, temptxt=None,
transparent=True, remove_temp=True,
print_cmd=False):
if txt is not None:
if temptxt is None:
temptxt_fd, temptxt = tempfile.mkstemp(suffix='.txt')
try: # only in Python3 will this work
os.write(temptxt_fd, bytes(txt, 'UTF8'))
except TypeError: # oops, fall back to Python2
os.write(temptxt_fd, txt)
os.close(temptxt_fd)
txt = '@' + temptxt
else:
# use a file instead of a text.
txt = "@%" + filename
if size is not None:
size = ('' if size[0] is None else str(size[0]),
'' if size[1] is None else str(size[1]))
cmd = ([get_setting("IMAGEMAGICK_BINARY"),
"-background", bg_color,
"-fill", color,
"-font", font])
if fontsize is not None:
cmd += ["-pointsize", "%d" % fontsize]
if kerning is not None:
cmd += ["-kerning", "%0.1f" % kerning]
if stroke_color is not None:
cmd += ["-stroke", stroke_color, "-strokewidth",
"%.01f" % stroke_width]
if size is not None:
cmd += ["-size", "%sx%s" % (size[0], size[1])]
if align is not None:
cmd += ["-gravity", align]
if interline is not None:
cmd += ["-interline-spacing", "%d" % interline]
if tempfilename is None:
tempfile_fd, tempfilename = tempfile.mkstemp(suffix='.png')
os.close(tempfile_fd)
cmd += ["%s:%s" % (method, txt),
"-type", "truecolormatte", "PNG32:%s" % tempfilename]
if print_cmd:
print(" ".join(cmd))
try:
subprocess_call(cmd, logger=None)
except (IOError, OSError) as err:
error = ("MoviePy Error: creation of %s failed because of the "
"following error:\n\n%s.\n\n." % (filename, str(err))
+ ("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"))
> raise IOError(error)
E OSError: MoviePy Error: creation of None failed because of the
following error:
E
E Fontconfig error: No writable cache directories
E Fontconfig error: No writable cache directories
E convert: no images defined
`PNG32:/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmpq8n3akh7.png' @
error/convert.c/ConvertImageCommand/3229.
E .
E
E .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
moviepy/video/VideoClip.py:1146: OSError
_________________________________ test_PR_458 __________________________________
def test_PR_458():
clip = ColorClip([1000, 600], color=(60, 60, 60), duration=2)
> clip.write_videofile(os.path.join(TMP_DIR, "test.mp4"),
logger=None, fps=30)
tests/test_PR.py:83:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:54: in requires_duration
return f(clip, *a, **k)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:135: in use_clip_fps_by_default
return f(clip, *new_a, **new_kw)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:22: in convert_masks_to_RGB
return f(clip, *a, **k)
moviepy/video/VideoClip.py:300: in write_videofile
ffmpeg_write_video(self, filename, fps, codec,
moviepy/video/io/ffmpeg_writer.py:213: in ffmpeg_write_video
with FFMPEG_VideoWriter(filename, clip.size, fps, codec = codec,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <moviepy.video.io.ffmpeg_writer.FFMPEG_VideoWriter object at
0x7fffd8810970>
filename = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/test.mp4'
size = (1000, 600), fps = None, codec = 'libx264', audiofile = None
preset = 'medium', bitrate = None, withmask = False, logfile = -1
threads = None, ffmpeg_params = None
def __init__(self, filename, size, fps, codec="libx264", audiofile=None,
preset="medium", bitrate=None, withmask=False,
logfile=None, threads=None, ffmpeg_params=None):
if logfile is None:
logfile = sp.PIPE
self.filename = filename
self.codec = codec
self.ext = self.filename.split(".")[-1]
# order is important
cmd = [
get_setting("FFMPEG_BINARY"),
'-y',
'-loglevel', 'error' if logfile == sp.PIPE else 'info',
'-f', 'rawvideo',
'-vcodec', 'rawvideo',
'-s', '%dx%d' % (size[0], size[1]),
'-pix_fmt', 'rgba' if withmask else 'rgb24',
> '-r', '%.02f' % fps,
'-an', '-i', '-'
]
E TypeError: must be real number, not NoneType
moviepy/video/io/ffmpeg_writer.py:88: TypeError
----------------------------- Captured stdout call -----------------------------
Moviepy - Building video /tmp/guix-build-python-moviepy-1.0.3.drv-0/test.mp4.
Moviepy - Writing video /tmp/guix-build-python-moviepy-1.0.3.drv-0/test.mp4
_________________________________ test_PR_528 __________________________________
def test_PR_528():
with ImageClip("media/vacation_2017.jpg") as clip:
new_clip = scroll(clip, w=1000, x_speed=50)
new_clip = new_clip.set_duration(1)
new_clip.fps = 24
> new_clip.write_videofile(os.path.join(TMP_DIR, "pano.mp4"))
tests/test_PR.py:100:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:54: in requires_duration
return f(clip, *a, **k)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:135: in use_clip_fps_by_default
return f(clip, *new_a, **new_kw)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:22: in convert_masks_to_RGB
return f(clip, *a, **k)
moviepy/video/VideoClip.py:300: in write_videofile
ffmpeg_write_video(self, filename, fps, codec,
moviepy/video/io/ffmpeg_writer.py:213: in ffmpeg_write_video
with FFMPEG_VideoWriter(filename, clip.size, fps, codec = codec,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <moviepy.video.io.ffmpeg_writer.FFMPEG_VideoWriter object at
0x7fffd8825700>
filename = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/pano.mp4'
size = (1000, 1440), fps = None, codec = 'libx264', audiofile = None
preset = 'medium', bitrate = None, withmask = False, logfile = -1
threads = None, ffmpeg_params = None
def __init__(self, filename, size, fps, codec="libx264", audiofile=None,
preset="medium", bitrate=None, withmask=False,
logfile=None, threads=None, ffmpeg_params=None):
if logfile is None:
logfile = sp.PIPE
self.filename = filename
self.codec = codec
self.ext = self.filename.split(".")[-1]
# order is important
cmd = [
get_setting("FFMPEG_BINARY"),
'-y',
'-loglevel', 'error' if logfile == sp.PIPE else 'info',
'-f', 'rawvideo',
'-vcodec', 'rawvideo',
'-s', '%dx%d' % (size[0], size[1]),
'-pix_fmt', 'rgba' if withmask else 'rgb24',
> '-r', '%.02f' % fps,
'-an', '-i', '-'
]
E TypeError: must be real number, not NoneType
moviepy/video/io/ffmpeg_writer.py:88: TypeError
----------------------------- Captured stdout call -----------------------------
Moviepy - Building video /tmp/guix-build-python-moviepy-1.0.3.drv-0/pano.mp4.
Moviepy - Writing video /tmp/guix-build-python-moviepy-1.0.3.drv-0/pano.mp4
_________________________________ test_PR_529 __________________________________
def test_PR_529():
with VideoFileClip("media/fire2.mp4") as video_clip:
> assert video_clip.rotation == 180
E assert 0 == 180
E +0
E -180
tests/test_PR.py:105: AssertionError
________________________________ test_duration _________________________________
self = <moviepy.video.VideoClip.TextClip object at 0x7fffd880d340>
txt = '@/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmph8fz26j0.txt'
filename = None, size = ('1280', '720'), color = 'white'
bg_color = 'transparent', fontsize = None, font = 'Liberation-Mono'
stroke_color = None, stroke_width = 1, method = 'label', kerning = None
align = 'center', interline = None
tempfilename = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmpjw_2n7ak.png'
temptxt = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmph8fz26j0.txt'
transparent = True, remove_temp = True, print_cmd = False
def __init__(self, txt=None, filename=None, size=None, color='black',
bg_color='transparent', fontsize=None, font='Courier',
stroke_color=None, stroke_width=1, method='label',
kerning=None, align='center', interline=None,
tempfilename=None, temptxt=None,
transparent=True, remove_temp=True,
print_cmd=False):
if txt is not None:
if temptxt is None:
temptxt_fd, temptxt = tempfile.mkstemp(suffix='.txt')
try: # only in Python3 will this work
os.write(temptxt_fd, bytes(txt, 'UTF8'))
except TypeError: # oops, fall back to Python2
os.write(temptxt_fd, txt)
os.close(temptxt_fd)
txt = '@' + temptxt
else:
# use a file instead of a text.
txt = "@%" + filename
if size is not None:
size = ('' if size[0] is None else str(size[0]),
'' if size[1] is None else str(size[1]))
cmd = ([get_setting("IMAGEMAGICK_BINARY"),
"-background", bg_color,
"-fill", color,
"-font", font])
if fontsize is not None:
cmd += ["-pointsize", "%d" % fontsize]
if kerning is not None:
cmd += ["-kerning", "%0.1f" % kerning]
if stroke_color is not None:
cmd += ["-stroke", stroke_color, "-strokewidth",
"%.01f" % stroke_width]
if size is not None:
cmd += ["-size", "%sx%s" % (size[0], size[1])]
if align is not None:
cmd += ["-gravity", align]
if interline is not None:
cmd += ["-interline-spacing", "%d" % interline]
if tempfilename is None:
tempfile_fd, tempfilename = tempfile.mkstemp(suffix='.png')
os.close(tempfile_fd)
cmd += ["%s:%s" % (method, txt),
"-type", "truecolormatte", "PNG32:%s" % tempfilename]
if print_cmd:
print(" ".join(cmd))
try:
> subprocess_call(cmd, logger=None)
moviepy/video/VideoClip.py:1137:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
cmd = ['convert', '-background', 'transparent', '-fill', 'white', '-font', ...]
logger = <proglog.proglog.MuteProgressBarLogger object at 0x7fffd880db80>
errorprint = True
def subprocess_call(cmd, logger='bar', errorprint=True):
""" Executes the given subprocess command.
Set logger to None or a custom Proglog logger to avoid printings.
"""
logger = proglog.default_bar_logger(logger)
logger(message='Moviepy - Running:\n>>> "+ " ".join(cmd)')
popen_params = {"stdout": DEVNULL,
"stderr": sp.PIPE,
"stdin": DEVNULL}
if os.name == "nt":
popen_params["creationflags"] = 0x08000000
proc = sp.Popen(cmd, **popen_params)
out, err = proc.communicate() # proc.wait()
proc.stderr.close()
if proc.returncode:
if errorprint:
logger(message='Moviepy - Command returned an error')
> raise IOError(err.decode('utf8'))
E OSError: Fontconfig error: No writable cache directories
E Fontconfig error: No writable cache directories
E convert: unable to read font `Liberation-Mono' @
warning/annotate.c/RenderType/949.
E convert: unable to read font `Liberation-Mono' @
error/annotate.c/RenderFreetype/1396.
E convert: no images defined
`PNG32:/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmpjw_2n7ak.png' @
error/convert.c/ConvertImageCommand/3229.
moviepy/tools.py:54: OSError
During handling of the above exception, another exception occurred:
def test_duration():
> clip = TextClip('hello world', size=(1280,720), color='white',
> font=FONT)
tests/test_TextClip.py:17:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <moviepy.video.VideoClip.TextClip object at 0x7fffd880d340>
txt = '@/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmph8fz26j0.txt'
filename = None, size = ('1280', '720'), color = 'white'
bg_color = 'transparent', fontsize = None, font = 'Liberation-Mono'
stroke_color = None, stroke_width = 1, method = 'label', kerning = None
align = 'center', interline = None
tempfilename = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmpjw_2n7ak.png'
temptxt = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmph8fz26j0.txt'
transparent = True, remove_temp = True, print_cmd = False
def __init__(self, txt=None, filename=None, size=None, color='black',
bg_color='transparent', fontsize=None, font='Courier',
stroke_color=None, stroke_width=1, method='label',
kerning=None, align='center', interline=None,
tempfilename=None, temptxt=None,
transparent=True, remove_temp=True,
print_cmd=False):
if txt is not None:
if temptxt is None:
temptxt_fd, temptxt = tempfile.mkstemp(suffix='.txt')
try: # only in Python3 will this work
os.write(temptxt_fd, bytes(txt, 'UTF8'))
except TypeError: # oops, fall back to Python2
os.write(temptxt_fd, txt)
os.close(temptxt_fd)
txt = '@' + temptxt
else:
# use a file instead of a text.
txt = "@%" + filename
if size is not None:
size = ('' if size[0] is None else str(size[0]),
'' if size[1] is None else str(size[1]))
cmd = ([get_setting("IMAGEMAGICK_BINARY"),
"-background", bg_color,
"-fill", color,
"-font", font])
if fontsize is not None:
cmd += ["-pointsize", "%d" % fontsize]
if kerning is not None:
cmd += ["-kerning", "%0.1f" % kerning]
if stroke_color is not None:
cmd += ["-stroke", stroke_color, "-strokewidth",
"%.01f" % stroke_width]
if size is not None:
cmd += ["-size", "%sx%s" % (size[0], size[1])]
if align is not None:
cmd += ["-gravity", align]
if interline is not None:
cmd += ["-interline-spacing", "%d" % interline]
if tempfilename is None:
tempfile_fd, tempfilename = tempfile.mkstemp(suffix='.png')
os.close(tempfile_fd)
cmd += ["%s:%s" % (method, txt),
"-type", "truecolormatte", "PNG32:%s" % tempfilename]
if print_cmd:
print(" ".join(cmd))
try:
subprocess_call(cmd, logger=None)
except (IOError, OSError) as err:
error = ("MoviePy Error: creation of %s failed because of the "
"following error:\n\n%s.\n\n." % (filename, str(err))
+ ("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"))
> raise IOError(error)
E OSError: MoviePy Error: creation of None failed because of the
following error:
E
E Fontconfig error: No writable cache directories
E Fontconfig error: No writable cache directories
E convert: unable to read font `Liberation-Mono' @
warning/annotate.c/RenderType/949.
E convert: unable to read font `Liberation-Mono' @
error/annotate.c/RenderFreetype/1396.
E convert: no images defined
`PNG32:/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmpjw_2n7ak.png' @
error/convert.c/ConvertImageCommand/3229.
E .
E
E .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
moviepy/video/VideoClip.py:1146: OSError
___________________ test_if_textclip_crashes_in_caption_mode ___________________
self = <moviepy.video.VideoClip.TextClip object at 0x7fffd8492730>
txt = '@/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmpc6fdb_w4.txt'
filename = None, size = ('640', '480'), color = 'white'
bg_color = 'transparent', fontsize = 25, font = 'Liberation-Mono'
stroke_color = None, stroke_width = 1, method = 'caption', kerning = None
align = 'center', interline = None
tempfilename = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmp0grf_n_r.png'
temptxt = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmpc6fdb_w4.txt'
transparent = True, remove_temp = True, print_cmd = False
def __init__(self, txt=None, filename=None, size=None, color='black',
bg_color='transparent', fontsize=None, font='Courier',
stroke_color=None, stroke_width=1, method='label',
kerning=None, align='center', interline=None,
tempfilename=None, temptxt=None,
transparent=True, remove_temp=True,
print_cmd=False):
if txt is not None:
if temptxt is None:
temptxt_fd, temptxt = tempfile.mkstemp(suffix='.txt')
try: # only in Python3 will this work
os.write(temptxt_fd, bytes(txt, 'UTF8'))
except TypeError: # oops, fall back to Python2
os.write(temptxt_fd, txt)
os.close(temptxt_fd)
txt = '@' + temptxt
else:
# use a file instead of a text.
txt = "@%" + filename
if size is not None:
size = ('' if size[0] is None else str(size[0]),
'' if size[1] is None else str(size[1]))
cmd = ([get_setting("IMAGEMAGICK_BINARY"),
"-background", bg_color,
"-fill", color,
"-font", font])
if fontsize is not None:
cmd += ["-pointsize", "%d" % fontsize]
if kerning is not None:
cmd += ["-kerning", "%0.1f" % kerning]
if stroke_color is not None:
cmd += ["-stroke", stroke_color, "-strokewidth",
"%.01f" % stroke_width]
if size is not None:
cmd += ["-size", "%sx%s" % (size[0], size[1])]
if align is not None:
cmd += ["-gravity", align]
if interline is not None:
cmd += ["-interline-spacing", "%d" % interline]
if tempfilename is None:
tempfile_fd, tempfilename = tempfile.mkstemp(suffix='.png')
os.close(tempfile_fd)
cmd += ["%s:%s" % (method, txt),
"-type", "truecolormatte", "PNG32:%s" % tempfilename]
if print_cmd:
print(" ".join(cmd))
try:
> subprocess_call(cmd, logger=None)
moviepy/video/VideoClip.py:1137:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
cmd = ['convert', '-background', 'transparent', '-fill', 'white', '-font', ...]
logger = <proglog.proglog.MuteProgressBarLogger object at 0x7fffd8492760>
errorprint = True
def subprocess_call(cmd, logger='bar', errorprint=True):
""" Executes the given subprocess command.
Set logger to None or a custom Proglog logger to avoid printings.
"""
logger = proglog.default_bar_logger(logger)
logger(message='Moviepy - Running:\n>>> "+ " ".join(cmd)')
popen_params = {"stdout": DEVNULL,
"stderr": sp.PIPE,
"stdin": DEVNULL}
if os.name == "nt":
popen_params["creationflags"] = 0x08000000
proc = sp.Popen(cmd, **popen_params)
out, err = proc.communicate() # proc.wait()
proc.stderr.close()
if proc.returncode:
if errorprint:
logger(message='Moviepy - Command returned an error')
> raise IOError(err.decode('utf8'))
E OSError: Fontconfig error: No writable cache directories
E Fontconfig error: No writable cache directories
E convert: no images defined
`PNG32:/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmp0grf_n_r.png' @
error/convert.c/ConvertImageCommand/3229.
moviepy/tools.py:54: OSError
During handling of the above exception, another exception occurred:
def test_if_textclip_crashes_in_caption_mode():
> TextClip(txt='foo', color='white', size=(640, 480), method='caption',
align='center', fontsize=25, font=FONT).close()
tests/test_TextClip.py:30:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <moviepy.video.VideoClip.TextClip object at 0x7fffd8492730>
txt = '@/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmpc6fdb_w4.txt'
filename = None, size = ('640', '480'), color = 'white'
bg_color = 'transparent', fontsize = 25, font = 'Liberation-Mono'
stroke_color = None, stroke_width = 1, method = 'caption', kerning = None
align = 'center', interline = None
tempfilename = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmp0grf_n_r.png'
temptxt = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmpc6fdb_w4.txt'
transparent = True, remove_temp = True, print_cmd = False
def __init__(self, txt=None, filename=None, size=None, color='black',
bg_color='transparent', fontsize=None, font='Courier',
stroke_color=None, stroke_width=1, method='label',
kerning=None, align='center', interline=None,
tempfilename=None, temptxt=None,
transparent=True, remove_temp=True,
print_cmd=False):
if txt is not None:
if temptxt is None:
temptxt_fd, temptxt = tempfile.mkstemp(suffix='.txt')
try: # only in Python3 will this work
os.write(temptxt_fd, bytes(txt, 'UTF8'))
except TypeError: # oops, fall back to Python2
os.write(temptxt_fd, txt)
os.close(temptxt_fd)
txt = '@' + temptxt
else:
# use a file instead of a text.
txt = "@%" + filename
if size is not None:
size = ('' if size[0] is None else str(size[0]),
'' if size[1] is None else str(size[1]))
cmd = ([get_setting("IMAGEMAGICK_BINARY"),
"-background", bg_color,
"-fill", color,
"-font", font])
if fontsize is not None:
cmd += ["-pointsize", "%d" % fontsize]
if kerning is not None:
cmd += ["-kerning", "%0.1f" % kerning]
if stroke_color is not None:
cmd += ["-stroke", stroke_color, "-strokewidth",
"%.01f" % stroke_width]
if size is not None:
cmd += ["-size", "%sx%s" % (size[0], size[1])]
if align is not None:
cmd += ["-gravity", align]
if interline is not None:
cmd += ["-interline-spacing", "%d" % interline]
if tempfilename is None:
tempfile_fd, tempfilename = tempfile.mkstemp(suffix='.png')
os.close(tempfile_fd)
cmd += ["%s:%s" % (method, txt),
"-type", "truecolormatte", "PNG32:%s" % tempfilename]
if print_cmd:
print(" ".join(cmd))
try:
subprocess_call(cmd, logger=None)
except (IOError, OSError) as err:
error = ("MoviePy Error: creation of %s failed because of the "
"following error:\n\n%s.\n\n." % (filename, str(err))
+ ("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"))
> raise IOError(error)
E OSError: MoviePy Error: creation of None failed because of the
following error:
E
E Fontconfig error: No writable cache directories
E Fontconfig error: No writable cache directories
E convert: no images defined
`PNG32:/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmp0grf_n_r.png' @
error/convert.c/ConvertImageCommand/3229.
E .
E
E .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
moviepy/video/VideoClip.py:1146: OSError
____________________ test_if_textclip_crashes_in_label_mode ____________________
self = <moviepy.video.VideoClip.TextClip object at 0x7fffd88259d0>
txt = '@/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmp3x1bwzic.txt'
filename = None, size = None, color = 'black', bg_color = 'transparent'
fontsize = None, font = 'Liberation-Mono', stroke_color = None, stroke_width = 1
method = 'label', kerning = None, align = 'center', interline = None
tempfilename = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmpx7deezx3.png'
temptxt = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmp3x1bwzic.txt'
transparent = True, remove_temp = True, print_cmd = False
def __init__(self, txt=None, filename=None, size=None, color='black',
bg_color='transparent', fontsize=None, font='Courier',
stroke_color=None, stroke_width=1, method='label',
kerning=None, align='center', interline=None,
tempfilename=None, temptxt=None,
transparent=True, remove_temp=True,
print_cmd=False):
if txt is not None:
if temptxt is None:
temptxt_fd, temptxt = tempfile.mkstemp(suffix='.txt')
try: # only in Python3 will this work
os.write(temptxt_fd, bytes(txt, 'UTF8'))
except TypeError: # oops, fall back to Python2
os.write(temptxt_fd, txt)
os.close(temptxt_fd)
txt = '@' + temptxt
else:
# use a file instead of a text.
txt = "@%" + filename
if size is not None:
size = ('' if size[0] is None else str(size[0]),
'' if size[1] is None else str(size[1]))
cmd = ([get_setting("IMAGEMAGICK_BINARY"),
"-background", bg_color,
"-fill", color,
"-font", font])
if fontsize is not None:
cmd += ["-pointsize", "%d" % fontsize]
if kerning is not None:
cmd += ["-kerning", "%0.1f" % kerning]
if stroke_color is not None:
cmd += ["-stroke", stroke_color, "-strokewidth",
"%.01f" % stroke_width]
if size is not None:
cmd += ["-size", "%sx%s" % (size[0], size[1])]
if align is not None:
cmd += ["-gravity", align]
if interline is not None:
cmd += ["-interline-spacing", "%d" % interline]
if tempfilename is None:
tempfile_fd, tempfilename = tempfile.mkstemp(suffix='.png')
os.close(tempfile_fd)
cmd += ["%s:%s" % (method, txt),
"-type", "truecolormatte", "PNG32:%s" % tempfilename]
if print_cmd:
print(" ".join(cmd))
try:
> subprocess_call(cmd, logger=None)
moviepy/video/VideoClip.py:1137:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
cmd = ['convert', '-background', 'transparent', '-fill', 'black', '-font', ...]
logger = <proglog.proglog.MuteProgressBarLogger object at 0x7fffd8825910>
errorprint = True
def subprocess_call(cmd, logger='bar', errorprint=True):
""" Executes the given subprocess command.
Set logger to None or a custom Proglog logger to avoid printings.
"""
logger = proglog.default_bar_logger(logger)
logger(message='Moviepy - Running:\n>>> "+ " ".join(cmd)')
popen_params = {"stdout": DEVNULL,
"stderr": sp.PIPE,
"stdin": DEVNULL}
if os.name == "nt":
popen_params["creationflags"] = 0x08000000
proc = sp.Popen(cmd, **popen_params)
out, err = proc.communicate() # proc.wait()
proc.stderr.close()
if proc.returncode:
if errorprint:
logger(message='Moviepy - Command returned an error')
> raise IOError(err.decode('utf8'))
E OSError: Fontconfig error: No writable cache directories
E Fontconfig error: No writable cache directories
E convert: unable to read font `Liberation-Mono' @
warning/annotate.c/RenderType/949.
E convert: unable to read font `Liberation-Mono' @
error/annotate.c/RenderFreetype/1396.
E convert: no images defined
`PNG32:/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmpx7deezx3.png' @
error/convert.c/ConvertImageCommand/3229.
moviepy/tools.py:54: OSError
During handling of the above exception, another exception occurred:
def test_if_textclip_crashes_in_label_mode():
> TextClip(txt='foo', method='label', font=FONT).close()
tests/test_TextClip.py:35:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <moviepy.video.VideoClip.TextClip object at 0x7fffd88259d0>
txt = '@/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmp3x1bwzic.txt'
filename = None, size = None, color = 'black', bg_color = 'transparent'
fontsize = None, font = 'Liberation-Mono', stroke_color = None, stroke_width = 1
method = 'label', kerning = None, align = 'center', interline = None
tempfilename = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmpx7deezx3.png'
temptxt = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmp3x1bwzic.txt'
transparent = True, remove_temp = True, print_cmd = False
def __init__(self, txt=None, filename=None, size=None, color='black',
bg_color='transparent', fontsize=None, font='Courier',
stroke_color=None, stroke_width=1, method='label',
kerning=None, align='center', interline=None,
tempfilename=None, temptxt=None,
transparent=True, remove_temp=True,
print_cmd=False):
if txt is not None:
if temptxt is None:
temptxt_fd, temptxt = tempfile.mkstemp(suffix='.txt')
try: # only in Python3 will this work
os.write(temptxt_fd, bytes(txt, 'UTF8'))
except TypeError: # oops, fall back to Python2
os.write(temptxt_fd, txt)
os.close(temptxt_fd)
txt = '@' + temptxt
else:
# use a file instead of a text.
txt = "@%" + filename
if size is not None:
size = ('' if size[0] is None else str(size[0]),
'' if size[1] is None else str(size[1]))
cmd = ([get_setting("IMAGEMAGICK_BINARY"),
"-background", bg_color,
"-fill", color,
"-font", font])
if fontsize is not None:
cmd += ["-pointsize", "%d" % fontsize]
if kerning is not None:
cmd += ["-kerning", "%0.1f" % kerning]
if stroke_color is not None:
cmd += ["-stroke", stroke_color, "-strokewidth",
"%.01f" % stroke_width]
if size is not None:
cmd += ["-size", "%sx%s" % (size[0], size[1])]
if align is not None:
cmd += ["-gravity", align]
if interline is not None:
cmd += ["-interline-spacing", "%d" % interline]
if tempfilename is None:
tempfile_fd, tempfilename = tempfile.mkstemp(suffix='.png')
os.close(tempfile_fd)
cmd += ["%s:%s" % (method, txt),
"-type", "truecolormatte", "PNG32:%s" % tempfilename]
if print_cmd:
print(" ".join(cmd))
try:
subprocess_call(cmd, logger=None)
except (IOError, OSError) as err:
error = ("MoviePy Error: creation of %s failed because of the "
"following error:\n\n%s.\n\n." % (filename, str(err))
+ ("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"))
> raise IOError(error)
E OSError: MoviePy Error: creation of None failed because of the
following error:
E
E Fontconfig error: No writable cache directories
E Fontconfig error: No writable cache directories
E convert: unable to read font `Liberation-Mono' @
warning/annotate.c/RenderType/949.
E convert: unable to read font `Liberation-Mono' @
error/annotate.c/RenderFreetype/1396.
E convert: no images defined
`PNG32:/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmpx7deezx3.png' @
error/convert.c/ConvertImageCommand/3229.
E .
E
E .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
moviepy/video/VideoClip.py:1146: OSError
__________________________ test_write_image_sequence ___________________________
def test_write_image_sequence():
clip = VideoFileClip("media/big_buck_bunny_432_433.webm").subclip(0.2,
0.5)
> locations = clip.write_images_sequence(
os.path.join(TMP_DIR, "frame%02d.png"))
tests/test_VideoClip.py:38:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:54: in requires_duration
return f(clip, *a, **k)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:135: in use_clip_fps_by_default
return f(clip, *new_a, **new_kw)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:22: in convert_masks_to_RGB
return f(clip, *a, **k)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <moviepy.video.io.VideoFileClip.VideoFileClip object at 0x7fffd87de0d0>
nameformat = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/frame%02d.png'
fps = None, verbose = True, withmask = True
logger = <proglog.proglog.TqdmProgressBarLogger object at 0x7fffd87de310>
@requires_duration
@use_clip_fps_by_default
@convert_masks_to_RGB
def write_images_sequence(self, nameformat, fps=None, verbose=True,
withmask=True, logger='bar'):
""" Writes the videoclip to a sequence of image files.
Parameters
-----------
nameformat
A filename specifying the numerotation format and extension
of the pictures. For instance "frame%03d.png" for filenames
indexed with 3 digits and PNG format. Also possible:
"some_folder/frame%04d.jpeg", etc.
fps
Number of frames per second to consider when writing the
clip. If not specified, the clip's ``fps`` attribute will
be used if it has one.
withmask
will save the clip's mask (if any) as an alpha canal (PNGs only).
verbose
Boolean indicating whether to print information.
logger
Either 'bar' (progress bar) or None or any Proglog logger.
Returns
--------
names_list
A list of all the files generated.
Notes
------
The resulting image sequence can be read using e.g. the class
``ImageSequenceClip``.
"""
logger = proglog.default_bar_logger(logger)
logger(message='Moviepy - Writing frames %s.' % nameformat)
> tt = np.arange(0, self.duration, 1.0 / fps)
E TypeError: unsupported operand type(s) for /: 'float' and 'NoneType'
moviepy/video/VideoClip.py:361: TypeError
----------------------------- Captured stdout call -----------------------------
Moviepy - Writing frames
/tmp/guix-build-python-moviepy-1.0.3.drv-0/frame%02d.png.
__________________________________ test_subfx __________________________________
def test_subfx():
clip = VideoFileClip("media/big_buck_bunny_0_30.webm").subclip(0, 1)
transform = lambda c: speedx(c, 0.5)
new_clip = clip.subfx(transform, 0.5, 0.8)
location = os.path.join(TMP_DIR, "subfx.mp4")
> new_clip.write_videofile(location)
tests/test_VideoClip.py:91:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:54: in requires_duration
return f(clip, *a, **k)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:135: in use_clip_fps_by_default
return f(clip, *new_a, **new_kw)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:22: in convert_masks_to_RGB
return f(clip, *a, **k)
moviepy/video/VideoClip.py:300: in write_videofile
ffmpeg_write_video(self, filename, fps, codec,
moviepy/video/io/ffmpeg_writer.py:213: in ffmpeg_write_video
with FFMPEG_VideoWriter(filename, clip.size, fps, codec = codec,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <moviepy.video.io.ffmpeg_writer.FFMPEG_VideoWriter object at
0x7fffd8f261f0>
filename = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/subfx.mp4'
size = (1280, 720), fps = None, codec = 'libx264'
audiofile = 'subfxTEMP_MPY_wvf_snd.mp3', preset = 'medium', bitrate = None
withmask = False, logfile = -1, threads = None, ffmpeg_params = None
def __init__(self, filename, size, fps, codec="libx264", audiofile=None,
preset="medium", bitrate=None, withmask=False,
logfile=None, threads=None, ffmpeg_params=None):
if logfile is None:
logfile = sp.PIPE
self.filename = filename
self.codec = codec
self.ext = self.filename.split(".")[-1]
# order is important
cmd = [
get_setting("FFMPEG_BINARY"),
'-y',
'-loglevel', 'error' if logfile == sp.PIPE else 'info',
'-f', 'rawvideo',
'-vcodec', 'rawvideo',
'-s', '%dx%d' % (size[0], size[1]),
'-pix_fmt', 'rgba' if withmask else 'rgb24',
> '-r', '%.02f' % fps,
'-an', '-i', '-'
]
E TypeError: must be real number, not NoneType
moviepy/video/io/ffmpeg_writer.py:88: TypeError
----------------------------- Captured stdout call -----------------------------
Moviepy - Building video /tmp/guix-build-python-moviepy-1.0.3.drv-0/subfx.mp4.
MoviePy - Writing audio in subfxTEMP_MPY_wvf_snd.mp3
MoviePy - Done.
Moviepy - Writing video /tmp/guix-build-python-moviepy-1.0.3.drv-0/subfx.mp4
----------------------------- Captured stderr call -----------------------------
_________________________________ test_oncolor _________________________________
def test_oncolor():
# It doesn't need to be a ColorClip
clip = ColorClip(size=(100, 60), color=(255, 0, 0), duration=0.5)
on_color_clip = clip.on_color(size=(200, 160), color=(0, 0, 255))
location = os.path.join(TMP_DIR, "oncolor.mp4")
> on_color_clip.write_videofile(location, fps=24)
tests/test_VideoClip.py:101:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:54: in requires_duration
return f(clip, *a, **k)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:135: in use_clip_fps_by_default
return f(clip, *new_a, **new_kw)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:22: in convert_masks_to_RGB
return f(clip, *a, **k)
moviepy/video/VideoClip.py:300: in write_videofile
ffmpeg_write_video(self, filename, fps, codec,
moviepy/video/io/ffmpeg_writer.py:213: in ffmpeg_write_video
with FFMPEG_VideoWriter(filename, clip.size, fps, codec = codec,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <moviepy.video.io.ffmpeg_writer.FFMPEG_VideoWriter object at
0x7fffd87fcfa0>
filename = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/oncolor.mp4'
size = (200, 160), fps = None, codec = 'libx264', audiofile = None
preset = 'medium', bitrate = None, withmask = False, logfile = -1
threads = None, ffmpeg_params = None
def __init__(self, filename, size, fps, codec="libx264", audiofile=None,
preset="medium", bitrate=None, withmask=False,
logfile=None, threads=None, ffmpeg_params=None):
if logfile is None:
logfile = sp.PIPE
self.filename = filename
self.codec = codec
self.ext = self.filename.split(".")[-1]
# order is important
cmd = [
get_setting("FFMPEG_BINARY"),
'-y',
'-loglevel', 'error' if logfile == sp.PIPE else 'info',
'-f', 'rawvideo',
'-vcodec', 'rawvideo',
'-s', '%dx%d' % (size[0], size[1]),
'-pix_fmt', 'rgba' if withmask else 'rgb24',
> '-r', '%.02f' % fps,
'-an', '-i', '-'
]
E TypeError: must be real number, not NoneType
moviepy/video/io/ffmpeg_writer.py:88: TypeError
----------------------------- Captured stdout call -----------------------------
Moviepy - Building video /tmp/guix-build-python-moviepy-1.0.3.drv-0/oncolor.mp4.
Moviepy - Writing video /tmp/guix-build-python-moviepy-1.0.3.drv-0/oncolor.mp4
________________________________ test_setaudio _________________________________
def test_setaudio():
clip = ColorClip(size=(100, 60), color=(255, 0, 0), duration=0.5)
make_frame_440 = lambda t: [sin(440 * 2 * pi * t)]
audio = AudioClip(make_frame_440, duration=0.5)
audio.fps = 44100
clip = clip.set_audio(audio)
location = os.path.join(TMP_DIR, "setaudio.mp4")
> clip.write_videofile(location, fps=24)
tests/test_VideoClip.py:113:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:54: in requires_duration
return f(clip, *a, **k)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:135: in use_clip_fps_by_default
return f(clip, *new_a, **new_kw)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:22: in convert_masks_to_RGB
return f(clip, *a, **k)
moviepy/video/VideoClip.py:300: in write_videofile
ffmpeg_write_video(self, filename, fps, codec,
moviepy/video/io/ffmpeg_writer.py:213: in ffmpeg_write_video
with FFMPEG_VideoWriter(filename, clip.size, fps, codec = codec,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <moviepy.video.io.ffmpeg_writer.FFMPEG_VideoWriter object at
0x7fffd847fdf0>
filename = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/setaudio.mp4'
size = (100, 60), fps = None, codec = 'libx264'
audiofile = 'setaudioTEMP_MPY_wvf_snd.mp3', preset = 'medium', bitrate = None
withmask = False, logfile = -1, threads = None, ffmpeg_params = None
def __init__(self, filename, size, fps, codec="libx264", audiofile=None,
preset="medium", bitrate=None, withmask=False,
logfile=None, threads=None, ffmpeg_params=None):
if logfile is None:
logfile = sp.PIPE
self.filename = filename
self.codec = codec
self.ext = self.filename.split(".")[-1]
# order is important
cmd = [
get_setting("FFMPEG_BINARY"),
'-y',
'-loglevel', 'error' if logfile == sp.PIPE else 'info',
'-f', 'rawvideo',
'-vcodec', 'rawvideo',
'-s', '%dx%d' % (size[0], size[1]),
'-pix_fmt', 'rgba' if withmask else 'rgb24',
> '-r', '%.02f' % fps,
'-an', '-i', '-'
]
E TypeError: must be real number, not NoneType
moviepy/video/io/ffmpeg_writer.py:88: TypeError
----------------------------- Captured stdout call -----------------------------
Moviepy - Building video
/tmp/guix-build-python-moviepy-1.0.3.drv-0/setaudio.mp4.
MoviePy - Writing audio in setaudioTEMP_MPY_wvf_snd.mp3
MoviePy - Done.
Moviepy - Writing video /tmp/guix-build-python-moviepy-1.0.3.drv-0/setaudio.mp4
----------------------------- Captured stderr call -----------------------------
_________________________ test_setaudio_with_audiofile _________________________
def test_setaudio_with_audiofile():
clip = ColorClip(size=(100, 60), color=(255, 0, 0), duration=0.5)
audio = AudioFileClip("media/crunching.mp3").subclip(0, 0.5)
clip = clip.set_audio(audio)
location = os.path.join(TMP_DIR, "setaudiofile.mp4")
> clip.write_videofile(location, fps=24)
tests/test_VideoClip.py:123:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:54: in requires_duration
return f(clip, *a, **k)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:135: in use_clip_fps_by_default
return f(clip, *new_a, **new_kw)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:22: in convert_masks_to_RGB
return f(clip, *a, **k)
moviepy/video/VideoClip.py:300: in write_videofile
ffmpeg_write_video(self, filename, fps, codec,
moviepy/video/io/ffmpeg_writer.py:213: in ffmpeg_write_video
with FFMPEG_VideoWriter(filename, clip.size, fps, codec = codec,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <moviepy.video.io.ffmpeg_writer.FFMPEG_VideoWriter object at
0x7fffd8488fa0>
filename = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/setaudiofile.mp4'
size = (100, 60), fps = None, codec = 'libx264'
audiofile = 'setaudiofileTEMP_MPY_wvf_snd.mp3', preset = 'medium'
bitrate = None, withmask = False, logfile = -1, threads = None
ffmpeg_params = None
def __init__(self, filename, size, fps, codec="libx264", audiofile=None,
preset="medium", bitrate=None, withmask=False,
logfile=None, threads=None, ffmpeg_params=None):
if logfile is None:
logfile = sp.PIPE
self.filename = filename
self.codec = codec
self.ext = self.filename.split(".")[-1]
# order is important
cmd = [
get_setting("FFMPEG_BINARY"),
'-y',
'-loglevel', 'error' if logfile == sp.PIPE else 'info',
'-f', 'rawvideo',
'-vcodec', 'rawvideo',
'-s', '%dx%d' % (size[0], size[1]),
'-pix_fmt', 'rgba' if withmask else 'rgb24',
> '-r', '%.02f' % fps,
'-an', '-i', '-'
]
E TypeError: must be real number, not NoneType
moviepy/video/io/ffmpeg_writer.py:88: TypeError
----------------------------- Captured stdout call -----------------------------
Moviepy - Building video
/tmp/guix-build-python-moviepy-1.0.3.drv-0/setaudiofile.mp4.
MoviePy - Writing audio in setaudiofileTEMP_MPY_wvf_snd.mp3
MoviePy - Done.
Moviepy - Writing video
/tmp/guix-build-python-moviepy-1.0.3.drv-0/setaudiofile.mp4
----------------------------- Captured stderr call -----------------------------
_______________________________ test_setopacity ________________________________
def test_setopacity():
clip = VideoFileClip("media/big_buck_bunny_432_433.webm").subclip(0.2,
0.6)
clip = clip.set_opacity(0.5)
clip = clip.on_color(size=(1000, 1000), color=(0, 0, 255),
col_opacity=0.8)
location = os.path.join(TMP_DIR, "setopacity.mp4")
> clip.write_videofile(location)
tests/test_VideoClip.py:133:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:54: in requires_duration
return f(clip, *a, **k)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:135: in use_clip_fps_by_default
return f(clip, *new_a, **new_kw)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:22: in convert_masks_to_RGB
return f(clip, *a, **k)
moviepy/video/VideoClip.py:300: in write_videofile
ffmpeg_write_video(self, filename, fps, codec,
moviepy/video/io/ffmpeg_writer.py:213: in ffmpeg_write_video
with FFMPEG_VideoWriter(filename, clip.size, fps, codec = codec,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <moviepy.video.io.ffmpeg_writer.FFMPEG_VideoWriter object at
0x7fffd876bfa0>
filename = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/setopacity.mp4'
size = (1000, 1000), fps = None, codec = 'libx264'
audiofile = 'setopacityTEMP_MPY_wvf_snd.mp3', preset = 'medium', bitrate = None
withmask = False, logfile = -1, threads = None, ffmpeg_params = None
def __init__(self, filename, size, fps, codec="libx264", audiofile=None,
preset="medium", bitrate=None, withmask=False,
logfile=None, threads=None, ffmpeg_params=None):
if logfile is None:
logfile = sp.PIPE
self.filename = filename
self.codec = codec
self.ext = self.filename.split(".")[-1]
# order is important
cmd = [
get_setting("FFMPEG_BINARY"),
'-y',
'-loglevel', 'error' if logfile == sp.PIPE else 'info',
'-f', 'rawvideo',
'-vcodec', 'rawvideo',
'-s', '%dx%d' % (size[0], size[1]),
'-pix_fmt', 'rgba' if withmask else 'rgb24',
> '-r', '%.02f' % fps,
'-an', '-i', '-'
]
E TypeError: must be real number, not NoneType
moviepy/video/io/ffmpeg_writer.py:88: TypeError
----------------------------- Captured stdout call -----------------------------
Moviepy - Building video
/tmp/guix-build-python-moviepy-1.0.3.drv-0/setopacity.mp4.
MoviePy - Writing audio in setopacityTEMP_MPY_wvf_snd.mp3
MoviePy - Done.
Moviepy - Writing video
/tmp/guix-build-python-moviepy-1.0.3.drv-0/setopacity.mp4
----------------------------- Captured stderr call -----------------------------
_______________________________ test_toimageclip _______________________________
def test_toimageclip():
clip = VideoFileClip("media/big_buck_bunny_432_433.webm").subclip(0.2,
0.6)
clip = clip.to_ImageClip(t=0.1, duration=0.4)
location = os.path.join(TMP_DIR, "toimageclip.mp4")
> clip.write_videofile(location, fps=24)
tests/test_VideoClip.py:142:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:54: in requires_duration
return f(clip, *a, **k)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:135: in use_clip_fps_by_default
return f(clip, *new_a, **new_kw)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:22: in convert_masks_to_RGB
return f(clip, *a, **k)
moviepy/video/VideoClip.py:300: in write_videofile
ffmpeg_write_video(self, filename, fps, codec,
moviepy/video/io/ffmpeg_writer.py:213: in ffmpeg_write_video
with FFMPEG_VideoWriter(filename, clip.size, fps, codec = codec,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <moviepy.video.io.ffmpeg_writer.FFMPEG_VideoWriter object at
0x7fffd878c5b0>
filename = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/toimageclip.mp4'
size = (1280, 720), fps = None, codec = 'libx264', audiofile = None
preset = 'medium', bitrate = None, withmask = False, logfile = -1
threads = None, ffmpeg_params = None
def __init__(self, filename, size, fps, codec="libx264", audiofile=None,
preset="medium", bitrate=None, withmask=False,
logfile=None, threads=None, ffmpeg_params=None):
if logfile is None:
logfile = sp.PIPE
self.filename = filename
self.codec = codec
self.ext = self.filename.split(".")[-1]
# order is important
cmd = [
get_setting("FFMPEG_BINARY"),
'-y',
'-loglevel', 'error' if logfile == sp.PIPE else 'info',
'-f', 'rawvideo',
'-vcodec', 'rawvideo',
'-s', '%dx%d' % (size[0], size[1]),
'-pix_fmt', 'rgba' if withmask else 'rgb24',
> '-r', '%.02f' % fps,
'-an', '-i', '-'
]
E TypeError: must be real number, not NoneType
moviepy/video/io/ffmpeg_writer.py:88: TypeError
----------------------------- Captured stdout call -----------------------------
Moviepy - Building video
/tmp/guix-build-python-moviepy-1.0.3.drv-0/toimageclip.mp4.
Moviepy - Writing video
/tmp/guix-build-python-moviepy-1.0.3.drv-0/toimageclip.mp4
__________________________________ test_setup __________________________________
def test_setup():
"""Test VideoFileClip setup."""
red = ColorClip((256,200), color=(255,0,0))
green = ColorClip((256,200), color=(0,255,0))
blue = ColorClip((256,200), color=(0,0,255))
red.fps = green.fps = blue.fps = 10
with clips_array([[red, green, blue]]).set_duration(5) as video:
> video.write_videofile(os.path.join(TMP_DIR, "test.mp4"))
tests/test_VideoFileClip.py:24:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:54: in requires_duration
return f(clip, *a, **k)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:135: in use_clip_fps_by_default
return f(clip, *new_a, **new_kw)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:22: in convert_masks_to_RGB
return f(clip, *a, **k)
moviepy/video/VideoClip.py:300: in write_videofile
ffmpeg_write_video(self, filename, fps, codec,
moviepy/video/io/ffmpeg_writer.py:213: in ffmpeg_write_video
with FFMPEG_VideoWriter(filename, clip.size, fps, codec = codec,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <moviepy.video.io.ffmpeg_writer.FFMPEG_VideoWriter object at
0x7fffd8586c10>
filename = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/test.mp4'
size = (768, 200), fps = None, codec = 'libx264', audiofile = None
preset = 'medium', bitrate = None, withmask = False, logfile = -1
threads = None, ffmpeg_params = None
def __init__(self, filename, size, fps, codec="libx264", audiofile=None,
preset="medium", bitrate=None, withmask=False,
logfile=None, threads=None, ffmpeg_params=None):
if logfile is None:
logfile = sp.PIPE
self.filename = filename
self.codec = codec
self.ext = self.filename.split(".")[-1]
# order is important
cmd = [
get_setting("FFMPEG_BINARY"),
'-y',
'-loglevel', 'error' if logfile == sp.PIPE else 'info',
'-f', 'rawvideo',
'-vcodec', 'rawvideo',
'-s', '%dx%d' % (size[0], size[1]),
'-pix_fmt', 'rgba' if withmask else 'rgb24',
> '-r', '%.02f' % fps,
'-an', '-i', '-'
]
E TypeError: must be real number, not NoneType
moviepy/video/io/ffmpeg_writer.py:88: TypeError
----------------------------- Captured stdout call -----------------------------
Moviepy - Building video /tmp/guix-build-python-moviepy-1.0.3.drv-0/test.mp4.
Moviepy - Writing video /tmp/guix-build-python-moviepy-1.0.3.drv-0/test.mp4
_______________________________ test_afterimage ________________________________
def test_afterimage():
ai = ImageClip("media/afterimage.png")
masked_clip = mask_color(ai, color=[0,255,1]) # for green
some_background_clip = ColorClip((800,600), color=(255,255,255))
final_clip = CompositeVideoClip([some_background_clip, masked_clip],
use_bgclip=True)
final_clip.duration = 5
> final_clip.write_videofile(
os.path.join(TMP_DIR, "afterimage.mp4"), fps=30)
tests/test_Videos.py:22:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:54: in requires_duration
return f(clip, *a, **k)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:135: in use_clip_fps_by_default
return f(clip, *new_a, **new_kw)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:22: in convert_masks_to_RGB
return f(clip, *a, **k)
moviepy/video/VideoClip.py:300: in write_videofile
ffmpeg_write_video(self, filename, fps, codec,
moviepy/video/io/ffmpeg_writer.py:213: in ffmpeg_write_video
with FFMPEG_VideoWriter(filename, clip.size, fps, codec = codec,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <moviepy.video.io.ffmpeg_writer.FFMPEG_VideoWriter object at
0x7fffd881a730>
filename = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/afterimage.mp4'
size = (800, 600), fps = None, codec = 'libx264', audiofile = None
preset = 'medium', bitrate = None, withmask = False, logfile = -1
threads = None, ffmpeg_params = None
def __init__(self, filename, size, fps, codec="libx264", audiofile=None,
preset="medium", bitrate=None, withmask=False,
logfile=None, threads=None, ffmpeg_params=None):
if logfile is None:
logfile = sp.PIPE
self.filename = filename
self.codec = codec
self.ext = self.filename.split(".")[-1]
# order is important
cmd = [
get_setting("FFMPEG_BINARY"),
'-y',
'-loglevel', 'error' if logfile == sp.PIPE else 'info',
'-f', 'rawvideo',
'-vcodec', 'rawvideo',
'-s', '%dx%d' % (size[0], size[1]),
'-pix_fmt', 'rgba' if withmask else 'rgb24',
> '-r', '%.02f' % fps,
'-an', '-i', '-'
]
E TypeError: must be real number, not NoneType
moviepy/video/io/ffmpeg_writer.py:88: TypeError
----------------------------- Captured stdout call -----------------------------
Moviepy - Building video
/tmp/guix-build-python-moviepy-1.0.3.drv-0/afterimage.mp4.
Moviepy - Writing video
/tmp/guix-build-python-moviepy-1.0.3.drv-0/afterimage.mp4
__________________________ test_clips_array_duration ___________________________
def test_clips_array_duration():
# NOTE: anyone knows what behaviour this sets ? If yes please replace
# this comment.
red = ColorClip((256, 200), color=(255, 0, 0))
green = ColorClip((256, 200), color=(0, 255, 0))
blue = ColorClip((256, 200), color=(0, 0, 255))
video = clips_array([[red, green, blue]]).set_duration(5)
with pytest.raises(AttributeError): # fps not set
> video.write_videofile(join(TMP_DIR, "test_clips_array.mp4"))
tests/test_compositing.py:36:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:54: in requires_duration
return f(clip, *a, **k)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:135: in use_clip_fps_by_default
return f(clip, *new_a, **new_kw)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:22: in convert_masks_to_RGB
return f(clip, *a, **k)
moviepy/video/VideoClip.py:300: in write_videofile
ffmpeg_write_video(self, filename, fps, codec,
moviepy/video/io/ffmpeg_writer.py:213: in ffmpeg_write_video
with FFMPEG_VideoWriter(filename, clip.size, fps, codec = codec,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <moviepy.video.io.ffmpeg_writer.FFMPEG_VideoWriter object at
0x7fffd86dd7f0>
filename = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/test_clips_array.mp4'
size = (768, 200), fps = None, codec = 'libx264', audiofile = None
preset = 'medium', bitrate = None, withmask = False, logfile = -1
threads = None, ffmpeg_params = None
def __init__(self, filename, size, fps, codec="libx264", audiofile=None,
preset="medium", bitrate=None, withmask=False,
logfile=None, threads=None, ffmpeg_params=None):
if logfile is None:
logfile = sp.PIPE
self.filename = filename
self.codec = codec
self.ext = self.filename.split(".")[-1]
# order is important
cmd = [
get_setting("FFMPEG_BINARY"),
'-y',
'-loglevel', 'error' if logfile == sp.PIPE else 'info',
'-f', 'rawvideo',
'-vcodec', 'rawvideo',
'-s', '%dx%d' % (size[0], size[1]),
'-pix_fmt', 'rgba' if withmask else 'rgb24',
> '-r', '%.02f' % fps,
'-an', '-i', '-'
]
E TypeError: must be real number, not NoneType
moviepy/video/io/ffmpeg_writer.py:88: TypeError
----------------------------- Captured stdout call -----------------------------
Moviepy - Building video
/tmp/guix-build-python-moviepy-1.0.3.drv-0/test_clips_array.mp4.
Moviepy - Writing video
/tmp/guix-build-python-moviepy-1.0.3.drv-0/test_clips_array.mp4
_______________________________ test_blackwhite ________________________________
def test_blackwhite():
clip = get_test_video()
clip1 = blackwhite(clip)
> clip1.write_videofile(os.path.join(TMP_DIR, "blackwhite1.webm"))
tests/test_fx.py:39:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:54: in requires_duration
return f(clip, *a, **k)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:135: in use_clip_fps_by_default
return f(clip, *new_a, **new_kw)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:22: in convert_masks_to_RGB
return f(clip, *a, **k)
moviepy/video/VideoClip.py:300: in write_videofile
ffmpeg_write_video(self, filename, fps, codec,
moviepy/video/io/ffmpeg_writer.py:213: in ffmpeg_write_video
with FFMPEG_VideoWriter(filename, clip.size, fps, codec = codec,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <moviepy.video.io.ffmpeg_writer.FFMPEG_VideoWriter object at
0x7fffd87de610>
filename = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/blackwhite1.webm'
size = (1280, 720), fps = None, codec = 'libvpx'
audiofile = 'blackwhite1TEMP_MPY_wvf_snd.ogg', preset = 'medium', bitrate = None
withmask = False, logfile = -1, threads = None, ffmpeg_params = None
def __init__(self, filename, size, fps, codec="libx264", audiofile=None,
preset="medium", bitrate=None, withmask=False,
logfile=None, threads=None, ffmpeg_params=None):
if logfile is None:
logfile = sp.PIPE
self.filename = filename
self.codec = codec
self.ext = self.filename.split(".")[-1]
# order is important
cmd = [
get_setting("FFMPEG_BINARY"),
'-y',
'-loglevel', 'error' if logfile == sp.PIPE else 'info',
'-f', 'rawvideo',
'-vcodec', 'rawvideo',
'-s', '%dx%d' % (size[0], size[1]),
'-pix_fmt', 'rgba' if withmask else 'rgb24',
> '-r', '%.02f' % fps,
'-an', '-i', '-'
]
E TypeError: must be real number, not NoneType
moviepy/video/io/ffmpeg_writer.py:88: TypeError
----------------------------- Captured stdout call -----------------------------
Moviepy - Building video
/tmp/guix-build-python-moviepy-1.0.3.drv-0/blackwhite1.webm.
MoviePy - Writing audio in blackwhite1TEMP_MPY_wvf_snd.ogg
MoviePy - Done.
Moviepy - Writing video
/tmp/guix-build-python-moviepy-1.0.3.drv-0/blackwhite1.webm
----------------------------- Captured stderr call -----------------------------
_________________________________ test_colorx __________________________________
def test_colorx():
clip = get_test_video()
clip1 = colorx(clip, 2)
> clip1.write_videofile(os.path.join(TMP_DIR, "colorx1.webm"))
tests/test_fx.py:52:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:54: in requires_duration
return f(clip, *a, **k)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:135: in use_clip_fps_by_default
return f(clip, *new_a, **new_kw)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:22: in convert_masks_to_RGB
return f(clip, *a, **k)
moviepy/video/VideoClip.py:300: in write_videofile
ffmpeg_write_video(self, filename, fps, codec,
moviepy/video/io/ffmpeg_writer.py:213: in ffmpeg_write_video
with FFMPEG_VideoWriter(filename, clip.size, fps, codec = codec,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <moviepy.video.io.ffmpeg_writer.FFMPEG_VideoWriter object at
0x7fffd9280b50>
filename = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/colorx1.webm'
size = (1280, 720), fps = None, codec = 'libvpx'
audiofile = 'colorx1TEMP_MPY_wvf_snd.ogg', preset = 'medium', bitrate = None
withmask = False, logfile = -1, threads = None, ffmpeg_params = None
def __init__(self, filename, size, fps, codec="libx264", audiofile=None,
preset="medium", bitrate=None, withmask=False,
logfile=None, threads=None, ffmpeg_params=None):
if logfile is None:
logfile = sp.PIPE
self.filename = filename
self.codec = codec
self.ext = self.filename.split(".")[-1]
# order is important
cmd = [
get_setting("FFMPEG_BINARY"),
'-y',
'-loglevel', 'error' if logfile == sp.PIPE else 'info',
'-f', 'rawvideo',
'-vcodec', 'rawvideo',
'-s', '%dx%d' % (size[0], size[1]),
'-pix_fmt', 'rgba' if withmask else 'rgb24',
> '-r', '%.02f' % fps,
'-an', '-i', '-'
]
E TypeError: must be real number, not NoneType
moviepy/video/io/ffmpeg_writer.py:88: TypeError
----------------------------- Captured stdout call -----------------------------
Moviepy - Building video
/tmp/guix-build-python-moviepy-1.0.3.drv-0/colorx1.webm.
MoviePy - Writing audio in colorx1TEMP_MPY_wvf_snd.ogg
MoviePy - Done.
Moviepy - Writing video /tmp/guix-build-python-moviepy-1.0.3.drv-0/colorx1.webm
----------------------------- Captured stderr call -----------------------------
__________________________________ test_crop ___________________________________
def test_crop():
clip = get_test_video()
clip1 = crop(clip) # ie, no cropping (just tests all default values)
> clip1.write_videofile(os.path.join(TMP_DIR, "crop1.webm"))
tests/test_fx.py:59:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:54: in requires_duration
return f(clip, *a, **k)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:135: in use_clip_fps_by_default
return f(clip, *new_a, **new_kw)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:22: in convert_masks_to_RGB
return f(clip, *a, **k)
moviepy/video/VideoClip.py:300: in write_videofile
ffmpeg_write_video(self, filename, fps, codec,
moviepy/video/io/ffmpeg_writer.py:213: in ffmpeg_write_video
with FFMPEG_VideoWriter(filename, clip.size, fps, codec = codec,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <moviepy.video.io.ffmpeg_writer.FFMPEG_VideoWriter object at
0x7fffd8593100>
filename = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/crop1.webm'
size = (1280, 720), fps = None, codec = 'libvpx'
audiofile = 'crop1TEMP_MPY_wvf_snd.ogg', preset = 'medium', bitrate = None
withmask = False, logfile = -1, threads = None, ffmpeg_params = None
def __init__(self, filename, size, fps, codec="libx264", audiofile=None,
preset="medium", bitrate=None, withmask=False,
logfile=None, threads=None, ffmpeg_params=None):
if logfile is None:
logfile = sp.PIPE
self.filename = filename
self.codec = codec
self.ext = self.filename.split(".")[-1]
# order is important
cmd = [
get_setting("FFMPEG_BINARY"),
'-y',
'-loglevel', 'error' if logfile == sp.PIPE else 'info',
'-f', 'rawvideo',
'-vcodec', 'rawvideo',
'-s', '%dx%d' % (size[0], size[1]),
'-pix_fmt', 'rgba' if withmask else 'rgb24',
> '-r', '%.02f' % fps,
'-an', '-i', '-'
]
E TypeError: must be real number, not NoneType
moviepy/video/io/ffmpeg_writer.py:88: TypeError
----------------------------- Captured stdout call -----------------------------
Moviepy - Building video /tmp/guix-build-python-moviepy-1.0.3.drv-0/crop1.webm.
MoviePy - Writing audio in crop1TEMP_MPY_wvf_snd.ogg
MoviePy - Done.
Moviepy - Writing video /tmp/guix-build-python-moviepy-1.0.3.drv-0/crop1.webm
----------------------------- Captured stderr call -----------------------------
_________________________________ test_fadein __________________________________
def test_fadein():
clip = get_test_video()
clip1 = fadein(clip, 0.5)
> clip1.write_videofile(os.path.join(TMP_DIR, "fadein1.webm"))
tests/test_fx.py:80:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:54: in requires_duration
return f(clip, *a, **k)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:135: in use_clip_fps_by_default
return f(clip, *new_a, **new_kw)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:22: in convert_masks_to_RGB
return f(clip, *a, **k)
moviepy/video/VideoClip.py:300: in write_videofile
ffmpeg_write_video(self, filename, fps, codec,
moviepy/video/io/ffmpeg_writer.py:213: in ffmpeg_write_video
with FFMPEG_VideoWriter(filename, clip.size, fps, codec = codec,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <moviepy.video.io.ffmpeg_writer.FFMPEG_VideoWriter object at
0x7fffd86f69d0>
filename = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/fadein1.webm'
size = (1280, 720), fps = None, codec = 'libvpx'
audiofile = 'fadein1TEMP_MPY_wvf_snd.ogg', preset = 'medium', bitrate = None
withmask = False, logfile = -1, threads = None, ffmpeg_params = None
def __init__(self, filename, size, fps, codec="libx264", audiofile=None,
preset="medium", bitrate=None, withmask=False,
logfile=None, threads=None, ffmpeg_params=None):
if logfile is None:
logfile = sp.PIPE
self.filename = filename
self.codec = codec
self.ext = self.filename.split(".")[-1]
# order is important
cmd = [
get_setting("FFMPEG_BINARY"),
'-y',
'-loglevel', 'error' if logfile == sp.PIPE else 'info',
'-f', 'rawvideo',
'-vcodec', 'rawvideo',
'-s', '%dx%d' % (size[0], size[1]),
'-pix_fmt', 'rgba' if withmask else 'rgb24',
> '-r', '%.02f' % fps,
'-an', '-i', '-'
]
E TypeError: must be real number, not NoneType
moviepy/video/io/ffmpeg_writer.py:88: TypeError
----------------------------- Captured stdout call -----------------------------
Moviepy - Building video
/tmp/guix-build-python-moviepy-1.0.3.drv-0/fadein1.webm.
MoviePy - Writing audio in fadein1TEMP_MPY_wvf_snd.ogg
MoviePy - Done.
Moviepy - Writing video /tmp/guix-build-python-moviepy-1.0.3.drv-0/fadein1.webm
----------------------------- Captured stderr call -----------------------------
_________________________________ test_fadeout _________________________________
def test_fadeout():
clip = get_test_video()
clip1 = fadeout(clip, 0.5)
> clip1.write_videofile(os.path.join(TMP_DIR, "fadeout1.webm"))
tests/test_fx.py:87:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:54: in requires_duration
return f(clip, *a, **k)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:135: in use_clip_fps_by_default
return f(clip, *new_a, **new_kw)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:22: in convert_masks_to_RGB
return f(clip, *a, **k)
moviepy/video/VideoClip.py:300: in write_videofile
ffmpeg_write_video(self, filename, fps, codec,
moviepy/video/io/ffmpeg_writer.py:213: in ffmpeg_write_video
with FFMPEG_VideoWriter(filename, clip.size, fps, codec = codec,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <moviepy.video.io.ffmpeg_writer.FFMPEG_VideoWriter object at
0x7fffd875a070>
filename = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/fadeout1.webm'
size = (1280, 720), fps = None, codec = 'libvpx'
audiofile = 'fadeout1TEMP_MPY_wvf_snd.ogg', preset = 'medium', bitrate = None
withmask = False, logfile = -1, threads = None, ffmpeg_params = None
def __init__(self, filename, size, fps, codec="libx264", audiofile=None,
preset="medium", bitrate=None, withmask=False,
logfile=None, threads=None, ffmpeg_params=None):
if logfile is None:
logfile = sp.PIPE
self.filename = filename
self.codec = codec
self.ext = self.filename.split(".")[-1]
# order is important
cmd = [
get_setting("FFMPEG_BINARY"),
'-y',
'-loglevel', 'error' if logfile == sp.PIPE else 'info',
'-f', 'rawvideo',
'-vcodec', 'rawvideo',
'-s', '%dx%d' % (size[0], size[1]),
'-pix_fmt', 'rgba' if withmask else 'rgb24',
> '-r', '%.02f' % fps,
'-an', '-i', '-'
]
E TypeError: must be real number, not NoneType
moviepy/video/io/ffmpeg_writer.py:88: TypeError
----------------------------- Captured stdout call -----------------------------
Moviepy - Building video
/tmp/guix-build-python-moviepy-1.0.3.drv-0/fadeout1.webm.
MoviePy - Writing audio in fadeout1TEMP_MPY_wvf_snd.ogg
MoviePy - Done.
Moviepy - Writing video /tmp/guix-build-python-moviepy-1.0.3.drv-0/fadeout1.webm
----------------------------- Captured stderr call -----------------------------
______________________________ test_invert_colors ______________________________
def test_invert_colors():
clip = get_test_video()
clip1 = invert_colors(clip)
> clip1.write_videofile(os.path.join(TMP_DIR, "invert_colors1.webm"))
tests/test_fx.py:94:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:54: in requires_duration
return f(clip, *a, **k)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:135: in use_clip_fps_by_default
return f(clip, *new_a, **new_kw)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:22: in convert_masks_to_RGB
return f(clip, *a, **k)
moviepy/video/VideoClip.py:300: in write_videofile
ffmpeg_write_video(self, filename, fps, codec,
moviepy/video/io/ffmpeg_writer.py:213: in ffmpeg_write_video
with FFMPEG_VideoWriter(filename, clip.size, fps, codec = codec,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <moviepy.video.io.ffmpeg_writer.FFMPEG_VideoWriter object at
0x7fffd858b160>
filename = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/invert_colors1.webm'
size = (1280, 720), fps = None, codec = 'libvpx'
audiofile = 'invert_colors1TEMP_MPY_wvf_snd.ogg', preset = 'medium'
bitrate = None, withmask = False, logfile = -1, threads = None
ffmpeg_params = None
def __init__(self, filename, size, fps, codec="libx264", audiofile=None,
preset="medium", bitrate=None, withmask=False,
logfile=None, threads=None, ffmpeg_params=None):
if logfile is None:
logfile = sp.PIPE
self.filename = filename
self.codec = codec
self.ext = self.filename.split(".")[-1]
# order is important
cmd = [
get_setting("FFMPEG_BINARY"),
'-y',
'-loglevel', 'error' if logfile == sp.PIPE else 'info',
'-f', 'rawvideo',
'-vcodec', 'rawvideo',
'-s', '%dx%d' % (size[0], size[1]),
'-pix_fmt', 'rgba' if withmask else 'rgb24',
> '-r', '%.02f' % fps,
'-an', '-i', '-'
]
E TypeError: must be real number, not NoneType
moviepy/video/io/ffmpeg_writer.py:88: TypeError
----------------------------- Captured stdout call -----------------------------
Moviepy - Building video
/tmp/guix-build-python-moviepy-1.0.3.drv-0/invert_colors1.webm.
MoviePy - Writing audio in invert_colors1TEMP_MPY_wvf_snd.ogg
MoviePy - Done.
Moviepy - Writing video
/tmp/guix-build-python-moviepy-1.0.3.drv-0/invert_colors1.webm
----------------------------- Captured stderr call -----------------------------
______________________________ test_lum_contrast _______________________________
def test_lum_contrast():
clip = get_test_video()
clip1 = lum_contrast(clip)
> clip1.write_videofile(os.path.join(TMP_DIR, "lum_contrast1.webm"))
tests/test_fx.py:117:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:54: in requires_duration
return f(clip, *a, **k)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:135: in use_clip_fps_by_default
return f(clip, *new_a, **new_kw)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:22: in convert_masks_to_RGB
return f(clip, *a, **k)
moviepy/video/VideoClip.py:300: in write_videofile
ffmpeg_write_video(self, filename, fps, codec,
moviepy/video/io/ffmpeg_writer.py:213: in ffmpeg_write_video
with FFMPEG_VideoWriter(filename, clip.size, fps, codec = codec,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <moviepy.video.io.ffmpeg_writer.FFMPEG_VideoWriter object at
0x7fffd86c0e80>
filename = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/lum_contrast1.webm'
size = (1280, 720), fps = None, codec = 'libvpx'
audiofile = 'lum_contrast1TEMP_MPY_wvf_snd.ogg', preset = 'medium'
bitrate = None, withmask = False, logfile = -1, threads = None
ffmpeg_params = None
def __init__(self, filename, size, fps, codec="libx264", audiofile=None,
preset="medium", bitrate=None, withmask=False,
logfile=None, threads=None, ffmpeg_params=None):
if logfile is None:
logfile = sp.PIPE
self.filename = filename
self.codec = codec
self.ext = self.filename.split(".")[-1]
# order is important
cmd = [
get_setting("FFMPEG_BINARY"),
'-y',
'-loglevel', 'error' if logfile == sp.PIPE else 'info',
'-f', 'rawvideo',
'-vcodec', 'rawvideo',
'-s', '%dx%d' % (size[0], size[1]),
'-pix_fmt', 'rgba' if withmask else 'rgb24',
> '-r', '%.02f' % fps,
'-an', '-i', '-'
]
E TypeError: must be real number, not NoneType
moviepy/video/io/ffmpeg_writer.py:88: TypeError
----------------------------- Captured stdout call -----------------------------
Moviepy - Building video
/tmp/guix-build-python-moviepy-1.0.3.drv-0/lum_contrast1.webm.
MoviePy - Writing audio in lum_contrast1TEMP_MPY_wvf_snd.ogg
MoviePy - Done.
Moviepy - Writing video
/tmp/guix-build-python-moviepy-1.0.3.drv-0/lum_contrast1.webm
----------------------------- Captured stderr call -----------------------------
______________________________ test_make_loopable ______________________________
def test_make_loopable():
clip = get_test_video()
clip1 = make_loopable(clip, 0.4)
> clip1.write_videofile(os.path.join(TMP_DIR, "make_loopable1.webm"))
tests/test_fx.py:128:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:54: in requires_duration
return f(clip, *a, **k)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:135: in use_clip_fps_by_default
return f(clip, *new_a, **new_kw)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:22: in convert_masks_to_RGB
return f(clip, *a, **k)
moviepy/video/VideoClip.py:300: in write_videofile
ffmpeg_write_video(self, filename, fps, codec,
moviepy/video/io/ffmpeg_writer.py:213: in ffmpeg_write_video
with FFMPEG_VideoWriter(filename, clip.size, fps, codec = codec,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <moviepy.video.io.ffmpeg_writer.FFMPEG_VideoWriter object at
0x7fffd867cee0>
filename = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/make_loopable1.webm'
size = (1280, 720), fps = None, codec = 'libvpx'
audiofile = 'make_loopable1TEMP_MPY_wvf_snd.ogg', preset = 'medium'
bitrate = None, withmask = False, logfile = -1, threads = None
ffmpeg_params = None
def __init__(self, filename, size, fps, codec="libx264", audiofile=None,
preset="medium", bitrate=None, withmask=False,
logfile=None, threads=None, ffmpeg_params=None):
if logfile is None:
logfile = sp.PIPE
self.filename = filename
self.codec = codec
self.ext = self.filename.split(".")[-1]
# order is important
cmd = [
get_setting("FFMPEG_BINARY"),
'-y',
'-loglevel', 'error' if logfile == sp.PIPE else 'info',
'-f', 'rawvideo',
'-vcodec', 'rawvideo',
'-s', '%dx%d' % (size[0], size[1]),
'-pix_fmt', 'rgba' if withmask else 'rgb24',
> '-r', '%.02f' % fps,
'-an', '-i', '-'
]
E TypeError: must be real number, not NoneType
moviepy/video/io/ffmpeg_writer.py:88: TypeError
----------------------------- Captured stdout call -----------------------------
Moviepy - Building video
/tmp/guix-build-python-moviepy-1.0.3.drv-0/make_loopable1.webm.
MoviePy - Writing audio in make_loopable1TEMP_MPY_wvf_snd.ogg
MoviePy - Done.
Moviepy - Writing video
/tmp/guix-build-python-moviepy-1.0.3.drv-0/make_loopable1.webm
----------------------------- Captured stderr call -----------------------------
_________________________________ test_margin __________________________________
def test_margin():
clip = get_test_video()
clip1 = margin(clip) # does the default values change anything?
> clip1.write_videofile(os.path.join(TMP_DIR, "margin1.webm"))
tests/test_fx.py:135:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:54: in requires_duration
return f(clip, *a, **k)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:135: in use_clip_fps_by_default
return f(clip, *new_a, **new_kw)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:22: in convert_masks_to_RGB
return f(clip, *a, **k)
moviepy/video/VideoClip.py:300: in write_videofile
ffmpeg_write_video(self, filename, fps, codec,
moviepy/video/io/ffmpeg_writer.py:213: in ffmpeg_write_video
with FFMPEG_VideoWriter(filename, clip.size, fps, codec = codec,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <moviepy.video.io.ffmpeg_writer.FFMPEG_VideoWriter object at
0x7fffd86a6bb0>
filename = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/margin1.webm'
size = (1280, 720), fps = None, codec = 'libvpx'
audiofile = 'margin1TEMP_MPY_wvf_snd.ogg', preset = 'medium', bitrate = None
withmask = False, logfile = -1, threads = None, ffmpeg_params = None
def __init__(self, filename, size, fps, codec="libx264", audiofile=None,
preset="medium", bitrate=None, withmask=False,
logfile=None, threads=None, ffmpeg_params=None):
if logfile is None:
logfile = sp.PIPE
self.filename = filename
self.codec = codec
self.ext = self.filename.split(".")[-1]
# order is important
cmd = [
get_setting("FFMPEG_BINARY"),
'-y',
'-loglevel', 'error' if logfile == sp.PIPE else 'info',
'-f', 'rawvideo',
'-vcodec', 'rawvideo',
'-s', '%dx%d' % (size[0], size[1]),
'-pix_fmt', 'rgba' if withmask else 'rgb24',
> '-r', '%.02f' % fps,
'-an', '-i', '-'
]
E TypeError: must be real number, not NoneType
moviepy/video/io/ffmpeg_writer.py:88: TypeError
----------------------------- Captured stdout call -----------------------------
Moviepy - Building video
/tmp/guix-build-python-moviepy-1.0.3.drv-0/margin1.webm.
MoviePy - Writing audio in margin1TEMP_MPY_wvf_snd.ogg
MoviePy - Done.
Moviepy - Writing video /tmp/guix-build-python-moviepy-1.0.3.drv-0/margin1.webm
----------------------------- Captured stderr call -----------------------------
________________________________ test_mirror_x _________________________________
def test_mirror_x():
clip = get_test_video()
clip1 = mirror_x(clip)
> clip1.write_videofile(os.path.join(TMP_DIR, "mirror_x1.webm"))
tests/test_fx.py:160:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:54: in requires_duration
return f(clip, *a, **k)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:135: in use_clip_fps_by_default
return f(clip, *new_a, **new_kw)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:22: in convert_masks_to_RGB
return f(clip, *a, **k)
moviepy/video/VideoClip.py:300: in write_videofile
ffmpeg_write_video(self, filename, fps, codec,
moviepy/video/io/ffmpeg_writer.py:213: in ffmpeg_write_video
with FFMPEG_VideoWriter(filename, clip.size, fps, codec = codec,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <moviepy.video.io.ffmpeg_writer.FFMPEG_VideoWriter object at
0x7fffd87de6d0>
filename = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/mirror_x1.webm'
size = (1280, 720), fps = None, codec = 'libvpx'
audiofile = 'mirror_x1TEMP_MPY_wvf_snd.ogg', preset = 'medium', bitrate = None
withmask = False, logfile = -1, threads = None, ffmpeg_params = None
def __init__(self, filename, size, fps, codec="libx264", audiofile=None,
preset="medium", bitrate=None, withmask=False,
logfile=None, threads=None, ffmpeg_params=None):
if logfile is None:
logfile = sp.PIPE
self.filename = filename
self.codec = codec
self.ext = self.filename.split(".")[-1]
# order is important
cmd = [
get_setting("FFMPEG_BINARY"),
'-y',
'-loglevel', 'error' if logfile == sp.PIPE else 'info',
'-f', 'rawvideo',
'-vcodec', 'rawvideo',
'-s', '%dx%d' % (size[0], size[1]),
'-pix_fmt', 'rgba' if withmask else 'rgb24',
> '-r', '%.02f' % fps,
'-an', '-i', '-'
]
E TypeError: must be real number, not NoneType
moviepy/video/io/ffmpeg_writer.py:88: TypeError
----------------------------- Captured stdout call -----------------------------
Moviepy - Building video
/tmp/guix-build-python-moviepy-1.0.3.drv-0/mirror_x1.webm.
MoviePy - Writing audio in mirror_x1TEMP_MPY_wvf_snd.ogg
MoviePy - Done.
Moviepy - Writing video
/tmp/guix-build-python-moviepy-1.0.3.drv-0/mirror_x1.webm
----------------------------- Captured stderr call -----------------------------
________________________________ test_mirror_y _________________________________
def test_mirror_y():
clip = get_test_video()
clip1 = mirror_y(clip)
> clip1.write_videofile(os.path.join(TMP_DIR, "mirror_y1.webm"))
tests/test_fx.py:167:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:54: in requires_duration
return f(clip, *a, **k)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:135: in use_clip_fps_by_default
return f(clip, *new_a, **new_kw)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:22: in convert_masks_to_RGB
return f(clip, *a, **k)
moviepy/video/VideoClip.py:300: in write_videofile
ffmpeg_write_video(self, filename, fps, codec,
moviepy/video/io/ffmpeg_writer.py:213: in ffmpeg_write_video
with FFMPEG_VideoWriter(filename, clip.size, fps, codec = codec,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <moviepy.video.io.ffmpeg_writer.FFMPEG_VideoWriter object at
0x7fffd872f1f0>
filename = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/mirror_y1.webm'
size = (1280, 720), fps = None, codec = 'libvpx'
audiofile = 'mirror_y1TEMP_MPY_wvf_snd.ogg', preset = 'medium', bitrate = None
withmask = False, logfile = -1, threads = None, ffmpeg_params = None
def __init__(self, filename, size, fps, codec="libx264", audiofile=None,
preset="medium", bitrate=None, withmask=False,
logfile=None, threads=None, ffmpeg_params=None):
if logfile is None:
logfile = sp.PIPE
self.filename = filename
self.codec = codec
self.ext = self.filename.split(".")[-1]
# order is important
cmd = [
get_setting("FFMPEG_BINARY"),
'-y',
'-loglevel', 'error' if logfile == sp.PIPE else 'info',
'-f', 'rawvideo',
'-vcodec', 'rawvideo',
'-s', '%dx%d' % (size[0], size[1]),
'-pix_fmt', 'rgba' if withmask else 'rgb24',
> '-r', '%.02f' % fps,
'-an', '-i', '-'
]
E TypeError: must be real number, not NoneType
moviepy/video/io/ffmpeg_writer.py:88: TypeError
----------------------------- Captured stdout call -----------------------------
Moviepy - Building video
/tmp/guix-build-python-moviepy-1.0.3.drv-0/mirror_y1.webm.
MoviePy - Writing audio in mirror_y1TEMP_MPY_wvf_snd.ogg
MoviePy - Done.
Moviepy - Writing video
/tmp/guix-build-python-moviepy-1.0.3.drv-0/mirror_y1.webm
----------------------------- Captured stderr call -----------------------------
_________________________________ test_resize __________________________________
def test_resize():
clip = get_test_video()
clip1 = resize(clip, (460, 720)) # New resolution: (460,720)
assert clip1.size == (460, 720)
> clip1.write_videofile(os.path.join(TMP_DIR, "resize1.webm"))
tests/test_fx.py:180:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:54: in requires_duration
return f(clip, *a, **k)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:135: in use_clip_fps_by_default
return f(clip, *new_a, **new_kw)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:22: in convert_masks_to_RGB
return f(clip, *a, **k)
moviepy/video/VideoClip.py:300: in write_videofile
ffmpeg_write_video(self, filename, fps, codec,
moviepy/video/io/ffmpeg_writer.py:213: in ffmpeg_write_video
with FFMPEG_VideoWriter(filename, clip.size, fps, codec = codec,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <moviepy.video.io.ffmpeg_writer.FFMPEG_VideoWriter object at
0x7ffff6ade670>
filename = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/resize1.webm'
size = (460, 720), fps = None, codec = 'libvpx'
audiofile = 'resize1TEMP_MPY_wvf_snd.ogg', preset = 'medium', bitrate = None
withmask = False, logfile = -1, threads = None, ffmpeg_params = None
def __init__(self, filename, size, fps, codec="libx264", audiofile=None,
preset="medium", bitrate=None, withmask=False,
logfile=None, threads=None, ffmpeg_params=None):
if logfile is None:
logfile = sp.PIPE
self.filename = filename
self.codec = codec
self.ext = self.filename.split(".")[-1]
# order is important
cmd = [
get_setting("FFMPEG_BINARY"),
'-y',
'-loglevel', 'error' if logfile == sp.PIPE else 'info',
'-f', 'rawvideo',
'-vcodec', 'rawvideo',
'-s', '%dx%d' % (size[0], size[1]),
'-pix_fmt', 'rgba' if withmask else 'rgb24',
> '-r', '%.02f' % fps,
'-an', '-i', '-'
]
E TypeError: must be real number, not NoneType
moviepy/video/io/ffmpeg_writer.py:88: TypeError
----------------------------- Captured stdout call -----------------------------
Moviepy - Building video
/tmp/guix-build-python-moviepy-1.0.3.drv-0/resize1.webm.
MoviePy - Writing audio in resize1TEMP_MPY_wvf_snd.ogg
MoviePy - Done.
Moviepy - Writing video /tmp/guix-build-python-moviepy-1.0.3.drv-0/resize1.webm
----------------------------- Captured stderr call -----------------------------
_________________________________ test_rotate __________________________________
def test_rotate():
clip = get_test_video()
clip1 = rotate(clip, 90) # rotate 90 degrees
assert clip1.size == (clip.size[1], clip.size[0])
> clip1.write_videofile(os.path.join(TMP_DIR, "rotate1.webm"))
tests/test_fx.py:202:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:54: in requires_duration
return f(clip, *a, **k)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:135: in use_clip_fps_by_default
return f(clip, *new_a, **new_kw)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:22: in convert_masks_to_RGB
return f(clip, *a, **k)
moviepy/video/VideoClip.py:300: in write_videofile
ffmpeg_write_video(self, filename, fps, codec,
moviepy/video/io/ffmpeg_writer.py:213: in ffmpeg_write_video
with FFMPEG_VideoWriter(filename, clip.size, fps, codec = codec,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <moviepy.video.io.ffmpeg_writer.FFMPEG_VideoWriter object at
0x7fffd87fc6d0>
filename = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/rotate1.webm'
size = (720, 1280), fps = None, codec = 'libvpx'
audiofile = 'rotate1TEMP_MPY_wvf_snd.ogg', preset = 'medium', bitrate = None
withmask = False, logfile = -1, threads = None, ffmpeg_params = None
def __init__(self, filename, size, fps, codec="libx264", audiofile=None,
preset="medium", bitrate=None, withmask=False,
logfile=None, threads=None, ffmpeg_params=None):
if logfile is None:
logfile = sp.PIPE
self.filename = filename
self.codec = codec
self.ext = self.filename.split(".")[-1]
# order is important
cmd = [
get_setting("FFMPEG_BINARY"),
'-y',
'-loglevel', 'error' if logfile == sp.PIPE else 'info',
'-f', 'rawvideo',
'-vcodec', 'rawvideo',
'-s', '%dx%d' % (size[0], size[1]),
'-pix_fmt', 'rgba' if withmask else 'rgb24',
> '-r', '%.02f' % fps,
'-an', '-i', '-'
]
E TypeError: must be real number, not NoneType
moviepy/video/io/ffmpeg_writer.py:88: TypeError
----------------------------- Captured stdout call -----------------------------
Moviepy - Building video
/tmp/guix-build-python-moviepy-1.0.3.drv-0/rotate1.webm.
MoviePy - Writing audio in rotate1TEMP_MPY_wvf_snd.ogg
MoviePy - Done.
Moviepy - Writing video /tmp/guix-build-python-moviepy-1.0.3.drv-0/rotate1.webm
----------------------------- Captured stderr call -----------------------------
_________________________________ test_speedx __________________________________
def test_speedx():
clip = get_test_video()
clip1 = speedx(clip, factor=0.5) # 1/2 speed
assert clip1.duration == 2
> clip1.write_videofile(os.path.join(TMP_DIR, "speedx1.webm"))
tests/test_fx.py:227:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:54: in requires_duration
return f(clip, *a, **k)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:135: in use_clip_fps_by_default
return f(clip, *new_a, **new_kw)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:22: in convert_masks_to_RGB
return f(clip, *a, **k)
moviepy/video/VideoClip.py:300: in write_videofile
ffmpeg_write_video(self, filename, fps, codec,
moviepy/video/io/ffmpeg_writer.py:213: in ffmpeg_write_video
with FFMPEG_VideoWriter(filename, clip.size, fps, codec = codec,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <moviepy.video.io.ffmpeg_writer.FFMPEG_VideoWriter object at
0x7fffd8794d30>
filename = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/speedx1.webm'
size = (1280, 720), fps = None, codec = 'libvpx'
audiofile = 'speedx1TEMP_MPY_wvf_snd.ogg', preset = 'medium', bitrate = None
withmask = False, logfile = -1, threads = None, ffmpeg_params = None
def __init__(self, filename, size, fps, codec="libx264", audiofile=None,
preset="medium", bitrate=None, withmask=False,
logfile=None, threads=None, ffmpeg_params=None):
if logfile is None:
logfile = sp.PIPE
self.filename = filename
self.codec = codec
self.ext = self.filename.split(".")[-1]
# order is important
cmd = [
get_setting("FFMPEG_BINARY"),
'-y',
'-loglevel', 'error' if logfile == sp.PIPE else 'info',
'-f', 'rawvideo',
'-vcodec', 'rawvideo',
'-s', '%dx%d' % (size[0], size[1]),
'-pix_fmt', 'rgba' if withmask else 'rgb24',
> '-r', '%.02f' % fps,
'-an', '-i', '-'
]
E TypeError: must be real number, not NoneType
moviepy/video/io/ffmpeg_writer.py:88: TypeError
----------------------------- Captured stdout call -----------------------------
Moviepy - Building video
/tmp/guix-build-python-moviepy-1.0.3.drv-0/speedx1.webm.
MoviePy - Writing audio in speedx1TEMP_MPY_wvf_snd.ogg
MoviePy - Done.
Moviepy - Writing video /tmp/guix-build-python-moviepy-1.0.3.drv-0/speedx1.webm
----------------------------- Captured stderr call -----------------------------
_______________________________ test_time_mirror _______________________________
def test_time_mirror():
clip = get_test_video()
clip1 = time_mirror(clip)
assert clip1.duration == clip.duration
> clip1.write_videofile(os.path.join(TMP_DIR, "time_mirror1.webm"))
tests/test_fx.py:248:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:54: in requires_duration
return f(clip, *a, **k)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:135: in use_clip_fps_by_default
return f(clip, *new_a, **new_kw)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:22: in convert_masks_to_RGB
return f(clip, *a, **k)
moviepy/video/VideoClip.py:300: in write_videofile
ffmpeg_write_video(self, filename, fps, codec,
moviepy/video/io/ffmpeg_writer.py:213: in ffmpeg_write_video
with FFMPEG_VideoWriter(filename, clip.size, fps, codec = codec,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <moviepy.video.io.ffmpeg_writer.FFMPEG_VideoWriter object at
0x7fffd867f100>
filename = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/time_mirror1.webm'
size = (1280, 720), fps = None, codec = 'libvpx'
audiofile = 'time_mirror1TEMP_MPY_wvf_snd.ogg', preset = 'medium'
bitrate = None, withmask = False, logfile = -1, threads = None
ffmpeg_params = None
def __init__(self, filename, size, fps, codec="libx264", audiofile=None,
preset="medium", bitrate=None, withmask=False,
logfile=None, threads=None, ffmpeg_params=None):
if logfile is None:
logfile = sp.PIPE
self.filename = filename
self.codec = codec
self.ext = self.filename.split(".")[-1]
# order is important
cmd = [
get_setting("FFMPEG_BINARY"),
'-y',
'-loglevel', 'error' if logfile == sp.PIPE else 'info',
'-f', 'rawvideo',
'-vcodec', 'rawvideo',
'-s', '%dx%d' % (size[0], size[1]),
'-pix_fmt', 'rgba' if withmask else 'rgb24',
> '-r', '%.02f' % fps,
'-an', '-i', '-'
]
E TypeError: must be real number, not NoneType
moviepy/video/io/ffmpeg_writer.py:88: TypeError
----------------------------- Captured stdout call -----------------------------
Moviepy - Building video
/tmp/guix-build-python-moviepy-1.0.3.drv-0/time_mirror1.webm.
MoviePy - Writing audio in time_mirror1TEMP_MPY_wvf_snd.ogg
MoviePy - Done.
Moviepy - Writing video
/tmp/guix-build-python-moviepy-1.0.3.drv-0/time_mirror1.webm
----------------------------- Captured stderr call -----------------------------
_____________________________ test_time_symmetrize _____________________________
def test_time_symmetrize():
clip = get_test_video()
clip1 = time_symmetrize(clip)
> clip1.write_videofile(os.path.join(TMP_DIR, "time_symmetrize1.webm"))
tests/test_fx.py:256:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:54: in requires_duration
return f(clip, *a, **k)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:135: in use_clip_fps_by_default
return f(clip, *new_a, **new_kw)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:22: in convert_masks_to_RGB
return f(clip, *a, **k)
moviepy/video/VideoClip.py:300: in write_videofile
ffmpeg_write_video(self, filename, fps, codec,
moviepy/video/io/ffmpeg_writer.py:213: in ffmpeg_write_video
with FFMPEG_VideoWriter(filename, clip.size, fps, codec = codec,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <moviepy.video.io.ffmpeg_writer.FFMPEG_VideoWriter object at
0x7fffd86f0df0>
filename = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/time_symmetrize1.webm'
size = (1280, 720), fps = None, codec = 'libvpx'
audiofile = 'time_symmetrize1TEMP_MPY_wvf_snd.ogg', preset = 'medium'
bitrate = None, withmask = False, logfile = -1, threads = None
ffmpeg_params = None
def __init__(self, filename, size, fps, codec="libx264", audiofile=None,
preset="medium", bitrate=None, withmask=False,
logfile=None, threads=None, ffmpeg_params=None):
if logfile is None:
logfile = sp.PIPE
self.filename = filename
self.codec = codec
self.ext = self.filename.split(".")[-1]
# order is important
cmd = [
get_setting("FFMPEG_BINARY"),
'-y',
'-loglevel', 'error' if logfile == sp.PIPE else 'info',
'-f', 'rawvideo',
'-vcodec', 'rawvideo',
'-s', '%dx%d' % (size[0], size[1]),
'-pix_fmt', 'rgba' if withmask else 'rgb24',
> '-r', '%.02f' % fps,
'-an', '-i', '-'
]
E TypeError: must be real number, not NoneType
moviepy/video/io/ffmpeg_writer.py:88: TypeError
----------------------------- Captured stdout call -----------------------------
Moviepy - Building video
/tmp/guix-build-python-moviepy-1.0.3.drv-0/time_symmetrize1.webm.
MoviePy - Writing audio in time_symmetrize1TEMP_MPY_wvf_snd.ogg
MoviePy - Done.
Moviepy - Writing video
/tmp/guix-build-python-moviepy-1.0.3.drv-0/time_symmetrize1.webm
----------------------------- Captured stderr call -----------------------------
________________________________ test_issue_334 ________________________________
def test_issue_334():
# NOTE: this is horrible. Any simpler version ?
last_move = None
last_move1 = None
lis = [(0.0, 113, 167, 47), (0.32, 138, 159, 47), (0.44, 152, 144, 47),
(0.48, 193, 148, 47), (0.6, 193, 148, 47), (0.76, 205, 138, 55),
(0.88, 204, 121, 63), (0.92, 190, 31, 127), (1.2, 183, 59, 127),
(1.4, 137, 22, 127), (1.52, 137, 22, 127), (1.72, 129, 67, 127),
(1.88, 123, 69, 127), (2.04, 131, 123, 63), (2.24, 130, 148, 63),
(2.48, 130, 148, 63), (2.8, 138, 180, 63), (3.0, 138, 180, 63),
(3.2, 146, 192, 63), (3.28, 105, 91, 151), (3.44, 105, 91, 151),
(3.72, 11, 48, 151), (3.96, 5, 78, 151), (4.32, 4, 134, 1),
(4.6, 149, 184, 48), (4.8, 145, 188, 48), (5.0, 154, 217, 48),
(5.08, 163, 199, 48), (5.2, 163, 199, 48), (5.32, 164, 187, 48),
(5.48, 163, 200, 48), (5.76, 163, 200, 48), (5.96, 173, 199, 48),
(6.0, 133, 172, 48), (6.04, 128, 165, 48), (6.28, 128, 165, 48),
(6.4, 129, 180, 48), (6.52, 133, 166, 48), (6.64, 133, 166, 48),
(6.88, 144, 183, 48), (7.0, 153, 174, 48), (7.16, 153, 174, 48),
(7.24, 153, 174, 48), (7.28, 253, 65, 104), (7.64, 253, 65, 104),
(7.8, 279, 116, 80), (8.0, 290, 105, 80), (8.24, 288, 124, 80),
(8.44, 243, 102, 80), (8.56, 243, 102, 80), (8.8, 202, 107, 80),
(8.84, 164, 27, 104), (9.0, 164, 27, 104), (9.12, 121, 9, 104),
(9.28, 77, 33, 104), (9.32, 52, 23, 104), (9.48, 52, 23, 104),
(9.64, 33, 46, 104), (9.8, 93, 49, 104), (9.92, 93, 49, 104),
(10.16, 173, 19, 104), (10.2, 226, 173, 48), (10.36, 226, 173,
48),
(10.48, 211, 172, 48), (10.64, 208, 162, 48), (10.92, 220, 171,
48)]
lis1 = [(0.0, 113, 167, 47), (0.32, 138, 159, 47), (0.44, 152, 144, 47),
(0.48, 193, 148, 47), (0.6, 193, 148, 47), (0.76, 205, 138, 55),
(0.88, 204, 121, 63), (0.92, 190, 31, 127), (1.2, 183, 59, 127),
(1.4, 137, 22, 127), (1.52, 137, 22, 127), (1.72, 129, 67, 127),
(1.88, 123, 69, 127), (2.04, 131, 123, 63), (2.24, 130, 148,
63),
(2.48, 130, 148, 63), (2.8, 138, 180, 63), (3.0, 138, 180, 63),
(3.2, 146, 192, 63), (3.28, 105, 91, 151), (3.44, 105, 91, 151),
(3.72, 11, 48, 151), (3.96, 5, 78, 151), (4.32, 4, 134, 1),
(4.6, 149, 184, 48), (4.8, 145, 188, 48), (5.0, 154, 217, 48),
(5.08, 163, 199, 48), (5.2, 163, 199, 48), (5.32, 164, 187, 48),
(5.48, 163, 200, 48), (5.76, 163, 200, 48), (5.96, 173, 199,
48),
(6.0, 133, 172, 48), (6.04, 128, 165, 48), (6.28, 128, 165, 48),
(6.4, 129, 180, 48), (6.52, 133, 166, 48), (6.64, 133, 166, 48),
(6.88, 144, 183, 48), (7.0, 153, 174, 48), (7.16, 153, 174, 48),
(7.24, 153, 174, 48), (7.28, 253, 65, 104), (7.64, 253, 65,
104),
(7.8, 279, 116, 80), (8.0, 290, 105, 80), (8.24, 288, 124, 80),
(8.44, 243, 102, 80), (8.56, 243, 102, 80), (8.8, 202, 107, 80),
(8.84, 164, 27, 104), (9.0, 164, 27, 104), (9.12, 121, 9, 104),
(9.28, 77, 33, 104), (9.32, 52, 23, 104), (9.48, 52, 23, 104),
(9.64, 33, 46, 104), (9.8, 93, 49, 104), (9.92, 93, 49, 104),
(10.16, 173, 19, 104), (10.2, 226, 173, 48), (10.36, 226, 173,
48),
(10.48, 211, 172, 48), (10.64, 208, 162, 48), (10.92, 220, 171,
48)]
def posi(t):
global last_move
if len(lis) == 0:
return (last_move[1], last_move[2])
if t >= lis[0][0]:
last_move = item = lis.pop(0)
return (item[1], item[2])
else:
if len(lis) > 0:
dura = lis[0][0] - last_move[0]
now = t - last_move[0]
w = (lis[0][1] - last_move[1]) * (now / dura)
h = (lis[0][2] - last_move[2]) * (now / dura)
# print t, last_move[1] + w, last_move[2] + h
return (last_move[1] + w, last_move[2] + h)
return (last_move[1], last_move[2])
def size(t):
global last_move1
if len(lis1) == 0:
return (last_move1[3], last_move1[3] * 1.33)
if t >= lis1[0][0]:
last_move1 = item = lis1.pop(0)
return (item[3], item[3] * 1.33)
else:
if len(lis) > 0:
dura = lis1[0][0] - last_move1[0]
now = t - last_move1[0]
s = (lis1[0][3] - last_move1[3]) * (now / dura)
nsw = last_move1[3] + s
nsh = nsw * 1.33
# print t, nsw, nsh
return (nsw, nsh)
return (last_move1[3], last_move1[3] * 1.33)
avatar = VideoFileClip("media/big_buck_bunny_432_433.webm",
has_mask=True)
avatar.audio = None
maskclip = ImageClip("media/afterimage.png",
ismask=True, transparent=True)
avatar.set_mask(maskclip) # must set maskclip here..
concatenated = concatenate_videoclips([avatar] * 3)
tt = VideoFileClip("media/big_buck_bunny_0_30.webm").subclip(0, 3)
# TODO: Setting mask here does not work:
# .set_mask(maskclip).resize(size)])
final = CompositeVideoClip(
[tt, concatenated.set_position(posi).resize(size)])
final.duration = tt.duration
> final.write_videofile(
os.path.join(TMP_DIR, 'issue_334.mp4'), fps=10)
tests/test_issues.py:143:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:54: in requires_duration
return f(clip, *a, **k)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:135: in use_clip_fps_by_default
return f(clip, *new_a, **new_kw)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:22: in convert_masks_to_RGB
return f(clip, *a, **k)
moviepy/video/VideoClip.py:300: in write_videofile
ffmpeg_write_video(self, filename, fps, codec,
moviepy/video/io/ffmpeg_writer.py:213: in ffmpeg_write_video
with FFMPEG_VideoWriter(filename, clip.size, fps, codec = codec,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <moviepy.video.io.ffmpeg_writer.FFMPEG_VideoWriter object at
0x7fffd872fd30>
filename = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/issue_334.mp4'
size = (1280, 720), fps = None, codec = 'libx264'
audiofile = 'issue_334TEMP_MPY_wvf_snd.mp3', preset = 'medium', bitrate = None
withmask = False, logfile = -1, threads = None, ffmpeg_params = None
def __init__(self, filename, size, fps, codec="libx264", audiofile=None,
preset="medium", bitrate=None, withmask=False,
logfile=None, threads=None, ffmpeg_params=None):
if logfile is None:
logfile = sp.PIPE
self.filename = filename
self.codec = codec
self.ext = self.filename.split(".")[-1]
# order is important
cmd = [
get_setting("FFMPEG_BINARY"),
'-y',
'-loglevel', 'error' if logfile == sp.PIPE else 'info',
'-f', 'rawvideo',
'-vcodec', 'rawvideo',
'-s', '%dx%d' % (size[0], size[1]),
'-pix_fmt', 'rgba' if withmask else 'rgb24',
> '-r', '%.02f' % fps,
'-an', '-i', '-'
]
E TypeError: must be real number, not NoneType
moviepy/video/io/ffmpeg_writer.py:88: TypeError
----------------------------- Captured stdout call -----------------------------
Moviepy - Building video
/tmp/guix-build-python-moviepy-1.0.3.drv-0/issue_334.mp4.
MoviePy - Writing audio in issue_334TEMP_MPY_wvf_snd.mp3
MoviePy - Done.
Moviepy - Writing video /tmp/guix-build-python-moviepy-1.0.3.drv-0/issue_334.mp4
----------------------------- Captured stderr call -----------------------------
________________________________ test_issue_470 ________________________________
def test_issue_470():
audio_clip = AudioFileClip('media/crunching.mp3')
# t_end is out of bounds
subclip = audio_clip.subclip(t_start=6, t_end=9)
with pytest.raises(IOError):
> subclip.write_audiofile(os.path.join(
TMP_DIR, 'issue_470.wav'), write_logfile=True)
E Failed: DID NOT RAISE <class 'OSError'>
tests/test_issues.py:267: Failed
----------------------------- Captured stdout call -----------------------------
MoviePy - Writing audio in
/tmp/guix-build-python-moviepy-1.0.3.drv-0/issue_470.wav
MoviePy - Done.
----------------------------- Captured stderr call -----------------------------
________________________________ test_issue_547 ________________________________
def test_issue_547():
red = ColorClip((640, 480), color=(255, 0, 0)).set_duration(1)
green = ColorClip((640, 480), color=(0, 255, 0)).set_duration(2)
blue = ColorClip((640, 480), color=(0, 0, 255)).set_duration(3)
video = concatenate_videoclips([red, green, blue], method="compose")
assert video.duration == 6
> assert video.mask.duration == 6
E assert 9 == 6
E +9
E -6
tests/test_issues.py:291: AssertionError
________________________________ test_subtitles ________________________________
self = <moviepy.video.VideoClip.TextClip object at 0x7fffd871f340>
txt = '@/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmpjcy0ne2v.txt'
filename = None, size = ('800', '600'), color = 'white'
bg_color = 'transparent', fontsize = 24, font = 'Liberation-Mono'
stroke_color = None, stroke_width = 1, method = 'caption', kerning = None
align = 'South', interline = None
tempfilename = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmparicz9mw.png'
temptxt = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmpjcy0ne2v.txt'
transparent = True, remove_temp = True, print_cmd = False
def __init__(self, txt=None, filename=None, size=None, color='black',
bg_color='transparent', fontsize=None, font='Courier',
stroke_color=None, stroke_width=1, method='label',
kerning=None, align='center', interline=None,
tempfilename=None, temptxt=None,
transparent=True, remove_temp=True,
print_cmd=False):
if txt is not None:
if temptxt is None:
temptxt_fd, temptxt = tempfile.mkstemp(suffix='.txt')
try: # only in Python3 will this work
os.write(temptxt_fd, bytes(txt, 'UTF8'))
except TypeError: # oops, fall back to Python2
os.write(temptxt_fd, txt)
os.close(temptxt_fd)
txt = '@' + temptxt
else:
# use a file instead of a text.
txt = "@%" + filename
if size is not None:
size = ('' if size[0] is None else str(size[0]),
'' if size[1] is None else str(size[1]))
cmd = ([get_setting("IMAGEMAGICK_BINARY"),
"-background", bg_color,
"-fill", color,
"-font", font])
if fontsize is not None:
cmd += ["-pointsize", "%d" % fontsize]
if kerning is not None:
cmd += ["-kerning", "%0.1f" % kerning]
if stroke_color is not None:
cmd += ["-stroke", stroke_color, "-strokewidth",
"%.01f" % stroke_width]
if size is not None:
cmd += ["-size", "%sx%s" % (size[0], size[1])]
if align is not None:
cmd += ["-gravity", align]
if interline is not None:
cmd += ["-interline-spacing", "%d" % interline]
if tempfilename is None:
tempfile_fd, tempfilename = tempfile.mkstemp(suffix='.png')
os.close(tempfile_fd)
cmd += ["%s:%s" % (method, txt),
"-type", "truecolormatte", "PNG32:%s" % tempfilename]
if print_cmd:
print(" ".join(cmd))
try:
> subprocess_call(cmd, logger=None)
moviepy/video/VideoClip.py:1137:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
cmd = ['convert', '-background', 'transparent', '-fill', 'white', '-font', ...]
logger = <proglog.proglog.MuteProgressBarLogger object at 0x7fffd871faf0>
errorprint = True
def subprocess_call(cmd, logger='bar', errorprint=True):
""" Executes the given subprocess command.
Set logger to None or a custom Proglog logger to avoid printings.
"""
logger = proglog.default_bar_logger(logger)
logger(message='Moviepy - Running:\n>>> "+ " ".join(cmd)')
popen_params = {"stdout": DEVNULL,
"stderr": sp.PIPE,
"stdin": DEVNULL}
if os.name == "nt":
popen_params["creationflags"] = 0x08000000
proc = sp.Popen(cmd, **popen_params)
out, err = proc.communicate() # proc.wait()
proc.stderr.close()
if proc.returncode:
if errorprint:
logger(message='Moviepy - Command returned an error')
> raise IOError(err.decode('utf8'))
E OSError: Fontconfig error: No writable cache directories
E Fontconfig error: No writable cache directories
E convert: no images defined
`PNG32:/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmparicz9mw.png' @
error/convert.c/ConvertImageCommand/3229.
moviepy/tools.py:54: OSError
During handling of the above exception, another exception occurred:
def test_subtitles():
red = ColorClip((800, 600), color=(255, 0, 0)).set_duration(10)
green = ColorClip((800, 600), color=(0, 255, 0)).set_duration(10)
blue = ColorClip((800, 600), color=(0, 0, 255)).set_duration(10)
myvideo = concatenate_videoclips([red, green, blue])
assert myvideo.duration == 30
generator = lambda txt: TextClip(txt, font=FONT,
size=(800, 600), fontsize=24,
method='caption', align='South',
color='white')
> subtitles = SubtitlesClip("media/subtitles1.srt", generator)
tests/test_misc.py:35:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
moviepy/video/tools/subtitles.py:86: in __init__
hasmask = bool(self.make_textclip('T').mask)
tests/test_misc.py:30: in <lambda>
generator = lambda txt: TextClip(txt, font=FONT,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <moviepy.video.VideoClip.TextClip object at 0x7fffd871f340>
txt = '@/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmpjcy0ne2v.txt'
filename = None, size = ('800', '600'), color = 'white'
bg_color = 'transparent', fontsize = 24, font = 'Liberation-Mono'
stroke_color = None, stroke_width = 1, method = 'caption', kerning = None
align = 'South', interline = None
tempfilename = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmparicz9mw.png'
temptxt = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmpjcy0ne2v.txt'
transparent = True, remove_temp = True, print_cmd = False
def __init__(self, txt=None, filename=None, size=None, color='black',
bg_color='transparent', fontsize=None, font='Courier',
stroke_color=None, stroke_width=1, method='label',
kerning=None, align='center', interline=None,
tempfilename=None, temptxt=None,
transparent=True, remove_temp=True,
print_cmd=False):
if txt is not None:
if temptxt is None:
temptxt_fd, temptxt = tempfile.mkstemp(suffix='.txt')
try: # only in Python3 will this work
os.write(temptxt_fd, bytes(txt, 'UTF8'))
except TypeError: # oops, fall back to Python2
os.write(temptxt_fd, txt)
os.close(temptxt_fd)
txt = '@' + temptxt
else:
# use a file instead of a text.
txt = "@%" + filename
if size is not None:
size = ('' if size[0] is None else str(size[0]),
'' if size[1] is None else str(size[1]))
cmd = ([get_setting("IMAGEMAGICK_BINARY"),
"-background", bg_color,
"-fill", color,
"-font", font])
if fontsize is not None:
cmd += ["-pointsize", "%d" % fontsize]
if kerning is not None:
cmd += ["-kerning", "%0.1f" % kerning]
if stroke_color is not None:
cmd += ["-stroke", stroke_color, "-strokewidth",
"%.01f" % stroke_width]
if size is not None:
cmd += ["-size", "%sx%s" % (size[0], size[1])]
if align is not None:
cmd += ["-gravity", align]
if interline is not None:
cmd += ["-interline-spacing", "%d" % interline]
if tempfilename is None:
tempfile_fd, tempfilename = tempfile.mkstemp(suffix='.png')
os.close(tempfile_fd)
cmd += ["%s:%s" % (method, txt),
"-type", "truecolormatte", "PNG32:%s" % tempfilename]
if print_cmd:
print(" ".join(cmd))
try:
subprocess_call(cmd, logger=None)
except (IOError, OSError) as err:
error = ("MoviePy Error: creation of %s failed because of the "
"following error:\n\n%s.\n\n." % (filename, str(err))
+ ("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"))
> raise IOError(error)
E OSError: MoviePy Error: creation of None failed because of the
following error:
E
E Fontconfig error: No writable cache directories
E Fontconfig error: No writable cache directories
E convert: no images defined
`PNG32:/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmparicz9mw.png' @
error/convert.c/ConvertImageCommand/3229.
E .
E
E .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
moviepy/video/VideoClip.py:1146: OSError
________________________ test_release_of_file_via_close ________________________
def test_release_of_file_via_close():
# Create a random video file.
red = ColorClip((256, 200), color=(255, 0, 0))
green = ColorClip((256, 200), color=(0, 255, 0))
blue = ColorClip((256, 200), color=(0, 0, 255))
red.fps = green.fps = blue.fps = 10
# Repeat this so we can see no conflicts.
for i in range(3):
# Get the name of a temporary file we can use.
local_video_filename = join(
TMP_DIR,
"test_release_of_file_via_close_%s.mp4" % int(time.time())
)
clip = clips_array([[red, green, blue]]).set_duration(0.5)
> clip.write_videofile(local_video_filename)
tests/test_resourcerelease.py:40:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:54: in requires_duration
return f(clip, *a, **k)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:135: in use_clip_fps_by_default
return f(clip, *new_a, **new_kw)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:22: in convert_masks_to_RGB
return f(clip, *a, **k)
moviepy/video/VideoClip.py:300: in write_videofile
ffmpeg_write_video(self, filename, fps, codec,
moviepy/video/io/ffmpeg_writer.py:213: in ffmpeg_write_video
with FFMPEG_VideoWriter(filename, clip.size, fps, codec = codec,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <moviepy.video.io.ffmpeg_writer.FFMPEG_VideoWriter object at
0x7fffd899e8e0>
filename =
'/tmp/guix-build-python-moviepy-1.0.3.drv-0/test_release_of_file_via_close_1674878483.mp4'
size = (768, 200), fps = None, codec = 'libx264', audiofile = None
preset = 'medium', bitrate = None, withmask = False, logfile = -1
threads = None, ffmpeg_params = None
def __init__(self, filename, size, fps, codec="libx264", audiofile=None,
preset="medium", bitrate=None, withmask=False,
logfile=None, threads=None, ffmpeg_params=None):
if logfile is None:
logfile = sp.PIPE
self.filename = filename
self.codec = codec
self.ext = self.filename.split(".")[-1]
# order is important
cmd = [
get_setting("FFMPEG_BINARY"),
'-y',
'-loglevel', 'error' if logfile == sp.PIPE else 'info',
'-f', 'rawvideo',
'-vcodec', 'rawvideo',
'-s', '%dx%d' % (size[0], size[1]),
'-pix_fmt', 'rgba' if withmask else 'rgb24',
> '-r', '%.02f' % fps,
'-an', '-i', '-'
]
E TypeError: must be real number, not NoneType
moviepy/video/io/ffmpeg_writer.py:88: TypeError
----------------------------- Captured stdout call -----------------------------
Moviepy - Building video
/tmp/guix-build-python-moviepy-1.0.3.drv-0/test_release_of_file_via_close_1674878483.mp4.
Moviepy - Writing video
/tmp/guix-build-python-moviepy-1.0.3.drv-0/test_release_of_file_via_close_1674878483.mp4
_________________________ test_failure_to_release_file _________________________
def test_failure_to_release_file():
""" This isn't really a test, because it is expected to fail.
It demonstrates that there *is* a problem with not releasing
resources when running on
Windows.
The real issue was that, as of movepy 0.2.3.2, there was no way
around it.
See test_resourcerelease.py to see how the close() methods provide
a solution.
"""
# Get the name of a temporary file we can use.
local_video_filename = join(
TMP_DIR, "test_release_of_file_%s.mp4" % int(time.time()))
# Repeat this so we can see that the problems escalate:
for i in range(5):
# Create a random video file.
red = ColorClip((256, 200), color=(255, 0, 0))
green = ColorClip((256, 200), color=(0, 255, 0))
blue = ColorClip((256, 200), color=(0, 0, 255))
red.fps = green.fps = blue.fps = 30
video = clips_array([[red, green, blue]]).set_duration(1)
try:
> video.write_videofile(local_video_filename)
tests/test_resourcereleasedemo.py:51:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:54: in requires_duration
return f(clip, *a, **k)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:135: in use_clip_fps_by_default
return f(clip, *new_a, **new_kw)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
in fun
return caller(func, *(extras + args), **kw)
moviepy/decorators.py:22: in convert_masks_to_RGB
return f(clip, *a, **k)
moviepy/video/VideoClip.py:300: in write_videofile
ffmpeg_write_video(self, filename, fps, codec,
moviepy/video/io/ffmpeg_writer.py:213: in ffmpeg_write_video
with FFMPEG_VideoWriter(filename, clip.size, fps, codec = codec,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <moviepy.video.io.ffmpeg_writer.FFMPEG_VideoWriter object at
0x7ffff6ade670>
filename =
'/tmp/guix-build-python-moviepy-1.0.3.drv-0/test_release_of_file_1674878483.mp4'
size = (768, 200), fps = None, codec = 'libx264', audiofile = None
preset = 'medium', bitrate = None, withmask = False, logfile = -1
threads = None, ffmpeg_params = None
def __init__(self, filename, size, fps, codec="libx264", audiofile=None,
preset="medium", bitrate=None, withmask=False,
logfile=None, threads=None, ffmpeg_params=None):
if logfile is None:
logfile = sp.PIPE
self.filename = filename
self.codec = codec
self.ext = self.filename.split(".")[-1]
# order is important
cmd = [
get_setting("FFMPEG_BINARY"),
'-y',
'-loglevel', 'error' if logfile == sp.PIPE else 'info',
'-f', 'rawvideo',
'-vcodec', 'rawvideo',
'-s', '%dx%d' % (size[0], size[1]),
'-pix_fmt', 'rgba' if withmask else 'rgb24',
> '-r', '%.02f' % fps,
'-an', '-i', '-'
]
E TypeError: must be real number, not NoneType
moviepy/video/io/ffmpeg_writer.py:88: TypeError
----------------------------- Captured stdout call -----------------------------
Moviepy - Building video
/tmp/guix-build-python-moviepy-1.0.3.drv-0/test_release_of_file_1674878483.mp4.
Moviepy - Writing video
/tmp/guix-build-python-moviepy-1.0.3.drv-0/test_release_of_file_1674878483.mp4
_____________________________ test_sys_write_flush _____________________________
def test_sys_write_flush():
"""Test for sys_write-flush function. Check that stdout has no content
after flushing."""
tools.sys_write_flush("hello world")
file = sys.stdout.read()
> assert file == b""
E AssertionError: assert '' == b''
E +''
E -b''
tests/test_tools.py:62: AssertionError
----------------------------- Captured stdout call -----------------------------
hello world
_________________________________ test_credits _________________________________
self = <moviepy.video.VideoClip.TextClip object at 0x7fffd8796160>
txt = '@/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmps9s_zmr9.txt'
filename = None, size = None, color = 'white', bg_color = 'transparent'
fontsize = 60, font = 'Liberation-Mono', stroke_color = 'blue', stroke_width = 5
method = 'label', kerning = None, align = 'East', interline = None
tempfilename = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmphlp2n7nz.png'
temptxt = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmps9s_zmr9.txt'
transparent = True, remove_temp = True, print_cmd = False
def __init__(self, txt=None, filename=None, size=None, color='black',
bg_color='transparent', fontsize=None, font='Courier',
stroke_color=None, stroke_width=1, method='label',
kerning=None, align='center', interline=None,
tempfilename=None, temptxt=None,
transparent=True, remove_temp=True,
print_cmd=False):
if txt is not None:
if temptxt is None:
temptxt_fd, temptxt = tempfile.mkstemp(suffix='.txt')
try: # only in Python3 will this work
os.write(temptxt_fd, bytes(txt, 'UTF8'))
except TypeError: # oops, fall back to Python2
os.write(temptxt_fd, txt)
os.close(temptxt_fd)
txt = '@' + temptxt
else:
# use a file instead of a text.
txt = "@%" + filename
if size is not None:
size = ('' if size[0] is None else str(size[0]),
'' if size[1] is None else str(size[1]))
cmd = ([get_setting("IMAGEMAGICK_BINARY"),
"-background", bg_color,
"-fill", color,
"-font", font])
if fontsize is not None:
cmd += ["-pointsize", "%d" % fontsize]
if kerning is not None:
cmd += ["-kerning", "%0.1f" % kerning]
if stroke_color is not None:
cmd += ["-stroke", stroke_color, "-strokewidth",
"%.01f" % stroke_width]
if size is not None:
cmd += ["-size", "%sx%s" % (size[0], size[1])]
if align is not None:
cmd += ["-gravity", align]
if interline is not None:
cmd += ["-interline-spacing", "%d" % interline]
if tempfilename is None:
tempfile_fd, tempfilename = tempfile.mkstemp(suffix='.png')
os.close(tempfile_fd)
cmd += ["%s:%s" % (method, txt),
"-type", "truecolormatte", "PNG32:%s" % tempfilename]
if print_cmd:
print(" ".join(cmd))
try:
> subprocess_call(cmd, logger=None)
moviepy/video/VideoClip.py:1137:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
cmd = ['convert', '-background', 'transparent', '-fill', 'white', '-font', ...]
logger = <proglog.proglog.MuteProgressBarLogger object at 0x7fffd8796d30>
errorprint = True
def subprocess_call(cmd, logger='bar', errorprint=True):
""" Executes the given subprocess command.
Set logger to None or a custom Proglog logger to avoid printings.
"""
logger = proglog.default_bar_logger(logger)
logger(message='Moviepy - Running:\n>>> "+ " ".join(cmd)')
popen_params = {"stdout": DEVNULL,
"stderr": sp.PIPE,
"stdin": DEVNULL}
if os.name == "nt":
popen_params["creationflags"] = 0x08000000
proc = sp.Popen(cmd, **popen_params)
out, err = proc.communicate() # proc.wait()
proc.stderr.close()
if proc.returncode:
if errorprint:
logger(message='Moviepy - Command returned an error')
> raise IOError(err.decode('utf8'))
E OSError: Fontconfig error: No writable cache directories
E Fontconfig error: No writable cache directories
E convert: unable to read font `Liberation-Mono' @
warning/annotate.c/RenderType/949.
E convert: unable to read font `Liberation-Mono' @
error/annotate.c/RenderFreetype/1396.
E convert: unable to read font `Liberation-Mono' @
warning/annotate.c/RenderType/949.
E convert: unable to read font `Liberation-Mono' @
error/annotate.c/RenderFreetype/1396.
E convert: no images defined
`PNG32:/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmphlp2n7nz.png' @
error/convert.c/ConvertImageCommand/3229.
moviepy/tools.py:54: OSError
During handling of the above exception, another exception occurred:
def test_credits():
credit_file = "# This is a comment\n" \
"# The next line says : leave 4 blank lines\n" \
".blank 2\n" \
"\n" \
"..Executive Story Editor\n" \
"MARCEL DURAND\n" \
"\n" \
".blank 2\n" \
"\n" \
"..Associate Producers\n" \
"MARTIN MARCEL\n" \
"DIDIER MARTIN\n" \
"\n" \
"..Music Supervisor\n" \
"JEAN DIDIER\n"
file_location = os.path.join(TMP_DIR, "credits.txt")
vid_location = os.path.join(TMP_DIR, "credits.mp4")
with open(file_location, "w") as file:
file.write(credit_file)
> image = credits1(file_location, 600, gap=100, stroke_color="blue",
stroke_width=5, font=FONT)
tests/test_videotools.py:33:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
moviepy/video/tools/credits.py:100: in credits1
left, right = [TextClip(txt, color=color, stroke_color=stroke_color,
moviepy/video/tools/credits.py:100: in <listcomp>
left, right = [TextClip(txt, color=color, stroke_color=stroke_color,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <moviepy.video.VideoClip.TextClip object at 0x7fffd8796160>
txt = '@/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmps9s_zmr9.txt'
filename = None, size = None, color = 'white', bg_color = 'transparent'
fontsize = 60, font = 'Liberation-Mono', stroke_color = 'blue', stroke_width = 5
method = 'label', kerning = None, align = 'East', interline = None
tempfilename = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmphlp2n7nz.png'
temptxt = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmps9s_zmr9.txt'
transparent = True, remove_temp = True, print_cmd = False
def __init__(self, txt=None, filename=None, size=None, color='black',
bg_color='transparent', fontsize=None, font='Courier',
stroke_color=None, stroke_width=1, method='label',
kerning=None, align='center', interline=None,
tempfilename=None, temptxt=None,
transparent=True, remove_temp=True,
print_cmd=False):
if txt is not None:
if temptxt is None:
temptxt_fd, temptxt = tempfile.mkstemp(suffix='.txt')
try: # only in Python3 will this work
os.write(temptxt_fd, bytes(txt, 'UTF8'))
except TypeError: # oops, fall back to Python2
os.write(temptxt_fd, txt)
os.close(temptxt_fd)
txt = '@' + temptxt
else:
# use a file instead of a text.
txt = "@%" + filename
if size is not None:
size = ('' if size[0] is None else str(size[0]),
'' if size[1] is None else str(size[1]))
cmd = ([get_setting("IMAGEMAGICK_BINARY"),
"-background", bg_color,
"-fill", color,
"-font", font])
if fontsize is not None:
cmd += ["-pointsize", "%d" % fontsize]
if kerning is not None:
cmd += ["-kerning", "%0.1f" % kerning]
if stroke_color is not None:
cmd += ["-stroke", stroke_color, "-strokewidth",
"%.01f" % stroke_width]
if size is not None:
cmd += ["-size", "%sx%s" % (size[0], size[1])]
if align is not None:
cmd += ["-gravity", align]
if interline is not None:
cmd += ["-interline-spacing", "%d" % interline]
if tempfilename is None:
tempfile_fd, tempfilename = tempfile.mkstemp(suffix='.png')
os.close(tempfile_fd)
cmd += ["%s:%s" % (method, txt),
"-type", "truecolormatte", "PNG32:%s" % tempfilename]
if print_cmd:
print(" ".join(cmd))
try:
subprocess_call(cmd, logger=None)
except (IOError, OSError) as err:
error = ("MoviePy Error: creation of %s failed because of the "
"following error:\n\n%s.\n\n." % (filename, str(err))
+ ("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"))
> raise IOError(error)
E OSError: MoviePy Error: creation of None failed because of the
following error:
E
E Fontconfig error: No writable cache directories
E Fontconfig error: No writable cache directories
E convert: unable to read font `Liberation-Mono' @
warning/annotate.c/RenderType/949.
E convert: unable to read font `Liberation-Mono' @
error/annotate.c/RenderFreetype/1396.
E convert: unable to read font `Liberation-Mono' @
warning/annotate.c/RenderType/949.
E convert: unable to read font `Liberation-Mono' @
error/annotate.c/RenderFreetype/1396.
E convert: no images defined
`PNG32:/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmphlp2n7nz.png' @
error/convert.c/ConvertImageCommand/3229.
E .
E
E .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
moviepy/video/VideoClip.py:1146: OSError
=============================== warnings summary ===============================
moviepy/config_defaults.py:1
/tmp/guix-build-python-moviepy-1.0.3.drv-0/source/moviepy/config_defaults.py:1:
DeprecationWarning: invalid escape sequence \P
"""
moviepy/video/io/ffmpeg_reader.py:294
/tmp/guix-build-python-moviepy-1.0.3.drv-0/source/moviepy/video/io/ffmpeg_reader.py:294:
DeprecationWarning: invalid escape sequence \d
lines_video = [l for l in lines if ' Video: ' in l and re.search('\d+x\d+',
l)]
moviepy/video/io/ffmpeg_reader.py:367
/tmp/guix-build-python-moviepy-1.0.3.drv-0/source/moviepy/video/io/ffmpeg_reader.py:367:
DeprecationWarning: invalid escape sequence \d
rotation_lines = [l for l in lines if 'rotate :' in l and
re.search('\d+$', l)]
moviepy/video/io/ffmpeg_reader.py:370
/tmp/guix-build-python-moviepy-1.0.3.drv-0/source/moviepy/video/io/ffmpeg_reader.py:370:
DeprecationWarning: invalid escape sequence \d
match = re.search('\d+$', rotation_line)
tests/test_VideoClip.py: 40 warnings
/tmp/guix-build-python-moviepy-1.0.3.drv-0/source/moviepy/video/io/gif_writers.py:225:
DeprecationWarning: tostring() is deprecated. Use tobytes() instead.
proc1.stdin.write(frame.tostring())
tests/test_compositing.py: 2 warnings
tests/test_fx.py: 1 warning
tests/test_issues.py: 4 warnings
tests/test_misc.py: 18 warnings
/tmp/guix-build-python-moviepy-1.0.3.drv-0/source/moviepy/video/fx/resize.py:37:
DeprecationWarning: ANTIALIAS is deprecated and will be removed in Pillow 10
(2023-07-01). Use Resampling.LANCZOS instead.
resized_pil = pilim.resize(newsize[::-1], Image.ANTIALIAS)
tests/test_fx.py::test_rotate
/tmp/guix-build-python-moviepy-1.0.3.drv-0/source/moviepy/video/fx/rotate.py:41:
DeprecationWarning: BILINEAR is deprecated and will be removed in Pillow 10
(2023-07-01). Use Resampling.BILINEAR instead.
resample = {"bilinear": Image.BILINEAR,
tests/test_fx.py::test_rotate
/tmp/guix-build-python-moviepy-1.0.3.drv-0/source/moviepy/video/fx/rotate.py:42:
DeprecationWarning: NEAREST is deprecated and will be removed in Pillow 10
(2023-07-01). Use Resampling.NEAREST or Dither.NONE instead.
"nearest": Image.NEAREST,
tests/test_fx.py::test_rotate
/tmp/guix-build-python-moviepy-1.0.3.drv-0/source/moviepy/video/fx/rotate.py:43:
DeprecationWarning: BICUBIC is deprecated and will be removed in Pillow 10
(2023-07-01). Use Resampling.BICUBIC instead.
"bicubic": Image.BICUBIC}[resample]
tests/test_fx.py::test_time_mirror
tests/test_fx.py::test_time_symmetrize
/tmp/guix-build-python-moviepy-1.0.3.drv-0/source/moviepy/video/io/ffmpeg_reader.py:123:
UserWarning: Warning: in file media/big_buck_bunny_432_433.webm, 2764800 bytes
wanted but 0 bytes read,at frame 24/25, at time 1.00/1.00 sec. Using the last
valid frame instead.
warnings.warn("Warning: in file %s, "%(self.filename)+
-- Docs: https://docs.pytest.org/en/stable/warnings.html
=========================== short test summary info ============================
FAILED tests/test_ImageSequenceClip.py::test_1 - TypeError: must be real numb...
FAILED tests/test_PR.py::test_PR_339 - OSError: MoviePy Error: creation of No...
FAILED tests/test_PR.py::test_PR_458 - TypeError: must be real number, not No...
FAILED tests/test_PR.py::test_PR_528 - TypeError: must be real number, not No...
FAILED tests/test_PR.py::test_PR_529 - assert 0 == 180
FAILED tests/test_TextClip.py::test_duration - OSError: MoviePy Error: creati...
FAILED tests/test_TextClip.py::test_if_textclip_crashes_in_caption_mode - OSE...
FAILED tests/test_TextClip.py::test_if_textclip_crashes_in_label_mode - OSErr...
FAILED tests/test_VideoClip.py::test_write_image_sequence - TypeError: unsupp...
FAILED tests/test_VideoClip.py::test_subfx - TypeError: must be real number, ...
FAILED tests/test_VideoClip.py::test_oncolor - TypeError: must be real number...
FAILED tests/test_VideoClip.py::test_setaudio - TypeError: must be real numbe...
FAILED tests/test_VideoClip.py::test_setaudio_with_audiofile - TypeError: mus...
FAILED tests/test_VideoClip.py::test_setopacity - TypeError: must be real num...
FAILED tests/test_VideoClip.py::test_toimageclip - TypeError: must be real nu...
FAILED tests/test_VideoFileClip.py::test_setup - TypeError: must be real numb...
FAILED tests/test_Videos.py::test_afterimage - TypeError: must be real number...
FAILED tests/test_compositing.py::test_clips_array_duration - TypeError: must...
FAILED tests/test_fx.py::test_blackwhite - TypeError: must be real number, no...
FAILED tests/test_fx.py::test_colorx - TypeError: must be real number, not No...
FAILED tests/test_fx.py::test_crop - TypeError: must be real number, not None...
FAILED tests/test_fx.py::test_fadein - TypeError: must be real number, not No...
FAILED tests/test_fx.py::test_fadeout - TypeError: must be real number, not N...
FAILED tests/test_fx.py::test_invert_colors - TypeError: must be real number,...
FAILED tests/test_fx.py::test_lum_contrast - TypeError: must be real number, ...
FAILED tests/test_fx.py::test_make_loopable - TypeError: must be real number,...
FAILED tests/test_fx.py::test_margin - TypeError: must be real number, not No...
FAILED tests/test_fx.py::test_mirror_x - TypeError: must be real number, not ...
FAILED tests/test_fx.py::test_mirror_y - TypeError: must be real number, not ...
FAILED tests/test_fx.py::test_resize - TypeError: must be real number, not No...
FAILED tests/test_fx.py::test_rotate - TypeError: must be real number, not No...
FAILED tests/test_fx.py::test_speedx - TypeError: must be real number, not No...
FAILED tests/test_fx.py::test_time_mirror - TypeError: must be real number, n...
FAILED tests/test_fx.py::test_time_symmetrize - TypeError: must be real numbe...
FAILED tests/test_issues.py::test_issue_334 - TypeError: must be real number,...
FAILED tests/test_issues.py::test_issue_470 - Failed: DID NOT RAISE <class 'O...
FAILED tests/test_issues.py::test_issue_547 - assert 9 == 6
FAILED tests/test_misc.py::test_subtitles - OSError: MoviePy Error: creation ...
FAILED tests/test_resourcerelease.py::test_release_of_file_via_close - TypeEr...
FAILED tests/test_resourcereleasedemo.py::test_failure_to_release_file - Type...
FAILED tests/test_tools.py::test_sys_write_flush - AssertionError: assert '' ...
FAILED tests/test_videotools.py::test_credits - OSError: MoviePy Error: creat...
====== 42 failed, 67 passed, 1 skipped, 74 warnings in 114.11s (0:01:54) =======
error: in phase 'check': uncaught exception:
%exception #<&invoke-error program: "pytest" arguments: ("-vv") exit-status: 1
term-signal: #f stop-signal: #f>
phase `check' failed after 115.3 seconds
command "pytest" "-vv" failed with status 1
note: keeping build directory `/tmp/guix-build-python-moviepy-1.0.3.drv-3'
builder for
`/gnu/store/v9lrnnsp473lld65ggwlrbqqi08609dx-python-moviepy-1.0.3.drv' failed
with exit code 1
build of /gnu/store/v9lrnnsp473lld65ggwlrbqqi08609dx-python-moviepy-1.0.3.drv
failed
View build log at
'/var/log/guix/drvs/v9/lrnnsp473lld65ggwlrbqqi08609dx-python-moviepy-1.0.3.drv.gz'.
guix build: error: build of
`/gnu/store/v9lrnnsp473lld65ggwlrbqqi08609dx-python-moviepy-1.0.3.drv' failed
```
https://github.com/Zulko/moviepy
- debug moviepy with jgart,
jgart <=