【问题标题】:VideoJS works on safari but not in chrome for some videos with CORSVideoJS 适用于 safari 但不适用于 chrome 中的某些带有 CORS 的视频
【发布时间】:2019-11-01 13:43:27
【问题描述】:

我正在使用 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 中重现它。

【问题讨论】:

标签: google-chrome safari cors video.js http-live-streaming


【解决方案1】:

CORS 由浏览器而非服务器强制执行。因此,资源是否被阻止或访问取决于浏览器。在 chrome 的情况下,视频片段是通过 XHR 下载的,因此由浏览器 HTTP 堆栈处理。对于原生支持 HLS 的 safari,片段由媒体播放器直接下载,绕过浏览器,从而绕过 CORS。

这种行为无法在 chrome 中重现。

【讨论】:

  • 当您说“媒体播放器”时,您是指 QuickTime?我看过safari直接用它玩
  • “QuickTime”只是一个营销名称。 Safari 可能会也可能不会与 QuickTime 应用程序共享代码。
猜你喜欢
  • 2019-01-28
  • 2015-09-16
  • 1970-01-01
  • 2014-11-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-12
  • 2015-04-14
相关资源
最近更新 更多