解像度が480x36の動画がありますが、この動画を1280:72にアップスケールし、元の動画のアスペクト比を失うことはありません(左側のレターボックスと右側)
だから私は人々がffmpegでこのタスクを達成できることを知っていますが、今のところ私はそうすることができません
だから誰かがffmpegを共有して私と称賛することはできますか?
手伝ってくれてありがとうございます
ffmpeg -i input.mp4 -vf "scale=(iw*sar)*min(1280/(iw*sar)\,720/ih):ih*min(1280/(iw*sar)\,720/ih), pad=1280:720:(1280-iw*min(1280/iw\,720/ih))/2:(720-ih*min(1280/iw\,720/ih))/2" output.mp4
このコマンドを分解してみましょう。
ffmpeg -i input.mp4
これはffmpegの標準的な入力方法です。 「input.mp4」を入力ファイルの名前に置き換えます。
-vf
コマンドでいくつかのビデオフィルターが続くことを指定します。指定されたビデオフィルターは、各フレームに順番に適用されます。
scale=(iw*sar)*min(1280/(iw*sar)\,720/ih):ih*min(1280/(iw*sar)\,720/ih)
最初のフィルターはスケールフィルターです。スケールフィルターは、値の置換と計算を実行できるため、強力です。この場合、数学は新しいスケーリングされた幅と高さを計算します。画像を歪めることなく、入力画像を目的の出力形式の幅や高さに合わせて拡大縮小します。 「iw」、「sar」、「ih」の実際の値が自動的に置き換えられるため、スケールパラメータを変更する必要はありません。あなたの場合、入力ビデオは4x3であるため、計算は高さ720、幅1280未満にスケーリングすることがわかっています。詳細: https://ffmpeg.org/ ffmpeg-filters.html#scale-1
pad=1280:720:(1280-iw*min(1280/iw\,720/ih))/2:(720-ih*min(1280/iw\,720/ih))/2
2番目のフィルターはパッドフィルターです。スケール機能と同じ数学/置換機能があります。だからそれはあなたのために正確な数を把握します。それを機能させるために何も変更する必要はありません。パラメータは、出力を720x1280にし、入力画像をフレームの中央に配置するようにパッドフィルタに指示します。パッドフィルターは、入力画像がカバーしていない場所では、出力画像を黒で塗りつぶします。入力の場合、スケールフィルターが高さを720にスケーリングしたことはわかっていますが、幅は1280に満たないため、違いを補うために側面に黒いバーが追加されます。詳細: https://ffmpeg.org/ffmpeg-filters.html#pad
output.mp4
これは、ffmpegが結果を配置する出力ファイルを指定します。正確なニーズを満たすために、フォーマット、ビットレートなどのすべての種類のパラメータを追加する必要がある場合があります。