
Me gustaría hacer varias modificaciones en archivos de video a la vez.
Necesito agregar un fragmento de video de introducción y cierre al video de entrada. Entonces esto significa fusionar 3 videos. Necesito agregar una imagen superpuesta al video de entrada (el segundo segmento) y solo eso. ¿Cómo puedo combinarlos en una línea?
Logré hacer esto en dos pasos. Primero la superposición:
ffmpeg -i input.mkv -i image.png -filter_complex overlay=main_w-overlay_w-0:0 output_file.mkv
Luego la fusión:
ffmpeg -i intro.mp4 -i input.mkv -i outro.mp4 -filter_complex "[0:v:0][0:a:0][1:v:0][1:a:0][2:v:0][2:a:0]concat=n=3:v=1:a=1[video_out][audio_out]" -map "[video_out]" -map "[audio_out]" output_file.mkv
Respuesta1
Podemos usar nombres temporales [v1]
para la salida y overlay=main_w-overlay_w-0:0
luego usarlos [v1]
como entrada para el concat
filtro:
ffmpeg -i intro.mp4 -i input.mkv -i outro.mp4 -i image.png -filter_complex "[1:v][3:v]overlay=main_w-overlay_w-0:0[v1];[0:v:0][0:a:0][v1][1:a:0][2:v:0][2:a:0]concat=n=3:v=1:a=1[video_out][audio_out]" -map "[video_out]" -map "[audio_out]" output_file.mkv
- La siguiente parte aplica la etapa de superposición:
[1:v][3:v]overlay=main_w-overlay_w-0:0[v1]
La salida superpuesta obtiene el nombre temporal[v1]
. [0:v:0][0:a:0][v1][1:a:0][2:v:0][2:a:0]concat
utiliza[v1]
como entrada paraconcat
(en lugar de[1:v:0]
).