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

时间:2017-05-07 21:34:28

标签: 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.mp4

但我无法找到缩小的等效命令?

2 个答案:

答案 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