FFmpegを使用してビデオを小さくしてサイズを小さくすることはできますか?
元のビデオサイズは1024 x 576ですが、今度は要件を満たすためにビデオのサイズを720 x 480に変更します。
これどうやってするの?
最も基本的な例は次のとおりです。
ffmpeg -i input.avi -s 720x480 -c:a copy output.mkv
scale
フィルター を使用すると、柔軟性が向上します。
ffmpeg -i input.avi -filter:v scale=720:-1 -c:a copy output.mkv
-1
は、アスペクト比を維持するために、指定された幅に対して正しい高さを自動的に選択するようにffmpegに指示します。 -1
は、特定の高さを指定する場合、幅にも使用できます。
libx264
を使用する場合のスケールのマイナス面の1つは、このエンコーダーが偶数値を必要とし、スケールがエラーを引き起こす奇数値を自動的に選択する可能性があることです:width or height not divisible by 2
。特定の高さ(この例では720)に対して偶数の値を選択するようにスケールを指示できます。
scale="trunc(oh*a/2)*2:720"
...または指定された幅(この例では1280):
scale="1280:trunc(ow/a/2)*2"
Ffmpegビルドは、-c
または-filter
オプションを認識しないと文句を言う可能性があることに注意してください。 scale
もサポートしていない場合があります。その場合、新しいffmpegを使用する必要があります。これは、静的ビルドとして ダウンロード可能 、または 自分でコンパイル です。
私は以下のコマンドを使ってビデオや画像のリスケーリングをしています。幅と高さを固定した場合 -
ffmpeg -i input.avi -vf scale="720:480" output.avi
縦横比を維持したい場合は、高さを-1にするだけで、幅に基づいて自動的にサイズ変更されます -
ffmpeg -i input.avi -vf scale="720:-1" output.avi
あなたが入力サイズに基づいて拡大縮小したいなら、例えば。たとえば、幅/高さを半分に縮小するとしましょう。
ffmpeg -i input.avi -vf scale="iw/1:ih/2" output.avi
注意 :
iw : input width
ih : input height
静的ビルドは - https://johnvansickle.com/ffmpeg/ からダウンロードできます。