2013-05-02 9 views
5

Jak wiem, w odtwarzaczu Flash, jeśli jest to progressive wideo i moov atom na końcu pliku, musimy poczekać na cały pobrany plik wideo, zanim będziemy mogli zacząć Obejrzyj to.jak wideo HTML5 radzi sobie z wideo z atomem moov na końcu

, ale kiedy używam wideo-wideo Html5 do oglądania progresywnego wideo, nawet atomu moov na końcu pliku, ale nadal może grać i oglądać w tym samym czasie.

Czy ktoś wie, w jaki sposób Html5 radzi sobie z wideo z atomem moov na końcu?

+0

do likeitlikeit: tak masz na myśli jest w innej przeglądarce, mimo wszystko przy użyciu odtwarzacz HTML5, zachowanie może inaczej. np .: w chrome HTML5 odtwarzaj wideo progresywne bez pobierania całego pliku, ale w grze firefox HTML5 progresywne wideo może pobrać cały plik. –

+0

Dokładnie. Zachowanie, oprócz przeglądarki, może nawet zależeć od systemu operacyjnego, ponieważ biblioteki używane do odtwarzania niektórych treści mogą się różnić od np. Mac OS do Windows. – likeitlikeit

+0

likeitlikeit, najgorszy komentarz w historii ... oczywiście obsługa wideo zostanie pozostawiona przeglądarce/os ... pytanie dotyczyło urządzeń, które przesyłają strumień nawet, gdy atom moov znajduje się na końcu pliku (i ma jeszcze nie "pobrano"), jak to działa? –

Odpowiedz

2

Komentarz Alexander Farkas z 8/2 jest idealną, choć zwięzłą odpowiedzią. Żądania dotyczące zakresu (znane również jako "Obsługa bajtów") umożliwiają klientowi zażądanie (dowolnej) części pliku.

Klient wysyła (co najmniej) trzy żądania GET z odpowiedziami HTTP 206 (pod warunkiem, że serwer jest w stanie obsłużyć żądania zasięgu): jeden dla nagłówków plików (najważniejsza jest długość zawartości i "Akceptuj zakresy: bajty "). Następnie klient żąda końca pliku, zwykle mniej niż ostatni MB zawartości (wydaje się to być zależne od przeglądarki); gdy klient ma atom moov z końca pliku, prosi o resztę zawartości. Podczas wyszukiwania metadane pozwalają klientowi dowiedzieć się, jak mapować czas na zakres bajtów i wydaje nowe żądanie częściowej zawartości.

Rozsądny zapis jak to wygląda w praktyce jest Sample http range request session