Google 解释 Chrome 放弃对 H.264 支持的原因

  • Alex Blewitt
  • 张龙

2011 年 2 月 18 日

话题:JavaGoogle架构ChromeHTML5语言 & 开发

上个月 Chrome 团队宣布放弃对 H.264 的支持,之后 Mike Jazayeri详细解释了做出这个决定的原因所在。

Chrome 团队做出的这个决定引起了巨大的轰动,对其的补充说明也颇让人关注。Mike 认为有必要就 video 标签的未来摆明立场,应该有个“开放的”codec 才能让用户在浏览器中观看视频。开源软件的众多开发者对该立场持积极认可的态度,这包括 Opera 和 Firefox 等浏览器背后的团队,他们只支持 webm。

但内容提供商对这个决定就不那么乐观了。除了桌面浏览器,H.264 还广泛应用于视频内容上。由于它用于蓝光光盘,因此很多设备都有硬件加速的解码器,Intel 最新的芯片甚至还提供了内置于处理器的函数,这样在必要的情况下 CPU 就可以对其提供支持了。不仅如此,智能手机市场也充满了能够解码 H.264 的设备;但却没有硬件支持的 webm 解码器。

一些批评者说 Safari 在计算机浏览器市场中所占的份额为5%左右,但真正的技术爆发出现在移动领域而非传统的桌面领域。特别是对于手持产品,电池寿命是相当重要的,因此没有硬件加速的视频根本没法登上大雅之堂。比如说,在 Apple 最新的收益报表中,iPad 与 Mac 之间的比例为 2:1;iPhone/iPad 与 Mac 之间的比例甚至达到了 4:1。桌面 Safari 与移动设备上的 Safari 之间的数量比例为 1:6。综合考虑,2010 年全球计算机市场产能估计有 350m,蓝光设备为 25m,iPhone/iPod/iPad 设备为 100m。这些设备中的 25% 都内置了对 H.264 的支持,这 350m 计算机中的大部分都是 Windows,都在软件或硬件上提供了对 H.264 的支持。

颇具讽刺意味的是 Chrome 团队一直在喊着“开放”,因为“开放”才是好的,每个人都喜欢“开放”。然而,一些批评者指出不仅 Windows 与 OSX 提供了对 H.264 解码的内置支持,Flash 也可以解码 H.264 视频。Flash 并不开放,这是尽人皆知的事实,但 Chrome 也对其提供了良好的支持,此外,其他一些专利技术,如 MP3、AAC、甚至是 GIF 也得到了 Chrome 的支持。

支持者说这种转换将迫使内容提供商对视频采取两种编码方式:webm 与 H.264,但有迹象表明这种情况是不太可能发生的。无论 Chrome 的立场如何,Firefox 与 Opera 目前都只支持 webm,与双重编码相比,内容提供商可以使用 Flash player,因为它能够像其他浏览器在本地处理 H.264 流一样解码同样的 H.264 流。由于该技术已经成熟,因此所需做的只不过是将目前对其他浏览器的检测延伸到 Chrome 上而已。

最后,webm 是开放的,而 H.264 则是封闭的。但实际上,只有两家公司曾开发过 webm,分别是 On2 和 Google,大部分开发都是秘密进行的。webm codec 与规范已经既成事实,在不一致的情况下,其规范通常都会使用参考实现。另一方面,H.264 是由众多公司开发的,他们可以从这个稳定的规范中获益,进而在硬件中实现。虽然 H.264 有专利,但 H.264 规范的开发工作则要比 webm 开放的多。

最近,自由软件基金会开始支持 Google 的 webm 提案,说只有不受专利限制的视频 codec 才是真正免费的(但这种观点要求 webm codec 不能在不知情的情况下侵犯现有专利)。

有些人认为 Google 此举代表了 Web 标准的倒退,因为 H.264 已经被众多的硬件和软件所支持。这些评论表明了人们对自由、不受拘束的 Web 未来的一种误解。只有抛弃被专利所限制的数据格式才能获得真正的自由。

总而言之,Chrome 放弃对 H.264 支持的决定不太可能对 Web 和硬件设备的视频内容提供商造成什么问题。内容提供商还会继续发布 H.264 视频,要么让浏览器直接播放,要么通过 Flash 的包装供那些不支持 H.264 的浏览器播放,就像现在所做的一样。此外,虽然 Chrome 号称开放,号称开源,但实际上它还有几处是封闭且有专利的。Chrome 在 HTML5 中到底支不支持 H.264 问题都不大,因为所有的浏览器都支持 H.264,要么是本地支持,要么通过 Flash 的包装提供支持。

查看英文原文:Google Explains Chrome Dropping H264

JavaGoogle架构ChromeHTML5语言 & 开发