1. Krojenie wideo
W tym wykładzie skupimy się na krojeniu wideo i łączeniu klipów za pomocą biblioteki MoviePy. Dowiesz się, jak dzielić wideo na części i jak z tych części stworzyć pełnoprawne projekty wideo. Taki wideosnack z kawałków Twoich ulubionych poradników programistycznych w stylu "Python-mix".
Zacznijmy od tego, jak podzielić wideo na fragmenty. Może to się przydać w różnych sytuacjach: od tworzenia demo dla Twoich ostatnich odkryć naukowych po krojenie momentów, w których puszczasz oczko podczas zoom-konferencji.
Podział wideo według czasu
Podział wideo na fragmenty opiera się na użyciu metody cut w MoviePy. Możemy określić początkowe i końcowe przedziały czasowe, które nas interesują.
from moviepy.editor import VideoFileClip
# Ładujemy wideo
clip = VideoFileClip("input_video.mp4")
# Wycinamy fragment od 10 do 20 sekundy
clip1 = clip.subclip(10, 20)
# Zapisujemy wycięty fragment
clip1.write_videofile("clip1.mp4")
Ten kod wycina fragment między 10 a 20 sekundą oryginalnego wideo. Aby oszczędzić nerwy i miejsce na dysku twardym, koniecznie podaj prawidłowe znaczniki czasowe, żeby nie uzyskać "przypadkowego" fragmentu z Twoją poranną kawą na zdalnym spotkaniu.
Krojenie wideo na kilka części
Możesz pokroić wideo na kilka części i zapisać je jako oddzielne klipy do późniejszego połączenia.
Krojenie wideo na trzy fragmenty
Załóżmy, że mamy wideo o długości 30 sekund i chcemy podzielić je na trzy równe fragmenty po 10 sekund.
# Tworzenie trzech równych fragmentów
clip1 = video.subclip(0, 10)
clip2 = video.subclip(10, 20)
clip3 = video.subclip(20, 30)
# Zapis fragmentów
clip1.write_videofile("clip_part1.mp4")
clip2.write_videofile("clip_part2.mp4")
clip3.write_videofile("clip_part3.mp4")
Ten kod tworzy trzy wideo klipy:
clip1— od 0 do 10 sekundy,clip2— od 10 do 20 sekundy,clip3— od 20 do 30 sekundy.
Każdy fragment jest zapisywany jako oddzielny plik wideo.
Wycinek najciekawszych fragmentów
Często jeden fragment to za mało i potrzebujesz całego bukietu wideo-kwiatków. Możemy stworzyć kilka takich fragmentów i je zapisać.
clip2 = clip.subclip(30, 40)
clip3 = clip.subclip(50, 60)
clip2.write_videofile("clip2.mp4")
clip3.write_videofile("clip3.mp4")
Teraz mamy trzy fragmenty wycięte z oryginalnego wideo. Prawie jak układanie puzzli, tylko na odwrót.
2. Łączenie klipów
Po krojeniu czas na złożenie naszego chmuro-wideo z powrotem, ale już w nowej, przetworzonej formie. W tym pomogą możliwości MoviePy do łączenia kilku klipów w jeden.
Tworzenie kompilacji z klipów wideo
Aby połączyć klipy, używamy metody concatenate_videoclips. Ta metoda pozwala ustawić klipy jeden za drugim w określonej kolejności.
from moviepy.editor import concatenate_videoclips
# Łączenie klipów w jeden
final_clip = concatenate_videoclips([clip1, clip2, clip3])
# Zapisujemy połączone wideo
final_clip.write_videofile("final_video.mp4")
Teraz mamy nowy projekt wideo, który jest zbiorem Twoich najlepszych momentów. Albo przypadkowych, jeśli zapomniałeś o sekwencji.
Dodanie audio przy łączeniu klipów
Łącząc klipy wideo, można również dodać ścieżkę dźwiękową. Na przykład, jeśli masz plik muzyczny lub inny klip audio, możesz go nałożyć na połączone wideo.
Łączenie klipów wideo z dodaniem ścieżki dźwiękowej
from moviepy.editor import AudioFileClip
# Tworzenie klipu audio
audio_clip = AudioFileClip("background_music.mp3")
# Dodanie klipu audio do połączonego wideo
final_clip_with_audio = final_clip.set_audio(audio_clip)
final_clip_with_audio.write_videofile("combined_with_audio.mp4")
Tutaj:
AudioFileClip("background_music.mp3")tworzy klip audio z pliku muzycznego.set_audio(audio_clip)dodaje ścieżkę audio do połączonego wideofinal_clip.
3. Przejścia między klipami
W MoviePy do tworzenia przejść między klipami używa się klasy CompositeVideoClip, a także różnych efektów. Kluczową ideą jest nałożenie jednego klipu na drugi z wykorzystaniem efektów, takich jak przejrzystość lub przesunięcie. Przejścia często obejmują zmiany w przejrzystości lub przesuwające się kadry, aby jeden klip płynnie przechodził w inny.
Przejście z stopniowym zanikaniem (Fade)
Zanikanie to jeden z najpopularniejszych przejść, w którym pierwszy klip płynnie znika, a drugi płynnie pojawia się na ekranie. Ten efekt tworzy się za pomocą funkcji crossfadein() lub crossfadeout().
Przejście z zanikaniem między dwoma klipami
from moviepy.editor import VideoFileClip, concatenate_videoclips
# Ładowanie dwóch wideo klipów
clip1 = VideoFileClip("clip1.mp4").subclip(0, 5) # Pierwszy klip na 5 sekund
clip2 = VideoFileClip("clip2.mp4").subclip(0, 5) # Drugi klip na 5 sekund
# Konfiguracja efektu zanikania
clip1 = clip1.crossfadeout(1) # Zanikanie klipu 1 przez 1 sekundę
clip2 = clip2.crossfadein(1) # Płynne pojawienie się klipu 2 przez 1 sekundę
# Łączenie klipów z przejściem
final_clip = concatenate_videoclips([clip1, clip2], method="compose")
final_clip.write_videofile("fade_transition.mp4")
W tym przykładzie:
crossfadeout(1)sprawia, że pierwszy klip stopniowo staje się mniej przejrzysty w ciągu jednej sekundy.crossfadein(1)sprawia, że drugi klip stopniowo staje się bardziej przejrzysty w ciągu jednej sekundy.concatenate_videoclips([clip1, clip2], method="compose")łączy dwa klipy z przejściem zanikania.
Przejście do czerni
Zanik do czerni (lub „fade to black”) — to efekt, w którym pierwszy klip zanika do czarnego ekranu, a następny klip pojawia się z czerni. To przejście tworzy efekt zakończenia jednej sceny przed rozpoczęciem kolejnej.
from moviepy.editor import VideoFileClip, concatenate_videoclips
# Ładowanie dwóch klipów
clip1 = VideoFileClip("clip1.mp4").subclip(0, 5)
clip2 = VideoFileClip("clip2.mp4").subclip(0, 5)
# Konfiguracja zanikania do czerni
clip1 = clip1.fadeout(1) # Zanikanie klipu 1 do czerni
clip2 = clip2.fadein(1) # Pojawienie się klipu 2 z czerni
# Łączenie klipów z zanikiem do czerni
final_clip = concatenate_videoclips([clip1, clip2], method="compose")
final_clip.write_videofile("fade_to_black_transition.mp4")
Tutaj:
fadeout(1)zanik klipu do czarnego ekranu w ciągu jednej sekundy.fadein(1)powoduje, że drugi klip pojawia się płynnie z czarnego ekranu.
Teraz Twoje wideo to nie tylko zbiór fragmentów, ale prawdziwy hit z płynnymi przejściami. Jak widzisz, dodaliśmy efekty wejścia i wyjścia zanikania, aby uczynić wideo bardziej eleganckim.
4. Praktyczne zastosowanie
Umiejętności, które zdobyłeś w tym wykładzie, są naprawdę przydatne. Wyobraź sobie, że tworzysz tutorial do programowania, reklamę nowej biblioteki lub montaż narodzin swojego kota w świecie IT (tak, nawet takie rzeczy się zdarzają!). Umiejętność krojenia wideo i łączenia go w tematyczne bloki — to krok w stronę mistrzostwa w montażu wideo i automatyzacji.
Typowe błędy
Przy pracy z krojeniem i łączeniem wideo zwróć uwagę na znaczniki czasowe. Wszyscy widzieliśmy te momenty, kiedy wideo nagle się urywa (i znowu zaczynają się te same nudne slajdy z konferencji). Upewnij się, że Twoje znaczniki są poprawne i nie ma żadnych błędów. MoviePy czasami może narzekać na nieprawidłowe formaty lub puste klipy, więc sprawdź kod pod kątem poprawności przed uruchomieniem.
Mam nadzieję, że teraz jesteś nie tylko uzbrojony w wiedzę, ale i odczuwasz lekką ekscytację możliwością wykorzystania tych umiejętności. Naprzód, do świata montażu wideo i kreatywnych rozwiązań z Pythonem i MoviePy!
GO TO FULL VERSION