首页 HTML5 Dive Into HTML5:Web 视频(续二)

Dive Into HTML5:Web 视频(续二)

0 1

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 播放。

我们用表格看得更清楚一些:

浏览器支持的视频编解码器
编解码器/容器IEFirefoxSafariChromeOperaiPhoneAndroid
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,用户也将很快升级到这些新版本。

新版本浏览器支持的视频编解码器
编解码器/容器IEFirefoxSafariChromeOperaiPhoneAndroid
Theora+Vorbis+Ogg-3.5+**5.0+10.5+--
H.264+AAC+MP49.0+-3.0+--3.0+2.0+
WebM9.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 浏览器都支持的。并且在可以预见的将来,也不会有这么一种格式。为了让你的视频能够让所有这些设备和平台都可以播放,你必须放上视频的多种编码版本才行。

为了获得最大的兼容性,你应该这么做:

  1. 一个使用 WebM(VP8 + Vorbis)的版本
  2. 一个 MP4 版本,使用 H.264 baseline 视频和 AAC“low complexity”音频
  3. 一个 Ogg 版本,使用 Theora 视频和 Vorbis 音频
  4. 将上面三个视频文件放到一个 <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 中的程序)都得付费。

发表评论

关于我

devbean

devbean

豆子,生于山东,定居南京。毕业于山东大学软件工程专业。软件工程师,主要关注于 Qt、Angular 等界面技术。

主题 Salodad 由 PenciDesign 提供 | 静态文件存储由又拍云存储提供 | 苏ICP备13027999号-2