2011-06-02 12 views
5

He buscado alto y bajo, y no puedo encontrar ningún decodificador MP3 decente =/C++ Cross Platform MP3 Decoder?

Necesito uno que compile bajo gcc/linux.

Lo más parecido que pude encontrar fue libmad, que no tiene documentación en absoluto, y el único ejemplo que pude encontrar fue el de su página de inicio, que es realmente complicado.

¿Alguien sabe dónde puedo encontrar uno?

+0

¿Ha mirado cojo? http://lame.sourceforge.net/ –

+0

sí ... Tenía la impresión de que era solo para codificación. Volveré a verificar – bitwise

+0

Mirando la página de línea de comandos: http: //lame.cvs. sourceforge.net/viewvc/lame/lame/USAGE Puedo ver al menos algunas opciones que parecen prometedoras, como '--decode' y' --mp3input'. Eso me daría a entender que la biblioteca subyacente tiene la capacidad de hacer lo que necesita, me imagino. Si tiene funciones de C++ agradables y bien encapsuladas para descodificar archivos mp3 es otra historia ... –

Respuesta

4

He usado MAD (MPEG Audio Decoder) en el pasado con excelentes resultados, por lo que no me rendiría tan rápidamente. MAD está especialmente diseñado para un buen rendimiento en CPU sin operaciones de punto flotante, lo que es deseable al desarrollar aplicaciones para dispositivos móviles, por ejemplo.
Me gustaría recomendarle que eche un vistazo a los códigos fuente de this project (GSPlayer). Es un reproductor de audio para Windows CE/Windows Mobile y usa libmad. El código es completamente funcional, ordenado y no demasiado grande, por lo que puede ayudarlo a tener una idea sobre cómo usar libmad en sus propios proyectos.

Puede que tenga que verificar la licencia (GPL) para libmad sin embargo, ya que puede no satisfacer sus necesidades.

+1

Ya tiene problemas con la licencia para lidiar solo con tener la función. Malditas patentes de software. (Y él también ya hizo referencia a esto en la pregunta) –

+2

Finalmente lo hice funcionar ... pero no fue hasta que vi un ejemplo de FMOD que hizo que fuera super obvio que era responsabilidad del programador proporcionar su propia lectura y escribir funcionesEn el otro ejemplo de decodificación que estaba usando como referencia, el ogg vorbis lib estaba leyendo del archivo y llenando el buffer por sí mismo =/pero supongo que este tipo de cosas se hace a favor de una mayor portabilidad? que definitivamente necesito para esto Gracias por la ayuda :) – bitwise

2

ffmpeg debería ser capaz de manejar archivos MP3 sin dificultad. Sin embargo, lo fácil que es acceder realmente a esa funcionalidad, no puedo decirlo.

3

¿Has mirado Lame?

En cuanto a su command-line page, puedo ver por lo menos un par de opciones que parecen prometedores, como --decode y --mp3input. Eso me daría a entender que la biblioteca subyacente tiene la capacidad de hacer lo que necesita, me imagino. Si tiene funciones de C++ agradables y bien encapsuladas para decodificar archivos mp3 es otra historia.

Como se señala correctamente en los comentarios, debe examinar detenidamente los acuerdos de licencia y patente.

+0

+1 por lo que realmente fue la primera (y probablemente será la mejor) respuesta. –