Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

how HTML5 video handle video with moov atom at the end

Tags:

html

video

As I know , in Flash player, if it is progressive video and moov atom at the end of file, we have to wait for the entire video download before we can start to watch it.

but when I use Html5 videojs to view a progressive video, even the moov atom at the end of file, but it still can play and watch at the same time.

Can anyone know how Html5 handle video with moov atom at the end?

like image 918
Liu Hebian Avatar asked May 02 '13 04:05

Liu Hebian


People also ask

What is a Moov atom?

Moov atom or movie atom is a part of file data that contains information about duration, timescale, display characteristics, and sub atoms of each track in a video. When you open a video file in a media player, it first reads this metadata information to play your video. The moov atom may be located at the beginning of the end of a video file.

What is an HTML5 video element?

The HTML5 video element tells the browser to load a video file from another source by specifying the video file's location, similar to the way a browser loads an image file (the image itself is not stored in the HTML file — the browser pulls it from somewhere else).

How to fix ‘Moov atom not found’?

How to fix video error ‘moov atom not found’? A video repair tool is the fastest and easiest way to fix ‘ moov atom not found’ error in MP4 or other video file formats. Various command-line tools, such as FFmpeg and MP4box, can change the moov atom location, making the video playable again.

What happens if you don’t have Moov atom?

In the absence of moov atom, you won’t be able to open a video or movie and may receive an error such as ‘moov atom not found.’ Why do you get ‘moov atom not found’ error? Whether VLC Media Player or QuickTime, no player will read the file if metadata information is not completely available.


1 Answers

The comment by Alexander Farkas from 8/2 is a perfect, if succinct, answer. Range requests (also known as "Byte Serving") allow the client to request (any) part of the file.

The client makes (at least) three GET requests with HTTP 206 responses (provided the server is capable of handling range requests): one for the file headers (Content-Length is what matters, along with "Accept-Ranges: bytes"). Then the client requests the end of the file, usually less than the last MB of content (this seems to vary by browser); once the client has the moov atom from the end of the file, it requests the rest of the content. When you seek, the metadata allows the client to know how to map time to byte range, and issues a new request for partial content.

A reasonable transcript of what this looks like in practice is at Sample http range request session

like image 132
sdupton Avatar answered Oct 02 '22 01:10

sdupton