Wie kann man mit ffmpeg Videos zusammenfügen?
- Einleitung: Warum Videos mit ffmpeg zusammenfügen?
- Grundlegende Methoden zum Zusammenfügen von Videos mit ffmpeg
- Videos direkt zusammenfügen ohne Neukodierung (Concat Demuxer)
- Videos zusammenfügen mit Neukodierung (Concat Filter)
- Fazit
Einleitung: Warum Videos mit ffmpeg zusammenfügen?
ffmpeg ist ein leistungsstarkes und vielseitiges Kommandozeilenwerkzeug zur Verarbeitung von Multimedia-Dateien. Viele Anwender stehen vor der Herausforderung, mehrere Videodateien zu einem einzigen Video zusammenzufügen. Dies kann zum Beispiel notwendig sein, wenn man verschiedene Clips zu einem Film kombinieren möchte oder längere Aufnahmen in einzelne Dateien gesplittet vorliegen. Mit ffmpeg ist dies relativ einfach möglich, erfordert jedoch das Verständnis einiger grundlegender Befehle und Vorgehensweisen.
Grundlegende Methoden zum Zusammenfügen von Videos mit ffmpeg
Es gibt grundsätzlich zwei gängige Methoden, um Videos mit ffmpeg zusammenzufügen. Die Auswahl der Methode hängt vom Dateiformat und den verwendeten Codecs der Videos ab. Die erste Methode ist das einfache Aneinanderhängen von Dateien im gleichen Format und Codec, was sehr schnell und ohne Neukodierung funktioniert. Die zweite Methode beinhaltet eine Neukodierung und ermöglicht so das Zusammenfügen von unterschiedlich kodierten Dateien oder verschiedener Formate. Beide Methoden werden im Folgenden erklärt.
Videos direkt zusammenfügen ohne Neukodierung (Concat Demuxer)
Wenn die Videodateien genau den gleichen Codec, Container, Auflösung und andere Parameter haben, kann man die sogenannte "concat demuxer"-Methode verwenden. Dazu erstellt man zunächst eine Textdatei, in der die Pfade der zusammenzufügenden Videos aufgelistet sind. Der Befehl ffmpeg liest diese Liste ein und fügt die Videos verlustfrei aneinander.
Die Textdatei sieht zum Beispiel so aus:
file video1.mp4 file video2.mp4 file video3.mp4
Anschließend führt man folgenden Befehl aus, um die Videos zusammenzufügen:
ffmpeg -f concat -safe 0 -i dateiliste.txt -c copy output.mp4
Dadurch werden die Videos schnell zusammengefügt, ohne dass eine Neukodierung erfolgt. Dies spart Zeit und erhält die Qualität unverändert.
Videos zusammenfügen mit Neukodierung (Concat Filter)
Sind die Videodateien unterschiedlich kodiert oder besitzen unterschiedliche Eigenschaften, kann die oben beschriebene Methode nicht verwendet werden. Hierfür ist eine Neukodierung erforderlich. Mit Hilfe des "concat"-Filters von ffmpeg können die Videos in einem einzigen Schritt decodiert, zusammengefügt und neu kodiert werden. Der Befehl verlangt, dass man die Eingabedateien mit mehreren -i Optionen angibt und anschließend den Filter anwendet.
Ein Beispiel für zwei Inputdateien:
ffmpeg -i video1.mp4 -i video2.mp4 -filter_complex " concat=n=2:v=1:a=1 " -map " " -map " " output.mp4
Dieser Befehl sorgt dafür, dass Video- und Audiospuren beider Dateien kombiniert werden. Dabei wird das Ergebnis neu kodiert, was je nach Rechenleistung und Länge der Dateien einige Zeit beanspruchen kann.
Fazit
Das Zusammenfügen von Videos mit ffmpeg ist flexibel und kann je nach Voraussetzungen mit oder ohne Neukodierung erfolgen. Für identische Formate ist die concat demuxer Methode ideal, da sie schnell und verlustfrei arbeitet. Für gemischte Formate oder unterschiedliche Codecs ist der concat filter mit Neukodierung notwendig. Mit diesen Kenntnissen lassen sich Videoclips einfach und effizient zu einem einzigen Film verknüpfen.
