【发布时间】:2011-05-11 05:51:54
【问题描述】:
我正在尝试开发一个包含所有新添加的 html5 基本元素的简单网页。在使用视频标签时,我发现不支持某些格式,例如 .avi。
那么有html5支持的视频格式列表吗?
即使 html5 支持 WebM/ogg 等特定格式,是否足以安全地假定所使用的浏览器能够显示视频?
【问题讨论】:
我正在尝试开发一个包含所有新添加的 html5 基本元素的简单网页。在使用视频标签时,我发现不支持某些格式,例如 .avi。
那么有html5支持的视频格式列表吗?
即使 html5 支持 WebM/ogg 等特定格式,是否足以安全地假定所使用的浏览器能够显示视频?
【问题讨论】:
不幸的是,还没有普遍支持的格式。从技术上讲,HTML5 不支持任何视频格式,支持特定视频格式的是浏览器本身。这导致了巨大的混乱。
You can find a list of format compatibility on Wikipedia。由此看来,如果您只想支持单一格式,VP8/WebM 可能是您的最佳选择。幸运的是,<video> 标签确实支持回退,如果提供多个编码对您的使用是可行的,在这种情况下,VP8/WebM 版本与 H.264 版本相结合,涵盖了所有主流浏览器。
对于同一个视频的多个版本,可以使用如下代码:
<video width="320" height="240">
<source src="myvideo.mp4" type="video/mp4" />
<source src="myvideo.ogv" type="video/ogg" />
<source src="myvideo.webm" type="video/webm" />
<p>Other backup content, eg. a flash version, should go here.</p>
</video>
【讨论】:
目前似乎所有支持 HTML5 的浏览器都支持单一的视频格式。基本上有两种格式相互竞争:
WebM - 受 Firefox、Opera、Chrome、IE9 支持(带插件)
H.264 - 受 Safari 和 IE 9 支持
所以当时,我认为您基本上必须提供两种格式的视频,并猜测浏览器提供正确的格式。
【讨论】:
<video> 标签支持提供回退选项,无需浏览器嗅探。