Web 的表现
如果前面的描述还没有让你眼花缭乱,那么恭喜你,你的表现比大多数人都要好!正如你想的那样,视频(包括音频)很复杂,前面我们介绍的还只不过是一个简单的版本。我想,你一定想知道对于 HTML5 要如何解决这个问题。HTML5 引入了<video>
标签,用于在 web 页面嵌入视频。它并没有严格规定视频、音频的编解码器或者你所能使用的容器格式。一个<video>
元素可以连接到多个视频文件,浏览器则从中选择第一个它能播放的文件。这取决于你需要知道浏览器究竟能支持哪些容器或者编解码器。
当本文完成时,HTML5 的支持情况如下:
- Mozilla Firefox(3.5或更高版本)支持 Ogg 容器中的 Theora 视频和 Vorbis 音频。Firefox 4 还支持 WebM;
- Opera(10.5或更高版本)支持 Ogg 容器中的 Theora 视频和 Vorbis 音频。Opera 10.60 还能支持 WebM;
- Google Chrome(3.0或更高版本)支持 Ogg 容器中的 Theora 视频和 Vorbis 音频。Google Chrome 6.0 还支持 WebM;
- Mac 和 Windows PC 上的 Safari (3.0或更高版本)支持任何 QuickTime 支持的格式。理论上说,你需要要求用户安装第三方的 QuickTime 插件。实际上,只有很少用户会这么做。所以,你要注意那些 QuickTime 不支持的格式。这是一个长长的列表,但不包括 WebM、Theora、Vorbis 或者 Ogg 容器。但是,QuickTime 现在已经开始支持 MP4 容器的 H.264 视频(main 配置)和 AAC 音频;
- 手机,比如 Apple 的 iPhone 和 Google Android 支持 MP4 容器的 H.264 视频(baseline 配置)和 AAC 音频(“low complexity” 配置);
- Adobe Flash(9.0.60.184或更高版本)支持 MP4 容器的 H.264 视频(所有配置)和 AAC 音频(所有配置);
- Internet Explorer 9 支持 MP4 容器的所有配置的 H.264 视频和 AAC 或者 MP3 音频。如果你安装第三方编解码器,也可以播放 WebM 视频。不过这个插件不是 Windows 默认安装的。IE9 不支持其他第三方编解码器(不像 Safari,后者安装 QuickTime 插件之后可以播放很多格式);
- Internet Explorer 8 不支持 HTML5 视频,但是所有版本的 Internet Explorer 用户都可以使用 Adobe Flash 插件。在本节后面部分,我们将告诉大家如果让你的浏览器在不支持 HTML5 视频时自动选择使用 Flash 播放。
我们用表格看得更清楚一些:
浏览器支持的视频编解码器 | |||||||
编解码器/容器 | IE | Firefox | Safari | Chrome | Opera | iPhone | Android |
Theora+Vorbis+Ogg | - | 3.5+ | * | 5.0+ | 10.5+ | - | - |
H.264+AAC+MP4 | - | - | 3.0+ | 5.0-?** | - | 3.0+ | 2.0+ |
WebM | - | - | * | 5.0+ | 10.6+ | - | - |
* Safari 可以播放任何 QuickTime 能够播放的视频。QuickTime 默认支持 H.264/AAC/MP4;其它的比如 Theora 和 WebM 都需要安装另外的第三方插件。这些插件都要在 Safari 识别出这些视频之前安装完成。 | |||||||
** Google 声称要放弃 H.264 的支持。阅读这里了解原因。 |
从现在起一年之后,这张表格将大为不同。因为很多浏览器都会支持 WebM。这些浏览器将不再是实验性的支持 WebM,用户也将很快升级到这些新版本。
新版本浏览器支持的视频编解码器 | |||||||
编解码器/容器 | IE | Firefox | Safari | Chrome | Opera | iPhone | Android |
Theora+Vorbis+Ogg | - | 3.5+ | ** | 5.0+ | 10.5+ | - | - |
H.264+AAC+MP4 | 9.0+ | - | 3.0+ | - | - | 3.0+ | 2.0+ |
WebM | 9.0+* | 4.0+ | ** | 6.0+ | 10.6+ | - | 2.3+*** |
* IE9 安装 VP8 编解码器之后才能支持 WebM,这意味着 Microsoft 不会自己实现这个编解码器。 | |||||||
** Safari 可以播放任何 QuickTime 能够播放的视频。但是 QuickTime 默认仅支持 H.264/AAC/MP4。 | |||||||
*** 虽然 Android 2.3 支持 WebM,但是它并不是硬件解码,因此电池会耗得比较快。 |
注意:现在没有一种容器和编解码器的组合是所有 HTML5 浏览器都支持的。并且在可以预见的将来,也不会有这么一种格式。为了让你的视频能够让所有这些设备和平台都可以播放,你必须放上视频的多种编码版本才行。
为了获得最大的兼容性,你应该这么做:
- 一个使用 WebM(VP8 + Vorbis)的版本
- 一个 MP4 版本,使用 H.264 baseline 视频和 AAC“low complexity”音频
- 一个 Ogg 版本,使用 Theora 视频和 Vorbis 音频
- 将上面三个视频文件放到一个 <video> 标签,然后最后放一个基于 Flash 的播放器。
H.264 视频授权问题
在我们继续我们的内容之前,我需要再次强调你的视频编码的花费。你需要将你的视频做多次编码,其花费显然比仅编码一次要大得多。但是,还有另外一种花费,与 H.264 视频相关:授权费。
记得我第一次解释 H.264 视频的时候,我提到这种视频编解码器受专利保护,其授权由 MPEG LA 集团颁发。这是很重要的事情。为了了解为什么很重要,我们直接来看 H.264 的协议条款:
MPEG LA 将 H.264 协议分为两部分:一部分供编码器或解码器生产厂商,另一部分供分销商。……
对于分销商的授权再分成四个子类:其中两个取决于最终用户是否直接购买视频服务(订阅或直接由标题购买或转让);另外两个取决于薪酬是否来自其最终观看者(免费电视节目和互联网广播)。……
对于“免费”的电视许可费可在两个版税中进行选择。首先是为每一个 AVC 传输编码器一次性支付2500美元,这包括一个 AVC 解码器,“由被许可人在将AVC视频传输给最终用户的过程中使用”,所谓最终用户,就是解码和观看的人。如果你想知道这是否是重复收费,答案是肯定的:一个许可费已经被拆分为编码器制造商和广播机构,二者都将称为支付版税的两个选项之一。
第二个使用费是每年一度的广播费。 ...[T]转播费由每年收视率的大小决定:
- 每个自然年每个广播电视市场有 100,000 - 499,999 个用户,收费 2,500 美元;
- 每个自然年每个广播电视市场有 500,000 - 999,999 个用户,收费 5,000 美元;
- 每个自然年每个广播电视市场有 1,000,000 个以上的用户,收费 10,000 美元。
… 所有这些都关于“免费”电视,为什么要有人关心非广播分发?我前面提到过,专利费用适用于任何内容。我们所说的“免费”电视不仅仅包括“空中传播的”信号,MPEG LA 将互联网传播的,比如“通过万维网给无需支付费用即可观看的最终用户看的 AVC 视频”,也需要交纳专利费。换句话说,任何公共传播的,无论空中电波、有线、卫星或者因特网,都需要缴纳专利费。这些费用都是互联网潜在费用,互联网上的分发增长远远超过了 OTA 或者有线、卫星等“免费”电视。通过添加“免费电视”传播市场费,MPEG LA 授权了第一许可条款的各种优惠,这些已经在2010年12月31日到期。注意,“在第一许可条款之后,用户不应该超过同一时期可支付的免费电视的经济能力”。
有关因特网传播费用的部分已经被修改过了。MPEG-LA 最近宣布因特网流不需要付费。这并不意味着 H.264 对所有用户都免费。实际上,编码器(比如上传视频到 YouTube 的处理程序)和解码器(比如包含在 Microsoft Internet Explorer 9 中的程序)都得付费。