最新版本的 Safari(移动和桌面)缓冲视频的速度比其他浏览器慢 4 倍,因为它发送许多小尺寸的范围字节请求,而不是一些大的请求。下面是请求和响应的示例(此请求以 64kb 的小尺寸继续,直到加载了足够的数据供视频播放,在 Chrome、Firefox 和其他浏览器中,范围字节请求要大得多,因此数据传输量要大得多)在一个流中速度更快)。
是否可以通过强制我的 Web 服务器 (apache) 忽略 Safari 的 64kb 小范围字节请求,并发送大量数据(约 5MB)来解决此问题?该请求直接向视频文件发出。
Summary
URL: http://example.org/video.mp4?rand=942824
Status: 206 Partial Content
Source: Network
Request
GET /video.mp4 HTTP/1.1
Accept: */*
Connection: keep-alive
Range: bytes=0-65535
Accept-Encoding: identity
Response
HTTP/1.1 206 Partial Content
Content-Type: video/mp4
Content-Range: bytes 0-65535/467342440
Accept-Ranges: 0-467342440
Content-Length: 65536
Connection: keep-alive
Server: nginx/1.2.1
更新:我设法使用下面的代码更改请求范围 header ,但是即使快速下载了 5mb,safari 仍继续发送这些小的 64kb 范围请求并忽略已下载的 5mb,因此这不是解决方案。
SetEnvIf Range bytes=0-65535 HAVE_MyRequestHeader
RequestHeader unset Range env=HAVE_MyRequestHeader
RequestHeader set Range bytes=0-5000000 env=HAVE_MyRequestHeader
最佳答案
没有。您无法在服务器端更改它。客户端发出请求,服务器完成该请求。发送客户端未请求的数据可能会导致错误。
关于apache - 如何强制增加 Apache 中视频的范围字节响应的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53409489/