Estou tentando aumentar o poder de desfoque em todo o vídeo. Meu código é assim, mas parece que o FFmpeg não reconhece t
:
ffmpeg -i input.mp4 -filter_complex "[0]smartblur=t*2" output.mp4
Lembro-me de usar t
in overlay
, mas não sei por que não funciona aqui.
Eu também tentei boxblur
, gblur
mas não funcionou.
De acordo com a documentação , parece que nenhum dos filtros de desfoque suporta expressão baseada em tempo.
Podemos obter o efeito de aumentar o poder de desfoque conforme o vídeo é reproduzido, misturando o vídeo desfocado com o vídeo original.
O peso do vídeo original é 1 no começo e 0 no fim, e o peso do vídeo desfocado é 0 no começo e 1 no fim.
Exemplo (suponha que a duração do vídeo seja de 10 segundos):
ffmpeg -y -i input.mp4 -filter_complex "[0:v]smartblur=luma_radius=5[blr];[0:v][blr]blend=all_expr=(1-T/10)*A+(T/10)*B" output.mp4
[0:v]smartblur=luma_radius=5[blr]
- desfoca a entrada e armazena o resultado em[blr]
.(1-T/10)
- é igual a 1 quando T=0 e 0 quando T=10(T/10)
- é igual a 0 quando T=0 e 1 quando T=10[0:v][blr]blend=all_expr=(1-T/10)*A+(T/10)*B
aplica a soma ponderada (mistura) do vídeo original e do vídeo desfocado, com o peso desfocado aumentado ao longo do tempo.Exemplo (usando vídeo sintético):
ffmpeg -y -f lavfi -i testsrc=size=192x108:rate=1:duration=10 -filter_complex "[0:v]smartblur=luma_radius=5[blr];[0:v][blr]blend=all_expr=(1-T/10)*A+(T/10)*B" output.mp4