1. Нарізка відео
Основну увагу в цій лекції ми приділимо нарізці відео та об'єднанню кліпів за допомогою бібліотеки MoviePy. Ви дізнаєтесь, як розділяти відео на частини і як із цих частин створити повноцінні відеопроєкти. Такий собі відеосніданок із шматочків ваших улюблених посібників з програмування в стилі "Python-мікс".
Почнемо з того, як розділити відео на фрагменти. Це може знадобитися в найрізноманітніших ситуаціях: від створення демо для ваших останніх наукових відкриттів до нарізки всіх моментів, коли ви підморгуєте в Zoom-конференціях.
Розділення відео за часом
Розділення відео на фрагменти базується на використанні методу cut в MoviePy. Ми можемо задати початкові й кінцеві часові інтервали, які нас цікавлять.
from moviepy.editor import VideoFileClip
# Завантажуємо відео
clip = VideoFileClip("input_video.mp4")
# Вирізаємо фрагмент з 10 по 20 секунду
clip1 = clip.subclip(10, 20)
# Зберігаємо вирізаний фрагмент
clip1.write_videofile("clip1.mp4")
Цей код вирізає фрагмент між 10-ю і 20-ю секундами оригінального відео. Щоб зберегти нерви і місце на жорсткому диску, обов’язково вкажіть коректні часові мітки, щоб не отримати "випадковий" фрагмент із вашим кавобрейком.
Нарізка відео на кілька частин
Ви можете нарізати відео на кілька частин і зберегти їх як окремі кліпи для подальшого об’єднання.
Нарізка відео на три фрагменти
Припустимо, у нас є відео тривалістю 30 секунд, і ми хочемо розділити його на три рівних фрагменти по 10 секунд.
# Створення трьох рівних фрагментів
clip1 = video.subclip(0, 10)
clip2 = video.subclip(10, 20)
clip3 = video.subclip(20, 30)
# Збереження фрагментів
clip1.write_videofile("clip_part1.mp4")
clip2.write_videofile("clip_part2.mp4")
clip3.write_videofile("clip_part3.mp4")
Цей код створює три відеокліпи:
clip1— з 0 по 10 секунду,clip2— з 10 по 20 секунду,clip3— з 20 по 30 секунду.
Кожен фрагмент зберігається як окремий відеофайл.
Вирізання найцікавіших фрагментів
Часто одного фрагмента недостатньо, і вам потрібен цілий букет із відеоквітів. Ми можемо створити кілька таких фрагментів і зберегти їх.
clip2 = clip.subclip(30, 40)
clip3 = clip.subclip(50, 60)
clip2.write_videofile("clip2.mp4")
clip3.write_videofile("clip3.mp4")
Тепер у нас є три фрагменти, вирізані з оригінального відео. Майже як збирати пазл, тільки навпаки.
2. Об’єднання кліпів
Після нарізки, час збирати наше відеохмари назад, але вже в новій, переробленій формі. У цьому допоможуть можливості MoviePy з об’єднання кількох кліпів в один.
Створення компіляцій із відеокліпів
Щоб об’єднати кліпи, використовуємо метод concatenate_videoclips. Цей метод дозволяє вибудувати кліпи один за одним у вказаній послідовності.
from moviepy.editor import concatenate_videoclips
# Об’єднуємо кліпи в один
final_clip = concatenate_videoclips([clip1, clip2, clip3])
# Зберігаємо об’єднане відео
final_clip.write_videofile("final_video.mp4")
Тепер у нас є новий відеопроєкт, який представляє собою зібрання ваших найкращих моментів. Або випадкових, якщо раптом забули про послідовність.
Додавання аудіо при об’єднанні кліпів
При об’єднанні відеокліпів можна також додати аудіодоріжку. Наприклад, якщо у вас є музичний файл або інший аудіокліп, ви можете накласти його на об’єднане відео.
Об’єднання відеокліпів із додаванням аудіодоріжки
from moviepy.editor import AudioFileClip
# Створення аудіокліпу
audio_clip = AudioFileClip("background_music.mp3")
# Додавання аудіокліпу до об’єднаного відео
final_clip_with_audio = final_clip.set_audio(audio_clip)
final_clip_with_audio.write_videofile("combined_with_audio.mp4")
Тут:
AudioFileClip("background_music.mp3")створює аудіокліп із музичного файлу.set_audio(audio_clip)додає аудіодоріжку до об’єднаного відеоfinal_clip.
3. Переходи між кліпами
У MoviePy для створення переходів між кліпами використовується клас CompositeVideoClip, а також різні ефекти. Ключова ідея — накласти один кліп на інший із використанням ефектів, таких як прозорість або зсув. Переходи часто включають зміну прозорості або зсув кадрів, щоб один кліп плавно переходив в інший.
Перехід із поступовим затемненням (Fade)
Затемнення — це один із найпопулярніших переходів, під час якого перший кліп плавно зникає, а другий плавно з’являється на екрані. Цей ефект створюється за допомогою функції crossfadein() або crossfadeout().
Перехід із затемненням між двома кліпами
from moviepy.editor import VideoFileClip, concatenate_videoclips
# Завантаження двох відеокліпів
clip1 = VideoFileClip("clip1.mp4").subclip(0, 5) # Перший кліп на 5 секунд
clip2 = VideoFileClip("clip2.mp4").subclip(0, 5) # Другий кліп на 5 секунд
# Налаштування ефекту затемнення
clip1 = clip1.crossfadeout(1) # Затемнення кліпу 1 на 1 секунду
clip2 = clip2.crossfadein(1) # Плавне появлення кліпу 2 на 1 секунду
# Об’єднання кліпів із переходом
final_clip = concatenate_videoclips([clip1, clip2], method="compose")
final_clip.write_videofile("fade_transition.mp4")
У цьому прикладі:
crossfadeout(1)робить перший кліп поступово менш прозорим протягом однієї секунди.crossfadein(1)робить другий кліп поступово більш прозорим протягом однієї секунди.concatenate_videoclips([clip1, clip2], method="compose")об’єднує два кліпи з переходом затемнення.
Перехід із затемненням
Затемнення (або «фейд в чорне») — це ефект, під час якого перший кліп зникає до чорного екрану, а потім наступний кліп з'являється із затемнення. Цей перехід створює ефект завершення однієї сцени перед початком наступної.
from moviepy.editor import VideoFileClip, concatenate_videoclips
# Завантаження двох кліпів
clip1 = VideoFileClip("clip1.mp4").subclip(0, 5)
clip2 = VideoFileClip("clip2.mp4").subclip(0, 5)
# Налаштування затемнення
clip1 = clip1.fadeout(1) # Згасання кліпу 1 у чорне
clip2 = clip2.fadein(1) # Поява кліпу 2 із чорного
# Об'єднання кліпів із затемненням
final_clip = concatenate_videoclips([clip1, clip2], method="compose")
final_clip.write_videofile("fade_to_black_transition.mp4")
Тут:
fadeout(1)робить кліп поступово згасаючим до чорного екрану протягом однієї секунди.fadein(1)робить другий кліп плавно появляючимся із чорного екрану.
Тепер ваше відео стало плавним і стильним. Як бачите, ми додали вхідні та вихідні ефекти затемнення, щоб зробити відео більш приємним для перегляду.
4. Практичне застосування
Навички, здобуті в цій лекції, дуже корисні. Уявіть, ви створюєте туторіал із програмування, рекламний ролик для нової бібліотеки чи монтаж народження вашої кішки у світ IT (так, навіть таке буває!). Уміння нарізати відео й об’єднувати його в тематичні блоки — це крок до того, щоб стати справжнім майстром відеомонтажу й автоматизації.
Сподіваюся, тепер ви не тільки озброєні знаннями, але й відчуваєте легкий трепет від можливостей, які відкрилися перед вами. Уперед, у світ відеомонтажу та творчих рішень із Python та MoviePy!
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ