web-dev-qa-db-ja.com

FFmpeg-アスペクト比を使用してビデオの解像度を変更する

すべて。

FFmpegでアスペクト比のあるビデオの解像度を変更する方法は?

オプションがあります http://manpages.ubuntu.com/manpages/oneiric/man1/ffmpeg.1.html

       -s size
       Set frame size. The format is wxh (ffserver default = 160x128,
       ffmpeg default = same as source).  The following abbreviations are
       recognized:

そして

       -aspect aspect
       Set the video display aspect ratio specified by aspect.

       aspect can be a floating point number string, or a string of the
       form num:den, where num and den are the numerator and denominator
       of the aspect ratio. For example "4:3", "16:9", "1.3333", and
       "1.7777" are valid argument values.

たとえば、2つの入力ビデオがあります。

  • 200 * 400の解像度で
  • 400 * 700の解像度で

出力ビデオを100 * 200の解像度で作成する必要があります。

-s 100x200でffmpegを実行すると、2番目のビデオのアスペクト比が悪くなります。

出力ビデオを幅で制限し、高さで自動アスペクト比を設定するにはどうすればよいですか?

たとえば、出力ビデオに幅100pxのみを指定し、ffmpegは正しいアスペクト比で高さを自動的に計算する必要があります。

最初のビデオの場合:

200/100 = 2

400/2 = 200

すなわち100x200

2番目のビデオの場合:

400/100 = 4

700/4 = 75

すなわち100x75

出来ますか?

11
Arthur

ffmpeg -i <input> -vf scale=720x406,setdar=16:9 <output>

詳細については、

Changing-resolution-video-using-ffmpeg

15
Devesh Chauhan

ビデオでは機能しません。そのページは静止画像のみを扱います。

完全に理解されていない理由により、FFMPEGは、サンプル/ピクセルアスペクト比を使用して、ビデオを元のアスペクト比に戻します。たとえば、ビデオの幅を2倍に広げると、アスペクト比が1:2になるか、類似したものになります(2:1?)

したがって、本当に「ストレッチアームストロング」スタイルでビデオを引き伸ばしたい場合は、SAR(サンプルアスペクト比)を強制する必要があります。

ffmpeg -i <something> -vf scale=iw*55:ih,setsar=1:1 ...

これは、FFMPEGマニュアルではあまり詳しく説明されていません。 ここにすべてを一箇所にまとめたvideo.stackexchangeの答えがあります。

8

以下の両方のオプション:スケールあり:

ffmpeg -i source.mp4 -r 15 -s 320x240 -strict -2 destination.mp4

アスペクト比あり:

ffmpeg -i source.mp4 -r 15 -aspect 1:1 -strict -2 destination.mp4
1
Pankaj Chauhan

マジックナンバーを使用-1ビデオを比例的にサイズ変更するにはsetdarスラッシュを使用する必要があります/コロンではなくセパレータとして:

ffmpeg -i <input> -vf "scale=100:-1,setdar=16/9" <output>

コマンドはビデオのサイズを変更します200x400から100x200および400x700から100x175アスペクト比16:9

1
cieunteung