web-dev-qa-db-ja.com

ffmpegでビットレートを変更しても、MP3ファイルのサイズが同じなのはなぜですか?

基本的に同じ形式を使用して、オーディオストリームを3つの異なる設定に変換しました。それらはまったく同じサイズになってしまいました。どうしてこれなの?

ffmpeg -i "Likoonl-Q1-All.mp4" -c:v copy -c:a libmp3lame -q:a 1 -b:a 192k "Q1-All-192k.mp4"
ffmpeg -i "Likoonl-Q1-All.mp4" -c:v copy -c:a libmp3lame -q:a 1 -b:a 160k "Q1-All-160k.mp4"
ffmpeg -i "Likoonl-Q1-All.mp4" -c:v copy -c:a libmp3lame -q:a 1 -b:a 128k "Q1-All-128k.mp4"
27
Arlen Beiler

LAMEのVBR設定である-q:aを設定しているためです。 -q:aを使用する場合、CBR設定(-b:a)は効果がありません。

FFmpeg wikiから MP3エンコーディングガイド を調べると、-q:aの可能な値とそれに対応する平均ビットレートが見つかります。

完全を期すために、ここにlibmp3lame.cの関連部分があります– qscaleqの長い名前です。

/* rate control */
if (avctx->flags & CODEC_FLAG_QSCALE) { // VBR
    lame_set_VBR(s->gfp, vbr_default);
    lame_set_VBR_quality(s->gfp, avctx->global_quality / (float)FF_QP2LAMBDA);
} else {
    if (avctx->bit_rate) {
        if (s->abr) {                   // ABR
            lame_set_VBR(s->gfp, vbr_abr);
            lame_set_VBR_mean_bitrate_kbps(s->gfp, avctx->bit_rate / 1000);
        } else                          // CBR
            lame_set_brate(s->gfp, avctx->bit_rate / 1000);
    }
}
52
slhck