Quiero crear un video mp4 de 5 segundos a partir de 1 imagen.
Cuando uso el siguiente código, el video es fluido. La dirección predeterminada es acercar hacia la parte superior izquierda.
ffmpeg -loop 1 -i prop1.jpeg -vf "zoompan=z='min(zoom+0.0015,1.5)':d=125" -c:v libx264 -t 5 -s "800x450" fade.mp4
Entonces, para acercarme a la parte superior derecha, descubro que uso el siguiente código
ffmpeg -loop 1 -i prop1.jpeg -vf "zoompan=z='min(zoom+0.0015,1.5)':x='if(gte(zoom,1.5),x,x+1)':y='y':d=125" -c:v libx264 -t 5 -s "800x450" fade.mp4
Se acerca en la dirección correcta pero el vídeo se vuelve nervioso.
También recibí algún error al convertir:
[swscaler @ 0x429bda0] deprecated pixel format used, make sure you did set range correctly
[swscaler @ 0x429bac0] deprecated pixel format used, make sure you did set range correctly
[swscaler @ 0x429bac0] Warning: data is not aligned! This can lead to a speedloss
[swscaler @ 0x429bac0] deprecated pixel format used, make sure you did set range correctly
Last message repeated 97 times
[output stream 0:0 @ 0x37af200] 100 buffers queued in output stream 0:0, something may be wrong.
[swscaler @ 0x429bac0] deprecated pixel format used, make sure you did set range correctly
Last message repeated 24 times
[swscaler @ 0x42b7040] deprecated pixel format used, make sure you did set range correctly
Last message repeated 1 times
¿Qué hay de malo en el código?
Respuesta1
Utilice exclusivo antes de hacer zoompan:
ffmpeg -loop 1 -i prop1.jpeg -vf "scale=8000:-1,zoompan=z='min(zoom+0.0015,1.5)':x='if(gte(zoom,1.5),x,x+1)':y='y':d=125" -c:v libx264 -t 5 -s "800x450" fade.mp4
Como se indica arriba en los comentarios: esto parece ser un error de ffmpeg:https://trac.ffmpeg.org/ticket/4298
Encontré esta solución aquí:ffmpeg: zoompan suave sin sacudidas