使用MoviePy合成视频时触发非目标目录FileNotFoundError问题求助
问题原因
你在遍历ResultFolder目录时,虽然已经通过os.path.join(path, file)生成了图片的完整绝对路径f,但两个版本的代码都错误地将仅包含文件名的file变量传递给了后续的图片读取接口:
程序运行时的默认工作目录是代码所在的Prog文件夹,当你只传文件名时,接口会默认从工作目录下查找对应文件,自然找不到存放在ResultFolder里的图片。
另外你提供的原始代码漏了os模块导入,执行时也会触发报错,修复时需要补上。
修复方案
只需要把所有传递给图片读取接口的文件名,替换成你已经拼接好的完整绝对路径f即可。
第一段代码修改后
from moviepy.editor import * import os clips = [] path = r'C:\Users\TheD4\OneDrive\Desktop\ResultFolder' for file in os.listdir(path): f = os.path.join(path, file) if os.path.isfile(f): clips.append(f) clip = ImageSequenceClip(clips, fps = 4) clip.write_videofile("video.mp4", fps = 24)
第二段代码修改后
from moviepy.editor import * import os s = 2.5 clips = [] path = r'C:\Users\TheD4\OneDrive\Desktop\ResultFolder' for file in os.listdir(path): f = os.path.join(path, file) if os.path.isfile(f): clips.append(ImageClip(f).set_duration(s)) video_clip = concatenate_videoclips(clips, method='compose') video_clip.write_videofile("video-output.mp4", fps=24, remove_temp=True, codec="libx264", audio_codec="aac")
内容的提问来源于stack exchange,提问作者Bambi2k21
相关产品推荐
相关产品推荐

