MoviePy — это мощная библиотека Python для редактирования видео и создания анимации.
MoviePy — это программное обеспечение с открытым исходным кодом, изначально написанное
Zulko и выпущенное под лицензией MIT. Оно работает на Windows, Mac и Linux с Python 2 или Python 3. Код размещен на
Github , где вы можете вносить улучшения, сообщать об ошибках и просить о помощи.
Рассмотрим пример кода, который использует библиотеку MoviePy для создания анимации с вращающимися кругами.
import numpy as np
import gizeh
import moviepy.editor as mpy
W, H = 800, 400 # Разрешение видео
duration = 60 # Длительность видео в секундах
circles = 20 # Количество кругов
def make_frame(t):
surface = gizeh.Surface(W, H) # Создание поверхности для рисования
for i in range(circles):
angle = 10 * np.pi * (0.25 * i / circles + t / duration) # Вычисление угла для каждого круга
center = W * (0.5 + gizeh.polar2cart(0.1, angle)) # Вычисление центра круга
circle = gizeh.circle(r=W * (1.0 - 1.0 * i / circles), # Создание круга
xy=center, fill=(i % 2, i % 2, i % 2))
circle.draw(surface) # Рисование круга на поверхности
return surface.get_npimage() # Возвращение кадра как NumPy массива
clip = mpy.VideoClip(make_frame, duration=duration) # Создание видео клипа
clip.write_videofile("movie.mp4", fps=24) # Запись видео файла с частотой 24 кадра в секунду
В этом коде мы импортируем необходимые библиотеки: numpy для работы с массивами, gizeh для рисования фигур и moviepy.editor для редактирования видео.
Затем устанавливаем параметры видео: разрешение (W и H), длительность (duration) и количество кругов (circles).
Функция make_frame(t)
генерирует кадр видео для заданного времени t. Она создает поверхность для рисования с помощью gizeh.Surface
, а затем в цикле рисует круги. Угол каждого круга вычисляется в зависимости от времени t и его индекса, что создает эффект вращения. Центр круга также вычисляется с помощью функции gizeh.polar2cart
. Цвет круга меняется в зависимости от индекса (i % 2).
После создания функции make_frame
мы используем mpy.VideoClip
для создания видео клипа, передавая функцию генерации кадра и длительность видео. Наконец, вызывая метод write_videofile
, мы записываем видео файл с именем “movie.mp4” с частотой 24 кадра в секунду.
Библиотека MoviePy позволяет легко создавать сложные анимации и визуальные эффекты, предоставляя удобный интерфейс для работы с видео. В данном примере мы создали простую анимацию с вращающимися кругами, но с помощью MoviePy можно реализовать гораздо более сложные визуальные эффекты.