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

У меня есть несколько сотен файлов 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 бит

1 ответ

Решение

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

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

Другие вопросы по тегам