2013-05-02 8 views
5

Come noto, in Flash player, se è video progressivo e moov atom alla fine del file, dobbiamo aspettare l'intero download del video prima di poter iniziare a guardalo.come il video HTML5 gestisce il video con moov atom alla fine

ma quando uso i videojs Html5 per visualizzare un video progressivo, anche l'atomo moov alla fine del file, ma può ancora riprodurre e guardare allo stesso tempo.

Qualcuno sa come Html5 gestisce il video con moov atom alla fine?

+0

a likeitlikeit: così si vuol dire è in diversi browser, anche il tutto utilizzando player HTML5, il comportamento forse differente. ad es .: in chrome HTML5 riprodurre video progressivi senza scaricare l'intero file ma in firefox HTML5 riprodurre video progressivi può scaricare l'intero file. –

+0

Esattamente. Il comportamento, in aggiunta al browser, può anche dipendere dal sistema operativo in quanto le librerie utilizzate per riprodurre alcuni contenuti potrebbero differire da es. Mac OS a Windows. – likeitlikeit

+0

likeitlikeit, il peggior commento di sempre ... ovviamente la gestione del video sarà lasciata al browser/os ... la domanda era sui dispositivi che fanno streaming anche se l'atomo di moov è alla fine del file (e ha non è stato 'ancora preso'), come funziona? –

risposta

2

Il commento di Alexander Farkas dell'8/2 è una risposta perfetta, se concisa. Le richieste di intervallo (note anche come "Byte Serving") consentono al client di richiedere (qualsiasi) parte del file.

Il client effettua (almeno) tre richieste GET con risposte HTTP 206 (a condizione che il server sia in grado di gestire richieste di intervallo): una per le intestazioni di file (Content-Length è ciò che conta, insieme a "Accept-Ranges: byte "). Quindi il client richiede la fine del file, in genere meno dell'ultimo MB di contenuto (questo sembra variare dal browser); una volta che il client ha l'atomo moov dalla fine del file, richiede il resto del contenuto. Quando si cerca, i metadati consentono al client di sapere come mappare il tempo nell'intervallo di byte e emette una nuova richiesta di contenuto parziale.

una ragionevole trascrizione di ciò che questo assomiglia, in pratica, è a Sample http range request session