Moviepy调整多个视频的大小

时间:2020-08-19 00:15:51

标签: python moviepy

我想用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分钟以上的时间。

1 个答案:

答案 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))