Какие-нибудь хорошие рекомендации для библиотек MP3 / Sound для java?

Я ищу библиотеки для:

  • читать и записывать метаданные (например теги ID3v2 в mp3 и все)
  • преобразовать сжатые в необработанные аудиоданные и, если возможно, необработанные аудиоданные в mp3, ogg, aac, ...
  • цифровая обработка аудиоданных (энергия, тембр, кепстральные коэффициенты частоты Mel - MFCC, FFT, LPC, автокорреляция, вейвлет, ...)

Я уже знаю и не доволен:

  • JMF: оригинал от Sun, читает mp3 и превращает его в WAV. Но не читает метаданные и не предоставляет никаких дополнительных функций цифровой обработки.
  • FMJ: Альтернативная реализация JMF с теми же ограничениями.
  • jAudio: Не стабильно и хотя потенциально, но в настоящее время не поддерживается.
  • Марсий: В цифровой обработке как раз то, на что я надеялся, но на C++. Может быть, уже есть какой-то порт / интеграция?
  • JID3: API для метаданных, но кажется мертвым (последний выпуск 2005/12/10).
  • JLayer: API для чтения и воспроизведения, тоже мертв (последнее обновление 2004/11/28).
  • MetaMusic: API программы аккуратный, но не официальный автономный проект с открытым исходным кодом. Поэтому нет сообщества, будущей поддержки и всего ...
  • Light Dev: Некоторые интересные функции, но не все.

Это то, что показало мое собственное расследование. Я был бы очень признателен за все отзывы, предложения, критику, ...

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
43
0
36 166
4

Ответы 4

JLayer должен делать все, что вам нужно. Он не мертвый, а просто стабильный. Автор закончил его довольно давно, и с тех пор формат MP3 не претерпел больших изменений. Вы заметите, что его кодовая база MP3SPI немного новее. Что делает MP3SPI, так это то, что он переводит возможности JLayer в API JavaSound. Таким образом, вы можете взять любой код JavaSound, добавить MP3SPI в путь к классам и ожидать, что файлы MP3 начнут работать. Это довольно здорово. :)

Спасибо за ответ, и вы правы, он отлично подходит для mp3, но ... насколько я видел (поправьте меня, если я ошибаюсь), он не поддерживает какие-либо будущие аудиоформаты, такие как ogg, aac,. .. - и "закончено" означает, что этого никогда не будет. Также отсутствует цифровая обработка.

roesslerj 17.09.2008 22:40

OGG - это другая библиотека. Вы хотите использовать JOrbis и / или VorbisSPI. VorbisSPI принадлежит тому же автору, что и JLayer. Если вы хотите выполнять цифровую обработку, используйте фреймворки SPI. Они позволяют использовать API JavaSound для цифровой обработки, сколько душе угодно. Вы понимаете, как работают SPI?

64BitBob 18.09.2008 07:20

К сожалению, закончилось место. AAC - это новейший формат, но у вас возникнут проблемы с поиском бесплатных кодеков. Он строго охраняется держателями патентов, чтобы предотвратить повторение проблем с MP3. Для AAC я рекомендую Quicktime4Java или IBM MPEG4 API.

64BitBob 18.09.2008 07:22

Я использую TinySound (основанный на JLayer и Java Sound API), и в моем пути к классам были tinysound, tritonus и jlayer. MP3 не работали, поэтому я нашел этот ответ и попытался добавить mp3spi в свой путь к классам - это тоже не сработало. Какие-либо предложения?

joshreesjones 14.05.2014 21:38

Вы должны попытаться заглянуть в gstreamer-java, мне удалось воспроизвести через него мультимедиа, и с его помощью можно будет конвертировать аудиофайлы. Существует также JFFMpeg, который интегрируется в JMF, я не особо разбирался с ним, поэтому я не знаю общего объема его возможностей и состояния, но это то, на что стоит посмотреть более внимательно.

Кстати, я только что переместил свой проект MetaMusic на http://github.com/cpesch/MetaMusic/, так как там инфраструктура намного лучше.

Вы можете попробовать Xuggler. Вот как это происходит в ваших тестах:

* read and write meta data (for example ID3v2 tags in mp3 and all):

если базовый тип контейнера имеет поддержку метаданных в FFmpeg, Xuggler поддерживает его.

* convert compressed to to raw audio data and if possible raw audio data to mp3, ogg, aac, ...

Xuggler поддерживает mp3, ogg (vorbis или speex), speex, vorbis, flac, aac и т. д.

* digitally process the audio data (energy, timbre, Mel Frequency Cepstral Coefficients - MFCC, FFT, LPC, Autocorrelation, Wavelet, ...)

В Xuggler нет модулей DSP, поэтому вам нужно найти для этого другую библиотеку. Но Xuggler предоставит вам необработанные данные.

Просто, чтобы люди знали, Xuggler, похоже, основан исключительно на Intel и, следовательно, не может использоваться на устройствах iOS или Android. (Есть собственный код, который необходимо создать, это не только Java).

ajacian81 03.03.2013 04:59

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