2008-11-25 15 views
10

Necesito una API OpenSource en Java, que puede codificar formatos * .wav y * .au en MP3 y viceversa.Codificación MP3 en Java

He evaluado Java Sound API y LameOnJ, pero no cumplen mis requisitos y no son estables, respectivamente. Por favor, sugiera uno que sea gratuito e independiente de la plataforma.

Respuesta

6

Puede que no haya una respuesta adecuada para usted, ya que el formato MP3 requiere que los autores de decodificadores/codificadores obtengan una licencia del Instituto Fraunhofer.

Creo que la biblioteca LAME se distribuye desde un país que no respeta estos problemas de IP, pero se tardó una cantidad considerable de hackers legales para llegar hasta aquí.

Para otras bibliotecas, por ejemplo, una escrita en Java, los autores necesitan obtener una licencia similar. Donde el costo es un problema, p. en un proyecto de Código Abierto, entonces esto es suficiente como un desincentivo para comenzar.

Para obtener más información, consulte este wikipedia article.

Si LAME4J no es lo suficientemente estable como para usted, entonces me temo que sus opciones son probablemente:

  • espera de Sun para licenciar el formato para el JRE núcleo. Esto, creo que lo han hecho recientemente, pero no sé de ninguna fecha de lanzamiento (tal vez para hacer con JavaFX)
  • implemente el suyo en Java y pague la licencia. Yo tampoco me gustaría este.
  • escribe tu propio envoltorio Java para LAME, a través de JNA, o SWIG
  • contribuye a Lame4J.
  • elige otro formato. OGG y FLAC son bastante buenos y relativamente bien soportados.
+0

Gracias Jamesh! Supongo que he encontrado algo similar a lo que ha sugerido. –

+3

@Mohit: ¿Te importaría compartir tu elección? Podría ser útil para otras personas interesadas en el tema. – Rekin

+0

@Rekin: Veo que debería haber hecho eso ... ahora desde hace 3 años y ya no tengo ese código. Me olvidé completamente de lo que usé. :( –

1

Uso del Process API para invocar SoX

SoX viene con origen o como binarios precompilados para Windows y Mac.

2

El LAME4J utiliza la licencia libre pero de tiempo limitado y la licencia ilimitada le costará algo de dinero.

He encontrado el Lamejb library en SourceForge, que solo requiere los binarios cojos y funciona bien sin ninguna licencia adicional.

+0

Cuando dices "limitado en el tiempo", ¿cuánto tiempo quieres decir que es? – Pacerier

+0

Al usar LAMEOnJ, debe renovar manualmente su clave de licencia gratuita todos los meses. Por lo tanto, no puede crear un producto estable con la biblioteca LAMEOnJ sin comprar una clave comercial. –