据我所知,在Flash播放器中,如果它是文件末尾的渐进式视频和moov原子,我们必须等待整个视频下载才能开始观看.
但是当我使用Html5 videojs查看渐进式视频时,即使是文件末尾的moov原子,但它仍然可以同时播放和观看.
任何人都可以知道Html5最终如何使用moov原子处理视频?
Alexander Farkas 来自 8/2 的评论是一个完美的、简洁的答案。范围请求(也称为“字节服务”)允许客户端请求文件的(任何)部分。
客户端发出(至少)三个带有 HTTP 206 响应的 GET 请求(前提是服务器能够处理范围请求):一个用于文件头(内容长度很重要,还有“接受范围:字节”)。然后客户端请求文件的结尾,通常小于最后MB的内容(这似乎因浏览器而异);一旦客户端从文件末尾获得 moov 原子,它就会请求其余的内容。当您查找时,元数据允许客户端知道如何将时间映射到字节范围,并对部分内容发出新请求。
这在实践中的样子的合理记录是在Sample http range request session