为什么Safari无法播放<video>中没有扩展名的文件?

use*_*186 4 safari video mp4

我有一个名为52bbb58c的文件,没有文件扩展名,它是mp4视频。

当我尝试将其添加为&<source><video>与属性类型(视频/ MP4),它不能播放。

这适用于Chrome和Firefox。如何为Safari修复它?

Dav*_*vid 9

Safari在播放流媒体(例如视频和音频)时非常挑剔。它具有以下要求

  • 托管媒体的服务器/应用程序必须支持字节范围。Safari将尝试2字节的下载,以确定媒体的长度,然后根据文件的大小,以一个或多个块的形式下载媒体。如果仅发送所有数据,它将无法正常运行。
  • 媒体服务器返回的内容范围必须包含媒体总大小的数字,而不仅仅是“ *”。
  • 媒体URL的后缀必须与媒体类型相匹配。就像IE浏览器一样:正确设置mime类型是徒劳的,因为Safari不会遵循此处的规则,并且它将忽略mime类型。

请注意,如果播放失败,Safari不会告诉您问题出在哪里,只是出现了媒体错误,没有更多信息。

对于mpeg 4 video / h.264,后缀.mp4起作用对于mpeg 4 audio / aac,后缀.aac起作用

如果您是Safari开发人员,请考虑修复这些问题。

已在Safari 11.1.2上测试过


Mic*_*ick 2

在其他地方详细查看此问题后(请参阅下面的链接),我认为最可能的原因是 Chrome 和 IE 假设 HTML 中的“type=video/mp4”信息是正确的,因此解释从服务器返回的内容通过这种方式,Safari 会查看响应中的内容类型来做出决定。

换句话说,即使服务器的 HTTP 响应的标头为“Content-Type:application/octet-stream”而不是“Content-Type:video/mp4”,Chrome 也会将返回的文件作为视频播放。

您可以通过查看示例的响应标头并查看内容类型是否设置为“application/octet-stream”而不是“video/mp4”来检查这一点。

相关答案:/sf/answers/2307715581/