Тестирую одну схему, и нужно на много видео наложить watermark. Решил делать через Python 3, с помощью модуля moviepy . Сначала хотел просто текст, но потом разместил картинку с надписью на всю длительность видео.
Как установить модуль moviepy
Пакет ставится без проблем через pip, все дополнительные модули установятся автоматически.
1 | pip install moviepy |
Я работал на PyCharm в windows, создал Проект. Виртуальное окружение создается автоматически. Установил модуль moviepy, прописал код и все успешно «пошло».
Как добавить картинку watermark на видео через Python moviepy
Выкладываю рабочий код с комментариями:
1 2 3 4 5 6 7 8 9 10 11 12 | from moviepy.editor import * # Импортируем модуль video1 = VideoFileClip(r"C:\Users\adino\Downloads\10.mp4") # Путь к файлу logo = (ImageClip(r"C:\Users\adino\Downloads\kino.png") # Ваш логотип .set_duration(video1.duration) # Устанавливаем длительность показа логотипа равную длительности всего видео .resize(height=100) # Изменяем размер картинки если нужно .margin(left=10, bottom=2, opacity=0.45) # Необязательно: Небольшая рамка с прозрачностью .set_pos(("left", "center"))) # Позиция картинки: слева по центру. Если нужно справа внизу, пишем right, bottom final = CompositeVideoClip([video1, logo]) # Собираем все в кучу final.write_videofile("D:\\kino10.mp4", audio=True) # Записываем в финальный файл |
Margin, resize вообще не обязательны, позиции могут быть разные, несколько примеров:
- left, top — слева вверху;
- left, bottom — слева внизу;
- center, top — по центру вверху;
- center, center — по центру;
- right, top — справа по центру.
Скорость монтирования зависит от мощности компьютера, видео-карты.
Как наложить текст на видео с помощью moviepy на python 3
По поводу текста как watermark. Текст можно добавить с помощью TextClip.
1 2 | txt2video = TextClip("https://bdseo.ru", font='Amiri-regular', color='white', fontsize=24) |
На Windows нужно установить Image Magick. У меня были некоторые проблемы, и я решил наложить картинку. Взял иконку, в фотошопе добавил текст (ссылка на канал телеграм/тикток) и разместил ее.
На linux проблем не было, текст наложился без проблем. Утилиты поставились без проблем и все сгенерировалось удачно. В моем случае решили оставить картинку с текстом.
Как сделать массово — используем любой удобный цикл. Можно пройтись по файлам в папке, если есть другие форматы (кроме видео), добавить проверку на формат файлов. Код лень сюда писать, давайте, у вас получится.
0 Comments