为什么 2013 年之前的 Firefox 不支持 MP3 文件格式?
在解释文章之前,您应该知道 Firefox从 2013 年开始支持 MP3 和 H.264 ,从Firefox-22开始。
2008 年, HTML5的第一版面世。这个版本的 HTML 首次实现了和元素。这启用了浏览器内的本地音频和视频播放。在此之前,必须使用 Adobe Flash 等第三方插件来播放音频或视频,尽管它仍然是不支持原生播放的浏览器的一个选项。随着浏览器支持音频或视频播放的出现,每个浏览器支持的代码也存在差异。
在继续之前,需要简要介绍容器格式和编解码器的背景故事。
- 容器格式:简单来说,容器格式就是将所有媒体内容打包成一个文件(文件扩展名通常对应于容器),例如MPEG-4 、 AVI 、 Flash Video 、 Ogg等。每个容器格式大多包含相应的视频和音频编解码器。
- 编解码器:编解码器(coder-decoder)用于压缩媒体文件,主要是为了提高效率和减小大小。这里要讨论的两种重要的容器格式是MPEG-4和Ogg 。
- MPEG-4:它是目前最流行的标准,在世界范围内普遍使用。此容器格式与H.264视频编解码器和MP3音频编解码器相关联。由于这里的上下文是音频,所以让我们关注 MP3。 MP3 由 MPEG(Moving Picture Experts Group)开发,并已获得专利保护。这意味着实现此编解码器的算法已获得专利,因此任何想要使用此编解码器的人都必须向 MPEG LA(MPEG 编解码器的许可代理公司)支付许可费。这就是为什么任何开箱即用的 Linux 系统都与 MP3 播放不兼容的原因。
- Ogg:它是一种开放标准、对开源友好且不受专利限制的容器格式。它的视频编解码器称为Theora ,音频编解码器称为Vorbis 。所有主要的 Linux 发行版都开箱即用地支持 Ogg。
Mozilla 不支持 MP3 的时间段和原因: Youtube和Vimeo于 2010 年宣布将支持HTML5的新音频和视频元素,并为其视频采用H.264 编解码器。随后,更多的公司也开始广泛采用MPEG-4 。 Mozilla 过去反对在其浏览器上支持MPEG-4格式,主要是因为它是一种专利软件,专利软件带来了很多限制、安全性,最重要的是有形的许可费。 2010 年 H.264 的年授权费为 500 万美元。 Google Chrome 和 Safari 当时支持MPEG-4格式。 Mozilla 认为,许可费不仅影响浏览器开发商和分销商,而且对希望制作音频或视频内容的普通用户也起到了收费站的作用。因此,如果MPEG-4格式变得标准化,Mozilla 认为这将在开发社区中构成障碍,从而削弱新开发人员的动力,因为他们在开始使用带有价格标签的东西时会犹豫不决。 Mozilla 没有明显的方式根据涵盖其技术的其他用户(例如 Linux 分销商)的条款来许可H.264或MP3 。他们希望网络体验对世界各地的每个人来说都是无私的和负担得起的。
如果操作系统支持这些格式,也有可能通过底层操作系统而不是浏览器本身来支持这些格式。这是 Firefox 可以支持MPEG-4的一种间接方式,而无需承担任务本身。但 Mozilla 引用了不这样做的安全原因,他们表示这可能会导致“任意编解码器暴露于恶意内容”。
Mozilla 上 MP3 的支持期:然而,从 2013 年他们的一个夜间版本开始,Firefox 开始支持MP3和H.264 ,并且一直如此。这发生在一种名为 WebM 的新格式出现之后。最初, H.264有一个条款,它只能在 2015 年之前免版税用于免费广播。但在 2010 年,谷歌提出了 WebM 并使其成为开源和终身免版税。对此,MPEG LA 也将免费视频广播的免版税条款延长至终生期限。尽管如此,Mozilla 认为 WebM 的竞争很好,会增加人气和使用率,并且最终会让H.264消失。但结果恰恰相反, WebM从未出现过,而H.264正变得更加广泛采用。因此 Mozilla 最终屈服于支持H.264 。
注意:任何提及 H.264 的内容还包括 MP3 编解码器,因为它们几乎总是作为打包交易一起实施和使用。