【发布时间】:2014-02-07 13:25:24
【问题描述】:
是否可以在 Chrome(和 Opera)中完全缓冲 HTML5 视频?
我在亚马逊 S3 上以 .mp4 和 .webm 格式主持电影。在 HTML 中,我使用标准的 <video> 标签。服务器以状态206 Partial Content 响应。这很棒,因为它允许浏览器下载视频的任何部分,但我需要能够立即查找文件的任何部分。
我试过了:
-
.PROGRESS事件。当 Chrome 停止缓冲第一部分时,连接被终止。下一部分是在新连接中下载的,因此 JavaScript 无法继续检查总下载数据。即使可以,旧数据也不会存储在缓存中。此方法适用于 Firefox 和 Safari。哎呀,即使在 IE10 中! -
XHRS。我可以完全下载电影,但是当视频开始播放时,Chrome 会再次尝试从服务器下载电影。我什至尝试将电影传递到 base64 格式的 HTML 中,但数据量太大 -
FileAPI。 Chrome 无法创建足够大的 BLOB 并崩溃。
欢迎任何帮助!
ps。我知道 od 和类似的问题,但我希望在被问到之后有所改变。
【问题讨论】:
-
你有没有看过这里的答案中的两个选项......要么是 XHR 解决方案,要么是使用 MediaSource API 滚动你自己的登录的更具挑战性的选项......stackoverflow.com/questions/18251632/…
-
@Offbeatmammal - 我试过 XHR,但不是自定义媒体 API。将不得不尝试。
-
只是一个想法...也许您可以考虑创建不同的视频标签并在每个标签中预加载不同的视频片段。然后,在搜索时,将 currentTime 和播放请求转换为适当的请求。绝对不是一件好事,但可能是一种选择。如果提前知道长度和缓冲时间,您可以尝试Media Fragments...
标签: javascript html google-chrome video buffer