
Quiero desenfocar condicionalmente un video. Como para un video de 30 segundos, desde 2 a 10 segundos se desenfoca un área diferente a la de 12 a 20 segundos.
Pero hasta ahora solo puedo desenfocarlo una vez. El siguiente es el comando que intenté para lograr el objetivo. UsandoExpresiones aritémicas
ffmpeg -y -i with_out_sound.mp4 filter_complex [0:v]boxblur=10:enable='between(t,2,10)'[bg],[0:v]crop=206:169:3 2:121[fg],[bg][fg]overlay=32:121:enable='between(t,2,10)'[tmp];[0:v]boxblur=10: enable='between(t,12,20)'[bg],[0:v]crop=206:169:42:100[fg],[bg][fg]overlay=42:100 :enable='between(t,12,20)'[tmp2];[tmp][tmp2]concat[tmp3] -map [tmp3] with_out_sou ndd.mp4
pero el comando anterior primero desenfoca (2-10) video completo y luego concat completa video nuevamente con desenfoque (12-20), así obtengo un video de 60 segundos en lugar de 30 segundos.
ffmpeg -y -i with_out_sound.mp4 -filter_complex [0:v]boxblur=10:enable='between(t,2,10)'[bg];[bg]crop=206:169:32:121[fg];[bg][fg]overlay=32:121:enable='between(t,2,10)'[tmp],[tmp]b oxblur=10:enable='between(t,12,20)'[tbg],[tmp]crop=206:169:42:100[tfg],[tbg][tfg]overlay=42:100:enable='between(t,12,20)'[tmp2] -map "[tmp2]" with_out_soundd.mp4
Pero en este caso empiezo a recibir el error El especificador de flujo 'tmp' en la descripción del gráfico de filtro no coincide con ningún flujo.
Estoy usando la última versión de ffmpeg en Windows.
Respuesta1
Usar
ffmpeg -y -i with_out_sound.mp4 -filter_complex \
"[0:v]boxblur=10:enable='if(between(t,2,10)+between(t,12,20),1,0)'[bg];
[0:v]crop=206:169:32:121[fg1];[0:v]crop=206:169:42:100[fg2];
[bg][fg1]overlay=32:121:enable='between(t,2,10)'[tmp];
[tmp][fg2]overlay=42:100:enable='between(t,12,20)'[tmp2]"
-map [tmp2] with_blur.mp4
Puedeagregarmúltiples condiciones para hacer el desenfoque en una ejecución de filtro y luego usar dos superposiciones. Se evita el concat. Si desea utilizar concat, debe recortar las dos secuencias, pero esto es más fácil.
El condicional utilizado es el if(x,y,z)
que evalúa x
y devuelve y
si es verdadero, en caso contrario z
.