Конвертировать WMA в совместимый с экосистемой Apple формат (mp3, m4a, aac)

686
Peter K.

У меня есть несколько сотен файлов wma, которые я хотел бы преобразовать в другой формат, главным образом потому, что вся моя библиотека состоит из mp3, aac или m4a, поэтому все они совместимы с портативными устройствами Apple, и я использую iTunes в качестве интерфейса с этими устройствами. Так что я знаю, что ffmpeg, realplayer, mediamonkey, itunes все могут конвертировать wma в другие форматы, но мой вопрос в том, (i) какой будет наилучший «рабочий процесс» для минимизации потери качества и (ii) какой целевой формат / кодек использовать. И да, я знаю, что потеря без потерь, как правило, не очень хорошая идея, и что у меня, вероятно, будет некоторое ухудшение, но я пытаюсь найти лучший метод. Я мог думать о:

  1. прямое преобразование с использованием ffmpeg (но какие настройки использовать? поможет ли это использовать 192 кбит / с или выше, или это бессмысленно, и было бы лучше на самом деле использовать точно такой же битрейт, что и в исходном файле, то есть 128 кбит / с? частота дискретизации Quid также 44,1 или выше?

  2. преобразовать через промежуточный формат (wav или flac), так что на первом этапе извлекается вся возможная аудиоинформация, а затем на втором этапе снова кодируется.

  3. Я нейтрален в отношении mp3 или m4A (или aac, но я понял, что это просто другое расширение файла для того же кодека?), Поэтому будет ли важно преобразовать wma в любой из них? (Я знаю о конкретном вопросе mp3 против m4a здесь, поэтому мой вопрос действительно связан с наличием wma в качестве исходного файла.

Файлы wma имеют следующие свойства: Windows Media Audio V8 - 128 кбит / с, 44,1 кГц, 2 канала, 16 бит

0

1 ответ на вопрос

2
LordNeckbeard

Используйте хорошую реализацию кодировщика с нормальными параметрами кодирования. Затем поэкспериментируйте, чтобы увидеть, что для вас приемлемо.

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 - это то, что он использует в «библиотеке», поэтому я, вероятно, использовал бы эту комбинацию.

Спасибо за ваш ответ. Может быть, просто окончательная точность, так как вы явно не упомянули об этом. Разве это не принесет никакой (качественной) пользы - сначала конвертировать в wav, а затем кодировать в aac? Peter K. 7 лет назад 0
@PeterK. Я добавил ответы на недостающие вопросы. Их было так много, что я забыл обо всем остальном. LordNeckbeard 7 лет назад 0

Похожие вопросы