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

Створення і робота з відео- та аудіокліпами: додавання звуку і експорт відео з аудіо

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

1. Відеокліпи та аудіокліпи

Ласкаво просимо на лекцію, у якій ми перетворимося на справжніх відеочаклунів і дізнаємось, як міксувати образи та звуки, створюючи з цього магію. Звісно, за допомогою Python і бібліотеки MoviePy! Сьогоднішня мета — навчитися працювати з відео- та аудіокліпами, додавати звукові доріжки до відео, а також експортувати результат у витончений файл.

Отже, запасаємось терпінням, готуємо крупинку уваги і вперед — до вершин відеомонтажу з Python!

Почнемо з основ — створення відеокліпів. Як справжні маестро, ми маємо вміти витягувати кадри з відео, додавати до них аудіо і, звичайно ж, вміти все це експортувати. MoviePy чудово підходить для цієї задачі.

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

У MoviePy основні класи для роботи з мультимедіа — це:

  • VideoFileClip — для створення і роботи з відеокліпами.
  • AudioFileClip — для роботи з аудіокліпами.

Створення об'єкту відеокліпу

Для початку створимо відеокліп, використовуючи клас VideoFileClip. Він дозволяє відкрити відеофайл і отримати доступ до різних параметрів та методів редагування.


from moviepy.editor import VideoFileClip

# Відкриття відеофайлу і створення відеокліпу
video_clip = VideoFileClip("sample_video.mp4")

# Виведення інформації про відеокліп
print("Тривалість відео:", video_clip.duration, "секунд")
print("Розміри відео:", video_clip.size)

У цьому прикладі:

  • VideoFileClip("sample_video.mp4") відкриває відеофайл і створює об'єкт video_clip, який можна використовувати для додавання звуку та інших змін.
  • video_clip.duration і video_clip.size надають інформацію про тривалість і розміри відео.

Створення порожнього відеокліпу

Іноді потрібно почати з чистого аркуша — створити кліп з нуля. MoviePy дозволяє зробити це простим викликом ColorClip.


from moviepy.editor import ColorClip

# Створюємо червоний кліп розміром 640x360 і тривалістю 5 секунд
blank_clip = ColorClip(size=(640, 360), color=[255, 0, 0], duration=5)

blank_clip.write_videofile("blank_clip.mp4", fps=25)

Це створить 5-секундне відео червоного кольору. Просто, але потенційно дуже перспективно!

Витяг аудіо з відеокліпу

Спочатку витягнемо аудіо з вже завантаженого відеокліпу. Це може стати у нагоді, якщо вам подобається оригінальна звукова доріжка і ви хочете використовувати її окремо.


# Витяг аудіо з відео
audio = video.audio

# Збереження аудіо у файл
audio.write_audiofile("extracted_audio.mp3")

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

Створення об'єкту аудіокліпу

MoviePy також дозволяє додавати аудіокліпи. Для цього використовується клас AudioFileClip, який відкриває аудіофайл і дозволяє працювати з ним аналогічно відеокліпам.


from moviepy.editor import AudioFileClip

# Відкриття аудіофайлу і створення аудіокліпу
audio_clip = AudioFileClip("background_music.mp3")

# Виведення інформації про тривалість аудіо
print("Тривалість аудіо:", audio_clip.duration, "секунд")

2. Монтуємо відеокліпи і аудіокліпи

Додавання аудіо до відео

Тепер, коли у нас є відеокліп і аудіокліп, ми можемо об'єднати їх, додавши аудіодоріжку до відео. У MoviePy це робиться за допомогою методу set_audio().


# Додавання аудіокліпу до відеокліпу
video_with_audio = video_clip.set_audio(audio_clip)

Цей код створює новий об'єкт video_with_audio, де аудіокліп audio_clip інтегрований у відеокліп video_clip.

Налаштування тривалості аудіокліпу

Іноді тривалість аудіокліпу і відеокліпу може відрізнятися. Щоб аудіокліп відповідав відео, можна використати метод subclip() для обрізки аудіо або ж змінити аудіо так, щоб воно повторювалось до кінця відеокліпу.

Обрізка аудіокліпу під довжину відео


# Обрізка аудіокліпу, щоб він збігався за тривалістю з відео
audio_clip_trimmed = audio_clip.subclip(0, video_clip.duration)

# Додавання обрізаного аудіо до відео
video_with_audio = video_clip.set_audio(audio_clip_trimmed)

У цьому прикладі:

  • audio_clip.subclip(0, video_clip.duration) створює новий аудіокліп, обрізаний до тривалості відеокліпу.
  • Метод set_audio() додає обрізане аудіо до відео.

Повторення аудіокліпу для тривалості відео

Якщо ви хочете, щоб аудіокліп повторювався до кінця відео, використовуйте метод fx() з функцією loop.


from moviepy.audio.fx.all import loop

# Повторення аудіокліпу до тривалості відео
audio_clip_looped = loop(audio_clip, duration=video_clip.duration)

# Додавання зацикленого аудіо до відео
video_with_audio = video_clip.set_audio(audio_clip_looped)

У цьому прикладі:

  • loop(audio_clip, duration=video_clip.duration) створює зациклене аудіо, яке буде повторюватись, поки не завершиться відео.
  • Ми додаємо зациклене аудіо до відео за допомогою set_audio().

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

Експорт відеокліпу з аудіо

Переконайтеся, що у вас встановлені потрібні кодеки, такі як libx264 для відео і aac для аудіо, адже без них наше чудове творіння ніхто не побачить.

Експортуючи відео, ми можемо вказати різні параметри, такі як розширення і частота кадрів:


# Експорт відео з новими налаштуваннями
video_with_audio.write_videofile(
    "output_video_with_audio.mp4",
    codec='libx264',
    audio_codec='aac',
    fps=30,
    preset='medium',
    bitrate="2000k"
)

У цьому прикладі:

  • write_videofile("output_video_with_audio.mp4", codec="libx264", audio_codec="aac") зберігає відео з аудіо у форматі MP4, використовуючи відеокодек libx264 і аудіокодек aac.

Та-да! Наш шедевр готовий до завантаження на YouTube, Vimeo або просто для відправки друзям.

Після додавання звукової доріжки до відео можна експортувати результат у вигляді нового файлу. Для цього використовується метод write_videofile().

Встановлення рівня гучності аудіокліпу

Щоб налаштувати гучність аудіо у відео, можна використати метод volumex(), який змінює гучність на певний коефіцієнт. Наприклад, якщо ви хочете зробити звук тихішим, вкажіть значення менше 1, а для збільшення гучності — більше 1.

Приклад: Зменшення гучності аудіо


# Зменшення гучності аудіокліпу вдвічі
audio_clip_quieter = audio_clip.volumex(0.5)

# Додавання аудіо зі зниженою гучністю до відео
video_with_audio = video_clip.set_audio(audio_clip_quieter)
video_with_audio.write_videofile("output_video_quieter.mp4")

У цьому прикладі:

  • audio_clip.volumex(0.5) зменшує гучність аудіо до 50% від початкової.
  • set_audio() і write_videofile() додають це аудіо до відео і зберігають результат.

4. Повний приклад

Створення відео з аудіо і налаштуванням параметрів

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


from moviepy.editor import VideoFileClip, AudioFileClip
from moviepy.audio.fx.all import loop

# Відкриття відеофайлу
video_clip = VideoFileClip("sample_video.mp4")

# Відкриття аудіофайлу
audio_clip = AudioFileClip("background_music.mp3")

# Налаштування гучності аудіо
audio_clip_adjusted = audio_clip.volumex(0.7)

# Зациклення аудіо до кінця відео
audio_clip_looped = loop(audio_clip_adjusted, duration=video_clip.duration)

# Додавання аудіо до відео
video_with_audio = video_clip.set_audio(audio_clip_looped)

# Експорт відео з аудіо
video_with_audio.write_videofile("final_output_with_audio.mp4", codec="libx264", audio_codec="aac")

У цьому прикладі:

  1. Ми завантажуємо відео та аудіо.
  2. Налаштовуємо гучність аудіо за допомогою volumex().
  3. Зациклюємо аудіо на довжину відео.
  4. Додаємо аудіо до відео.
  5. Експортуємо відео з аудіо у файл final_output_with_audio.mp4.

Типові помилки та їх вирішення

У процесі роботи з MoviePy деякі помилки, як злі духи, можуть заважати нашій творчості. Наприклад, проблеми з аудіокодеками або несумісність форматів. Використовуйте audio_codec='aac' для сучасного кодування аудіо, це вирішить багато чого.

Якщо відео або аудіо не експортуються, хоча код наче правильний, перевірте чи встановлені потрібні кодеки. Завантажте або оновіть FFMPEG, який MoviePy використовує як рушій для обробки відео і аудіо.

Тепер, коли ви вмієте створювати та експортувати відеоролики, можливості безмежні. Ці навички можуть стати в нагоді у найрізноманітніших проєктах: від створення навчальних відео до маркетингових матеріалів. На співбесідах уміння автоматизувати роботу з відео може стати вашим козирем. А у повсякденній роботі — зекономити масу часу при обробці мультимедіа-контенту.

Час застосувати магію програмування і творчості на практиці і здивувати світ своїми відеокліпами. І не забудьте, як казав один мудрий програміст: "Якщо код не працює, додай більше кофеїну, а якщо працює — додай більше пафосу!"

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