![HTML5 视频如何在网络浏览器中播放?](https://linux22.com/image/1364066/HTML5%20%E8%A7%86%E9%A2%91%E5%A6%82%E4%BD%95%E5%9C%A8%E7%BD%91%E7%BB%9C%E6%B5%8F%E8%A7%88%E5%99%A8%E4%B8%AD%E6%92%AD%E6%94%BE%EF%BC%9F.png)
我很好奇网络浏览器(例如 Google Chrome)如何播放 HTML5 视频。它与图像的显示方式相同吗?图像首先被下载/缓存到文件系统中,以便后续请求可以直接从缓存中获取,而无需再次从服务器下载。换句话说,如果我们知道浏览器正在使用的文件系统路径,就可以检索图像。
那么 HTML5 视频是否也缓存了,还是完全加载到内存中?当我播放 HTML5 视频时,我可以暂停视频并等待其完成加载,然后断开与互联网的连接并继续离线播放整个视频。这意味着视频已完全下载到我的电脑中。我想知道的是,它是存储在我可以检索的文件系统中还是在内存中。如果是后者,我有什么办法可以从内存中提取视频吗?
答案1
这取决于浏览器、操作系统和视频长度。播放必须从内存中进行。为了避免出现问题,浏览器会尝试缓存几秒钟,通常至少 10 秒,但这通常根据测量的吞吐量进行调整。如果前几秒到达得很快,则保留的秒数会更少。
对于非常短的视频,这意味着整个视频可能一次在内存中。对于长视频,这种情况几乎永远不会发生。大多数现代编解码器都允许流式传输视频,因此在开始播放之前不会下载整个视频,因此几乎不需要保留它。对于非流式传输编解码器,将首先下载整个视频,然后可能出现在文件系统中。它不得因为您可以拥有未命名的临时文件。