MoviePy-使用VideoFileClip

问题描述

我目前正在尝试创建一个脚本,该脚本将文件夹中所有具有特定结尾的视频组合在一起。

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)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...