Questão ffmpeg - como criar efeito de zoom de vídeo de 5 segundos com 1 imagem


Eu sei como fazer 5 segundo vídeo "zoom in" efeito com 1 imagem usando zoompan.

ffmpeg -loop 1 -i image1.jpg -vf "zoompan=z='min(zoom+0.0015,1.5)':d=125" -c:v libx264 -t 5 -s "800x450" zoomin.mp4

Como faço o vídeo "zoom out"?

tentei abaixo, mas nenhum deles está funcionando:

ffmpeg -loop 1 -i image1.jpg -vf "zoompan=z='min(zoom-0.0015,1.5)':d=125" -c:v libx264 -t 5 -s "800x450" zoomout.mp4

ffmpeg -loop 1 -i image1.jpg -vf "zoompan=z='max(1.5,zoom-0.0015)':d=125" -c:v libx264 -t 5 -s "800x450" zoomout.mp4

ffmpeg -loop 1 -i image_1.jpg -vf "zoompan=z='max(zoom-0.0015,1.5)':d=125" -c:v libx264 -t 5 -s "800x450" zoomin.mp4

4


origem




Respostas:


Você deve primeiro definir o fator de zoom, pois por padrão é definido como 1.0. Eu pude fazer assim:

ffmpeg -loop 1 -i image_1.jpg -vf "zoompan=z='if(lte(zoom,1.0),1.5,max(1.001,zoom-0.0015))':d=125" -c:v libx264 -t 5 -s "800x450" zoomout.mp4

Que começará com zoom de 1,5 e diminuirá 0,0015 a cada iteração. Observe que o valor 1.001 foi usado (qualquer valor maior que 1.0) para garantir que ele não fosse zerado após 1.0 e redefinido para 1.5.

Outra solução poderia ter sido simplesmente inverter a saída do seu zoompan original, mas depois de uma rápida pesquisa, inverter o vídeo parece ser um grande esforço no ffmpeg.


9



Como podemos suportar isso para várias imagens concatenadas? Eu pensei d = 125 vai funcionar, mas há algum problema como imagem tende a permanecer lá por mais de 5 seg - Killer


Calcule o z do índice de quadros (on) e a duração.

on/duration você obterá um percentual de 0 a 1 que aumenta cada quadro.

1.5-on/duration*0.5 Dá-lhe um número de 1,5-1.

Todos juntos:

ffmpeg -loop 1 -i image1.jpg -vf "zoompan=z='1.5-on/duration*0.5':d=125" -c:v libx264 -t 5 -s "800x450" zoomin.mp4

1