HTML5 <video> 可以播放 .mkv 文件吗?

Posted

技术标签:

【中文标题】HTML5 <video> 可以播放 .mkv 文件吗?【英文标题】:HTML5 <video> can play .mkv files? 【发布时间】:2012-03-26 05:38:30 【问题描述】:

所以我不小心用 Chrome 打开了一个 mkv 视频文件,令我惊讶的是它使用本机播放器播放:

<video src="video.mkv"></video>

播放完美。 html5 视频是否支持 matroska 容器?

【问题讨论】:

我在 Chrome 22 中没有任何声音。我无法取消视频静音。诡异的。您在哪个版本中尝试过? 我也使用 Chrome 21 for .mkv 视频.. 【参考方案1】:

HTML5 不支持 any 视频格式,或者说 HTML5 没有指定浏览器应该支持的格式。由浏览器决定他们选择支持哪些格式。显然 Chrome 播放 .mkv,但如果其他浏览器不播放相同的文件,我不会感到惊讶。

【讨论】:

@artdias90 No, it doesn't。 W3schools 不是权威参考。【参考方案2】:

网站可能已将文件的 mimetype 设置为 video/webm。 Chrome 将打开这个内联而不是强制下载(因为否则它不知道如何处理它或如何打开它)。

例如,在 apache 中,这是通过使用 AddType 指令完成的(可以在 htaccess 中完成):

    AddType video/webm .mkv

【讨论】:

请不要这样做。所有 WebM 文件都是 MKV 文件,但反之则不然,不应提供 MIME 类型不正确的文件,因为上述内容最终会发生。【参考方案3】:

如果浏览器不支持 mkv,我会感到惊讶,因为 webm 容器只是 matroska 格式的受限版本。除此之外,您还必须检查内部视频的编解码器,并确保您的浏览器可以处理。如果视频格式是 VP8 或 VP9,而音频是 Opus 或 Vorbis,则它符合 webm 标准,也可以这样重命名。请注意,H.264、H.265 和 MP3 不符合 webm 标准,您应该避免在包含这些格式的文件上使用该扩展名,视频仍然可以播放,但从技术上讲会违反 webm 规范,因此不受欢迎。

【讨论】:

另外请注意,如果您将字幕添加到 MKV 容器本身,即使视频是 VP8,9 并且音频是 Vorbis 或 Opus,它在技术上不再是 WebM 兼容的 - 尽管浏览器还是会玩的。

以上是关于HTML5 <video> 可以播放 .mkv 文件吗?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 iOS 上自动播放 HTML5 <video> 和 <audio> 标签?

Android - 在 html 代码中播放 html5 <video>

HTML5 <video> Chrome中的播放器控件右侧三个点打开空白屏幕

html5<video>解析m3u8播放视频

html5 <video>怎么在页面加载好久开始播放视频

html5中视频播放问题总结