在 Tim Berners-Lee 看来,HTML 和 World Wide Web 是免费且开源的。Lee 创建 W3C 是为了实现“在适应新标准时确保行业成员之间的兼容性和一致性”。但是到 2000 年,W3C 开始忙于 XHTML,而开发人员分别转向专有 Flash 插件。
在 2007 年,Opera 在 Web Hypertext Application Technology Working Group (WHATWG) 工作草案中提议使用 <video> 标记,其目的是 “将视频制作成一个的网络组件,以一个轻松、开放的解决方案来将视频整合到网页、且在浏览器上本地支持视频”。清单 2 展示了这一提议,比起插件所需的冗长的对象嵌入标记,它更优雅更易于操作。
清单 2. 简单的 HTML5 视频示例
在 2009 年 7 月,W3C 声明终止对 XHTML 的支持,开始使用 HTML5。今天,所有现代浏览器(包括 Windows Internet Explorer 9)都支持 <video> 标记,并且 API 基本一致(尽管有些细节仍在不断变化)。
HTML5 视频有很多优势。无需 JavaScript 或 ActionScript 代码,因为您只需要包括 <video> 标记和参数,如 清单 2 所示。它是一个的浏览器元素,不是一个插件。这意味着如果您使用 JavaScript 代码,页面完全载入后视频就准备好了,您不需要等待插件加载。虽然会有例外,但 API 都是标准化的,可以跨所有浏览器运行。由于它是一个本地元素,因此不可能与插件起冲突 — 就是说不影响显示,比如视频不会干扰滚动条。
HTML5 视频问题
HTML5 视频规范仍然不够成熟,因此还有一些问题。最显著的就是在 Internet Explorer 中不支持,尽管第 9 版预览版中已经支持。本地 UI 控件很方便,但是外观和功能在各浏览器之间是不一致的。为第三方视频建立沙盒比较困难,至少需要内联框架。此外,规范缺乏功能强大的全屏幕功能,在 Flash 中这一功能被认为是理所当然的;最近,Mozilla 提交了一个方案来解决这一问题。
Flash 在其他领域仍然处于领先地位,比如流媒体、处理不同带宽的功能、视频采集和内容保护。重要的是使用 Flash,就可以在所有操作系统上跨浏览器播放一个视频文件。浏览器供应商尚未同意单独使用 HTML5 视频格式,因此,目前您至少 需要两个视频文件。
高级的 HTML5 视频
为解决不同浏览器供应商之间缺乏一致性的问题,该规范进行了修改,以处理不同类型的视频(见 清单 3)。
清单 3. HTML5 视频有多个源
浏览器可能尝试依次播放每个源文件,因此,如果不能播放一个 Ogg 视频,将尝试 WebM 视频,然后是 MP4 视频。如果浏览器不能播放任何 格式,将提供一个没有文件被载入的视觉线索。实际上,视频元素是向后兼容的,因为如果浏览器不能识别,那么将会忽略它。您可以通过插入一个较熟悉的元素(如 清单 4 所示)使之成为您的亮点。
清单 4. HTML5 视频含有故障图像
其他解决方案需要插入一个 Flash 嵌入对象,而不是一个图像。