我正在使用videojs在Chrome中使用HLS,但对于特定的URL,此操作将失败(CORS问题),但在Safari中,它可以正常播放。
我在videojs中有一个代码,但是为了更快地找出问题,我使用了这个在线播放器: https://videojs.github.io/videojs-contrib-hls/
对于此文件,Chrome(而不是Safari)存在问题: https://s3-us-west-2.amazonaws.com/andy-mediaconvert-tests/Haystack.tv/2019-05-10_Output/02_qvbr_ch1/ch1_hd720.m3u8
类似的其他链接在这两个方面均适用: https://d2ufudlfb4rsg4.cloudfront.net/bloomberg/IIrcyflxg/IIrcyflxg_medium.m3u8
然后,我的问题是,为什么Safari可以播放带有CORS问题的视频,但Chrome无法播放?还是Safari如何避免CORS问题?尝试在Chrome中复制它。
答案 0 :(得分:1)
CORS由浏览器而不是服务器强制执行。因此,是否阻止或访问资源取决于浏览器。如果是chrome,视频段是通过XHR下载的,因此由浏览器HTTP堆栈处理。对于本身支持HLS的Safari浏览器,片段是由媒体播放器直接下载的,绕过了浏览器,因此没有CORS。
此行为无法在chrome中复制。