我正在构建HLS / DASH流服务器,今天我发现使用具有范围请求的单个大文件比许多小文件要好-这是Netflix和YouTube目前正在做的事情。
但有个问题; 由于我的视频CDN和实际播放器页面具有不同的域(例如netflix.com-nflxvideo.net),CORS进入并随每个请求发送一个OPTION请求。由于播放器发送了很多请求,因此浪费了字节。
Netflix(也使用nginx)和YouTube通过在URL或查询中发送范围来解决此问题,因此浏览器不会发送OPTION请求: https://xx.nflxvideo.net/range/0-64209238?o=...
我正在Nginx中尝试实现相同的目的,但是4个小时我找不到任何方法。我们将文件存储在服务器中,因此我们正在使用sendfile。
谢谢!
我找不到执行该操作的方法,但是出于不浪费资源使用OPTIONS请求的主要目的,有Access-Control-Max-Age
用于缓存OPTIONS请求的标头。
基本上将其设置为Firefox的最长为86400秒(24小时),并且可以正常工作。
我之前跳过了此标头,因为它在Chrome中是10分钟,但是很显然,自Chrome 76以来已增加到2小时。由于我们的视频的平均时长为100分钟,因此绰绰有余。
有关标题的更多信息在这里。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句