Как я могу конвертировать в AAC?
Это самая основная команда FFmpeg для преобразования входных данных в аудио AAC с использованием AAC FFmpeg самого высокого качества. libfdk_aac
кодировщик Fraunhofer AAC, и он доступен, когда вы скомпилировали FFmpeg с его поддержкой.
ffmpeg -i input.mp3 -c:a libfdk_aac output.m4a
Чтобы изменить качество, у вас есть два варианта:
Для переменной битрейта (VBR) используйте -vbr
опцию. Например, -vbr 4
это хороший выбор (примерно 128 кбит / с для стереозвука). Выше значит лучше. Значения варьируются от 1 до 5.
ffmpeg -i input.mp3 -c:a libfdk_aac -vbr 4 output.m4a
Для фиксированного битрейта (CBR) используйте -b:a
опцию, например -b:a 128k
. 128 кбит / с должно быть достаточно для большинства ситуаций. Вы также можете выбрать что-то более низкое.
ffmpeg -i input.mp3 -c:a libfdk_aac -b:a 128k output.m4a
Вы также можете использовать HE-AAC (v1 / v2) вместо стандартного профиля AAC-LC (низкая сложность), который лучше всего подходит для низких битрейтов:
ffmpeg -i input.mp3 -c:a libfdk_aac -profile:a aac_he_v2 -b:a 32k output.m4a
Что если у меня нет libfdk_aac
?
Некоторые версии FFmpeg не имеют libfdk_aac
(по причинам лицензирования). Если это так, вы можете использовать встроенный кодировщик AAC:
ffmpeg -i input.mp3 -c:a aac -b:a 192k output.m4a
Этот кодер не поддерживает VBR должным образом, поэтому, если вам это нужно или HE-AAC, читайте дальше.
Вы можете скомпилировать ffmpeg самостоятельно и добавить libfdk_aac
поддержку. На FFmpeg Wiki есть руководства . Компиляция проста в Linux, умеренно проста в OS X и довольно сложна в Windows. Когда вы будете следовать руководствам по компиляции и устанавливать соответствующие библиотеки ранее, FFmpeg теперь дает вам возможность использовать libfdk_aac
.
Были некоторые проблемы с вашим оригинальным подходом:
alac
это не AAC. ALAC - это кодек Apple Lossless Audio , а AAC - расширенное кодирование звука .
Вот почему ваш вывод больше, чем вход, потому что, в отличие от MP3, ALAC все еще сжимается, но он должен быть без потерь - поэтому он должен хранить больше данных.
.aac
не является выходным контейнером для аудио ALAC. Если вы используете AAC, это должно сработать. Я бы использовал MP4 или M4A, хотя.
-c:a
, есть ли у этого синоним? Я думаю, это могло бы означать,-acodec:a
но в конце концов я просто отбросил его иffmpeg
смог вывести кодек на основе желаемого имени выходного файла. (Нужно-strict experimental
хотя; и-map_metadata 0:0