Sto tentando di modificare un'app server Web personalizzata per lavorare con video HTML5.Richieste HTTP di video HTML e intervallo parziale
Serve una pagina HTML5 con un tag di base <video>
e quindi deve gestire le richieste per il contenuto effettivo.
L'unico modo per farlo funzionare è caricare l'intero file video nella memoria e quindi inviarlo di nuovo in una singola risposta. Non è un'opzione pratica. Voglio servirlo pezzo per pezzo: rispedire, ad esempio, 100 kb, e attendere che il browser richieda di più.
vedo una richiesta con le seguenti intestazioni:
http_version = 1.1
request_method = GET
Host = ###.###.###.###:##
User-Agent = Mozilla/5.0 (Windows NT 6.1; WOW64; rv:16.0) Gecko/20100101 Firefox/16.0
Accept = video/webm,video/ogg,video/*;q=0.9,application/ogg;q=0.7,audio/*;q=0.6,*/*;q=0.5
Accept-Language = en-US,en;q=0.5
Connection = keep-alive
Range = bytes=0-
ho cercato di inviare una risposta contenuto parziale:
HTTP/1.1 206 Partial content
Content-Type: video/mp4
Content-Range: bytes 0-99999/232725251
Content-Length: 100000
ho un paio di richieste GET, come segue
Cache-Control = no-cache
Connection = Keep-Alive
Pragma = getIfoFileURI.dlna.org
Accept = */*
User-Agent = NSPlayer/12.00.7601.17514 WMFSDK/12.00.7601.17514
GetContentFeatures.DLNA.ORG = 1
Host = ###.###.###.###:##
(con nessuna indicazione che il browser desidera una parte specifica del file.) Non importa cosa invio bac k al browser, il video non viene riprodotto.
Come detto sopra, lo stesso video verrà riprodotto correttamente se provo a inviare l'intero file da 230 MB nello stesso pacchetto HTTP.
C'è un modo per far funzionare tutto correttamente attraverso richieste di contenuto parziale? Sto usando Firefox a scopo di test, ma alla fine deve funzionare con tutti i browser.
Trovo strano che si sta utilizzando Firefox per i test e l'invio di un file MP4, che Firefox non supporta, quindi dovrebbe mai funzionare. –
Finora ho provato Firefox (con plug-in H264) e IE9 sul lato browser, e MP4 e WebM sul lato server. Penso che mi manchi qualcosa. – user434507
Perché si desidera ottenere richieste di intervallo parziale dai client? Consentitegli semplicemente di chiedere ciò che vogliono e inviarlo a loro nel modo più conveniente. Ho lavorato con streaming audio (richiesto da Chrome) e un server personalizzato - ha inviato suoni in tempo reale. Penso che questo sia il modo predefinito e accettabile. Se ti preoccupi del carico della rete, utilizza la regolazione della velocità fino a una velocità sufficiente per una riproduzione video fluida. – Stan