【问题标题】:How to avoid too many open files issue in movipy?如何避免movipy中打开文件过多的问题?
【发布时间】:2020-06-17 19:21:26
【问题描述】:

我正在尝试通过使用 moviepy 连接一些视频剪辑来创建 mp4。但是,根据剪辑的数量,我收到错误:too many open files。在下面的代码中,使用了两个列表,其中 jpegs 包含所有嵌入的图片以及它们在 mp3s 列表中对应的 mp3,其中包含超过 100 个剪辑。

image_main = []
d = 0

for i in range(0,len(jpegs)):

   audio = AudioFileClip(mp3s[i])

   image = (ImageClip(jpegs[i])
        .set_duration(audio.duration)
        .set_audio(audio))

   d  = d + (image.duration / 60.0)
   print(jpegs[i])
   print('TOTAL DURATION: ', d)

   image_main.append(image)
   #del audio.reader
   #del audio 

如上面的代码 sn-p 所示,我尝试在附加后添加删除音频(注释掉的行)。但是,这导致了下面代码中的另一个问题,导致我无法创建视频文件。

concat_clip = concatenate_videoclips(image_main, method="compose", transition=transition)
clip_resized = concat_clip.resize(width=1920)
clip_resized.write_videofile("REDDIT/stupid_TRIAL.mp4", fps=24, threads = 4)

现在我只使用几个视频而不是很多视频就解决了这个问题。

我该如何解决这个问题?

【问题讨论】:

    标签: python-3.x moviepy


    【解决方案1】:

    我认为处理此问题的最佳方法是将其分解为更小的步骤。导入大量音频/图像文件后,将它们连接起来并将它们写入临时视频文件。然后用audio.close()关闭每个音频文件(这会自动关闭audio.reader

    重复此过程,直到您完成所有文件,然后读取临时视频文件并将 那些 连接在一起。

    【讨论】:

      猜你喜欢
      • 2012-12-06
      • 1970-01-01
      • 1970-01-01
      • 2010-09-12
      • 1970-01-01
      • 1970-01-01
      • 2011-09-08
      • 1970-01-01
      • 2011-10-16
      相关资源
      最近更新 更多