问题
I'm looking for libraries to:
- read and write meta data (for example ID3v2 tags in mp3 and all)
- convert compressed to to raw audio data and if possible raw audio data to mp3, ogg, aac, ...
- digitally process the audio data (energy, timbre, Mel Frequency Cepstral Coefficients - MFCC, FFT, LPC, Autocorrelation, Wavelet, ...)
I already know and am not content with:
- JMF: original from Sun, reads mp3 and turns it into WAV. But does not read meta data nor provide any advanced digital processing features.
- FMJ: Alternative implementation to JMF with same limitations.
- jAudio: Not stable and although potential, currently not well maintained.
- Marsyas: In digital processing just what I had hoped for, but in C++. Maybe some port / integration already available?
- JID3: API for meta data, but seems to be dead (last release 2005/12/10).
- JLayer: API for reading and playing, also dead (last update 2004/11/28).
- MetaMusic: API of the program is neat but no official standalone open source project. Therefore has no community, future support and all...
- Light Dev: Some interesting features, but not at all complete.
This is what some of my own investigation has turned up. I would greatly appreciate all input, suggestions, critics, ...
回答1:
JLayer should do everything you need. It's not dead, it's just stable. The author finished it up quite a long time ago and the MP3 format has not seen much change since. You'll notice that his MP3SPI codebase is a little more recent. What MP3SPI does, is that translates JLayer's abilities into JavaSound APIs. Thus you can take any JavaSound code, add MP3SPI to the classpath, and expect that MP3 files will start working. It's pretty nifty. :)
回答2:
You could try Xuggler. Here's how it does on your tests:
* read and write meta data (for example ID3v2 tags in mp3 and all):
if the underlying container type has meta-data support in FFmpeg, Xuggler supports it.
* convert compressed to to raw audio data and if possible raw audio data to mp3, ogg, aac, ...
Xuggler supports mp3, ogg (vorbis or speex), speex, vorbis, flac, aac, etc.
* digitally process the audio data (energy, timbre, Mel Frequency Cepstral Coefficients - MFCC, FFT, LPC, Autocorrelation, Wavelet, ...)
Xuggler does not have DSP modules so you'll need to find another library for that. But Xuggler will give you the raw data.
回答3:
You should try to looking into gstreamer-java, I've had success with playing media via it and it should be possible to convert audio files with it. There is also JFFMpeg that integrates into JMF, I haven't poked around that much with it so I don't know the total extent of its capabilities and state, but its something to look at more closely.
回答4:
Btw, I've just moved my MetaMusic project to http://github.com/cpesch/MetaMusic/ since the infrastructure there is much better.
来源:https://stackoverflow.com/questions/86083/any-good-recommendations-for-mp3-sound-libraries-for-java