Erstellen Sie ein Video mit geteiltem Bildschirm, separate Audiostreams und ein Miniaturbild aus dem resultierenden Video mit geteiltem Bildschirm – alles in einem Durchgang

Ich verwende ffmpeg, um aus 2 separaten Videos mehrere einzelne Splitscreen-Videos zu erstellen. Die 2 Videos haben Audio, also möchte ich die Audiostreams der 2 Videos als 2 separate MP3s extrahieren und auch ein Miniaturbild aus dem fertigen Splitscreen-Video erstellen. Ist es möglich, diese 3 Aktionen in einem Durchgang auszuführen?

Hier ist der Code, den ich verwenden würde, um das Splitscreen-Video zu erstellen:

ffmpeg -i input0.mov -i input1.mov -filter_complex "[0]scale=640x360[v0];[1]scale=640x360[v1];[v0][v1] xstack=inputs=2:layout=0_0|w0_0|[v]" -map "[v]" -an output.mp4

Hier ist der Code, den ich verwenden würde, um das Miniaturbild des resultierenden Splitscreen-Videos zu erstellen:

ffmpeg -y -i input.mp4 -vframes 1 OUTPUT.jpg

Hier ist der Code, den ich verwenden würde, um eine MP3 zu erstellen

ffmpeg -i input0.mov output0.mp3

Antworten (1)

Kombinierter Befehl:

ffmpeg -i input0.mov -i input1.mov -filter_complex "[0]scale=640x360[v0];[1]scale=640x360[v1];[v0][v1]hstack,split[video][image]" -map "[video]" output.mp4 -map 0:a audio0.mp3 -map 1:a audio1.mp3 -map "[image]" -frames:v 1 image.jpg

Für 4 Videos in einem 2x2-Layout:

ffmpeg -i input0.mov -i input1.mov -i input2.mov -i input3.mov -filter_complex "[0]scale=640x360[v0];[1]scale=640x360[v1];[2]scale=640x360[v2];[3]scale=640x360[v3];[v0][v1][v2][v3]xstack=inputs=4:layout=0_0|w0_0|0_h0|w0_h0,split[video][image]" -map "[video]" output.mp4 -map 0:a audio0.mp3 -map 1:a audio1.mp3 -map 2:a audio2.mp3 -map 3:a audio3.mp3 -map "[image]" -frames:v 1 image.jpg
Ihre Antwort funktioniert für das Video mit geteiltem Bildschirm und 2 separate MP3s, wenn ich ausschließe: "image.jpg" am Ende Wenn ich leider "image.jpg" hinzufüge, werden Video und Audio etwa 1 Frame lang und es wird kein Miniaturbild erstellt des fertigen resultierenden Splitscreen-Videos einfach input1.mov. Irgendwelche Ideen?
@BenHardy Siehe aktualisierte Antwort. Konnte die erste Iteration nicht testen und ich habe ein paar Dinge vergessen.
Das funktioniert perfekt. Könnte dieser Code für 4 Videos angepasst werden? </>
@BenHardy Siehe aktualisierte Antwort.