Чрезвычайно медленное время рендеринга с использованием 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 с/ит
Мобильная версия