1. Videos schneiden
Der Schwerpunkt in dieser Vorlesung liegt auf dem Schneiden von Videos und dem Zusammenfügen von Clips mit der MoviePy-Bibliothek. Du lernst, wie man Videos in Teile aufteilt und daraus vollständige Videoprojekte erstellt. Quasi ein Video-Frühstück aus Stücken deiner liebsten Programmier-Tutorials im "Python-Mix"-Stil.
Fangen wir damit an, wie man Videos in Fragmente aufteilt. Das kann in den unterschiedlichsten Situationen nützlich sein: von der Erstellung von Demos für deine neuesten wissenschaftlichen Entdeckungen bis hin zum Schneiden all der Momente, in denen du in Zoom-Konferenzen zwinkerst.
Aufteilen von Videos nach Zeit
Das Aufteilen eines Videos in Fragmente basiert auf der Verwendung der Methode cut in MoviePy. Wir können die Start- und Endzeitintervalle angeben, die uns interessieren.
from moviepy.editor import VideoFileClip
# Video laden
clip = VideoFileClip("input_video.mp4")
# Schneiden eines Fragments von 10 bis 20 Sekunden
clip1 = clip.subclip(10, 20)
# Geschnittenes Fragment speichern
clip1.write_videofile("clip1.mp4")
Dieser Code schneidet ein Fragment zwischen der 10. und 20. Sekunde des Originalvideos aus. Um Nerven und Speicherplatz auf der Festplatte zu sparen, gib unbedingt die korrekten Zeitmarken an, damit du nicht zufällig ein Fragment von einem entfernten Kaffeebreak erhältst.
Videos in mehrere Teile aufteilen
Du kannst ein Video in mehrere Teile aufteilen und sie als separate Clips speichern, die später kombiniert werden können.
Aufteilen eines Videos in drei Fragmente
Angenommen, wir haben ein Video mit einer Länge von 30 Sekunden und möchten es in drei gleich große Fragmente von jeweils 10 Sekunden aufteilen.
# Erstellen von drei gleichen Fragmenten
clip1 = video.subclip(0, 10)
clip2 = video.subclip(10, 20)
clip3 = video.subclip(20, 30)
# Speichern der Fragmente
clip1.write_videofile("clip_part1.mp4")
clip2.write_videofile("clip_part2.mp4")
clip3.write_videofile("clip_part3.mp4")
Dieser Code erstellt drei Videoclips:
clip1— von der 0. bis zur 10. Sekunde,clip2— von der 10. bis zur 20. Sekunde,clip3— von der 20. bis zur 30. Sekunde.
Jedes Fragment wird als separate Videodatei gespeichert.
Die interessantesten Fragmente ausschneiden
Oft reicht ein einzelnes Fragment nicht aus, und du brauchst einen ganzen Strauß aus Videoblumen. Wir können mehrere solche Fragmente erstellen und speichern.
clip2 = clip.subclip(30, 40)
clip3 = clip.subclip(50, 60)
clip2.write_videofile("clip2.mp4")
clip3.write_videofile("clip3.mp4")
Jetzt haben wir drei Fragmente, die aus dem Originalvideo ausgeschnitten wurden. Es ist fast wie Puzzles zusammensetzen, nur andersherum.
2. Clips zusammenfügen
Nach dem Schneiden ist es an der Zeit, unser Video-Wolke wieder zusammenzufügen, aber in einer neuen, überarbeiteten Form. Dabei helfen die Möglichkeiten von MoviePy, mehrere Clips zu einem zu kombinieren.
Erstellen von Compilations aus Videoclips
Um Clips zu kombinieren, verwenden wir die Methode concatenate_videoclips. Mit dieser Methode können die Clips nacheinander in einer angegebenen Reihenfolge angeordnet werden.
from moviepy.editor import concatenate_videoclips
# Clips zu einem kombinieren
final_clip = concatenate_videoclips([clip1, clip2, clip3])
# Kombiniertes Video speichern
final_clip.write_videofile("final_video.mp4")
Jetzt haben wir ein neues Videoprojekt, das eine Sammlung deiner besten Momente darstellt. Oder zufälligen, falls du die Reihenfolge vergessen hast.
Audio beim Kombinieren von Clips hinzufügen
Beim Kombinieren von Videoclips kann auch eine Audiospur hinzugefügt werden. Wenn du beispielsweise eine Musikdatei oder einen anderen Audioclip hast, kannst du ihn dem kombinierten Video hinzufügen.
Kombinieren von Videoclips mit Hinzufügen einer Audiospur
from moviepy.editor import AudioFileClip
# Audio-Clip erstellen
audio_clip = AudioFileClip("background_music.mp3")
# Hinzufügen des Audio-Clips zum kombinierten Video
final_clip_with_audio = final_clip.set_audio(audio_clip)
final_clip_with_audio.write_videofile("combined_with_audio.mp4")
Hier:
AudioFileClip("background_music.mp3")erstellt einen Audio-Clip aus einer Musikdatei.set_audio(audio_clip)fügt die Audiospur zum kombinierten Videofinal_cliphinzu.
3. Übergänge zwischen Clips
In MoviePy wird für die Erstellung von Übergängen zwischen Clips die Klasse CompositeVideoClip sowie verschiedene Effekte verwendet. Die zentrale Idee ist es, einen Clip über einen anderen zu legen, indem Effekte wie Transparenz oder Verschiebung verwendet werden. Übergänge beinhalten oft Änderungen der Transparenz oder verschiebende Bilder, um einen Clip nahtlos in den nächsten zu überblenden.
Übergang mit allmählichem Verblassen (Fade)
Verblassen ist einer der beliebtesten Übergänge, bei dem der erste Clip allmählich verschwindet und der zweite allmählich auf dem Bildschirm erscheint. Dieser Effekt wird mit der Funktion crossfadein() oder crossfadeout() erstellt.
Übergang mit Verblassen zwischen zwei Clips
from moviepy.editor import VideoFileClip, concatenate_videoclips
# Zwei Videoclips laden
clip1 = VideoFileClip("clip1.mp4").subclip(0, 5) # Erster Clip für 5 Sekunden
clip2 = VideoFileClip("clip2.mp4").subclip(0, 5) # Zweiter Clip für 5 Sekunden
# Einstellung des Verblassen-Effekts
clip1 = clip1.crossfadeout(1) # Clip 1 verblasst in 1 Sekunde
clip2 = clip2.crossfadein(1) # Clip 2 taucht in 1 Sekunde auf
# Clips mit Übergang kombinieren
final_clip = concatenate_videoclips([clip1, clip2], method="compose")
final_clip.write_videofile("fade_transition.mp4")
In diesem Beispiel:
crossfadeout(1)macht den ersten Clip in einer Sekunde allmählich transparenter.crossfadein(1)macht den zweiten Clip in einer Sekunde allmählich weniger transparent.concatenate_videoclips([clip1, clip2], method="compose")kombiniert zwei Clips mit einem Verblassen-Übergang.
Übergang mit Abdunkeln
Abdunkeln (oder „Fade to Black“) ist ein Effekt, bei dem der erste Clip zu einem schwarzen Bildschirm verblasst und dann der nächste Clip aus der Dunkelheit auftaucht. Dieser Übergang erzeugt den Eindruck eines Abschlusses einer Szene vor dem Beginn der nächsten.
from moviepy.editor import VideoFileClip, concatenate_videoclips
# Zwei Clips laden
clip1 = VideoFileClip("clip1.mp4").subclip(0, 5)
clip2 = VideoFileClip("clip2.mp4").subclip(0, 5)
# Abdunkeln einstellen
clip1 = clip1.fadeout(1) # Clip 1 verblasst zu Schwarz
clip2 = clip2.fadein(1) # Clip 2 taucht aus Schwarz auf
# Clips mit Abdunkeln kombinieren
final_clip = concatenate_videoclips([clip1, clip2], method="compose")
final_clip.write_videofile("fade_to_black_transition.mp4")
Hier:
fadeout(1)lässt den Clip in einer Sekunde zu einem schwarzen Bildschirm verblassen.fadein(1)lässt den zweiten Clip aus einem schwarzen Bildschirm in einer Sekunde erscheinen.
Jetzt ist dein Video nicht nur eine Sammlung von Fragmenten, sondern ein echter Hit mit sanften Übergängen. Wie du siehst, haben wir Eingangs- und Ausgangseffekte des Verblassens hinzugefügt, um das Video flüssiger zu gestalten.
4. Praktische Anwendung
Die in dieser Vorlesung erworbenen Fähigkeiten sind äußerst nützlich. Stell dir vor, du erstellst ein Tutorial zur Programmierung, einen Werbeclip für eine neue Bibliothek oder die Montage der Geburt deiner Katze in die IT-Welt (ja, sogar das gibt es!). Die Fähigkeit, Videos zu schneiden und sie in thematische Blöcke zusammenzufügen, ist ein Schritt auf dem Weg, ein wahrer Meister der Videobearbeitung und Automatisierung zu werden.
Typische Fehler
Sei beim Arbeiten mit dem Schneiden und Kombinieren von Videos vorsichtig mit den Zeitmarken. Wir alle haben diese Momente gesehen, in denen Videos plötzlich abbrechen (und dieselben langweiligen Folien der Konferenz wieder beginnen). Stell sicher, dass deine Marken korrekt sind und keine Fehler vorliegen. MoviePy kann manchmal über falsche Formate oder leere Clips meckern, also prüfe den Code auf Korrektheit, bevor du ihn ausführst.
Ich hoffe, dass du jetzt nicht nur mit Wissen bewaffnet bist, sondern auch ein leichtes Kribbeln vor den Möglichkeiten verspürst, die sich dir eröffnen. Auf in die Welt der Videobearbeitung und kreativen Lösungen mit Python und MoviePy!
GO TO FULL VERSION