Chrome 中的 HTML5 视频标签 - 为什么从我的网络服务器下载视频时忽略 currentTime?

标签 html video google-chrome html5-video

我希望能够使用 HTML5 video 标签播放特定时间的视频(目前只需要担心 Chrome)。这可以通过设置视频元素的 currentTime 属性来实现。对于来自 html5rocks.com 的视频,这在 Chrome 中运行良好,但当从我自己的本地网络服务器加载相同文件时,它会被忽略。

使用 http://playground.html5rocks.com/#video_tag 中的示例代码,我得到了以下 HTML:

<!DOCTYPE html>
<html>
<body>
<video id="video1" width="320" height="240" volume=".7" controls preload=true autobuffer>
    <source src="http://playground.html5rocks.com/samples/html5_misc/chrome_japan.webm" type='video/webm; codecs="vp8, vorbis"'/>
    </video>
<input type=button onclick="play()" value="play">
<input type=button onclick="setTime()" value="setTime">
<input type=button onclick="pause()" value="pause">
<script>
    var play=function() {
        document.getElementById("video1").play();
    }
    var setTime=function() {
        document.getElementById("video1").currentTime=2;
    }
    var pause=function() {
        document.getElementById("video1").pause();
    }
</script>
</body>
</html>

使用 Chrome,如果你

  1. 等待视频下载 一点(直到进度条是 大约 10%)
  2. 按 setTime - 你 应该注意到时间跳到 2 秒
  3. 按下播放键

...视频将在 2 秒后开始。

但是如果我将源 src 中的 webm 文件下载到我的本地网络服务器,并将 src 更改为指向本地:

<source src="chrome_japan.webm" type='video/webm; codecs="vp8, vorbis"'/>

...然后设置 currentTime 被完全忽略。开发人员工具控制台中未显示任何错误。

现在,我的网络服务器正在使用 mime 类型“video/webm”提供此服务,但它将像任何旧文件一样提供服务——而不是流式传输。

我需要一个以某种特定方式流式传输的网络服务器吗?这里还有什么问题?

注意:网络服务器是一个专有平台,不会有任何与 Tomcat 或其他一些常用网络服务器相同的设置或控制,尽管可能有其他方法可以达到相同的效果。

最佳答案

确保您的网络服务器能够使用字节范围提供文档。 Google Chrome 浏览器要求此功能有效。没有它,搜索将被禁用并且设置 currentTime 将无效。

要测试您的 Web 服务器是否执行此操作,请使用以下命令:

curl --dump-header - -r0-0 http://theurl

响应状态必须为 206 Partial Content,您应该只收到资源的第一个字节,而不是整个资源。

-菲尔

关于Chrome 中的 HTML5 视频标签 - 为什么从我的网络服务器下载视频时忽略 currentTime?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4572720/

相关文章:

ios - html5 视频 - 在桌面上播放,iPhone 6s,不会在 5s 上播放?

jquery - 使用 jQuery 将视频静音/取消静音

video - 有没有更安全的方法将 FFMpeg 包含在商业应用程序中?

javascript - 使用 `which` 属性以编程方式触发 keydown 事件

ajax - chrome中跨域ajax POST

javascript - 用 javascript 创建一个 "temporary css"值得吗?

javascript - 单击按钮时如何获取选择文本、表格单元格值

javascript - Chrome 扩展 - 页面加载时的事件监听器

javascript - 如何使 HTML 表格高度与其宽度成正比?

html - 重新定位嵌入的 Facebook 视频?