JavaRush /Курси /Python SELF UA /Комплексна відеозбірка з MoviePy: титри, музика і анімаці...

Комплексна відеозбірка з MoviePy: титри, музика і анімаційні ефекти

Python SELF UA
Рівень 48 , Лекція 3
Відкрита

1. Композиція відео: комбінуємо всі вивчені техніки

Сьогодні ми з вами створимо щось особливе — комплексне відео з титрами, музичним супроводом та анімаційними ефектами, використовуючи бібліотеку MoviePy. Але перш ніж зануритися у творчий процес, дай-но вгадаю: ви вже пробували додавати текст на відео та синхронізувати його з аудіотреком? Якщо ні — то саме час опанувати ці навички та відчути всю міць автоматизації у світі відеовиробництва!

Перш ніж почати, давайте пригадаємо, що ми вже опанували на попередніх лекціях. Ми навчилися витягувати та обробляти відео та аудіокліпи, додавати текст і графіку, а також працювати з анімацією і ефектами. Настав час об’єднати все це в одне ціле і створити наш шедевр.

Основні етапи створення комплексної відеозбірки

  1. Додавання титрів: Початкові та кінцеві титри допомагають позначити початок і кінець відеопроєкту.
  2. Музичний супровід: Фонова музика додає емоційну атмосферу відео.
  3. Анімаційні ефекти: Рухомі тексти та зображення оживляють контент і роблять його цікавішим.

2. Створення складного відео

Розпочнемо з основного завдання — створення відеопроєкту, який включатиме всі раніше вивчені елементи. Ось як це виглядатиме:


from moviepy.editor import VideoFileClip, TextClip, CompositeVideoClip, concatenate_videoclips
from moviepy.audio.AudioClip import CompositeAudioClip, AudioFileClip

# Завантажуємо основний відеокліп
main_clip = VideoFileClip("clips/scene1.mp4")

# Завантажуємо музичний файл
background_music = AudioFileClip("audio/background.mp3")

# Створюємо титри (наприклад, для початку відео)
title_text = "Ласкаво просимо до нашого кінематографічного шедевру!"
title_clip = TextClip(title_text, fontsize=70, color='white', bg_color='black', size=main_clip.size)
title_clip = title_clip.set_duration(5)

# Створюємо композитне відео, додаючи титри зверху основного відео
final_clip = CompositeVideoClip([main_clip, title_clip.set_start(0)])
    

Ми почали зі створення простого композитного відео, додавши титри. У нашому випадку титри займають перші 5 секунд відео. Секрет у використанні CompositeVideoClip, який дозволяє комбінувати кілька відеокліпів та накладати їх одне на одного.

Накладання шарів та анімація елементів

Щоб відео стало більш живим і динамічним, додамо деякі анімації та графіку. Припустимо, ми хочемо додати рухомий текст, який плавно з’являється у кадрі.


from moviepy.editor import TextClip

# Створюємо анімований текст
animated_text = TextClip("Дивіться і надихайтеся!", fontsize=50, color='yellow', bg_color='black')
animated_text = animated_text.set_duration(3).set_position(lambda t: ('center', 200*(1 - t/3)))

# Додаємо текст на відео, починаючи з 5-ї секунди
final_clip = CompositeVideoClip([main_clip, title_clip.set_start(0), animated_text.set_start(5)])
    

Функція set_position дозволяє нам анімувати текст, змінюючи його положення залежно від часу t. У цьому випадку текст плавно спускається зверху вниз за 3 секунди.

Додавання логотипа з ефектом збільшення масштабу

Якщо дуже хочеться, ви можете додати свій логотип (але це не обов’язково).


from moviepy.editor import ImageClip

logo = ImageClip("logo.png").set_duration(5)
logo = logo.resize(lambda t: 1 + 0.2 * t).set_position(('right', 'bottom'))
    

Тут:

  • resize(lambda t: 1 + 0.2 * t) збільшує розмір логотипа на 20% щосекунди, створюючи ефект збільшення масштабу.

3. Робота з музичним супроводом

Тепер давайте додамо музичний супровід, щоб зробити відео більш захопливим. У світі відео музика — це емоції. Вона задає настрій усьому творінню.

Завантаження відео та додавання музичної доріжки


from moviepy.editor import VideoFileClip, AudioFileClip

# Завантаження основного відео та аудіофайлу
video = VideoFileClip("main_video.mp4")
audio = AudioFileClip("background_music.mp3").subclip(0, video.duration)

# Додавання аудіодоріжки до відео
video_with_audio = video.set_audio(audio)
    

Тут:

  • AudioFileClip("background_music.mp3").subclip(0, video.duration) підганяє аудіодоріжку під довжину відео.
  • set_audio(audio) додає фонову музику до відео.

Або можна накласти музику другою доріжкою


# Встановлюємо звук на фінальний відеокліп
final_audio = CompositeAudioClip([main_clip.audio, background_music.set_duration(main_clip.duration).volumex(0.5)])
final_clip = final_clip.set_audio(final_audio)
    

Ми використовуємо CompositeAudioClip, щоб об’єднати звукову доріжку основного відеокліпу з фоновим музичним треком. Тут функція volumex допомагає регулювати гучність музики, щоб вона не заглушала голосові коментарі (якщо такі є).

Синхронізація аудіо з відеорядом

Важливий момент при роботі з аудіо: переконайтесь, що музичний трек збігається за тривалістю з відео. Це можна зробити за допомогою методу set_duration, як показано вище.

4. Експортування та оптимізація відео

Тепер, коли наш відеопроєкт завершено, настав час закатати рукави і експортувати його у зручному для нас форматі.

Експорт відео


# Експорт відео у фінальний файл
final_clip.write_videofile("final_video.mp4", codec='libx264', bitrate='800k')
    

Тут ми використовуємо метод write_videofile, щоб зберегти наш відеопроєкт у форматі MP4. Важливо обрати відповідний кодек, наприклад, libx264, який забезпечує гарну якість і сумісність із більшістю пристроїв.

Детальніше про експорт відео ви дізнаєтесь на наступних лекціях.

Оптимізація для веб і соцмереж

Створюючи відео для вебу чи соціальних мереж, важливо зменшити його розмір без втрати якості. Це можна зробити, регулюючи такий параметр, як bitrate. Вибирати треба з урахуванням платформи, на яку ви плануєте завантажувати відео.

І ось, ваше відео готове! Вітаю, ви створили свій перший кіношедевр з MoviePy. Тепер не забудьте поділитися результатами у соцмережах і подивитися, яке враження справить ваше творіння на друзів і колег. Бажаю успіхів у ваших майбутніх авантюрах у світі відео!

Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ