mp4 视频文件托管在 Cloudflare 代理后面的 Capnel 的 apache 服务器上。该文件可以在非苹果设备浏览器上加载,但不能在苹果的 safari 和其他浏览器上加载。
未加载文件的原因是 Safari 发送带有请求的范围标头,而 apache 结果请求的状态代码为 200,而不是 206。
托管 iOS 媒体文件的 HTTP 服务器必须支持字节范围请求,iOS 使用该请求在媒体播放中执行随机访问。 (字节范围支持也称为内容范围或部分范围支持。)大多数(但不是全部)HTTP 1.1 服务器已经支持字节范围请求。
如果您不确定您的媒体服务器是否支持字节范围请求,您可以打开终端应用程序并使用curl命令行工具从服务器上的文件下载一小段:
示例命令: 卷曲-I --范围 0-99 http://example.com/test.mp4
如果 web 服务器是 cloudflare 代理后面的 litespeed 或 openlitespeed,则会加载相同的文件。
如果我关闭 cloudflare 代理,视频将在 apache 以及 litespeed/openlitespeed 上完美加载,状态代码为 206。
我做了以下事情,但没有使用 apache 和 litespeed:
如果您有解决方案,请帮忙。
谢谢 拉克斯曼
通过在 htaccess 下面添加来解决问题
SetOutputFilter DEFLATE
SetEnvIfNoCase Request_URI .(mp4|ogv|webm)$ no-gzip dont-vary