apache - 如何强制增加 Apache 中视频的范围字节响应的大小?
问题描述
最新版本的 Safari(移动和桌面)缓冲视频比其他浏览器慢 4 倍,因为它发送许多小型范围字节请求,而不是一些大型请求。下面是一个示例请求和响应(此请求以 64kb 的小尺寸继续,直到加载足够的数据以播放视频,在 Chrome、Firefox 和其他浏览器中,范围字节请求要大得多,因此数据传递得更多在一个流中更快)。
是否可以通过强制我的网络服务器 (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,因此这不是解决方案。
SetEnvIf Range bytes=0-65535 HAVE_MyRequestHeader
RequestHeader unset Range env=HAVE_MyRequestHeader
RequestHeader set Range bytes=0-5000000 env=HAVE_MyRequestHeader
解决方案
不,您不能在服务器端更改它。客户端发出请求,服务器完成请求。发送客户未要求的数据可能会导致错误。
推荐阅读
- java - 将 YUV_420_888 中的图像从 Android 发送到 OpenCV Mat 中的 JNI 的最有效方法
- sql - PowerShell:如何在“ROLLBACK TRANSACTION”之前将“Write-Host”放置在 SQL 代码中
- git - 无界 git bisect
- javascript - 如何使用 javascript 正确发布 x-www-form-urlencoded 数据?
- blockchain - 需要从任何区块链上的块中检索交易
- sql-server - 如何在 MSSQL 中查找两个表之间的差异
- json - Webscraper,将列表提取到.json?
- android - 从 Kotlin Generic 获取泛型类
- linux - 如何从多个文件中打印每第 n 行并将其写入第 n 行的每一组?
- email - 安装postfixadmin?