我尝试使用MediaSource
API 在 Chrome 中重建 H.264 编码视频的 MP4 流。
为了便于讨论,我制作了两个这样的流,当作为标签包含时,它们都可以正确src
播放<video>
。但是,当输入 时MediaSource
,其中一个不起作用,而另一个起作用。查看chrome://media-internals
,两个流都产生了一堆Skipping unrecognized top-level box: mdat
(即使一个显然播放得很好,所以它不可能完全忽略它们)。
在任何情况下,无法播放的都会卡住kInitPrerolling
而不会引发任何错误。我想深入了解这一点,但是事实证明这很困难,因为诊断消息在 Chromium 源代码中打印为DLOG
s 和DVLOG
s ,并且这些消息被排除在 Chrome 的调试版本之外。
有人可以:
- 阐明为什么 Chrome 可能会拒绝播放流;或者
- 给出一些关于如何从 Chrome 的 MediaSource 管道(最好在 OSX 上)查看 DVLOG 的说明。Chrome Canary 不会打印出 DVLOG,而 Chromium 版本说不支持 H.264,所以我假设标准的调试构建指令不会给我一个支持 H.264 的可执行文件。