[也 发布 在 brendaneich.com 上。]
我写了 开放网络及其对手,这仅仅是五年前的事,基于第一次SXSW 浏览器大战小组讨论(我们刚刚举办了第五届,很棒——感谢所有参加的人)。
一些历史
我展示的小幻灯片在某种程度上显得古色古香。WPF/E 和 Adobe Apollo,还记得吗?(代码名称或现有的重命名产品?)自从 2007 年以来,Web 已经走了很长一段路。
但我的幻灯片的其他部分仍然相关,特别是 Mozilla 和 Opera 承诺为HTML5提供不受限制的<video>元素的部分。
- 通过 WHATWG 与 Opera 合作开发 <video>
- 在所有浏览器中使用不受限制的 Ogg Theora 解码器
- 用于 <audio> 的 Ogg Vorbis
- 其他格式也是可能的
- DHTML 播放器控件
我们做到了我们所说的。我们克服了困难。即使它灼伤了我们的手,我们也坚持着不受限制的 HTML5 <video> 的火炬。
我们被称之为天真的(不)理想主义者(是)。有人告诉我们,我们正在把一块大石头推上一个高高的山坡(的确如此!)。有人告诉我们,我们永远无法克服H.264背后的势头(可能是真的,但 Mozilla 不会放弃并向专利地租者支付费用)。
然后在2009年,谷歌宣布将收购 On2(于 2010 年完成),Opera 和 Mozilla 有了一位白骑士。
在2010 年 5 月的 Google I/O 上,Adobe 宣布将在即将发布的 Flash 版本中包含 VP8(但不是所有 WebM?)支持。
在2011 年 1 月 11 日,谷歌的 Mike Jazayeri在博客中写道
……我们正在更改 Chrome 的 HTML5 <video> 支持,使其与开放式 Chromium 项目已支持的编解码器保持一致。具体来说,我们支持 WebM(VP8)和 Theora 视频编解码器,并将考虑在将来添加对其他高质量开放编解码器的支持。尽管 H.264 在视频中发挥着重要作用,但我们的目标是实现开放式创新,因此将删除对该编解码器的支持,并将我们的资源用于完全开放的编解码器技术。
这些更改将在未来几个月内进行……
三天后的一篇后续文章证实,Chrome 将依赖 Flash 回退来播放 H.264 视频。
我们今天所处的位置
现在是2012 年 3 月,谷歌和 Adobe 承诺的更改尚未实施。
更重要的是,如果仅在桌面版 Chrome 上进行此类更改,则这些更改无关紧要——不在 Google 的 Android 移动浏览器上——因为作者通常不会进行两次编码(一次使用 H.264,一次使用 WebM),而是会编写 Flash 回退在一个嵌套在 <video> 标记内的 <object> 标记中。以下是从 Opera 开发人员文档改编的一个示例
<video controls poster="video.jpg" width="854" height="480"> <source src="video.mp4" type="video/mp4"> <object type="application/x-shockwave-flash" data="player.swf" width="854" height="504"> <param name="allowfullscreen" value="true"> <param name="allowscriptaccess" value="always"> <param name="flashvars" value="file=video.mp4"> <!--[if IE]><param name="movie" value="player.swf"><![endif]--> <img src="video.jpg" width="854" height="480" alt="Video"> <p>Your browser can't play HTML5 video. </object> </video>
Opera 文档通过包含以下内容很好地坚持了不受限制的视频火炬
<source src="video.webm" type="video/webm">
在 <video> 容器中的第一个 <source> 子元素之后(在第一个之后,由于 iOS WebKit 的错误,Opera 文档中提到),但大多数作者不会进行两次编码并托管其视频的两个版本(是的,这样做的人值得称赞;请不要用评论轰炸我的博客,你不是典型的用户——YouTube 既不是典型的,也没有完全转码[1])。
当然,最终的回退内容可以是下载视频并在辅助应用程序中查看的链接,但这并不是“HTML5 视频”,而且对用户不友好(在移动设备上尤其如此)。Flash 回退确实设法与 HTML5 融合在一起,但失去了 DHTML 播放控件提供的表达能力。
现在,仔细考虑一下我们今天所处的位置。
Firefox 仅支持 Gecko 的 <video> 实现中的不受限制的格式。我们依赖作者始终编写的 Flash 回退,如上所示。请记住这一点:我们,Mozilla,依靠 Flash 为 Firefox 用户实现 H.264。
Adobe 宣布将不再开发移动设备上的 Flash。
尽管 2011 年初的谷歌博客文章中提到了这一点,但桌面版 Chrome 仍然支持来自 <video> 的 H.264。即使它要放弃这种支持,桌面版 Chrome 也有一个自定义 修补的 Flash 嵌入,因此上面显示的回退对于几乎所有用户都适用。
移动至关重要
Android 股票浏览器(所有 Android 版本)以及 Android 4 上的 Chrome 均支持来自 <video> 的 H.264。鉴于 Android 在其存在期间所针对的设备,其中 H.264 硬件解码是迄今为止最省电的解码方式,这怎么可能不是这样呢?谷歌必须在移动领域与苹果竞争。
史蒂夫·乔布斯可能对移动设备上的 Flash 发出了致命一击,但他还支持并投资了 H.264,并断言“所有视频编解码器都受专利保护”。苹果销售大量支持 H.264 的硬件。这些硬件总体上,尤其是在视频播放质量方面,是黄金标准。
在我看来,谷歌今年或明年不会发布无法播放苹果完美播放的 H.264 内容的移动浏览器。无论从长远来看会发生什么,Mozilla 都不能等待这样的事件。不要问谷歌为什么他们购买了 On2,但没有推动 WebM 排除 Android 上的 H.264。这个问题不言而喻。
因此,即使桌面版 Chrome 放弃了对 H.264 的支持,Chrome 用户几乎也意识不到,这要归功于 Flash 回退。而苹果和谷歌,以及微软以及其他可能试图获得移动市场份额的公司,将继续在其所有移动操作系统和设备上提供 H.264 支持——硬件实现的 H.264,因为与替代解码器相比,它使用的电池要少得多。
这是一张来自MeFeedia的 Web 上 HTML5 内容中 H.264 视频的图表。
以下是一些图表,显示了移动设备在桌面设备上的兴起,来自《经济学人》
这些图表显示了贝尔的计算机类别定律的作用。贝尔定律预测,新型计算机设备类别将取代旧设备。
面对这种转变,Mozilla 必须推进其使命,将用户置于所有其他议程之上,并保持 Web(包括“移动 Web”)的开放性、互操作性和发展。
Mozilla 正在做什么
我们已成功推出Boot to Gecko(B2G),并且我们正在准备发布一个全新改进的 Firefox for Android,以将我们的使命传递给移动用户。
我们应该如何处理 H.264?
Andreas Gal 提议在 Android 和 B2G 上使用基于操作系统和硬件的 H.264 解码功能。该主题已产生了超过 240 条消息,并引发了一些在线媒体报道。
有些人说我们应该坚持更长时间,等待某人(谷歌?Adobe?)更改某些内容以推动 WebM 超越 H.264。
请记住,仅在桌面版而非移动版上从 <video> 中删除 H.264 并不重要,因为有 Flash 回退。
其他人则表示,我们应该无限期地坚持下去,而不是集成受限制视频的操作系统解码器。
我听说有人责怪软件专利。我也讨厌软件专利,但软件甚至不是移动设备上的问题。相当专门的 DSP 硬件接收位并输出像素。H.264 解码现在完全存在于硬件中。
是的,一些硬件也支持 WebM 解码,或者很快就会支持。对于今年或(对于发货设备)明年部署和使用的 HTML5 <video> 来说,为时已晚。
正如我在新闻组主题中所写,Mozilla 从未忽视用户或市场份额。我们不仅仅关心市场份额,但忽略可用性和市场份额很容易导致灭亡。如果没有用户,我们的使命毫无意义,我们影响开放标准发展的能力将降至零。
显然,我们的原则禁止我们为了任何目的滥用用户(例如,通过在 Firefox 的用户界面中投放广告来赚钱以维持自身)。但我们从未拒绝过由插件处理的受限制格式,在我看来,依赖操作系统的 H.264 解码与依赖 Flash 的 H.264 解码在本质上没有区别。
我们不会要求任何人为 Firefox 付费。我们不会给我们的下游源代码再分发者带来版税负担。我们可能不得不继续在某些桌面操作系统上回退到 Flash。当我知道更多关于桌面版 H.264 的信息时,我会写更多内容,尤其是在 Windows XP 上。
我确切知道的是:现在绝对需要 H.264 才能在移动领域竞争。我不相信我们可以在 Android 或 B2G 上的 Firefox 中拒绝 H.264 内容并能在向移动设备的转变中幸存下来。
失败的经历是痛苦的。我不会粉饰这颗药丸。但如果我们要在我们的移动计划中取得成功,我们必须吞下它。在移动领域失败很可能导致 Mozilla 走向衰落和无关紧要。因此我完全赞成 Andreas 的提议。
我们的使命仍在继续
我们的使命,即在 Web 上促进开放性、创新和机遇,比以往任何时候都更加重要。正如我在 2007 年 SXSW 上所说,它要求我们开发和推广不受限制的视频。我们输掉了一场战斗,但战争仍在继续。我们始终将首先推动开放、不受限制的标准。
特别是,我们必须努力保持WebRTC不受限制。Mozilla 和 Opera 也输掉了早些时候要求为 HTML5 <video> 指定不受限制的默认格式的争斗,但 WebRTC 是争取开放和不受限制的 Web 的长期战争中的一个新的前沿。
我们正在通过Broadway.js研究可下载的 JS 解码器,但充分利用 JS 中的并行和专用硬件进行省电解码还有很长的路要走。
我们能赢得这场持久战吗?我不知道我们是否会看到最终的胜利,但我们必须继续战斗。专利会过期(还记得LZW专利吗?)。它们可以被宣布无效。(Netscape 基于现有技术支付了费用来做到这一点,以应对某些令人讨厌的专利。)它们可以被绕过。专利法可以进行改革。
Mozilla 将长期存在。我们永远不会放弃,永远不会投降。
/be
[1] 关于 YouTube 上的 WebM 与 H.264 的一些要点
- 谷歌充其量只将大约一半的视频转码为 WebM。例如,此 YouTube 搜索“cat”得到约 180 万个结果,而相同的搜索WebM 视频得到 70.4 万个结果。
- YouTube 上的 WebM 仅适用于没有广告的视频,而在 YouTube 上,这类视频的数量正在减少。任何可以获利(即流行的)视频都有广告,因此以 H.264 的形式提供。
- 当您考虑移动设备时,所有这一切都变得无关紧要,因为移动设备上没有 Flash,而且目前还没有 WebM 硬件,以及苹果的市场领先地位。
144 条评论