Estoy intentando crear un mp4 de una imagen fusionada con otra usando el filtro de mezcla y filter_complex
, como se ilustra enesta respuesta.
Pero también quiero escalar ambas imágenes a 480p antes de fusionarlas. Aquí está el comando que estoy usando:
ffmpeg \
-loop 1 -t 1 -i field.jpg \
-loop 1 -t 1 -i island.jpg \
-filter_complex \
"[0:v]scale=hd480[v0]; \
[1:v]scale=hd480[v1]; \
[v1][v0]blend=all_expr='A*(if(gte(T,0.5),1,T/0.5))+B*(1-(if(gte(T,0.5),1,T/0.5)))'[b1v]; \
[v0][b1v][v1]concat=n=3:v=1:a=0 [v]" -map "[v]" -threads 0 -preset ultrafast -y out.mp4
Sin embargo, parece que concat falla y genera el siguiente resultado:
Input #0, image2, from 'field.jpg':
Duration: 00:00:00.04, start: 0.000000, bitrate: 409918 kb/s
Stream #0:0: Video: mjpeg, yuvj444p(pc, bt470bg/unknown/unknown), 4000x2000 [SAR 72:72 DAR 2:1], 25 fps, 25 tbr, 25 tbn, 25 tbc
Input #1, image2, from 'island.jpg':
Duration: 00:00:00.04, start: 0.000000, bitrate: 252593 kb/s
Stream #1:0: Video: mjpeg, yuvj444p(pc, bt470bg/unknown/unknown), 4000x2000 [SAR 72:72 DAR 2:1], 25 fps, 25 tbr, 25 tbn, 25 tbc
[swscaler @ 0x57425e0] deprecated pixel format used, make sure you did set range correctly
[swscaler @ 0x577e4a0] deprecated pixel format used, make sure you did set range correctly
[Parsed_concat_3 @ 0x59c1c20] Input link in1:v0 parameters (size 852x480, SAR 80:71) do not match the corresponding output link in0:v0 parameters (4000x2000, SAR 72:72)
[Parsed_concat_3 @ 0x59c1c20] Failed to configure output pad on Parsed_concat_3
Error configuring complex filters.
Invalid argument
Ambas imágenes son 4000x2000px,campo.jpgyisla.jpg.
Realmente aprecio cualquier ayuda. Usando una compilación nocturna reciente:
ffmpeg version N-81188-gcebad64-static
Respuesta1
Usar
ffmpeg -loop 1 -t 1 -i field.jpg -loop 1 -t 1 -i island.jpg
-filter_complex "[0:v]scale=-2:480,split[v0][cv0];
[1:v]scale=-2:480,split[v1][cv1];
[v1][v0]blend=all_expr='A*(if(gte(T,0.5),1,T/0.5))+B*(1-(if(gte(T,0.5),1,T/0.5)))'[b1v];
[cv0][b1v][cv1]concat=n=3:v=1:a=0 [v]" -map "[v]" -threads 0 -preset ultrafast -y out.mp4
Las almohadillas de entrada generadas dentro de un complejo de filtros solo se pueden consumir una vez. Entonces, puse una división para generar una copia para concat. También cambié la escala para -2:480
preservar la relación de aspecto. Puedes revertirlo, hd480
pero los reproductores web que no respetan las banderas de relación de aspecto mostrarán el video distorsionado.