我想用moviepy调整多个视频的大小。
这是我的代码:
clips = glob.glob('./Clips/*.mp4')
clipslist = []
for clip in clips:
clipslist.append(VideoFileClip(clip))
video = concatenate_videoclips(clipslist, method='chain')
video.write_videofile(f'./Done/{title}.mp4', fps=60)
我尝试过:
for clip in clips:
clip.resize(width=1920, height=1080)
clipslist.append(VideoFileClip(clip))
我收到此错误:
AttributeError: 'str' object has no attribute 'resize'
compose方法可解决此问题,但渲染速度很慢。使用compose进行渲染需要20分钟以上的时间。
答案 0 :(得分:0)
clips = glob.glob('./Clips/*.mp4')
glob.glob
的定义:
返回与路径名匹配的可能为空的路径名列表,该路径名必须是包含路径说明的字符串。
for clip in clips:
在这里clip
将是一个字符串。 clip.resize(width=1920, height=1080)
,并且您正在尝试调整字符串的大小,因此出现错误。
尝试:
VideoFileClip(clip).resize(width=1920, height=1080)
编辑评论:
我正在获取clipslist.append(VideoFileClip(clip))。resize(width = 1920,height = 1080)AttributeError:'NoneType'对象没有属性'resize'
不要像这样排列代码,请仔细查看:
clipslist.append(VideoFileClip(clip)).resize(width=1920, height=1080)
您正在调整clipslist.append()
的大小,而不是 VideoFileClip(clip)
的大小。
尝试:
clipslist.append(VideoFileClip(clip).resize(width=1920, height=1080))