Используйте хорошую реализацию кодировщика с нормальными параметрами кодирования. Затем поэкспериментируйте, чтобы увидеть, что для вас приемлемо.
AAC с использованием libfdk_aac
Это лучший кодировщик AAC, поддерживаемый ffmpeg
. Однако он считается несовместимым с GPL, поэтому вам придется его скомпилировать (хотя вы можете найти сборку [которая нарушает GPL]). Пример VBR:
ffmpeg -i input.wma -c:a libfdk_aac -vbr 5 output.m4a
AAC с использованием собственного кодера FFmpeg AAC
Встроенный кодировщик FACmpeg AAC неплох, но вам нужно дать ему достаточно битов, чтобы он звучал так же хорошо, как libfdk_aac. Поэкспериментируйте со значением bitrate ( -b:a
), чтобы получить что-то приемлемое для вас. Пример CBR (VBR еще не так хорош):
ffmpeg -i input.wma -c:a aac -b:a 192k output.m4a
Если вы ffmpeg
жалуетесь на то, что этот кодировщик является «экспериментальным», он устарел, и вам следует обновить его.
MP3 с использованием libmp3lame
Для MP3 ваш лучший выбор - libmp3lame. Пример VBR:
ffmpeg -i input.wma -c:a libmp3lame -q:a 2 output.mp3
Также см
Вопросы и ответы
Прямое преобразование, используя
ffmpeg
?
Да. ffmpeg
может декодировать практически все, что угодно, может сохранять метаданные, поддерживает множество кодировщиков и форматов, вы можете контролировать, что он делает, и вы можете поместить его в цикл для кодирования всех файлов в каталоге (эта часть требует простого скриптинга).
Но какие настройки использовать? Это поможет использовать 192 кбит / с или выше, или это бессмысленно?
Это зависит от кодера и от того, хотите ли вы VBR или CBR. См. «Также см.» Ссылки для получения дополнительной информации, деталей и примеров.
Было бы лучше на самом деле использовать точно такой же битрейт, как исходный файл, то есть 128 кбит / с?
Я часто вижу пользователей, пытающихся это сделать, но повторное использование одного и того же битрейта не является оптимальным. Откуда вы знаете, что тот, кто кодировал оригиналы, знал, что они делают? Откуда ты знаешь, что сам кодировщик был паршивым или нет? Различные кодеры различаются по эффективности. Важно учитывать разницу в каждом формате. Кроме того, когда дело доходит до перекодирования ввода с потерями, вы должны заметить, что файл отличается от оригинала: данные были искажены и содержат артефакты, которых нет в оригинале, поэтому даже если используется тот же кодер и тот же битрейт пришлось бы перекодировать эти артефакты, потому что они являются частью файла, что приводит к ухудшению вывода.
Частота дискретизации Quid, также 44,1 или выше?
Не беспокойтесь о частоте дискретизации. ffmpeg
будет использовать ту же скорость, что и вход.
Преобразовать через промежуточный формат (wav или flac), чтобы на первом этапе извлекалась вся возможная аудиоинформация, а затем на втором этапе снова кодировалась?
Это ненужный шаг. ffmpeg
будет полностью декодировать звук в сырой PCM аудио в любом случае, так что нет никакой необходимости так заранее сделать.
Я нейтрален в отношении mp3 или m4A (или aac, но я понял, что это просто другое расширение файла для того же кодека?), Поэтому будет ли важно преобразовать wma в любой из них? (Мне известен конкретный вопрос mp3 против m4a, поэтому мой вопрос действительно связан с наличием wma в качестве исходного файла.)
Неважно, что источником является WMA. Используйте любой формат вывода, который лучше поддерживается вашим предпочтительным устройством или программным обеспечением. Я полагаю, что продукты Apple поддерживают как MP3, так и AAC, и я предполагаю, что звук AAC в контейнере M4A - это то, что он использует в «библиотеке», поэтому я, вероятно, использовал бы эту комбинацию.