views:

1490

answers:

3

I need an OpenSource API in Java, which can encode *.wav and *.au formats to MP3, and vice-versa. Have evaluated Java Sound API, and LameOnJ, but they dont meet the requirements and aint stable, respectively. Please suggest one that is free, and platform independent.

A: 

Use the Process API to invoke SoX

SoX comes with source or as precompiled binaries for Windows and Mac.

Aaron Digulla
+2  A: 

There may not be an adequate answer for you, yet, as the MP3 format requires the authors of decoder/encoders to obtain a license from the Fraunhofer Institute.

I think the the LAME library is distributed from a country that does not respect these IP issues, but it took a considerably amount of legal hackery to get this far.

For any other libraries - for example one written in Java, the authors need to get a similar license. Where cost is an issue - e.g. in an Open Source project, then this is enough of a disincentive to starting.

For more details see this wikipedia article.

If LAME4J is not stable enough for you, then I'm afraid your options are probably:

  • wait for Sun to license the format for the core JRE. This, I believe they have done recently, but I don't know of any release dates (perhaps to do with JavaFX)
  • implement your own in Java, and pay the license. I wouldn't fancy this one, either.
  • write your own Java wrapper to LAME, via JNA, or SWIG
  • contribute to Lame4J.
  • pick another format. OGG and FLAC are quite good, and relatively well supported.
jamesh
Thanks Jamesh!I guess I have found something similar to what you have suggested.
Mohit Nanda
A: 

Hi Mohit, Could you please tell me what did you use for converting .WAV AND .AU into .MP3. I need it for my application.

Thanks in advance

Bhargava

bhargava
You should open a new question for this, it will receive a lot more attention.
johnc