Kombinieren Sie mehrere Videos als separate Streams in einer MKV-Datei

Ich habe also mehrere Videos derselben Szenerie aus verschiedenen Blickwinkeln. Diese werden als separate Dateien gespeichert. Kann ich diese als mehrere Videostreams in einer Datei kombinieren?

Ich weiß zum Beispiel, dass dies mit MKV möglich ist, ich weiß nur nicht, wie ich ihnen "beitreten" soll.

Ist das mit ffmpeg möglich ? Wenn ja, welche Befehlsfolge verwende ich? Wenn nicht, welche andere Anwendung könnte dies tun?

Antworten (2)

Ja, das ist mit ffmpeg und dem mkvContainer möglich.

Eine beispielhafte Befehlsfolge wäre:

ffmpeg -i input1 -i input2 -c copy -map 0 -map 1 output.mkv

Quelle

Aufschlüsselung des Befehls:

  • -i input1Dies wählt die erste Eingabedatei aus. Könnte so etwas wie meins sein video_track1.mov.
  • -i input2Hier können Sie die zweite Eingabedatei angeben. Sie können einen weiteren Eintrag hinzufügen, -i input3wenn Sie mehr Eingangsvideos haben. Ich weiß nicht, wie viele Videos Sie maximal in einem mkvContainer platzieren können.
  • -c copyDadurch werden alle Streams (Audio und Video) in ihrer ursprünglichen Codierung kopiert.
  • -map 0Dadurch werden alle Streams (Audio und Video) der ersten Eingabedatei der ersten Spur der Ausgabedatei zugeordnet.
  • -map 1Dadurch werden alle Streams (Audio und Video) der zweiten Eingabedatei der zweiten Spur der Ausgabedatei zugeordnet.

Weitere Informationen zu der -mapOption finden Sie in der Dokumentation von ffmpeg .

Danke Bart. Nur eine kurze Anschlussfrage, wenn ich darf. Angenommen, das 2. Video ist etwas kürzer als das 1. Video, das ich kombinieren möchte. Kann ich irgendwie verschieben, an welcher Stelle der zweite Stream verfügbar sein soll (z. B. 1 Sekunde später), um die beiden Streams synchron zu halten?
Ich bin mir nicht sicher, ich bin kein Experte, nur ein glücklicher Googler, aber Sie könnten mit der -ssOption experimentieren . Bitte bearbeiten Sie Ihre Frage mit dem Zusatz und fügen Sie selbst eine Antwort einschließlich des ffmpeg-Codes hinzu, wenn Sie feststellen, dass es funktioniert. Dies wird zukünftigen Besuchern helfen.
Das hat fast funktioniert, aber mein Eingabevideo hatte keine Zeitstempel. Ich habe sie mit ffmpeg -fflags +genpts -i input1_no_ts.avi -c copy input1.mp4und erstelltffmpeg -fflags +genpts -i input2_no_ts.avi -c copy input2.mp4

'map' wählt Eingabequellen aus, in diesem Fall Dateien. Ihr Befehl kombiniert alle Tracks zu einem einzigen Stream, nicht wie gewünscht zu separaten.

Der Befehl in der Antwort von @SaaruLindestakke hält sie als separate Streams. mapkombiniert keine Streams; Es kann nur Eingabeströme ( keine Dateien) auswählen.