2010-01-29 35 views
5

Ho un sito che ospiterà piccoli file MP3.Combina/concatena MP3 sul server usando PHP

Desidero creare un'utilità che mi consenta di combinare insieme i file mp3 per creare un singolo file MP3.

Sono un po 'nuovo in PHP ma non nuovo per la programmazione.

Idealmente, avrei una funzione che mi consente di specificare un file di avvio e quindi di aggiungere il secondo file al file esistente.

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

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

Da dove iniziare? Ci sono risorse esistenti?

+0

Questa è una grande domanda. +1 – Cyclone

+0

Grazie a tutte le risposte rapide. Valuterò ciascuno di questi. Sfortunatamente, devo tornare al mio lavoro di giorno ... – Scott

+0

@Scott So che questa è una vecchia domanda, ma ancora: come hai risolto? Usando Sox ed exec come nella risposta esclusa? – trainoasis

risposta

2

Se è possibile accedere alla shell da PHP nel proprio ambiente, chiamerei semplicemente la shell (con backtick operator) e utilizzare SoX.

+0

Ho il mio hosting su goDaddy. Non ho mai veramente incasinato Linux prima. Posso imparare se ne ho bisogno ed è efficiente. Qualche idea su cosa Godaddy ti permetterebbe di usare? – Scott

+0

Siamo spiacenti, nessun indizio. – eliah

0

Suggerirei di dare un'occhiata alla funzione PHP fopen. Se concatenare due file MP3 è semplice come mettere insieme i bit, allora dovresti essere in grado di usare fopen (non dimenticare il flag "b" per binario) e fwrite per leggere i dati da un file e aggiungerli all'altro.

+0

Non è così semplice, è necessario rimuovere i tag IDv3, ecc. Dalla fine dei flussi audio ... Inoltre, se si trovano in bitrate diversi, si potrebbero avere alcuni piccoli problemi. – gnarf

+0

@gnarf: Mi sono innamorato di un mondo di problemi b/c prima di iniziare a lavorare sui caricamenti di file di Drupal. Non avevo mai nemmeno sentito parlare dei tag IDv3. O al meglio, ne ho sentito parlare e ho dimenticato. Per quanto riguarda la velocità in byte, diventerò l'amministratore del sito e potrei stabilire che sia allo stesso bitrate. Avrei bisogno di capire quale sarebbe il tasso ottimale ... – Scott

+0

vorrei provarlo. se l'impostazione dell'encoder corrisponde, questo probabilmente funzionerà e sarà una soluzione molto leggera. –

1

Non sei sicuro di come funzionerà, ma questo blog su merging mp3 with php potrebbe aiutarti.

Inoltre, a seconda del server in cui si trova, è possibile accedere a strumenti come sox utilizzando le chiamate di sistema().

+0

Questa è l'unica cosa che ho potuto trovare. La cosa che mi ha fatto innervosire è che il tizio che lo ha sviluppato ha detto che sarebbe stato lento e intensivo della memoria. Forse non importa cosa accadrà sarà lento e intensivo di memoria. Non lo so. – Scott

+0

'lenta e intensa la memoria' è assolutamente inevitabile quando si utilizza php per fare qualcosa in modo un-php. il mio suggerimento è: usalo, lo faccio, funziona –

0

C'è una libreria denominata getID3. Ha la capacità di unire più file MP3 in uno solo, anche se non ho mai usato questa funzionalità. C'è una demo disponibile nel sito Source Forge di getID3 qui http://getid3.sourceforge.net/source/demo.joinmp3.phps. Sembra che funzioni senza utilizzare alcuna chiamata di sistema da riga di comando.

Ho usato questa libreria per ottenere lunghezze e altri dati da vari formati multimediali. Ha funzionato come un fascino. Tuttavia, come detto, non ho testato la funzione CombineMultipleMP3sTo() in esso ...

Dovresti testarlo come se funzionasse per te sarebbe un'opzione molto più semplice di LAME (che è potente ma piuttosto complicata da usare secondo me).

Problemi correlati