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
soy consciente de laerror de ffmpeg #4298. La solución alternativa sugerida publicada es utilizar el scale
filtro 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 x
y 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.