Мой пример работает со скоростью около 4 бит/с, причем оба видео имеют разрешение 1920x1080 и продолжительность обоих 10 секунд:
Код: Выделить всё
from moviepy.editor import *
from moviepy.config import change_settings
change_settings({"IMAGEMAGICK_BINARY": "D:\\ImageMagick-7.1.1-Q16-HDRI\\magick.exe"})
def create(vid_path: str) -> CompositeVideoClip:
vid: VideoFileClip = VideoFileClip(vid_path)
vid = vid.crossfadein(0.8)
vid = vid.crossfadeout(0.8)
name_square: ImageClip = ImageClip(".\\square.png")
name_square = name_square.set_position(('center', 856))
name_square = name_square.set_duration(vid.duration)
name_square = name_square.crossfadein(1)
name_square = name_square.crossfadeout(1)
name_text: TextClip = TextClip(txt="Hello", fontsize=90, color="gray", font="MomCake")
name_text = name_text.set_position(("center", 870))
name_text = name_text.set_duration(vid.duration)
name_text = name_text.crossfadein(1)
name_text = name_text.crossfadeout(1)
comp_clip: CompositeVideoClip = CompositeVideoClip([vid, name_text])
return comp_clip
final: VideoFileClip = concatenate_videoclips([create("vid1.mp4"), create("vid2.mp4")])
final.write_videofile(f"final_vid.mp4", threads=12, preset="ultrafast", ffmpeg_params=['-b:v','10000k'])
Код: Выделить всё
Intel i7-9700KКод: Выделить всё
32GB of memoryКод: Выделить всё
NVIDIA GeForce RTX 2060Я использую как можно больше функций ffmpeg MoviePy, чтобы ускорить работу, кроме функции write_videofile. все еще очень медленно. Я перепробовал все оптимизации, которые смог найти, но ни одна из них не изменила ситуацию. С некоторыми из них я могу значительно увеличить количество итераций в секунду, но после нескольких секунд обработки это число резко падает и возвращается к 3-5 итерациям в секунду. Некоторые из оптимизаций, которые я пробовал:
Код: Выделить всё
threads=12Код: Выделить всё
preset="ultrafast"Код: Выделить всё
audio=FalseКод: Выделить всё
logger=FalseКод: Выделить всё
ffmpeg_params=['-b:v','10000k']Подробнее здесь: https://stackoverflow.com/questions/793 ... emely-slow
Мобильная версия