如何强制增加Apache中视频的范围字节响应的大小?

时间:2018-11-21 10:00:07

标签: apache http browser safari video-streaming

最新版本的Safari(移动和台式机)对视频的缓冲速度比其他浏览器慢4倍,因为它发送许多小范围字节请求,而不是一些大范围字节请求。下面是一个示例请求和响应(此请求以64kb的小尺寸继续,直到加载了足以播放视频的数据为止,在Chrome,Firefox和其他浏览器中,range-bytes请求要大得多,因此数据传递得很多一股速度更快)。

是否可以通过强制我的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

更新:我设法使用下面的代码更改了请求范围标头,但是即使5mb的下载速度很快,safari仍会继续发送这些64kb的小范围请求,并且会忽略已下载的5mb,因此这不是解决方案。< / p>

SetEnvIf Range bytes=0-65535 HAVE_MyRequestHeader
RequestHeader unset Range env=HAVE_MyRequestHeader
RequestHeader set Range bytes=0-5000000 env=HAVE_MyRequestHeader

1 个答案:

答案 0 :(得分:1)

不。您不能在服务器端更改它。客户端发出请求,服务器执行该请求。发送客户不要求的数据可能会导致错误。