ffmpeg: zoompan suave sem agitar

4

Estou tentando criar um zoompan básico de 5 segundos para o centro de uma imagem (a partir do exemplo no ffmpeg. site da organização ). O comando abaixo funciona, mas excita 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

Digite jpg . Saída mp4 .

Estou ciente do bug ffmpeg # 4298 . A solução sugerida postada é usar o filtro scale antes de zoompan . Mas, como mostrado no meu exemplo, isso ainda parece não ter efeito.

Parece que quaisquer valores arbitrários de x ou y causam o efeito de oscilação / tremido / tremido.

Alguém pode oferecer algum tipo de solução 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
    
por Timbo White 12.08.2016 / 00:59

1 resposta

11

Evite o escalonamento para baixo antecipadamente. Aplique uma função trunc às expressões x e y. Ou upscale isso antes. De preferência o último. Isso elimina a maior parte do jitter 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 está arredondando os valores das expressões x e y , que podem ser arredondadas para cima ou para baixo. Isso está criando um movimento irregular devido a mudanças na direção do pan. Aumentar a resolução antecipadamente permite que o arredondamento seja menor.

    
por 12.08.2016 / 07:58

Tags