Ошибка moviepy, "невозможно собрать память", "утечка памяти" или "переполнение памяти"

Я столкнулся с этим вопросом, но, к сожалению, нет хороших ответов в Интернете, поэтому я хочу выложить окончательные решения здесь.


Вот:

Вы никогда не должны отдавать слишком много видеофайлов (.mp4) в moviepy одновременно.


Но вы можете дать ему parent video

Затем разделите его на тысячи subclips в памяти

На самом деле, в это время они не настоящие clips (я имею в виду файл.mp4)


На данный момент в вашей памяти хранится только одно видео, parent videoи информация о subclips (где это начинается, где это заканчивается)


Таким образом, вы передаете список клипов в функцию сцепления, это больше не приведет к переполнению памяти.


Вот демо-коды:

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 ответ

Если вы используете Linux(Ubuntu),

Вы можете установить раздел подкачки как временную память.

Это решает все виды проблемы утечки памяти.

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

Другие вопросы по тегам