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

时间:2015-10-07 15:30:18

标签: html5 video safari ffmpeg encode

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

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

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

这就是为什么我不认为这个问题会导致视频编码。

我已完成这些设置;

$ mocha --compilers js:babel/register --require ./test/setup-jsdom.js test/*.js

3 个答案:

答案 0 :(得分:6)

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

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

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

您可以看到正在讨论的类似问题(第二个问题不是我想的,但说明发送到服务器的请求中包含的信息可能导致服务器“决定”不按您的意愿做出响应):< / p>

<强>更新

使用wireshark捕获来自Chrome的请求,可以看出服务器响应来自服务器的响应,而来自Safari(在同一台计算机上)的请求导致服务器无响应。 / p>

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

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

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

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

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

答案 1 :(得分:1)

要进一步说明未在视频标签中播放的mp4,请在此分享我的经验。最近,我花了很多时间来解决一个问题,该问题阻止mp4在Safari中播放。

如前一个答案中所述,Safari首先发送一个针对视频标签的字节范围请求,该请求需要206响应。但是,如果您使用Service worker,则响应会返回200,并且Safari似乎不知道如何处理。 我们的解决方案是排除在Safari中使用Service Worker。

我们是通过使用MacBook上Safari调试器的“网络”标签来解决此问题的,以解决我们在iPad上看到的问题。随附屏幕截图,供比较/参考。左侧选项卡显示默认情况下呼叫的外观。右侧标签显示了使用Service Worker时将看到的内容。

Safari Network Tab Service Workers

答案 2 :(得分:0)

问题是safari或iOs需要块。来自流媒体服务器的含义。如果您的视频来自blob或文件服务器,那么safari将引发错误。您可以将其与此帖Failed to Load Resource, Plugin Handled Load on iOS

联系起来