2016-03-20 8 views
5

Attualmente sto facendo un servizio di streaming video in cui il video viene transcodificato in blocchi di circa 1 MB ciascuno. I player HTML5 di Firefox, Chrome e IE fanno del loro meglio per richiedere il contenuto parziale (aggiungendo l'intestazione Range alla loro richiesta). Purtroppo, il più delle volte questa intestazione si presenta così:Come rendere la richiesta del browser intervallo più piccolo con 206 Contenuto parziale

Range:bytes=0- 

Non voglio tornare l'intero contenuto, ma solo 1 MB di contenuti, in modo da tornare a questo:

Content-Range:bytes 0-1048575/5074944 

Ora Chrome lo accetta completamente e continua a richiedere contenuti parziali finché non ha raggiunto la lunghezza totale. Firefox tuttavia fa solo una richiesta che contiene il contenuto parziale e non il pieno. Firefox pensa che sia il contenuto completo e quindi non viene riprodotto il video completo, solo una parte di esso. Come ottengo lo stesso comportamento in Firefox come ho in Chrome? Ho provato a restituire 416 Range non Soddisfacente ma sia Chrome che Firefox sembrano richiedere dopo aver ricevuto questo codice di stato.

risposta

1

Così ho finalmente rinunciato a questo e ho dato un'occhiata al codice sorgente di Firefox. Nel luogo in cui Firefox riceve un intervallo diverso da quello previsto, viene pubblicato un commento da uno sviluppatore che chiede cosa fare in questo caso. La specifica non specifica cosa fare in questo caso e così Firefox ha scelto di non fare nulla. Chrome è un po 'più creativo e ha escogitato ciò che gli sviluppatori pensavano sarebbe stata la migliore risposta (che è assolutamente il risultato che voglio).

Sembra che non sia l'unico con questo problema, altrimenti non avrei ottenuto gli upvotes. Il problema è: per far sì che Firefox risolva questo problema, dovremmo apportare una modifica alle specifiche che ritengo siano quasi impossibili. Pertanto sto chiudendo questa domanda e contrassegnando questo post come risposta.

-1

La risposta alla domanda "Come potrei ottenere lo stesso comportamento in Firefox come in Chrome?" è l'aggiornamento a Firefox 57.0 (Quantum). Questa versione di Firefox (nei test del mio codice server, che fa la stessa limitazione delle dimensioni di risposta parziale) è in grado di effettuare richieste di contenuti parziali aggiuntivi mentre il video viene riprodotto, più o meno allo stesso modo di Chrome e IE.

Detto questo, se cerco al contrario nel video, Firefox riprodurrà una porzione del contenuto dalla nuova posizione (presumibilmente usando il contenuto parziale memorizzato nella cache per quella posizione) ma poi non riesce a richiedere (o usare la cache) parziale contenuto quando il contenuto bufferizzato si esaurisce, ma salta alla fine.

Sembra che gli sviluppatori di Firefox siano riusciti a risolvere il problema di contenuti parziali più piccoli del previsto, ma non hanno avuto ragione riguardo alla ricerca e/o alla memorizzazione nella cache.

Sarei interessato a sapere dove nella fonte di Firefox è stato il commento originale su "cosa fare", per scoprire cosa è stato effettivamente fatto e forse fornire un feedback adeguato agli sviluppatori di Firefox.

+0

Ciò non fornisce una risposta alla domanda. Una volta che hai [reputazione] sufficiente (https://stackoverflow.com/help/whats-reputation) sarai in grado di [commentare qualsiasi post] (https://stackoverflow.com/help/privileges/comment); invece [fornisci risposte che non richiedono chiarimenti da parte del richiedente] (https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-can- i-do-, invece). - [Dalla recensione] (/ recensione/post di bassa qualità/18179198) –

Problemi correlati