无法在IE中使用HTML5从AWS S3流式传输.mp4文件,即使已设置内容类型。

3

我有一些.mp4视频文件存储在AWS S3存储桶中,我可以在Chrome、Firefox和Safari(桌面和移动设备)的HTML5网页中流式传输这些文件。以下是HTML代码:

<video style="margin: 0 auto; width: 70%; display:block;" controls autoplay>
     <source src="https://s3.amazonaws.com/my-bucket/item1/16x9/main.mp4" type="video/mp4" />
</video>

然而,我无法在IE 11/10/9上使其正常工作(出现错误:“错误:不支持的视频类型或无效文件路径”)。 我知道该视频已经为IE正确编码,因为如果我将其托管在我的本地Web服务器上,该视频在IE中播放得很好。我查看了Stack Overflow和亚马逊论坛,人们似乎主要遇到的问题是未将元数据Content-Type从“application/octet-stream”更改为“video/mp4”。但是,对我的情况来说,更改这个内容类型似乎没有任何区别。(如下图)开始时,我以为可能只是没有在S3中正确设置内容类型,但是如果我使用fiddler访问S3 URL,我可以看到正确的内容类型实际上是在标头中传递下来的:
HTTP/1.1 200 OK
x-amz-id-2: XsUylpKUMmFPGEQUYyEVdHlicQK3ge2PH6f2lW7quS7ixsBLgEbGww0+qimVGJS4
x-amz-request-id: AC0B4231F897147C
Date: Tue, 30 Jun 2015 15:09:13 GMT
Last-Modified: Tue, 30 Jun 2015 14:38:11 GMT
ETag: "123430248eca490c3fbf7a3a361c1118"
Accept-Ranges: bytes
Content-Type: video/mp4
Content-Length: 35874512
Server: AmazonS3

更加奇怪的是,Fiddler有一个Webview显示选项,可以使用IE窗口呈现视频预览,并且确实可以正常播放视频。
有人有关于如何在IE中播放来自S3的视频的建议吗?
编辑1:
这似乎很奇怪...如果我将指向S3的URL从https更改为http,那么视频在IE中可以播放。这对我来说不是可接受的解决方案,但也许说明了IE通过https流式传输html5视频存在问题?(这似乎应该是一项基本功能,因此我不确定是否对所有https视频都适用。)
编辑2:
好的,所以IE似乎可以正常播放任何通过http指向的视频。然而,如果我的网站托管在http上,而视频托管在https上,则不想在IE中播放它。因此,我将代码上传到启用https的测试服务器上,并发现如果该视频托管在同一域中,则可以通过https播放视频。由于S3显然处于不同的域中,因此仍无法在IE中播放该视频。如果我将带有上述视频标记的test.html文件上传到S3,则该视频在IE中可以正常播放。如果我将相同的test.html文件托管在我的网站上,则无法播放。
2个回答

0
我遇到了同样的问题。最终,我发现IE在下载视频之前尝试访问ocsp.digicert.com,如果访问失败(因为无法访问ocsp.digicert.com),那么视频将无法播放。
IE尝试访问ocsp.digicert.com的原因是OCSP(在线证书状态协议)。证书颁发机构(CA)可能会撤销SSL证书,浏览器将检查其正在访问的网站是否仍然可用(未被撤销)。
一般来说,如果OCSP检查失败(网络不可达),IE仍然会完成自己的工作。但是嵌入到其他网站上的视频将无法播放。我认为这是一个错误。
您可以在IE设置中禁用OCSP。
一些参考资料:

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接