With ffmpeg Resize the movie while keeping the aspect ratio
FFmpegでプレビュー
ffmpeg -i input.mp4 -vf "scale=1280:-1" -f matroska - | ffplay -i -
ffmpeg -i input.mp4 -vf "scale=1280:-1" -movflags +faststart -pix_fmt yuv420p -c:v libx264 -crf 20 "output.mp4"
FFmpegでプレビュー
ffmpeg -i input.mp4 -vf "scale=1280:ow/a" -f matroska - | ffplay -i -
ffmpeg -i input.mp4 -vf "scale=1280:ow/a" -movflags +faststart -pix_fmt yuv420p -c:v libx264 -crf 20 "output.mp4"
ffmpegでアスペクト比を保ったまま動画をリサイズするにはリサイズしたい横幅のサイズが1280pxの場合、scale=1280:-1のように記述します。1280:-1で横幅1280px、縦幅をアスペクト比を保ったまま自動計算してくれます。
又はscale=1280:ow/aと記述しても横幅1280px、縦幅をアスペクト比を保ったまま自動計算してくれます。
アスペクト比を保ったまま動画をリサイズするコマンド
scale=1280:-1 scale=1280:ow/a
エラーが出る場合:
height not divisible by 2 (1280x853)
このようなエラーが出る場合は、縦幅が奇数のため(2の倍数でない場合)FFmpegはエラーを吐き出します。
その場合は、scale=1280:-2のように記述します。1280:-2で横幅1280px、縦幅をアスペクト比を保ったまま端数を切りあげて丸め処理をして自動計算(2の倍数へ自動調節)してくれます。
又は、scale=1280:trunc(ow/a/2)*2のように記述します。1280:trunc(ow/a/2)*2で横幅1280px、縦幅をアスペクト比を保ったまま端数を切り捨てて丸め処理をして自動計算(2の倍数へ自動調節)してくれます。
その他では、scale=1280:ceil(ow/a/2)*2のように記述します。1280:ceil(ow/a/2)*2で横幅1280px、縦幅をアスペクト比を保ったまま端数を切りあげて丸め処理をして自動計算(2の倍数へ自動調節)してくれます。
アスペクト比を保ったまま動画をリサイズするコマンド((height not divisible by 2)というエラーが出る場合)
scale=1280:-2 scale=1280:trunc(ow/a/2)*2 scale=1280:ceil(ow/a/2)*2
FFmpeg keeps the aspect ratio and fits height Resize video
FFmpegでアスペクト比を保ったまま縦幅に合わせて動画をリサイズする
FFmpegでプレビュー
ffmpeg -i input.mp4 -vf "scale=-1:720" -f matroska - | ffplay -i -
ffmpeg -i input.mp4 -vf "scale=-1:720" -movflags +faststart -pix_fmt yuv420p -c:v libx264 -crf 20 "output.mp4"
FFmpegでプレビュー
ffmpeg -i input.mp4 -vf "scale=oh*a:720" -f matroska - | ffplay -i -
ffmpeg -i input.mp4 -vf "scale=oh*a:720" -movflags +faststart -pix_fmt yuv420p -c:v libx264 -crf 20 "output.mp4"
リサイズしたい動画を縦幅に合わせたい場合、縦幅のサイズが720pxの場合、scale=-1:720のように記述します。-1:720で縦幅720px、横幅をアスペクト比を保ったまま自動計算してくれます。
又はscale=oh*a:720と記述しても縦幅720px、横幅をアスペクト比を保ったまま自動計算してくれます。
アスペクト比を保ったまま縦幅に合わせて動画をリサイズするコマンド
scale=-1:720 scale=oh*a:720
エラーが出る場合:
width not divisible by 2 (1279x720)
このようなエラーが出る場合は、横幅が奇数のため(2の倍数でない場合)FFmpegはエラーを吐き出します。
その場合は、scale=-2:720のように記述します。-2:720で縦幅720px、横幅をアスペクト比を保ったまま端数を切りあげて丸め処理をして自動計算(2の倍数へ自動調節)してくれます。
又は、scale=trunc(oh*a/2)*2:720のように記述します。trunc(oh*a/2)*2:720で縦幅720px、横幅をアスペクト比を保ったまま端数を切り捨てて丸め処理をして自動計算(2の倍数へ自動調節)してくれます。
その他では、scale=ceil(oh*a/2)*2:720のように記述します。ceil(oh*a/2)*2:720で縦幅720px、横幅をアスペクト比を保ったまま端数を切りあげて丸め処理をして自動計算(2の倍数へ自動調節)してくれます。
アスペクト比を保ったまま動画をリサイズするコマンド((width not divisible by 2)というエラーが出る場合)
scale=-2:720 scale=trunc(oh*a/2)*2:720 scale=ceil(oh*a/2)*2:720
Resize the movie in half while keeping the aspect ratio with FFmpeg
FFmpegでアスペクト比を保ったまま動画を半分にリサイズする
FFmpegでプレビュー
ffmpeg -i input.mp4 -vf "scale=iw/2:-1" -f matroska - | ffplay -i -
ffmpeg -i input.mp4 -vf "scale=iw/2:-1" -movflags +faststart -pix_fmt yuv420p -c:v libx264 -crf 20 "output.mp4"
ffmpegでアスペクト比を保ったまま動画を半分にリサイズするには、scale=iw/2:-1のように記述します。scale=iw/2:-1で横幅を半分に縦幅をアスペクト比を保ったまま自動計算してくれます。
アスペクト比を保ったまま動画を半分にリサイズするコマンド
scale=iw/2:-1
エラーが出る場合:
height not divisible by 2 (640x479)
このようなエラーが出る場合は、縦幅が奇数のため(2の倍数でない場合)FFmpegはエラーを吐き出します。
その場合は、scale=iw/2:-2のように記述します。scale=iw/2:-2で横幅を半分に縦幅をアスペクト比を保ったまま端数を切りあげて丸め処理をして自動計算(2の倍数へ自動調節)してくれます。
アスペクト比を保ったまま動画を半分にリサイズするコマンド((height not divisible by 2)というエラーが出る場合)
scale=iw/2:-2
Resize video with FFmpeg
FFmpegで動画をリサイズする
FFmpegでプレビュー
ffmpeg -i input.mp4 -vf "scale=1280:720" -f matroska - | ffplay -i -
ffmpeg -i input.mp4 -vf "scale=1280:720" -movflags +faststart -pix_fmt yuv420p -c:v libx264 -crf 20 "output.mp4"
ffmpegで動画をリサイズするには、リサイズしたい横幅のサイズが1280px、縦幅のサイズが720pxの場合、scale=1280:720のように記述します。出力サイズ1280px:720px
動画をリサイズするコマンド
scale=1280:720
Resize the video by specifying the scaling algorithm with FFmpeg
FFmpegでスケーリングアルゴリズムを指定して動画をリサイズする
ffmpegでプレビュー
ffmpeg -i input.mp4 -vf "scale=1280:720:flags=lanczos" -f matroska - | ffplay -i -
ffmpeg -i input.mp4 -vf "scale=1280:720:flags=lanczos" -movflags +faststart -pix_fmt yuv420p -c:v libx264 -crf 20 "output.mp4"
ffmpegでスケーリングアルゴリズムを指定して動画をリサイズするには、リサイズしたい横幅のサイズが1280px、縦幅のサイズが720px、使用したいスケーリングアルゴリズムがlanczos(ランチョス)の場合、scale=1280:720:flags=lanczosのように記述します。
-vfを使うとデフォルトのスケーリングアルゴリズムはBicubic(バイキュービック)になります。
-filter_complex / -lavfiを使うとデフォルトのスケーリングフラグは適用されないため、デフォルトのスケーリングアルゴリズムはBilinear(バイリニア)になります。
スケーリングアルゴリズムを指定して動画をリサイズするコマンド
scale=1280:720:flags=lanczos
アスペクト比を保ったままスケーリングアルゴリズムを指定して動画をリサイズする場合は、scale=1280:-1:flags=lanczosのように記述します。
アスペクト比を保ったままスケーリングアルゴリズムを指定して動画をリサイズするコマンド
scale=1280:-1:flags=lanczos
Resize the video by specifying a high-precision scaling algorithm with FFmpeg
FFmpegで高精度なスケーリングアルゴリズムを指定して動画をリサイズする
ffmpegでプレビュー
ffmpeg -i input.mp4 -vf "scale=1280:720:flags=lanczos+accurate_rnd" -f matroska - | ffplay -i -
ffmpeg -i input.mp4 -vf "scale=1280:720:flags=lanczos+accurate_rnd" -movflags +faststart -pix_fmt yuv420p -c:v libx264 -crf 20 "output.mp4"
ffmpegで高精度なスケーリングアルゴリズムを指定して動画をリサイズするには、リサイズしたい横幅のサイズが1280px、縦幅のサイズが720px、使用したいスケーリングアルゴリズムがlanczos(ランチョス)、高精度な丸め(端数)処理オプションaccurate_rndを使用する場合、scale=1280:720:flags=lanczos+accurate_rndのように記述します。
高精度なスケーリングアルゴリズムを指定して動画をリサイズするコマンド
scale=1280:720:flags=lanczos+accurate_rnd
アスペクト比を保ったままで高精度なスケーリングアルゴリズムを指定して動画をリサイズする場合は、scale=1280:-1:flags=lanczos+accurate_rndのように記述します。
アスペクト比を保ったまま高精度なスケーリングアルゴリズムを指定して動画をリサイズするコマンド
scale=1280:-1:flags=lanczos+accurate_rnd
iw : input width 入力した動画及び画像の横幅
ih : input height 入力した動画及び画像の縦幅
ow : output width 出力する動画及び画像の横幅
oh : output heigt 出力する動画及び画像の縦幅
a = iw / ih
ow = (iw * oh) / ih
ow = oh * a
oh = (ow * ih) / iw
oh = ow / a
640:480 scale=vga
640:360 scale=nhd
960:540 scale=qhd
852:480 scale=hd480
1280:720 scale=hd720
1920:1080 scale=hd1080
2048:1080 scale=2k
4096:2160 scale=4k
3840:2160 scale=uhd2160
7680:4320 scale=uhd4320
参考にさせていただきました。Special Thanks
Also see