Chrome 视频标签无法播放碎片化的 mp4 流

Chrome video tag can't play fragmented mp4 stream

我们使用 <video> 播放 fMP4 流(编解码器:H264 - MPEG-4 AVC(第 10 部分)(avc1))。

<video muted autoplay playsinline>
  <source src='http://10.12.13.250:8080/5f6c457205c38e6a18ef991b/0e70e1cdee8b21af.live.mp4' />
</video>

页面的 url 是 localhost:3000,因此我们正在尝试跨源显示流。

它几个月前在 Chrome 工作。但是目前(Chrome 86),是不行的。什么都不播放。 Microsoft New Edge 中也会出现同样的问题,因为它使用了与 Chrome.

相同的引擎

但是,相同的代码在 Firefox (v82.0.2) 中有效。

我们注意到最近Chrome change 中断了。所以我们禁用chrome://flags/#reduced-referrer-granularity。但是问题依旧。

如何让<video>在Chrome(新版Edge)中再次播放碎片化的mp4?

我试着测试你在评论中分享的我这边的流。

我在 Edge Chromium 浏览器和 Goole Chrome 浏览器上得到了类似的结果,即没有播放流。不过是用火狐浏览器玩的

我使用 VLC 播放器确认流的编解码器。

我尝试运行下面的代码,并尝试检查这种视频类型和编解码器是否可以在 chromium 浏览器上工作。

function supportType(e,vidType,codType) { 
  var vid = document.createElement('video');
  isSupp = vid.canPlayType(vidType+';codecs="'+codType+'"');
  if (isSupp == "") {
    isSupp = "No";
  }
  e.target.parentNode.innerHTML = "Answer: " + isSupp;
} 
<p>Can my browser play MP4 videos? <span>
<button onclick="supportType(event,'video/mp4','H264 - MPEG-4 AVC (part 10) (avc1)')" type="button">Test</button>
</span></p>

在 Edge Chromium 浏览器和 Goole Chrome 浏览器中的测试结果:

Chromium 平台似乎不支持此编解码器。我建议尝试为您的流使用支持的编解码器可能会帮助您在 Chromium 浏览器中播放您的流。