尝试拼接图片列表生成视频时出现‘str’对象无‘duration’属性错误
问题原因
你犯了一个直观的错误:代码里虽然创建了ImageClip并设置了时长,但并没有把这个剪辑对象添加到Memes列表中,反而把循环里的文件名(字符串类型)加进去了。而concatenate函数需要的是MoviePy的剪辑对象,不是普通字符串,所以才会抛出'str' object has no attribute 'duration'的错误。
修正后的代码
import os from moviepy.editor import * Memes = [] for pictures in os.listdir("memes"): # 创建剪辑对象并设置时长,将对象存入列表 clip = ImageClip(f"memes/{pictures}").set_duration(5) Memes.append(clip) video = concatenate(Memes, method="compose") video.write_videofile('test.mp4', fps=24)
关键修改说明
- 新增
clip变量接收配置好的ImageClip对象(包含时长设置) - 将
Memes.append(pictures)改为Memes.append(clip),确保列表存储的是剪辑对象而非文件名字符串
内容的提问来源于stack exchange,提问作者Matthew
相关产品推荐
相关产品推荐

