HTML 嵌入视频将无法播放,除非在 DevTools 中启用 "disable cache"

HTML embedded video won't play unless "disable cache" is enabled in DevTools

我正在制作一个网站named bobPlayer, and for some reason it will not load a MP4 file transmitted over HTTPS. It simply shows the following: Link to screenshot of player.

尝试按播放按钮或按 space 将不会播放视频。

视频效果很好when caching is disabled via DevTools in chrome.

在我实际 HTML 代码的 header 部分中,我包含了以下元标记,但 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, however the videos are not hosted there, rather on a Ruby httpd server 上找到。

如有任何帮助,我们将不胜感激。

我敢打赌这是视频格式问题。 iOS 在所有浏览器中支持 h265 编码,而 Chrome 在 Windows 上不支持。视频文件的编码是什么?您可以使用 https://ffprobe.a.video 进行测试(并添加视频的 url)。