Потому что вы устанавливаете, -q:a
который является настройкой VBR LAME. При использовании -q:a
настройка CBR ( -b:a
) не будет действовать.
Если вы загляните в руководство по кодированию MP3 из вики FFmpeg, вы найдете возможные значения -q:a
с их соответствующим средним битрейтом.
Для полноты, вот соответствующая часть libmp3lame.c
- qscale
это длинное имя q
:
/* 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); } }