ffmpeg: zoompan suave sem oscilação

ffmpeg: zoompan suave sem oscilação

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

Insira jpg. Saída mp4.

Estou ciente dobug #4298 do ffmpeg. A solução sugerida postada é usar o scalefiltro 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 xe 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.

informação relacionada