问题描述
我目前正在尝试创建一个脚本,该脚本将文件夹中所有具有特定结尾的视频组合在一起。
import os
from moviepy.editor import *
project_name = "manhattan4"
clips = []
for filename in os.listdir('renderings/'):
if filename.endswith(".mp4"):
clips.append(VideoFileClip(filename))
print(clips)
但是,出现以下错误。
Traceback (most recent call last):
File "vid_merger.py",line 8,in <module>
clips.append(VideoFileClip(filename))
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/moviepy/video/io/VideoFileClip.py",line 88,in __init__
self.reader = FFMPEG_VideoReader(filename,pix_fmt=pix_fmt,File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/moviepy/video/io/ffmpeg_reader.py",line 35,in __init__
infos = ffmpeg_parse_infos(filename,print_infos,check_duration,line 270,in ffmpeg_parse_infos
raise IOError(("MoviePy error: the file %s Could not be found!\n"
OSError: MoviePy error: the file render_7_manhattan4.mp4 Could not be found!
Please check that you entered the correct path.
有趣的是,即使我不使用VideoFileClip,它也能很好地工作,即使使用render_7_manhattan4.mp4。所以我对问题出在哪里一无所知。哪里有问题要解决,或者更好的是我该如何解决?
解决方法
因为您需要提供文件的完整路径。因此,您可以执行以下操作:
import os
from moviepy.editor import *
project_name = "manhattan4"
clips = []
for filename in os.listdir('renderings/'):
if filename.endswith(".mp4"):
clips.append(VideoFileClip('renderings/' + str(filename))) # Change here
print(clips)