2

我看到 EDGE 通过在其浏览器配置中启用 MSE 中的 VP9 来声称在最新版本中支持 VP9 编解码器。

我试过这样做,但它仍然不起作用,并且会抛出一个错误,说不支持这种类型的视频文件。

我在 EDGE 浏览器中启动了https://html5test.com/compare/browser/mybrowser.html URL,这表示浏览器不支持 VP9,同时 youtube 视频在 WebM vp9 编解码器中流式传输(使用统计让书呆子检查一下)。

我在我的 HTML 文件中使用它

<video>
    <source src="http:/url/123.webm" type="video/webm"/>
</video>

Youtube 的https://www.youtube.com/html5声称它可以播放 MSE 和 WEBM vp9,并且它能够播放 vp9 视频,服务器为 vp9 和 MSE 提供请求的方式有什么不同吗? VP9。

我可以毫无问题地在 chrome 和 firefox 中播放 VP9 视频。在此先感谢您的帮助。

4

1 回答 1

0

从 EdgeHTML 15.15063 开始,仅在使用 MSE(媒体源扩展)时才支持 WebM + VP9。您正在使用的标签:

<video>
    <source src="http:/url/123.webm" type="video/webm"/>
</video>

没有使用 MSE。为此,您需要在 JavaScript 中创建一个 MediaSource 对象并将您的视频内容流式传输到 SourceBuffer 中。微软的流媒体播放器示例就是一个例子:

要使用 MSE API,请执行以下步骤:

  1. 在页面的 HTML 部分定义一个 HTML5 视频元素。
  2. 在 JavaScript 中创建一个 MediaSource 对象。
  3. 使用以 MediaSource 对象为源的 createObjectURL 创建一个虚拟 URL。
  4. 将虚拟 URL 分配给视频元素的 src 属性。
  5. 使用 addSourceBuffer 创建一个 SourceBuffer,使用您要添加的视频的 mime 类型。
  6. 在线从媒体文件中获取视频初始化段,并通过 appendBuffer 将其添加到 SourceBuffer 中。
  7. 从媒体文件中获取视频数据的片段,使用 appendBuffer 将它们附加到 SourceBuffer 中。
  8. 在 video 元素上调用 play 方法。
  9. 重复步骤 7 直到完成。
  10. 清理。

根据这个 Edge 平台问题,微软只声称有限的 WebM + VP9 支持,如果没有社区通过 Windows 10 反馈中心和/或Microsoft Edge UserVoice的大力推动,这种情况不太可能改变。

Chrome 和 Firefox 支持没有 MSE 的 WebM + VP9,这就是它在这些浏览器中工作的原因。

于 2017-07-14T16:16:27.147 回答