我已经读过,为了避免在使用ffmpeg放大图像时发生摇晃,一个好的解决方案是在最后放大并缩小尺寸:
ffmpeg -nostdin -r 25 -i input.jpg -filter_complex "scale=-2:10*ih,zoompan=z='min(zoom+0.0010,1.5)':d=125:x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)',scale=-2:720" -c:v libx264 -t 5 -pix_fmt yuv420p output.mp4
但我无法找到缩小的等效命令?
答案 0 :(得分:0)
我创建了类似的命令,没有抖动,你可以尝试一下
ffmpeg -loop 1 -i input.jpg -vf "scale=-2:2*ih,zoompan=z='min(zoom+0.0015,1.5)':d=125:x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)',scale=-2:380" -c:v libx264 -t 5 -s "800x450" output.mp4
答案 1 :(得分:0)
也许不是最优雅的解决方案,但您可以通过首先创建平滑的缩放-in,然后应用 reverse 过滤器向后播放来创建平滑的缩小效果。以您的示例为基础:
ffmpeg -nostdin -r 25 -i input.jpg \
-filter_complex \
"scale=-2:10*ih, \
zoompan=z='min(zoom+0.0010,1.5)':d=125:x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)', \
scale=-2:720, \
reverse" \
-c:v libx264 -t 5 -pix_fmt yuv420p output.mp4