ffmpeg: 揺れのないスムーズなズームパン

ffmpeg: 揺れのないスムーズなズームパン

私は、画像の中央に5秒間ズームパンする基本的な動画を作成しようとしています(ffmpeg.org ウェブサイト)。以下のコマンドは機能しますが、コーヒーを 5 杯飲んだ後の手よりも震えます。

ffmpeg -framerate 25 -loop 1 -i island.jpg -filter_complex "[0:v]scale=-2:480,zoompan=z='min(zoom+0.0015,1.5)':x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)':d=125,trim=duration=5[v]" -map "[v]" -y out.mp4

入力jpgmp4を出力

私はffmpeg バグ #4298。 提案されている回避策は、scaleの前にフィルターを使用することですzoompan。 しかし、私の例で示されているように、これでもまだ効果がないようです。

任意の x 値または y 値が揺れ/ぎくしゃく/不安定な効果を引き起こすようです。

効果的な回避策を提案してくれる人はいますか? よろしくお願いします!

バージョン情報:

ffmpeg version 3.1.2-static http://johnvansickle.com/ffmpeg/  Copyright (c) 2000-2016 the FFmpeg developers
  built with gcc 5.4.0 (Debian 5.4.0-6) 20160609

答え1

避ける事前にスケーリングします。x および y 式に trunc 関数を適用します。または、事前にアップスケールします。後者をお勧めします。これでほとんどのジッターが解消されます。

ffmpeg -framerate 25 -loop 1 -i island.jpg -filter_complex "[0:v]scale=8000x4000,zoompan=z='min(zoom+0.0015,1.5)':x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)':d=125,trim=duration=5[v]" -map "[v]" -y out.mp4

基本的に、フィルターは とx式の値を丸めますyが、切り上げまたは切り捨てが可能です。これにより、パンの方向の変化による不均一な動きが生じます。事前に解像度を上げると、丸めを小さくすることができます。

関連情報