Estou tentando desfocar uma parte específica do vídeo dependendo do intervalo específico, como em 2 a 10 segundos desfocar esta parte e em 12 a 20 desfocar outra, mas não consigo fazer isso funcionar. Aqui está o comando que posso fazer até agora
'ffmpeg -y -i with_out_sound.mp4 -filter_complex [0:v]crop=206:169:32:121,boxblur=10:enable='between(t,2,10)'[fg];[0:v]crop=206:169:62:100,boxblur=10:enable='between(t,12,20)'[fg1];[0:v[fg]overlay=32:121:enable='between(t,2,10)'[tmp];[0:v][tmp]overlay=62:100:enable='between(t,12,20)'[tmp2]-map [tmp2] with_blur.mp4'
Mas com o comando acima estou recebendo um erroFiltro Boxblur tem saída desconectada
Responder1
Usar
ffmpeg -y -i with_out_sound.mp4 -filter_complex \
"[0:v]crop=206:169:32:121,boxblur=10:enable='between(t,2,10)'[fg]; \
[0:v]crop=206:169:62:100,boxblur=10:enable='between(t,12,20)'[fg1]; \
[0:v[fg]overlay=32:121:enable='between(t,2,10)'[tmp]; \
[tmp][fg1]overlay=62:100:enable='between(t,12,20)'[tmp2]"
-map [tmp2] with_blur.mp4
O resultado da primeira sobreposição deve ser o plano de fundo da segunda sobreposição.
O erro estava ocorrendo porque fg1
não estava sendo usado em lugar nenhum. Todas as saídas do filtro devem ser 1) mapeadas para codificação, 2) usadas por outro filtro ou 3) enviadas para um coletor.