【发布时间】:2021-08-20 00:44:19
【问题描述】:
我正在创建一个网站named bobPlayer,由于某种原因,它不会加载通过 HTTPS 传输的 MP4 文件。它只是显示以下内容:Link to screenshot of player.
尝试按播放按钮,否则按空格键将无法播放视频。
视频效果很好when caching is disabled via DevTools in chrome.
在我的实际 HTML 代码的标题部分中,我包含以下元标记,但 Chrome 仍然拒绝播放视频:
<meta http-equiv="Cache-Control" content="private, no-cache, no-store, must-revalidate" />
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="0" />
iOS 上的 Safari/Chrome 不会出现此问题,但我和其他 2 位朋友在 PC 上遇到了此问题。 (特别是 Chrome,它似乎在 Firefox 中运行良好。)
托管这些视频的服务器运行 Ruby,并通过 HTTPS 进行身份验证,因为该网站不允许 HTTP 和 HTTPS 的混合内容。
服务器托管这些视频的 MP4 文件。这不应该是我的问题的原因,因为所有现代网络浏览器都支持 MP4。服务器正在使用以下命令在命令行中运行 Ruby:
ruby -run -e httpd . --ssl-certificate=/home/pi/.ssl/certificate.crt --ssl-private-key=/home/pi/.ssl/private.key -p 8010
网页通过将 URL 标签 ?episode=123 与 JSON 文件中托管的 URL 相匹配的脚本来决定播放哪个视频。尝试播放的视频在 1-405 的限制范围内。如果尝试通过非动态分配的标签播放视频也会出现此问题,其中源文件被编码到 HTML 文件中,而不是替换为 JS 代码。
所有代码都在GitHub 上提供,但视频不在那里托管,而是在a Ruby httpd server 上托管,如前所述。
任何帮助将不胜感激。
【问题讨论】:
-
MP4 的状态码是 206 Partial Content。我正在使用最新版本。
-
鉴于该问题可以在没有 JS 或 Ruby 的情况下重现,我建议删除这些标签,并显示最小相关的 HTML。
标签: javascript html ruby https html5-video