Splitscreen-Video mit ffmpeg erstellen

Ich habe zwei Videos unterschiedlicher Länge. Ich muss ein neues Video mit einem Video links und einem rechts erstellen. Ich habe versucht, dies zu verwenden . Das Problem ist, dass meine Videos unterschiedlich lang sind. Ich möchte ein Video ein paar Sekunden nach dem Start des anderen starten. Außerdem möchte ich nur den Ton des längeren Videos behalten.

Weißt du, welches der Videos länger ist?
Ja. Ich weiss. Das richtige.

Antworten (1)

Verwenden

ffmpeg -i shorter.mp4 -i longer.mp4 -filter_complex
 "[0]trim=0:3.5,drawbox=c=black[delay];[delay][0]concat[left];
  [left][1]hstack[v]"
 -map "[v]" -map 1:a -c:a copy out.mp4

wo 3.5sollte durch die verzögerte Startzeit (in Sekunden) des kürzeren Videos ersetzt werden.

Eindrucksvoll! Aber es fehlte ein Punkt. Die Synchronisierung war korrekt. Aber das richtige Video startete erst nach Ablauf der Verzögerung (13 Sekunden). Dann starteten beide Videos gleichzeitig. Im Wesentlichen habe ich die ersten 13s des rechten Videos verloren
Siehe bearbeitetes cmd.
Nein. Das Update ist verzerrt. Beide Videos begannen gleichzeitig. Nach einigen Sekunden wurde das linke Video für einige Sekunden angehalten. Dann wurde es synchron mit dem richtigen Video fortgesetzt
Vollständiges Protokoll anzeigen..
Sie verwenden eine ältere Version von ffmpeg, die manuell gepuffert werden muss. Ändern Sie die erste Zeile der Filter in[0]trim=0:3.5,drawbox=c=black,fifo[delay];[delay][0]concat,fifo[left]
Got an Error drive.google.com/open?id=1vgDD6T0HlR7BBaUHLdybBzlfBQnJNqyx Ich habe ffmpeg heute von hier ffmpeg.org/releases/ffmpeg-3.4.1.tar.bz2 installiert . Ich verwende ein Macbook Pro. Muss ich noch etwas anderes installieren?
Holen Sie sich eine Binärdatei von ffmpeg.zeranoe.com/builds
ffmpeg -i left.mp4 -i right.mp4 -i left.mp4 -filter_complex "[0]trim=0:13,drawbox=c=black:t=fill[delay];[delay][2]concat[left];[left][1]hstack[v]" -map "[v]" -map 1:a -c:a copy out.mp4Mit der neuen Binärdatei verwenden . Dies ist ein ausstehendes Pufferverwaltungsproblem.
Was ist die Ausgabe vonffmpeg -hide_banner -filters
Es zeigt den Concat-Filter. In seltenen Fällen tritt beim Einfügen in/aus Stack Exchange ein Zeichencodierungsproblem auf. Geben Sie den Befehl an Ihrem Ende erneut ein und führen Sie ihn aus.
Ja. Es funktioniert jetzt einwandfrei. Vielen Dank! Außerdem habe ich noch eine Bitte. Eine kleine Erweiterung. Umgang mit dem folgenden Szenario. Das linke Video sollte nach dem rechten Video beginnen. Aber die Länge ist so, dass das linke Video verlängert wird, nachdem das rechte Video endet. Der aktuelle Befehl behandelt dies, aber nachdem das rechte Video endet, stoppt Audio. Das linke Video wird ohne Ton fortgesetzt. Wie kann man es so machen, dass nach dem Ende des rechten Videos der Ton vom linken Video genommen werden soll? Soll ich dafür eine neue Frage stellen?
Stellen Sie eine neue Frage. Es ist komplizierter, den Ton so zu wechseln.
Ich habe hier gefragt. video.stackexchange.com/q/23156/21062 Danke!