AAC, преобразованный из MP3 (FFmpeg), приводит к большему размеру

0

Я нахожусь на Windows x64, преобразовывающем файл MP3 в AAC, используя FFmpeg.

Я попробовал эти команды:

ffmpeg -i file.mp3 -acodec aac -strict -2 file.aac

ffmpeg -i file.mp3 -c:a libvo_aacenc file.aac

Обе команды приводят к увеличению размера файла. Выходной файл примерно на 50% больше исходного файла file.mp3; вторая команда увеличивает размер больше, чем первая.

Это так хорошо, как есть, или есть варианты конвертации в меньший размер без потери качества?

БЕЛЫЙ ЦВЕТ
источник

Ответы:

3

file.accна 50% больше исходного файла .mp3. Это нормально?

Настройки по умолчанию будут использоваться, если вы не выберете качество или битрейт. Для aacи libvo_aacencкодеров это приведет к FFmpeg автоматически с помощью -b:a 128k. Поскольку эти кодировщики принимают только битрейт вместо уровня качества, вы должны отрегулировать значение битрейта выше или ниже, чтобы получить желаемое качество вывода или размер файла. В качестве альтернативы, в зависимости от вашей сборки ffmpeg, вы можете использовать другой кодер AAC, такой как libfdk_aacили libfaac, который позволяет вам -q:aвыбрать конкретное качество с помощью этой опции.

Или есть варианты конвертации в меньший размер без потери качества?

Технически нет. Это потому, что вы переходите от формата с потерями к другому формату с потерями. Общая рекомендация - избегать перекодирования. В зависимости от того, что вы хотите, и если вам нужно перекодировать, то обычно целью является использование достаточно хорошего качества, чтобы вы, надеюсь, не заметили изменений. Если размер файла важен, вы должны найти хороший баланс между качеством и размером файла. Качество субъективно, поэтому я не могу точно сказать вам, что будет работать для вас, но вы можете найти некоторую полезную информацию и примеры для каждого кодера AAC, поддерживаемого ffmpeg, в Руководстве по кодированию FFmpeg и AAC .

llogan
источник
Спасибо тебе за ответ. Если мой mp3 говорит, что имеет битрейт 81k, и я делаю преобразование в aac с таким же битрейтом 81, я должен полностью поддерживать качество?
WHITECOLOR
@WHITECOLOR Нет. Кроме того, что формат AAC является форматом с потерями, не все кодеры одинаковы (то же самое касается форматов) с точки зрения требований к битрейту для достижения определенного уровня качества. Почему вы хотите AAC в любом случае?
Llogan
Ну, закодированные файлы будут распространяться (через Интернет) для коммерческого проекта mp3, но не бесплатно, лицензирование aac менее строго. Если ACC с потерями, почему это «(AAC) является преемником формата MP3»?
WHITECOLOR
1
@WHITECOLOR AAC достигает лучшего субъективного качества при тех же скоростях передачи битов по сравнению с MP3, однако это будет заметно только тогда, когда вы a) конвертируете из того же несжатого источника и b) выберите достаточно низкую скорость передачи битов. Если вы выполняете преобразование MP3 → AAC и сохраняете тот же битрейт, это может сработать для вас, но вам придется прослушивать файлы. Здесь нет практического правила относительно того, насколько большой будет деградация.
Slhck
1
@WHITECOLOR Кроме того, libvo_aacencсчитается кодировщик AAC довольно плохого качества. Если вы можете, выберите libfdk_aacили libfaac, что, к сожалению (по причинам лицензирования), не поставляется с предварительно собранными двоичными файлами FFmpeg, поэтому вам придется скомпилировать FFmpeg самостоятельно. Если вы на японском: d.hatena.ne.jp/kamedo2/20120729/1343545890
slhck