ffmpeg: zoompan suave sin sacudidas

ffmpeg: zoompan suave sin sacudidas

Estoy intentando crear un zoom pan básico de 5 segundos hacia el centro de una imagen (del ejemplo de la páginaSitio web ffmpeg.org). El siguiente comando funciona, pero me tiemblan más que las manos después de 5 tazas 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

Entrada jpg. salida mp4.

soy consciente de laerror de ffmpeg #4298. La solución alternativa sugerida publicada es utilizar el scalefiltro antes de zoompan. Pero como se muestra en mi ejemplo, esto todavía parece no tener ningún efecto.

Parece que cualquier valor arbitrario de x o y causa el efecto de sacudida/espasmos/vibración.

¿Alguien puede ofrecer algún tipo de solución eficaz? ¡Gracias!

Información de la versión:

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

Respuesta1

Evitarabajoescalar previamente. Aplique una función trunc a las expresiones xey. O mejorarlo antes. Preferiblemente lo último. Esto me elimina la mayor parte del nerviosismo.

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

Básicamente, el filtro redondea los valores de las expresiones xy y, que pueden redondearse hacia arriba o hacia abajo. Eso crea un movimiento desigual debido a los cambios en la dirección del movimiento panorámico. Aumentar la resolución de antemano permite que el redondeo sea menor.

información relacionada