Joh*_*ith 7 firefox html5 google-chrome
我目前正在制作一个视频流服务,其中视频以每个大约1MB的块进行转码.Firefox,Chrome和IE的HTML5播放器都尽力请求部分内容(通过将Range标头添加到他们的请求中).不幸的是,大多数情况下这个标题看起来像这样:
Range:bytes=0-
Run Code Online (Sandbox Code Playgroud)
我不想要返回完整的内容,但只返回1MB的内容,所以我将此返回:
Content-Range:bytes 0-1048575/5074944
Run Code Online (Sandbox Code Playgroud)
现在,Chrome完全接受了这一点,并一直请求部分内容,直到达到总长度.但是Firefox只生成一个包含部分内容而不是完整内容的请求.Firefox认为它是完整的内容,因此不会播放完整的视频,只是其中的一部分.我如何在Firefox中获得与Chrome中相同的行为?我尝试返回416 Range不满意但Chrome和Firefox似乎在收到此状态代码后请求.
所以我最终放弃了这个并查看了Firefox的源代码。在 Firefox 收到与预期不同的范围的地方,开发人员会发表评论,询问在这种情况下该怎么做。规范没有指定在这种情况下要做什么,因此 Firefox 选择什么都不做。Chrome 更具创意,并提出了开发人员认为最好的响应(这绝对是我想要的结果)。
似乎我不是唯一一个遇到这个问题的人,否则我就不会得到赞成票。问题是:为了让 Firefox 纠正这个问题,我们需要对规范进行更改,我认为这几乎是不可能的。因此,我关闭这个问题并将这篇文章标记为答案。