Ошибка 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/