Sto lavorando su un server di streaming che sarà in grado di trasmettere annunci mirati. In pratica, gli ascoltatori ascoltano la stessa musica, ma ogni 30 minuti arriva un blocco di annunci e ogni ascoltatore ha il proprio blocco. L'implementazione di tale server di streaming pone vari problemi e questa domanda riguarda uno di questi.Come concatenare perfettamente stream MP3?
Il server funzionerà in modo simile a Icecast, cioè leggerà il flusso sulla rete da un generatore di flusso e lo inoltrerà a tutti gli ascoltatori. Quando è il momento di trasmettere annunci, il server interrompe il recupero del flusso dal generatore, legge gli annunci dai file e li inserisce nel buffer di ciascun listener, li trasmette e riprende sul flusso di inoltro dal generatore.
Quando il server passa dallo streaming di inoltro agli annunci di trasmissione, deve concatenare due stream MP3 (che trasmettiamo in MP3). La mia preoccupazione è che semplicemente aggiungendo un pezzo di dati dopo l'altro si possano produrre alcuni artefatti udibili. Può essere fatto senza problemi?
Ho già capito: - Posso rendere il server consapevole dei frame MP3 per evitare errori di sincronizzazione. - Sto pensando di aggiungere fotogrammi MP3 dal file dell'annuncio dopo i frame MP3 dallo streaming. - Poiché l'annuncio viene caricato da un file MP3 correttamente codificato, eludere il problema del serbatoio di byte, poiché il primo fotogramma del file non può utilizzarlo.
Ma la mia preoccupazione è il modo in cui funziona MDCT. Gli ascoltatori non hanno idea di cosa farà il mio server, quindi i loro decodificatori MP3 potrebbero produrre alcuni artefatti perché i dati MDCT errati verranno inseriti uno dopo l'altro nello stream che scaricano. Il riempimento dello zero all'inizio del file con l'annuncio compenserà questo?
Conoscete eventuali librerie/strumenti (open source se possibile) che possono unire senza difficoltà due file MP3 senza decomprimerli?
È possibile indicare le buone risorse che descrivono il formato MP3? Ho cercato molto Internet, ho trovato molte informazioni, ma mi manca ancora il quadro generale.
Forse sai che sarebbe più semplice se usassi un altro codec come OGG/Vorbis, AAC?
PS. Questa domanda non è un duplicato di What is the best way to merge mp3 files?. mp3wrap e strumenti simili non sono un'opzione per me.
Tale API potrebbe essere troppo computazionalmente costosa. La stazione radio in cui lavoro ha già 5k utenti/traffico di picco del server. Anche se è solo un secondo della musica che devo elaborare per ogni ascoltatore, è un'ora di musica da decomprimere/comprimere in pochissimo tempo ... – Jasiu
Non sono sicuro che sarebbe necessariamente ... dovresti davvero fare qualche altro studio su questo, dato che DirectShow è * il * modo di andare per i contenuti multimediali su Windows. – Noldorin