すべて。
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つの入力ビデオがあります。
出力ビデオを100 * 200の解像度で作成する必要があります。
-s 100x200でffmpegを実行すると、2番目のビデオのアスペクト比が悪くなります。
出力ビデオを幅で制限し、高さで自動アスペクト比を設定するにはどうすればよいですか?
たとえば、出力ビデオに幅100pxのみを指定し、ffmpegは正しいアスペクト比で高さを自動的に計算する必要があります。
最初のビデオの場合:
200/100 = 2
400/2 = 200
すなわち100x200
2番目のビデオの場合:
400/100 = 4
700/4 = 75
すなわち100x75
出来ますか?
ffmpeg -i <input> -vf scale=720x406,setdar=16:9 <output>
詳細については、
ビデオでは機能しません。そのページは静止画像のみを扱います。
完全に理解されていない理由により、FFMPEGは、サンプル/ピクセルアスペクト比を使用して、ビデオを元のアスペクト比に戻します。たとえば、ビデオの幅を2倍に広げると、アスペクト比が1:2になるか、類似したものになります(2:1?)
したがって、本当に「ストレッチアームストロング」スタイルでビデオを引き伸ばしたい場合は、SAR(サンプルアスペクト比)を強制する必要があります。
ffmpeg -i <something> -vf scale=iw*55:ih,setsar=1:1 ...
これは、FFMPEGマニュアルではあまり詳しく説明されていません。 ここにすべてを一箇所にまとめたvideo.stackexchangeの答えがあります。
以下の両方のオプション:スケールあり:
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
ビデオを比例的にサイズ変更するにはsetdar
スラッシュを使用する必要があります/
コロンではなくセパレータとして:
。
ffmpeg -i <input> -vf "scale=100:-1,setdar=16/9" <output>
コマンドはビデオのサイズを変更します200x400
から100x200
および400x700
から100x175
アスペクト比16:9