5

我已经建立了一个测试站点。我正在尝试实现一个 HTML5 视频以在我正在开发的站点上播放,并且我想使用 jplayer 以便它回退到一个 swf 文件,如果 html5 视频是不支持。

http://dev.johnhunt.com.au/是我目前所拥有的。如果我为视频提供http://www.jplayer.org/video/m4v/Big_Buck_Bunny_Trailer_480x270_h264aac.m4v它工作正常,但是如果我将它托管在我自己的服务器上,它就永远不会开始播放。

mime 类型绝对正确,video/m4v。查尔斯代理 说:

Client closed connection before receiving entire response

事实上,这是整个请求:

GET /Big_Buck_Bunny_Trailer_480x270_h264aac.m4v HTTP/1.1
Host    dev.johnhunt.com.au
Cache-Control   no-cache
Accept-Encoding identity;q=1, *;q=0
Pragma  no-cache
User-Agent  Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.79 Safari/537.4
Accept  */*
Referer http://dev.johnhunt.com.au/
Accept-Language en-US,en;q=0.8
Accept-Charset  ISO-8859-1,utf-8;q=0.7,*;q=0.3
Cookie  __utma=120066461.1007786402.1349773481.1349773481.1349786970.2; __utmb=120066461.1.10.1349786970; __utmc=120066461; __utmz=120066461.1349773481.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)
Range   bytes=0-

和回应:

Some binary data (maybe 3 or 4kbytes long)

看起来不错。我假设“客户端”是我的 chrome 浏览器。为什么它放弃了?我怎样才能解决这个问题?这让我很生气,因为我在谷歌上找不到任何东西:(

当我在 jplayer.org 上使用 m4v 文件时,请求如下:

GET /video/m4v/Big_Buck_Bunny_Trailer_480x270_h264aac.m4v HTTP/1.1
Host    www.jplayer.org
Cache-Control   no-cache
Accept-Encoding identity;q=1, *;q=0
Pragma  no-cache
User-Agent  Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.79 Safari/537.4
Accept  */*
Referer http://dev.johnhunt.com.au/
Accept-Language en-US,en;q=0.8
Accept-Charset  ISO-8859-1,utf-8;q=0.7,*;q=0.3
Cookie  __utma=24821473.325705124.1349773077.1349773077.1349773077.1; __utmc=24821473; __utmz=24821473.1349773077.1.1.utmcsr=google|utmccn=(organic)|utmcmd=organic|utmctr=(not%20provided)
Range   bytes=0-

回复:

Lots of binary data (very long.. working)

干杯,约翰。

4

3 回答 3

9

我发现当 Chrome 浏览器发送“范围:字节 = 0-”请求时,您不应该以“206 部分内容”响应进行响应。要让 Chrome 正确处理数据,您需要发回“200 OK”标头。

根据规格,我不知道这是否正确,但它可以让 Chrome 工作并且似乎不会破坏其他浏览器。

于 2012-10-19T17:30:52.323 回答
1

刚刚使用 Chrome 遇到了这个问题,您似乎需要确保Content-Range您的服务器在响应中设置了标头。

来自http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html

byte-content-range-spec 值的示例,假设实体总共包含 1234 个字节:

      . 前 500 个字节:
       字节 0-499/1234
      . 第二个 500 字节:
       字节 500-999/1234
      . 除了前 500 个字节之外的所有内容:
       字节 500-1233/1234
      . 最后 500 个字节:
       字节 734-1233/1234
于 2014-06-04T18:45:15.640 回答
0

可能是你的 apache 的问题......大概你正在使用给定标签的 apache。

您是否已将 mime 类型添加到 apache?

例如

AddType video/mp4 mp4

AddType video/mp4 m4v

还要检查是否为媒体关闭了 gzip……它已经被压缩……并且不要 gzip Jplayer.swf。

你能发布你的apache配置吗?您是否正在使用诸如此类的流媒体模块

干杯罗宾

编辑

o 并且您可能还想在 apache 中接受范围字节。如果您仔细查看您提供 200 个链接的两个链接,它们提供 206 个部分数据。

于 2012-10-12T22:27:03.173 回答