CodeGym /Kursy /Python SELF PL /Tworzenie i praca z wideo i audioklipami: dodawanie dźwię...

Tworzenie i praca z wideo i audioklipami: dodawanie dźwięku i eksport wideo z dźwiękiem

Python SELF PL
Poziom 47 , Lekcja 1
Dostępny

1. Wideoklipy i audioklipy

Witaj na wykładzie, gdzie zamienimy się w prawdziwych czarodziejów wideo i nauczymy się, jak łączyć obrazy i dźwięki, tworząc z tego magię. Oczywiście za pomocą Pythona i biblioteki MoviePy! Dzisiejszym celem jest nauczenie się pracy z wideoklipami i audioklipami, dodawania ścieżek dźwiękowych do wideo i eksportowania wyników do eleganckiego pliku.

Więc uzbrójmy się w cierpliwość, przygotujmy odrobinę uwagi i naprzód – ku szczytom montażu wideo z Pythonem!

Zacznijmy od podstaw – tworzenia wideoklipów. Jako prawdziwi mistrzowie musimy umieć wyciągać klatki z wideo, dodawać do nich audio i oczywiście eksportować to wszystko. MoviePy jest do tego świetnym narzędziem.

Główne klasy do pracy z wideoklipami i audioklipami

W MoviePy główne klasy do pracy z multimediami to:

  • VideoFileClip – do tworzenia i pracy z wideoklipami.
  • AudioFileClip – do pracy z audioklipami.

Tworzenie obiektu wideoklipu

Najpierw stwórzmy wideoklip, używając klasy VideoFileClip. Umożliwia ona otwarcie pliku wideo i uzyskanie dostępu do różnych parametrów i metod edycji.


from moviepy.editor import VideoFileClip

# Otwarcie pliku wideo i stworzenie wideoklipu
video_clip = VideoFileClip("sample_video.mp4")

# Wyświetlenie informacji o wideoklipie
print("Długość wideo:", video_clip.duration, "sekund")
print("Wymiary wideo:", video_clip.size)

W tym przykładzie:

  • VideoFileClip("sample_video.mp4") otwiera plik wideo i tworzy obiekt video_clip, który można wykorzystać do dodawania dźwięku i innych modyfikacji.
  • video_clip.duration i video_clip.size dostarczają informacji o długości i wymiarach wideo.

Tworzenie pustego wideoklipu

Czasami trzeba zacząć od zera – stworzyć klip od podstaw. MoviePy pozwala to zrobić za pomocą prostej funkcji ColorClip.


from moviepy.editor import ColorClip

# Tworzymy czerwony klip o wymiarach 640x360 i długości 5 sekund
blank_clip = ColorClip(size=(640, 360), color=[255, 0, 0], duration=5)

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

To stworzy 5-sekundowe wideo w kolorze czerwonym. Proste, ale potencjalnie bardzo obiecujące?

Wydobywanie dźwięku z wideoklipu

Najpierw wydobądźmy dźwięk z już załadowanego wideoklipu. Może to się przydać, jeśli podoba ci się oryginalna ścieżka dźwiękowa i chcesz ją wykorzystać osobno.


# Wydobycie dźwięku z wideo
audio = video.audio

# Zapisanie dźwięku do pliku
audio.write_audiofile("extracted_audio.mp3")

Teraz masz plik audio z twojego wideo. Przydatne, gdy potrzebujesz tylko ścieżki dźwiękowej.

Tworzenie obiektu audioklipu

MoviePy pozwala także dodawać audioklipy. W tym celu używa się klasy AudioFileClip, która otwiera plik audio i umożliwia pracę z nim podobnie jak z wideoklipami.


from moviepy.editor import AudioFileClip

# Otwarcie pliku audio i stworzenie audioklipu
audio_clip = AudioFileClip("background_music.mp3")

# Wyświetlenie informacji o długości audio
print("Długość audio:", audio_clip.duration, "sekund")

2. Montujemy wideoklipy i audioklipy

Dodawanie audio do wideo

Teraz, gdy mamy wideoklip i audioklip, możemy je połączyć, dodając ścieżkę dźwiękową do wideo. W MoviePy robi się to za pomocą metody set_audio().


# Dodanie audioklipu do wideoklipu
video_with_audio = video_clip.set_audio(audio_clip)

Ten kod tworzy nowy obiekt video_with_audio, w którym audioklip audio_clip został zintegrowany z wideoklipem video_clip.

Dostosowanie długości audioklipu

Czasami długość audioklipu i wideoklipu może się różnić. Aby audioklip pasował do wideo, można użyć metody subclip() do przycięcia audio lub zmienić audio tak, by powtarzało się do końca wideoklipu.

Przycinanie audioklipu do długości wideo


# Przycinanie audioklipu, aby pasował do długości wideo
audio_clip_trimmed = audio_clip.subclip(0, video_clip.duration)

# Dodanie przyciętego audio do wideo
video_with_audio = video_clip.set_audio(audio_clip_trimmed)

W tym przykładzie:

  • audio_clip.subclip(0, video_clip.duration) tworzy nowy audioklip przycięty do długości wideoklipu.
  • Metoda set_audio() dodaje przycięte audio do wideo.

Powtarzanie audioklipu do długości wideo

Jeśli chcesz, aby audioklip powtarzał się do końca wideo, użyj metody fx() z funkcją loop.


from moviepy.audio.fx.all import loop

# Powtarzanie audioklipu do długości wideo
audio_clip_looped = loop(audio_clip, duration=video_clip.duration)

# Dodanie zapętlonego audio do wideo
video_with_audio = video_clip.set_audio(audio_clip_looped)

W tym przykładzie:

  • loop(audio_clip, duration=video_clip.duration) tworzy zapętlone audio, które będzie się powtarzać aż do zakończenia wideo.
  • Dodajemy zapętlone audio do wideo za pomocą set_audio().

3. Eksport wideo z dodanym audio

Eksportowanie wideoklipu z audio

Upewnij się, że masz zainstalowane odpowiednie kodeki, takie jak libx264 do wideo i aac do audio, bo bez nich nasz cudowny utwór nikt nie zobaczy.

Eksportując wideo, możemy określić różne parametry, takie jak rozdzielczość i liczba klatek na sekundę:


# Eksport wideo z nowymi ustawieniami
video_with_audio.write_videofile(
    "output_video_with_audio.mp4",
    codec='libx264',
    audio_codec='aac',
    fps=30,
    preset='medium',
    bitrate="2000k"
)

W tym przykładzie:

  • write_videofile("output_video_with_audio.mp4", codec="libx264", audio_codec="aac") zapisuje wideo z audio w formacie MP4, używając kodeka wideo libx264 i kodeka audio aac.

Ta-da! Nasze dzieło jest gotowe do załadowania na YouTube, Vimeo lub po prostu do wysłania znajomym.

Po dodaniu ścieżki dźwiękowej do wideo można wyeksportować wynik w postaci nowego pliku. Do tego używa się metody write_videofile().

Ustawianie poziomu głośności audioklipu

Aby dostosować głośność audio w wideo, można użyć metody volumex(), która zmienia głośność o określony współczynnik. Na przykład, jeśli chcesz ściszyć dźwięk, podaj wartość mniejszą niż 1, a zwiększając głośność – większą niż 1.

Przykład: Ściszenie głośności audio


# Ściszenie głośności audioklipu o połowę
audio_clip_quieter = audio_clip.volumex(0.5)

# Dodanie audio z obniżoną głośnością do wideo
video_with_audio = video_clip.set_audio(audio_clip_quieter)
video_with_audio.write_videofile("output_video_quieter.mp4")

W tym przykładzie:

  • audio_clip.volumex(0.5) zmniejsza głośność audio do 50% od wartości początkowej.
  • set_audio() i write_videofile() dodają to audio do wideo i zapisują wynik.

4. Pełny przykład

Tworzenie wideo z audio i dostosowaniem parametrów

Teraz połączmy wszystkie omawiane kroki w jeden przykład, w którym dodamy audio do wideo, przytniemy je do odpowiedniej długości, dostosujemy głośność i wyeksportujemy finalne wideo.


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

# Otwarcie pliku wideo
video_clip = VideoFileClip("sample_video.mp4")

# Otwarcie pliku audio
audio_clip = AudioFileClip("background_music.mp3")

# Dostosowanie głośności audio
audio_clip_adjusted = audio_clip.volumex(0.7)

# Zapętlenie audio do długości wideo
audio_clip_looped = loop(audio_clip_adjusted, duration=video_clip.duration)

# Dodanie audio do wideo
video_with_audio = video_clip.set_audio(audio_clip_looped)

# Eksport wideo z audio
video_with_audio.write_videofile("final_output_with_audio.mp4", codec="libx264", audio_codec="aac")

W tym przykładzie:

  1. Ładujemy wideo i audio.
  2. Dostosowujemy głośność audio za pomocą volumex().
  3. Zapętlamy audio na długość wideo.
  4. Dodajemy audio do wideo.
  5. Eksportujemy wideo z audio do pliku final_output_with_audio.mp4.

Typowe błędy i ich rozwiązanie

Podczas pracy z MoviePy mogą wystąpić pewne błędy, które przeszkadzają w naszym tworzeniu. Na przykład, problemy z kodekami audio lub niekompatybilność formatów. Użyj audio_codec='aac' do nowoczesnej kodowania audio, to rozwiąże wiele problemów.

Jeśli wideo lub audio nie eksportują się, choć kod wydaje się poprawny, sprawdź, czy masz zainstalowane potrzebne kodeki. Pobierz lub zaktualizuj FFMPEG, którego MoviePy używa jako silnika do przetwarzania wideo i audio.

Teraz, gdy umiesz tworzyć i eksportować wideoklipy, możliwości są nieograniczone. Te umiejętności mogą się przydać w różnych projektach: od tworzenia materiałów edukacyjnych po treści marketingowe. Na rozmowach kwalifikacyjnych umiejętność automatyzacji pracy z wideo może być Twoim atutem. A na co dzień – zaoszczędzić masę czasu przy przetwarzaniu treści multimedialnych.

Czas zastosować magię programowania i kreatywności w praktyce i zadziwić świat swoimi wideoklipami. I nie zapomnij, jak mawiał mądry programista: "Jeśli kod nie działa, dodaj więcej kofeiny, a jeśli działa – dodaj więcej blichtru!"

Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION