Я пытаюсь объединить каждый клип в каталоге, а также добавить вступление и завершение. В будущем я также буду добавлять функции редактирования, такие как масштабирование и поворот, поэтому я не вызываю ffmpeg напрямую, а вместо этого использую MoviePy.
Все работает гладко, пока final_vid.write_videofile(). Сначала он воспроизводит звук с довольно хорошей скоростью.
chunk: 55%|█████▍ | 8721/15977 [00:14<00:10, 672.54it/s, now=None]
Когда затем он пытается отрендерить видео, скорость значительно снижается до ожидаемого времени рендеринга 72 часов. Это работает на ryzen 2600 с 16 гигабайтами оперативной памяти, поэтому я сомневаюсь, что аппаратное обеспечение является узким местом.
t: 0%| | 5/43473 [00:28<72:17:35, 5.99s/it, now=None]
Я пробовал это с разными кодеками, настройками fps, выключенным регистратором и несколькими другими настройками. Как мне ускорить это, поскольку это не может быть максимальной скоростью MoviePy?
Полный код ниже:
def edit(game):
intro = VideoFileClip("intro.mp4")
final_vid = intro
game = game.replace(" ", "")
game_treated = game.replace(" ", "%20")
for clip_name in os.listdir("current_vids"):
new_clip = VideoFileClip(os.path.join("current_vids", clip_name), target_resolution=(1920, 1080))
final_vid = concatenate_videoclips(clips=[final_vid, new_clip], method="compose")
outro = VideoFileClip("outro.mp4")
final_vid = concatenate_videoclips(clips=(final_vid, outro), method="compose")
final_vid.write_videofile(game + datetime.today().strftime("%Y-%m-%d") + ".mp4")
for clip_name in os.listdir("current_vids"):
os.remove(os.path.join("current_vids", clip_name))
return game_treated + datetime.today().strftime("%Y-%m-%d") + ".mp4"
method='chain'
вместо'compose'
- person Tom Burrows   schedule 01.01.2021