Лучшая производительность с созданием видео файла - PullRequest
1 голос
/ 11 марта 2020

Мне бы хотелось, чтобы я все делал правильно.

У меня есть массив ImageClips с другой начальной точкой.

IMAGE_DURATION = 3

for image in images:
    index = images.index(image)
    image_clip = ImageClip(img=image["path"])`
    .set_start(IMAGE_DURATION * index)
    .set_duration(IMAGE_DURATION)
    array.append(image_clip)

У меня также есть VideoFileClips и TextClip в этом массиве.

Каждый TextClip принадлежит одному ImageClip или VideFileClip.

Это означает, что он имеет одинаковые значения set_start и set_duration.

Пример:

[
    "media": ImageClip()
    "title": TextClip()
    ...
    "media": VideoFileClip()
    "title: TextClip()
]

У меня также есть ImageClip, который является фоновым, а его продолжительность равна продолжительности всего видео.

Как создать видеофайл:

  1. video = ImageClip(img="background.jpg").set_duration(duration_whole_video)
  2. for scene in scenes: video = CompositeVideoClip(clips=[video, array["media], array["title])
  3. video.write_videofile("test.mp4", fps=30)

Но этот путь занимает много времени, и я считаю, что есть лучшее way.

Если ImageClip занимает 3 секунды, и у меня есть fps=30 => 3 * 30 кадров одного изображения?


Я думаю, что мне нужно как-то создать видеофайл с (ImageClip и fps=1) и (VideoFileClip и fps=30) отдельно.

И затем присоединиться к ним.

...