最奇怪的是,所有开发人员中,只有我可以在我的开发计算机上运行相关服务器时使视频在Safari上正常工作。更重要的是,同一目录中的其他MP4文件存在类似的问题。这对我来说是关键,我一直在搜索视频从服务器传输的任何细微差别-请求/响应标头、确切的文件大小等等。
从Chrome复制的标头(只因为从Safari复制/粘贴较困难)。
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding:gzip, deflate, sdch
Accept-Language:en-US,en;q=0.8
Cache-Control:max-age=0
Connection:keep-alive
DNT:1
Host:*************:8443
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36
Response Headers
Accept-Ranges:bytes
Content-Length:44875102
Content-Type:video/mp4;charset=UTF-8
Date:Tue, 30 Dec 2014 21:11:51 GMT
ETag:W/"44875102-1419959755000"
Last-Modified:Tue, 30 Dec 2014 17:15:55 GMT
Server:Apache-Coyote/1.1
(另外,如果这让你想起了旧问题;我知道Windows上的Safari已经死了很久。这个问题发生在OS X上)
编辑:新的信息可能会有所帮助。我从自己的Web服务器上拍摄了一个个人视频,在有问题的Safari浏览器上可以正常工作,并将其下载到我们服务器的本地视频目录中。然后,它遇到了和我们其他视频相同的问题。这使我认为,MP4本身可能并不重要 - 这可能是我们Tomcat 7 Web服务器的某种服务器问题。我们确实已正确注册Content-Types,至少涵盖了基础知识,但我很好奇是否还有其他必要的部分。
更多信息:我一开始没想到提到这一点,但我们正在通过HTTPS连接加载我们的网页和视频。我们的大多数测试服务器没有有效证书,因此我们需要单击标准浏览器警告“此服务器可能不是它所说的那样”的选项。我们现在正在研究在所有服务器上获得正确证书所需的步骤。