ошибка moviepy, «невозможно собрать память», «утечка памяти» или «переполнение памяти» - PullRequest
0 голосов
/ 26 декабря 2018

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


Вот оно:

Вы никогда не должны отдавать слишком много видеофайлов (.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 Ответ

0 голосов
/ 12 января 2019

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

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

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

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

...