Используйте хорошую реализацию кодировщика с нормальными параметрами кодирования. Затем поэкспериментируйте, чтобы увидеть, что для вас приемлемо.
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. Поэкспериментируйте со значением битрейта (-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 - это то, что он использует в "библиотеке", поэтому я, вероятно, использовал бы эту комбинацию.