代码之家  ›  专栏  ›  技术社区  ›  yingshao xo

moviepy错误,“无法收集内存”或“内存泄漏”或“内存溢出”

  •  0
  • yingshao xo  · 技术社区  · 7 年前

    我遇到了这个问题,但遗憾的是网上没有好的答案,所以我想把最终的解决方案放在这里。


    这里是:

    你不应该一次给电影提供太多的视频文件(.mp4)。


    但你可以给它一个 parent video

    然后把它分成几千块 subclips 记忆中

    实际上,在这段时间里,它们不是真的 clips (我是说.mp4文件)


    此时,您的内存只存储了一个视频 父视频 ,以及有关 下唇 (从哪里开始,从哪里结束)


    通过这种方式,您将剪辑列表馈送给concatenate函数,它将不再导致内存溢出


    以下是演示代码:

    parent_clip = VideoFileClip("./parent_video.mp4")
    clip_list = []
    for part in time_parts:
        time_start = part[0]
        time_end = part[1]
        clip_list.append(
            parent_clip.subclip(time_start, time_end)
        )
    concat_clip = concatenate_videoclips(clip_list)
    
    1 回复  |  直到 7 年前
        1
  •  0
  •   yingshao xo    7 年前

    如果你使用的是Linux(Ubuntu),

    可以将交换分区设置为临时内存。

    它解决了各种内存泄漏问题。

    https://www.fosslinux.com/1064/how-to-create-or-add-a-swap-partition-in-ubuntu-and-linux-mint.htm/

    推荐文章