HTML5、H.264 及 Flash 综述

  • Alex Blewitt
  • 张龙

2010 年 2 月 11 日

话题:GoogleApple架构HTML5DevOps语言 & 开发

上周,InfoQ 报道了一篇新闻:YouTube 发布 HTML5 视频 Beta 版,使用H.264格式。紧接着,Vimeo 也发布了 HTML5 Beta,同样使用了 H.264 作为视频 codec。

Mozilla 的开源布道者 Chris Blizzard 谈到了他们为何要坚持使用 Ogg,他用GIF 这个专利解释了什么地方可能会出问题。GIF 专利(那时还是免费的)所涉及的图像格式成为了 Web 事实上的标准,随后其目标就变成了敲诈勒索(该专利在 2003 年和 2004 年过期了)。在那时,有人创建了免费的 PNG 格式以替代 GIF,现在 PNG 已经成为 Web 图象事实上的标准了。

H.264 的许可是由 MPEG-LA 发放的。Mozilla 工程部副总裁 Mike Shaver 说使用 H.264 但却不支付协议费用是违法的。一开始可以延期支付在网络上使用 H.264 所产生的协议费用,期限为今年底;最近又延长到了 2015 年底;但协议费用依旧会影响到其他方面,受牵连的还有对 H.264 进行解码的硬件(Apple 和 Google 都为其产品购买了 H.264 许可,而协议费用是有上限的,这就意味着他们所支付的协议费涵盖了其所有的产品)。

毋庸置疑,Apple 为 H.264 所付出的要超过任何一家厂商(需要注意的是,H.264 也是蓝光规范的一部分),这是因为其生产的电脑带有 H.264 硬件加速,同时还有众多的手持设备(iPhone、iPod Touch 以及新近发布的 iPad)也要能显示 H.264 视频。事实上,YouTube 之所以首先支持 H.264 而不是 Flash 的重要原因在于 Apple 的坚持,因为 Apple 为其 iPhone YouTube 应用提供了低分辨率的 H.264 视频流。

随着上周 iPad 的发布,争论又到达了一个新的高度。细心的读者可能会发现纽约时报的 Flash 插件图标显示为缺失;这并不令人感到惊讶,因为 iPhone 还不支持 Flash。乔布斯在最近的Apple Town Hall上公开表示 iPhone 与 iPad 绝不会支持 Flash:

Adobe 简直太懒了。他们本来可以做的更好,但却没有去做。他们做事情的方式与 Apple 完全不同,比如 Carbon。Apple 之所以不支持 Flash 是因为 Flash 的 bug 太多了。Mac 之所以会崩溃很大一部分原因是 Flash 造成的。没人会用 Flash,全世界都在向 HTML5 迈进。

Kevin Lynch 则说事实并非如此:

关于崩溃这个问题,我想说的是我们所发布的 Flash 绝不会带有已知的会导致崩溃的 bug,如果真的有这样的 bug 存在,Flash 也不会得到这么广泛的应用。

关于性能问题,在相同的硬件条件下,Windows 上的 Flash Player 一直以来都要比 Mac 上的快,另外我们也尽最大努力保证运行在不同操作系统上的 Flash 代码是一致的。在 Flash Player 10.1 中,我们转向了 CoreAnimation,它会进一步降低 CPU 的使用率,我们相信在其帮助下,Mac 上的图形渲染速度会超过 Windows。

视频渲染是我们非常重视的一个领域,比如说,1.8 Ghz Mac Mini 上的 Safari 播放 480p 视频时的 CPU 使用率为 34%,而 Windows 仅为 16%(同样的硬件条件下运行在 BootCamp 中)。在 Flash Player 10.1 中,我们对 Mac 上的视频渲染进行了优化,期望能降低一半的 CPU 使用率,这样 Mac 和 Windows 对视频渲染的速度就差不多了。

一些草根用户已经发起了请愿,请求为 iPhone/iPad 增加 Flash 支持,然而 iPhone 在过去几年中即便是不支持 Flash 也发展地非常好,鉴于这个原因,我觉得 iPhone 还是不太可能增加 Flash 支持。来自 Daring Fireball 的 John Gruber 问到谁能解决这个问题呢?现在我们已经将球踢到了 Apple 那边。

TheFlashBlog将几个知名的网站截图放到了站点上,比较了在使用 Flash 与不使用 Flash 的情况下这些网站都是什么样子的。在本应该显示 Flash 的地方,这些站点用 Photoshop 画了一些图占据了 Flash 插件的位置。然而,当用户浏览这些站点时(提供了针对移动设备的网页,使用了 H.264),他根本就看不到任何的提示信息。Kendell Geiner 在 iPhone 上也做了同样的试验,Hulu 和 Farmville 根本不行,依然显示之前的提示信息。

在过去的两周内,有两个动力促使一些视频网站从 Flash 迁移到 HTML5:首先就是使用新技术(当然就是 Apple iPad 了,但同样的情况依旧出现在 Apple iPhone 上)的一些高端视频站点。然而未来到底哪种视频 codec 会占据统治地位依旧是个未知数。可能出现的情况是一些站点会使用兼容于 H.264 的视频,而免费站点(比如 Wikimedia)依旧会使用 Ogg。最终,服务于 iPhone/iPad(到目前为止提供了最棒的移动浏览体验)的站点会推进 H.264 的普及;视频将会代替 Flash,而 Google 的 Chrome 浏览器则会蚕食掉 Firefox 的优势(主要是因为 Chrome 既能播放 Ogg,也能播放 H.264)。除非 Firefox 事先安装好某些私有的视频 codec 或者 MPEGLA 为软件解码商提供一个通用的协议,否则围绕着最终的 HTML5 视频 codec 的争论将永远不会停止。

查看英文原文:HTML5, H.264 and Flash roundup

GoogleApple架构HTML5DevOps语言 & 开发