Чрезвычайно медленное время рендеринга с использованием Moviepy ⇐ Python
-
Гость
Чрезвычайно медленное время рендеринга с использованием Moviepy
Я пытаюсь создать следующее: два сложенных друг на друга видео (одно друг над другом) с субтитрами (например, те видео, которые вы видите в тиктоке) из файла SRT. Для этого я сначала беру верхнее и нижнее видео и создаю CompositeVideoClip:\
clips_array([[video_clip], [random_bottom_clip]]) Затем я беру этот CompositeVideoClip и с помощью генератора создаю SubtitlesClip, который затем добавляю в другой CompositeVideoClip:
sub = SubtitlesClip(os.path.join(temp_directory, f"subtitles.srt"), генератор) Final = CompositeVideoClip([myvideo, sub.set_position(('center', 'center'))]).set_duration("00:02:40") Напоследок я добавляю еще несколько текстовых фрагментов (просто небольшой заголовок для видео) и перерисовываю:
video_with_text = CompositeVideoClip([final] + text_clips) video_with_text.write_videofile(part_path, fps=30,threads=12,codec="h264_nvenc") Вот в чем проблема. Я пытался отрендерить видео продолжительностью 180 секунд (3 минуты), а видео занимает до полутора часов (80 минут), что дико. Я попробовал некоторые настройки рендеринга, как вы можете видеть, например, изменение «кодека» и использование всех «потоков» моего процессора. Я старался не использовать так много CompositeVideoClips, я читал, что при их объединении окончательный рендер сильно пострадает, но мне не удалось найти способ «не использовать» такое количество CompositeVideoClips, есть идеи?
Мой компьютер не так уж и плох. 16 ГБ, 6-ядерный процессор AMD Ryzen 5 5600, NVIDIA 1650 SUPER.
Моя цель — сократить время рендеринга хотя бы до часа. Сейчас это примерно 1,23 с/ит
Я пытаюсь создать следующее: два сложенных друг на друга видео (одно друг над другом) с субтитрами (например, те видео, которые вы видите в тиктоке) из файла SRT. Для этого я сначала беру верхнее и нижнее видео и создаю CompositeVideoClip:\
clips_array([[video_clip], [random_bottom_clip]]) Затем я беру этот CompositeVideoClip и с помощью генератора создаю SubtitlesClip, который затем добавляю в другой CompositeVideoClip:
sub = SubtitlesClip(os.path.join(temp_directory, f"subtitles.srt"), генератор) Final = CompositeVideoClip([myvideo, sub.set_position(('center', 'center'))]).set_duration("00:02:40") Напоследок я добавляю еще несколько текстовых фрагментов (просто небольшой заголовок для видео) и перерисовываю:
video_with_text = CompositeVideoClip([final] + text_clips) video_with_text.write_videofile(part_path, fps=30,threads=12,codec="h264_nvenc") Вот в чем проблема. Я пытался отрендерить видео продолжительностью 180 секунд (3 минуты), а видео занимает до полутора часов (80 минут), что дико. Я попробовал некоторые настройки рендеринга, как вы можете видеть, например, изменение «кодека» и использование всех «потоков» моего процессора. Я старался не использовать так много CompositeVideoClips, я читал, что при их объединении окончательный рендер сильно пострадает, но мне не удалось найти способ «не использовать» такое количество CompositeVideoClips, есть идеи?
Мой компьютер не так уж и плох. 16 ГБ, 6-ядерный процессор AMD Ryzen 5 5600, NVIDIA 1650 SUPER.
Моя цель — сократить время рендеринга хотя бы до часа. Сейчас это примерно 1,23 с/ит
Мобильная версия