2012-01-09 15 views
23

Sviluppato uno streamer per radio Internet utilizzando jPlayer che utilizza i tag audio html5 con jQuery e ha un flash back per i browser non supportati. Dopo aver testato il lettore su iPhone (iOS 5.0.1), ci siamo imbattuti in un problema molto particolare.iPhone HE-AAC Streaming su rete mobile (3G)

Quando l'iPhone è connesso al WiFi, lo streaming funziona perfettamente utilizzando il flusso HE-AAC V2 @ 64kbps 44,1kHz (il codec preferito per i prodotti Apple). Tuttavia, quando l'iPhone è connesso alla rete mobile 3G, "balbetta" o interrompe lo streaming per 1-2 secondi ogni 1-2 minuti (non interrompe lo streaming completo). La cosa preoccupante è quando l'iPhone è costretto a utilizzare un flusso MP3 separato con la stessa velocità in bit, non ha questo problema e funziona molto bene su 3G.

UPDATE 5

Recentemente abbiamo acquisito un dispositivo hotspot mobile 3G/4G di Sprint e testato questo problema con il dispositivo. Quando l'iPhone è connesso all'hotspot mobile, viene visualizzato come connesso a un dispositivo wifi e il problema non viene visualizzato anche se la connessione effettiva avviene tramite 3G/4G. Questo potrebbe far pensare al fatto che l'iPhone non gestisce HE-AAC tramite HTTP Live Streaming e quando è connesso direttamente alla rete mobile.

AGGIORNAMENTO 4

Aggiornato l'iPhone per iOS 5.1 ma il problema persiste.

UPDATE 3

Leggi qui su SO varie questioni di script non di rendering correttamente quando sono collegati a reti di telefonia mobile. Il dito sembra indicare i gestori di rete mobile che potrebbero inserire il proxy per servire pagine Web, ad es. per ridimensionare le immagini. Inoltre potrebbe iniettare alcune pagine JavaScript. La pagina di prova può essere trovato HERE Nota: questa pagina utilizza HE-AAC in modo da funzionare solo su iPhone ...

UPDATE

Secondo HTTP Live Streaming doc di Apple per i dispositivi iOS, che " Il contenuto solo audio può essere il trasporto MPEG-2 o i flussi audio elementari MPEG, sia in formato AAC con intestazioni ADTS che in formato MP3. " Il nostro server musicale utilizza l'encoder OddcastV3 per inviare tre flussi (MP3, HE-AAC V2 e Oggvorbis) al server icecastV2. Non sono sicuro che l'encoder stia inserendo le intestazioni ADTS per il flusso HE-AAC V2. C'è un modo per verificare questo?

+0

sono affari tuoi, ma il mio consiglio per te è quello di ottenere più reputazione su SO e diventare in grado di iniziare una taglia per la prima domanda. puoi guadagnare reputazione rispondendo a qualsiasi argomento, non solo a quello relativo all'ios. –

+1

Lettura dal documento HTTP Live Streaming di Apple per dispositivi iOS, che "I contenuti solo audio possono essere flussi di trasporto MPEG-2 o MPEG elementari, sia in formato AAC con intestazioni ADTS che in formato MP3." Non sono sicuro che lo stream abbia intestazioni ADTS. Non sono sicuro se questo è il problema ... – RMX

+0

Qui http://developer.apple.com/resources/http-streaming/ sul lato destro puoi trovare uno strumento per il controllo del flusso. Dopo l'installazione lo si utilizza in questo modo: mediastreamvalidator validate --timeout = 60 http://ssite.com/track.mp3 Verranno visualizzati i problemi più importanti nel registro. –

risposta

1

Provenendo da un punto pianificazione radiofonica di vista - qui sono i miei due centesimi:

cosa si sta descrivendo suona come la larghezza di banda shaping - che è sia un disegno comune e spesso neccesary di reti radio (come le reti 3G). Nella maggior parte degli operatori 3G che ho lavorato con te, in genere ottimizzerei la tua rete per fornire burst ad alta velocità (pensa a scaricare un'immagine, inviare una e-mail o recuperare una pagina HTML) - su servizi di "lunga durata" ad alta larghezza di banda. Ciò è dovuto al semplice fatto che questo è ciò che la maggior parte degli utenti desidera/ha bisogno.

Questo shaping può essere utilizzato su una rete 3GPP (GSM 3G) tipica in quanto si otterrà un RAB (portatore di accesso radio) che supporta 384kbit e verrà quindi declassato finché il dispositivo lo accetta. Ciò significa che tipicamente si passa da 384 -> 256 -> 128, quindi 64kbit, dove forse il dispositivo inizia a ricevere i dati lentamente, quindi la rete lo aggiorna e di nuovo lo downgrade dopo un po '.

Quindi perché non è la balbuzie del file MP3? la mia ipotesi è che la velocità del kbit totale potrebbe differire - quindi stai bene nel RAB a 64kbit. Questo è un fenomeno comune.

+0

affermi che "la dimensione totale potrebbe essere diversa", tuttavia non esiste una dimensione totale in quanto si tratta di una stazione radio in streaming e non sta scaricando un file di dimensioni specifiche, MP3 o HE-AAC. – RMX

+0

scusa - Intendevo "kbit rate totale". Ho aggiornato la mia risposta. Hai fatto un ficcanaso di rete (potrebbe facilmente essere fatto usando gli strumenti nel simulatore) – Magnus

+0

Non hai fatto uno snoop di rete. Non so nemmeno cosa sia! lol – RMX

0

Siamo riusciti a ottenere lo stesso identico funzionamento. 64kbit AAC-v2 su dispositivi mobili. Stiamo eseguendo lo streaming di file e non un flusso costante, penso che Magnus abbia ragione quando spiega come la rete ha dato priorità al traffico per scoppiare, nel nostro caso ciò significa che abbiamo ampie parti del file subito e il giocatore può continuare a giocare fino al prossimo esplode. Nel tuo caso ciò significa che lo stream fa una pausa fino al prossimo burst.

O se è possibile passare a blocchi più grandi nello streaming (buffer più grande) o eseguire lo streaming di interi file invece?

Abbiamo avuto un fenomeno molto strano con iOS, abbiamo dovuto rinominare tutti i file da .m4a a .aac per poterli riprodurre su iOS. Se non li abbiamo rinominati, iOS non li riprodurrebbe.

Buona fortuna.

+0

Grazie per l'input. Sfortunatamente, non possiamo riprodurre interi file poiché questo è stato creato per una stazione radio internet che trasmette ininterrottamente 24 ore al giorno. Inoltre questa non è un'app, ma stiamo effettuando lo streaming utilizzando HTTP Live Streaming per iOS (direttamente tramite Safari mobile), quindi non possiamo controllare il buffering. Sono ancora molto confuso su tutto il problema della radio. Non sarebbe il fatto che questo problema si verifica ancora a 128k AAC-V2 nega la spiegazione della radio? Inoltre, il fatto che MP3 funzioni bene a 64kbps ... Qualsiasi intuizione sulla comprensione di questo potrebbe aiutarci a risolvere il problema. Grazie ancora – RMX