ffmpeg如何在不抖动的情况下缩小

ffmpeg如何在不抖动的情况下缩小,ffmpeg,Ffmpeg,我已经读到,为了避免在使用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.

我已经读到,为了避免在使用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

但是我找不到用于缩小的等效命令是什么?

我创建了类似的命令,没有抖动,您可以尝试一下

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

也许不是最优雅的解决方案,但您可以通过首先创建平滑放大,然后应用过滤器向后播放来创建平滑缩小效果。以您的示例为基础:

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