Cree un video de pantalla dividida, secuencias de audio separadas y una miniatura del video de pantalla dividida resultante, todo en una sola pasada

Estoy usando ffmpeg para crear varios videos de pantalla dividida individuales a partir de 2 videos separados. Los 2 videos tienen audio, así que quiero extraer las secuencias de audio de los 2 videos como 2 mp3 separados y también crear una miniatura del video terminado en pantalla dividida. ¿Es posible hacer estas 3 acciones en una sola pasada?

Aquí está el código que usaría para crear el video de pantalla dividida:

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

Aquí está el código que usaría para crear la miniatura del video de pantalla dividida resultante:

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

Aquí está el código que usaría para crear un mp3

ffmpeg -i input0.mov output0.mp3

Respuestas (1)

Comando combinado:

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

Para 4 videos en un diseño de 2x2:

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
Su respuesta funciona para el video de pantalla dividida y 2 mp3 separados si excluyo: "image.jpg" al final Desafortunadamente, si agrego "image.jpg", hace que el video y el audio tengan aproximadamente 1 cuadro de largo y no crea una miniatura del video de pantalla dividida resultante terminado, solo ingresa 1.mov. ¿Algunas ideas?
@BenHardy Ver respuesta actualizada. No pude probar la primera iteración y olvidé algunas cosas.
Esto funciona perfectamente. ¿Se podría adaptar este código para 4 videos? </>
@BenHardy Ver respuesta actualizada.