1. Videoclips und Audioclips
Willkommen zur Vorlesung, in der wir uns in echte Videomagier verwandeln und lernen, Bilder und Klänge zu mischen, um daraus Magie zu schaffen. Natürlich mithilfe von Python und der MoviePy-Bibliothek! Das heutige Ziel ist es, den Umgang mit Video- und Audioclips zu erlernen, Tonspuren zu Videos hinzuzufügen und das Ergebnis in eine elegante Datei zu exportieren.
Also, pack die Geduld ein, sammle ein wenig Aufmerksamkeit und los geht’s – zu den Höhen der Videobearbeitung mit Python!
Wir fangen mit den Grundlagen an – der Erstellung von Videoclips. Als wahre Maestros sollten wir in der Lage sein, Frames aus Videos zu extrahieren, diese mit Audio auszustatten und natürlich alles zu exportieren. MoviePy ist dafür hervorragend geeignet.
Wichtige Klassen für die Arbeit mit Video- und Audioclips
In MoviePy sind die Hauptklassen für die Arbeit mit Medien:
VideoFileClip
– für die Erstellung und Bearbeitung von Videoclips.AudioFileClip
– für die Arbeit mit Audioclips.
Erstellen eines Objekts für Videoclips
Als Erstes erstellen wir einen Videoclip mit der Klasse VideoFileClip
. Sie ermöglicht es, eine Videodatei zu öffnen und Zugriff auf verschiedene Parameter und Bearbeitungsmethoden zu erhalten.
from moviepy.editor import VideoFileClip
# Öffnen der Videodatei und Erstellen eines Videoclips
video_clip = VideoFileClip("sample_video.mp4")
# Ausgabe von Informationen zum Videoclip
print("Videodauer:", video_clip.duration, "Sekunden")
print("Videogröße:", video_clip.size)
In diesem Beispiel:
VideoFileClip("sample_video.mp4")
öffnet die Videodatei und erstellt das Objektvideo_clip
, das für das Hinzufügen von Ton und andere Änderungen verwendet werden kann.video_clip.duration
undvideo_clip.size
liefern Informationen zur Dauer und zur Größe des Videos.
Erstellen eines leeren Videoclips
Manchmal muss man von Grund auf neu anfangen – einen Clip von null erstellen. Mit MoviePy ist das einfach mit dem Aufruf von ColorClip
.
from moviepy.editor import ColorClip
# Erstellen eines roten Clips in Größe 640x360 und einer Dauer von 5 Sekunden
blank_clip = ColorClip(size=(640, 360), color=[255, 0, 0], duration=5)
blank_clip.write_videofile("blank_clip.mp4", fps=25)
Dies erstellt ein 5-sekündiges Video in roter Farbe. Einfach, aber potenziell sehr vielversprechend, oder?
Extrahieren von Audio aus einem Videoclip
Zuerst extrahieren wir Audio aus einem bereits geladenen Videoclip. Das kann hilfreich sein, wenn dir die Originaltonspur gefällt und du sie separat verwenden möchtest.
# Extrahieren des Audios aus dem Video
audio = video.audio
# Speichern des Audios in einer Datei
audio.write_audiofile("extracted_audio.mp3")
Nun hast du eine Audiodatei aus deinem Video. Nützlich, wenn du nur die Tonbegleitung benötigst.
Erstellen eines Objekts für Audioclips
MoviePy ermöglicht auch das Hinzufügen von Audioclips. Dafür wird die Klasse AudioFileClip
verwendet, die eine Audiodatei öffnet und ähnlich wie Videoclips bearbeitet werden kann.
from moviepy.editor import AudioFileClip
# Öffnen der Audiodatei und Erstellen eines Audioclips
audio_clip = AudioFileClip("background_music.mp3")
# Ausgabe von Informationen zur Dauer des Audios
print("Audiodauer:", audio_clip.duration, "Sekunden")
2. Zusammensetzen von Video- und Audioclips
Hinzufügen von Audio zu einem Video
Nun, da wir einen Videoclip und einen Audioclip haben, können wir sie zusammenfügen, indem wir die Tonspur dem Video hinzufügen. In MoviePy wird das mit der Methode set_audio()
gemacht.
# Hinzufügen eines Audioclips zu einem Videoclip
video_with_audio = video_clip.set_audio(audio_clip)
Dieser Code erstellt ein neues Objekt video_with_audio
, bei dem der Audioclip audio_clip
in den Videoclip video_clip
integriert ist.
Anpassen der Dauer des Audioclips
Manchmal können sich die Dauer des Audioclips und des Videoclips unterscheiden. Damit der Audioclip mit dem Video übereinstimmt, kannst du die Methode subclip()
verwenden, um das Audio zu schneiden, oder das Audio so ändern, dass es bis zum Ende des Videos wiederholt wird.
Schneiden des Audioclips auf die Videolänge
# Schneiden des Audioclips, damit er mit der Dauer des Videos übereinstimmt
audio_clip_trimmed = audio_clip.subclip(0, video_clip.duration)
# Hinzufügen des geschnittenen Audios zum Video
video_with_audio = video_clip.set_audio(audio_clip_trimmed)
In diesem Beispiel:
audio_clip.subclip(0, video_clip.duration)
erstellt einen neuen Audioclip, der auf die Dauer des Videoclips zugeschnitten ist.- Die Methode
set_audio()
fügt das zugeschnittene Audio dem Video hinzu.
Wiederholen des Audioclips für die Dauer des Videos
Wenn du möchtest, dass der Audioclip bis zum Ende des Videos wiederholt wird, verwende die Methode fx()
mit der Funktion loop
.
from moviepy.audio.fx.all import loop
# Wiederholen des Audioclips bis zur Dauer des Videos
audio_clip_looped = loop(audio_clip, duration=video_clip.duration)
# Hinzufügen des wiederholten Audios zum Video
video_with_audio = video_clip.set_audio(audio_clip_looped)
In diesem Beispiel:
loop(audio_clip, duration=video_clip.duration)
erstellt ein wiederholtes Audio, das so lange wiederholt wird, bis das Video endet.- Wir fügen das Schlaufen-Audio dem Video mit
set_audio()
hinzu.
3. Export von Videos mit hinzugefügtem Audio
Export eines Videoclips mit Audio
Stelle sicher, dass du die benötigten Codecs installiert hast, wie libx264
für Videos und aac
für Audio, denn ohne diese wird unser wunderbares Meisterwerk niemand sehen können.
Beim Export von Videos können wir verschiedene Parameter angeben, wie Auflösung und Bildrate:
# Export von Videos mit neuen Einstellungen
video_with_audio.write_videofile(
"output_video_with_audio.mp4",
codec='libx264',
audio_codec='aac',
fps=30,
preset='medium',
bitrate="2000k"
)
In diesem Beispiel:
write_videofile("output_video_with_audio.mp4", codec="libx264", audio_codec="aac")
speichert das Video mit Audio im MP4-Format, wobei der Videocodeclibx264
und der Audiocodecaac
verwendet werden.
Ta-da! Unser Meisterwerk ist bereit, auf YouTube, Vimeo oder einfach an Freunde gesendet zu werden.
Nach dem Hinzufügen der Tonspur zum Video kann das Ergebnis in eine neue Datei exportiert werden. Dafür wird die Methode write_videofile()
genutzt.
Anpassen der Lautstärke des Audioclips
Um die Lautstärke des Audios im Video einzustellen, kannst du die Methode volumex()
verwenden, die die Lautstärke mit einem bestimmten Faktor ändert. Wenn du den Ton leiser machen möchtest, gib einen Wert kleiner als 1 an, und für eine höhere Lautstärke einen Wert größer als 1.
Beispiel: Reduzieren der Lautstärke des Audios
# Reduzieren der Lautstärke des Audioclips auf die Hälfte
audio_clip_quieter = audio_clip.volumex(0.5)
# Hinzufügen des leiseren Audios zum Video
video_with_audio = video_clip.set_audio(audio_clip_quieter)
video_with_audio.write_videofile("output_video_quieter.mp4")
In diesem Beispiel:
audio_clip.volumex(0.5)
reduziert die Lautstärke des Audios auf 50% der ursprünglichen Lautstärke.set_audio()
undwrite_videofile()
fügen dieses Audio dem Video hinzu und speichern das Ergebnis.
4. Komplettes Beispiel
Erstellung eines Videos mit Audio und Anpassung von Parametern
Jetzt kombinieren wir alle bisher besprochenen Schritte in einem Beispiel, bei dem wir Audio zu einem Video hinzufügen, es auf die gewünschte Dauer zuschneiden, die Lautstärke anpassen und das finale Video exportieren.
from moviepy.editor import VideoFileClip, AudioFileClip
from moviepy.audio.fx.all import loop
# Öffnen der Videodatei
video_clip = VideoFileClip("sample_video.mp4")
# Öffnen der Audiodatei
audio_clip = AudioFileClip("background_music.mp3")
# Anpassen der Lautstärke des Audios
audio_clip_adjusted = audio_clip.volumex(0.7)
# Schleifen des Audios bis zum Ende des Videos
audio_clip_looped = loop(audio_clip_adjusted, duration=video_clip.duration)
# Hinzufügen des Audios zum Video
video_with_audio = video_clip.set_audio(audio_clip_looped)
# Export des Videos mit Audio
video_with_audio.write_videofile("final_output_with_audio.mp4", codec="libx264", audio_codec="aac")
In diesem Beispiel:
- Wir laden das Video und Audio.
- Passen die Lautstärke des Audios mit
volumex()
an. - Schleifen das Audio auf die Länge des Videos.
- Fügen das Audio dem Video hinzu.
- Exportieren das Video mit Audio in die Datei
final_output_with_audio.mp4
.
Typische Fehler und deren Lösung
Beim Arbeiten mit MoviePy können einige Fehler, wie böse Geister, unser Schaffen behindern. Zum Beispiel Probleme mit Audiocodecs oder Formatinkompatibilitäten. Verwende audio_codec='aac'
für eine moderne Audio-Codierung, dies löst vieles.
Wenn das Video oder Audio nicht exportiert wird, obwohl der Code korrekt aussieht, überprüfe, ob die benötigten Codecs installiert sind. Lade oder aktualisiere FFMPEG, das MoviePy als Engine für die Verarbeitung von Video und Audio verwendet.
Jetzt, da du in der Lage bist, Videos zu erstellen und zu exportieren, sind die Möglichkeiten grenzenlos. Diese Fähigkeiten können in den unterschiedlichsten Projekten nützlich sein: von der Erstellung von Lernvideos bis hin zu Marketingmaterialien. Bei Vorstellungsgesprächen kann die Fähigkeit zur Automatisierung der Arbeit mit Videos dein Trumpf sein. Und im Alltag spart es viel Zeit bei der Verarbeitung von Multimedia-Inhalten.
Es ist an der Zeit, die Magie des Programmierens und der Kreativität in der Praxis anzuwenden und die Welt mit deinen Videoclips zu überraschen. Und vergiss nicht, wie ein weiser Programmierer einst sagte: "Wenn der Code nicht funktioniert, füge mehr Koffein hinzu, und wenn er funktioniert – füge mehr Pathos hinzu!"
GO TO FULL VERSION