I have this code that used to work fine and now isn't. I have this error:
Traceback (most recent call last): File "D:\videos\tiktoks\faitsasavoir\bot\mre.py", line 18, in <module> clip_final.write_videofile(f"rendus_finaux/output.mp4", fps=24) File "<decorator-gen-55>", line 2, in write_videofile File "C:\Users\Brice\AppData\Local\Programs\Python\Python39\lib\site-packages\moviepy\decorators.py", line 54, in requires_duration return f(clip, *a, **k) File "<decorator-gen-54>", line 2, in write_videofile File "C:\Users\Brice\AppData\Local\Programs\Python\Python39\lib\site-packages\moviepy\decorators.py", line 135, in use_clip_fps_by_default return f(clip, *new_a, **new_kw) File "<decorator-gen-53>", line 2, in write_videofile File "C:\Users\Brice\AppData\Local\Programs\Python\Python39\lib\site-packages\moviepy\decorators.py", line 22, in convert_masks_to_RGB return f(clip, *a, **k) File "C:\Users\Brice\AppData\Local\Programs\Python\Python39\lib\site-packages\moviepy\video\VideoClip.py", line 300, in write_videofile ffmpeg_write_video(self, filename, fps, codec, File "C:\Users\Brice\AppData\Local\Programs\Python\Python39\lib\site-packages\moviepy\video\io\ffmpeg_writer.py", line 228, in ffmpeg_write_video writer.write_frame(frame) File "C:\Users\Brice\AppData\Local\Programs\Python\Python39\lib\site-packages\moviepy\video\io\ffmpeg_writer.py", line 180, in write_frame raise IOError(error)OSError: [Errno 22] Invalid argumentMoviePy error: FFMPEG encountered the following error while writing file rendus_finaux/output.mp4: b'rendus_finaux/output.mp4: No such file or directory\r\n'
It tried different versions of moviepy
, Python and reinstalling ffmpeg
etc, but couldn't solve it. My main idea is that is a version problem, but i can't find out.
I recreated the error with this mre, it's just a code to make a video from multiple images. Thank you for your help.
from moviepy.editor import ImageClip, CompositeVideoClip, concatenate_videoclips DURATION_PER_IMAGE = 5 images = ["D:/videos/image1.png","D:/videos/image1.jpg"] clips = [] for image in images: #Main image clip = ImageClip(image).set_duration(DURATION_PER_IMAGE).resize(width=1080) clip = clip.resize(lambda t : 1+0.02*t) #Create clip composite clip_composite = CompositeVideoClip([clip.set_position("center")], size=(1080,1920)) clips.append(clip_composite) # Add created clip to the list of clips clip_final = concatenate_videoclips(clips) clip_final.write_videofile(f"rendus_finaux/output.mp4", fps=24)