最近在开发EasyDarwin开源流媒体服务器HLS直播的时候发现一个现象:在PC上用flash player播放HLS和在ios上面播放HLS时,效果明显不同,在ios上播放非常稳定,而在flash player上播放会经常性卡住,需要重新刷新网页才能够正常播放。经过不断跟踪调试,发现问题主要出在浏览器上,浏览器在请求、更新m3u8文件的过程中,有缓存,导致请求到的m3u8列表是过期的,里面的ts列表有文件已经被删除了,导致m3u8播放器请求已经不存在的ts文件,就卡住了,所以我们测试过,比较可靠的解决办法就是,在服务器端设置Cache-control为no-cache,具体在nginx和iis上的设置方法为:
在Nginx上配置nginx.conf文件:
在IIS上设置为:
(感谢:皓镜の魆 对EasyDarwin开源项目以及对此问题的支持)
获取更多信息
WEB:EasyDarwin.org