2010-01-29 14 views
5

Tengo un sitio que alojará pequeños archivos MP3.Combinar/Concatenar archivos MP3 en el servidor usando PHP

Quiero crear una utilidad que me permita combinar los archivos mp3 para crear un solo archivo MP3.

Soy algo nuevo en PHP pero no soy nuevo en la programación.

Idealmente, tendría una función que me permitiera especificar el archivo de inicio y luego anexar el segundo archivo al existente.

function appendMP3(originalMP3, newChunk){ 
    originalMP3 = originalMP3 + newChunk; 
    return newMP3 
} 

compilation = append(compilaton, "sound.mp3"); 

¿Por dónde empiezo? ¿Hay algún recurso existente?

+0

Esa es una gran pregunta hombre. +1 – Cyclone

+0

Gracias a todas las respuestas rápidas. Evaluaré cada uno de estos. Desafortunadamente, tengo que volver a mi trabajo diario ... – Scott

+0

@Scott Sé que esta es una vieja pregunta, pero aún así: ¿cómo resolviste esto? ¿Utilizando Sox y Exec como en una respuesta exceptuada? – trainoasis

Respuesta

2

Si puede acceder al shell desde PHP en su entorno, solo llamaría al shell (con el backtick operator) y usaría SoX.

+0

Tengo mi hosting en goDaddy. Nunca antes me había equivocado con Linux. Puedo aprender si lo necesito y es eficiente. ¿Alguna idea sobre lo que GoDaddy le permitiría usar? – Scott

+0

Lo siento, no tengo ni idea. – eliah

0

Sugeriría echar un vistazo a la función de PHP fopen. Si concatenar dos archivos MP3 es tan simple como unir los bits, entonces debería poder usar fopen (no olvide el indicador "b" para el binario) y fwrite para leer los datos de un archivo y anexarlo al otro.

+0

No es tan simple, necesita quitar las etiquetas IDv3, etc. del final de las secuencias de sonido ... Además, si están en diferentes velocidades de bits, es posible que tenga algunos pequeños problemas. – gnarf

+0

@gnarf: Estoy en un mundo de problemas b/c antes de empezar a trabajar en las cargas de archivos de Drupal. Nunca había escuchado hablar de las etiquetas IDv3. O en el mejor de los casos, me enteré de ellos y olvidé. En cuanto a la tasa de bytes, voy a ser el administrador del sitio y podría ordenar que sea a la misma velocidad de bits. Tendría que averiguar cuál sería la tasa óptima ... – Scott

+0

Me gustaría probar esto. si la configuración del codificador coincide, entonces esto probablemente funcionará y será una solución muy ligera. –

1

No estoy seguro de qué tan bien funcionará, pero este blog en merging mp3 with php podría ayudarlo.

Además, dependiendo del servidor en el que se encuentre, es posible que tenga acceso a herramientas como sox mediante llamadas al sistema().

+0

Eso es lo único que pude encontrar también. Lo que me puso nervioso fue que el tipo que lo desarrolló dijo que sería lento y requeriría mucha memoria. Quizás pase lo que pase será lento y requerirá mucha memoria. No lo sé. – Scott

+0

'lento y con mucha memoria' es absolutamente inevitable cuando usas php para hacer algo tan un-php. mi sugerencia es: úsalo, lo hago, funciona –

0

Hay una biblioteca llamada getID3. Tiene la capacidad de unir múltiples archivos MP3 en uno, aunque nunca he usado esta funcionalidad. Hay una demostración disponible en el sitio de Source Forge de getID3 aquí http://getid3.sourceforge.net/source/demo.joinmp3.phps. Parece que funciona sin usar ninguna llamada al sistema de línea de comandos.

He usado esta biblioteca para obtener longitudes y otros datos de varios formatos de medios. Funcionó a las mil maravillas. Sin embargo, como he dicho, no he probado la función CombineMultipleMP3sTo() en ella ...

Debe probar esto como si le funcionara a usted sería una opción mucho más fácil que LAME (que es potente pero bastante complicado usar en mi opinión).