图片放大的视频特效
ffmpeg -y -i 333444.png -filter_complex "[0:v]scale=3840x2880,zoompan=z='min(zoom+0.0016,1.2)':d=120:x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)',scale=960:720[v]" -map "[v]" -c:v libx264 -profile:v baseline -pix_fmt yuv420p -crf 28 -preset slow -aspect 4:3 hello668_9.mp4
0.0016怎么算出来。因为图片要放大1.2倍,所以(1.2-1)/120 = 0.0016,120是帧,在ffmpeg,25帧为1秒。
图片慢慢缩小的视频特效
ffmpeg -y -i 333444.png -filter_complex "[0:v]scale=3840x2880,zoompan=z='max(1.2-0.0016*on,1)':d=120:x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)',scale=960:720[v]" -map "[v]" -c:v libx264 -profile:v baseline -pix_fmt yuv420p -crf 28 -preset slow -aspect 4:3 hello668_91.mp4
重点:先放大图片再缩放图片,可以减少视频的抖动。
参考文档:https://blog.csdn.net/happydeer/article/details/122385254
https://blog.dreamfever.me/posts/2024-05-19-ffmpeg-keyframe-animation/#%E7%BC%A9%E6%94%BE
修复bug: https://superuser.com/questions/1112617/ffmpeg-smooth-zoompan-with-no-jiggle