Safari 9.0无法在存储服务器上播放mp4视频

Meh*_*met 9 safari video html5 encode ffmpeg

使用safari 9.0(最新版本)无法播放以下视频链接.但旧版本的safari,chrome和firefox可以玩.

http://assets00.grou.ps/0F2E3C/wysiwyg_files/Videos/saksuka/20150928104628-lhmkkfbhnkiisbhht.mp4

当我将视频从服务器下载到我的电脑时,我可以使用safari 9.0.

这就是我不认为这个问题源于视频编码的原因.

我做了这些设置;

mime.types
video/mp4   mp4 m4v
video/ogg   ogv
video/webm  webm

httpd.conf
AddType video/mp4 mp4 m4v
AddType video/ogg ogv
AddType video/webm webm

.htaccess
AddType video/mp4 mp4 m4v
AddType video/ogg ogv
AddType video/webm webm
Run Code Online (Sandbox Code Playgroud)

Mic*_*ick 7

这似乎是Safari上一些mp4文件反复出现的问题.

我在localhost node.js静态服务器上测试了你的视频,它在Safari中播放得很好,这意味着视频本身应该没问题.

如果您查看Safari中的Web检查器,您将看到Web请求不包含一些标头.这会导致一些服务器出现问题,并且它们不会像Safari期望的那样响应,或者根本不响应.

您可以看到正在讨论的类似问题(我认为第二个不是您的情况,但说明发送到服务器的请求中包含的信息可能导致服务器"决定"不按您的要求做出响应):

更新:

使用wireshark捕获来自Chrome的请求,可以看到服务器响应来自服务器的响应,而来自Safari(在同一台机器上)的请求导致服务器没有响应.

请求通常类似,并且都包括referrer标头.Safari浏览器只询问最初从服务器返回的前2个字节 - 它通过使用'range'标头来完成此操作,该标头用于指定文件返回的字节范围:

  • 范围:字节= 0-1\r \n

另一方面,Chrome会在其范围请求中请求整个视频:

  • 范围:字节= 0-\r \n

但是,在Chrome上使用HTTP工具(例如Postman)并将范围更改为0-1似乎并未阻止服务器在Chrome案例中做出响应.实际上使用该工具尽可能设置所有与Safari集相同的标题似乎仍然可以返回视频确定.

  • 你能澄清一下解决方案是什么吗?似乎这个答案没有提供解决方案,而只是将我们指向其他 SO 问题。 (5认同)