Estou tentando criar um zoompan básico de 5 segundos para o centro de uma imagem (do exemplo noSite ffmpeg.org). O comando abaixo funciona, mas treme mais do que minhas mãos depois de 5 xícaras de café:
ffmpeg -framerate 25 -loop 1 -i island.jpg -filter_complex "[0:v]scale=-2:480,zoompan=z='min(zoom+0.0015,1.5)':x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)':d=125,trim=duration=5[v]" -map "[v]" -y out.mp4
Estou ciente dobug #4298 do ffmpeg. A solução sugerida postada é usar o scale
filtro antes de zoompan
. Mas, como mostrado no meu exemplo, isso ainda parece não surtir efeito.
Parece que quaisquer valores arbitrários de x ou y causam o efeito oscilante/espasmódico/trêmulo.
Alguém pode oferecer algum tipo de solução alternativa eficaz? Obrigado!
Informação da versão:
ffmpeg version 3.1.2-static http://johnvansickle.com/ffmpeg/ Copyright (c) 2000-2016 the FFmpeg developers
built with gcc 5.4.0 (Debian 5.4.0-6) 20160609
Responder1
Evitarabaixodimensionamento de antemão. Aplique uma função trunc às expressões x e y. Ou aprimore-o antes. De preferência o último. Isso elimina a maior parte do nervosismo para mim.
ffmpeg -framerate 25 -loop 1 -i island.jpg -filter_complex "[0:v]scale=8000x4000,zoompan=z='min(zoom+0.0015,1.5)':x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)':d=125,trim=duration=5[v]" -map "[v]" -y out.mp4
Basicamente, o filtro arredonda os valores das expressões x
e y
, que podem ser arredondados para cima ou para baixo. Isso está criando um movimento irregular devido a mudanças na direção do movimento panorâmico. Aumentar previamente a resolução permite que o arredondamento seja menor.