Tại sao các tệp MP3 của tôi có cùng kích thước, ngay cả khi tôi thay đổi bitrate bằng ffmpeg?


27

Tôi đã chuyển đổi một luồng âm thanh thành 3 cài đặt khác nhau bằng cách sử dụng cùng một định dạng. Họ cuối cùng có cùng kích thước. Tại sao lại thế này?

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"

Câu trả lời:


53

Bởi vì bạn đang cài đặt -q:ađó là cài đặt VBR của LAME. Khi bạn sử dụng -q:a, cài đặt CBR ( -b:a) sẽ không có hiệu lực.

Nếu bạn xem hướng dẫn mã hóa MP3 từ wiki FFmpeg, bạn sẽ tìm thấy các giá trị có thể có -q:avới tốc độ bit trung bình tương ứng của chúng.

Để hoàn thiện, đây là phần có liên quan của libmp3lame.c- qscalelà tên dài của 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);
    }
}

28
4 phút để tìm nguồn. +1
Jonas Schäfer

Tôi tự hỏi nếu đó không phải là trường hợp! Cảm ơn rất nhiều.
Arlen Beiler
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.