📼

【ffmpeg】H.264の最大ビットレートを指定する方法

2024/01/06に公開

ffmpegで最大(最小)ビットレートを指定する方法です。特定のデバイスなどでビットレートの制限が厳しいときに活躍します👍
libx264で確認済み。ハードウェアエンコーダーでは指定できません。

maxrateオプションとminrateオプション

最大ビットレートはmaxrateオプション、最小ビットレートはminrateオプションでそれぞれ指定できます。

最大ビットレートが2.5Mbpsの例

$ ffmpeg -i video.mp4 -c:v libx264 -maxrate 2.5M output.mp4 

CBR

実はこのオプションCBR(Constant Bit Rate、固定ビットレート)の動画を出力するときにも使えます。
H.264ではCBRの仕様は定められていないため、最小最大とビットレートのすべての値を合わせることで実現しています。真のCBRではなく簡易的なものです。
詳しいことは公式Wikiに書いてあります。

1.5MbpsのCBR

$ ffmpeg -i video.mp4 -c:v libx264 -x264-params "nal-hrd=cbr" -b:v 1.5M -minrate 1.5M -maxrate 1.5M -bufsize 2M output.mp4

参考サイト

https://trac.ffmpeg.org/wiki/Encode/H.264

Discussion