某日,我正在练习Java,试图用新学的Swing技术模拟PVZ。结果连音乐也播放不了!游戏所有音乐/音效都用后缀“.ogg”的文件保存 ---- 而JDK原生库只支持wav、aiff等。本想找个第三方音乐库草草了事,却怀着好奇心,想挖掘这个文件后缀的前世今生。
本文为全网首发Xiph基金会中文详细介绍。多多包涵,疏漏请指出,感谢你的支持!
【原作者:神武竹 • 未经允许,禁止转载】
Xiph.Org基金会是一个非盈利性的公司,成立于1994年位于美国马萨诸塞州萨默维尔市。Xiph维护众多开源多媒体项目,旨在保护互联网多媒体的基础(即音视频标准)免受私人利益集团(公司)的控制,使 互联网多媒体标准 公共化。它 支持、开发、维护 免费开放的协议和软件 ,为公众、开发者和商业市场提供开源服务。
创始人 克里斯托弗·蒙哥马利(Christopher Montgomery 昵称蒙蒂Monty 网名xiphmont)生于1972年6月6日,马萨诸塞州理工学院电气工程和计算机科学学士、东京理工学院计算机工程硕士,自由开源主义者,原就职于Red Hat,2013年转至Mozilla(谋智)公司,2021年转业至Amazon亚马逊云科技。Ogg和Vorbis的主要开发人,以及Ghost、Thoera、Daala的维护者。
Monty摄于2010年
基金会的名称Xiph( /zif/ 或 /ksif/ )源自剑尾鱼(Xiphophorus):
LOGO就是一只鱼(Xiph Fish):
(新)
(旧)
Monty:“有特殊含义吗?没有,真的。其实也不太像剑尾鱼,反正用很久了”
(xiph fish 80年代疑似已存在)
Xiph包括它的开源社区:
xiph社区徽标
博客徽标(Xiph之星)
基金会人手不多,官方网站也年久失修,部分项目的徽标与名字来源已不可考了(更新:Xiph基金会早期项目的名称、徽标可以在【Xiph命名】页面找到,因文件变动原网站链接无效)
Xiph在国内名气几乎为0,众多搜索引擎上都没有详细中文介绍。大多是解释 Ogg/Opus/FLAC 时添一嘴。这些开源作品甚至比xiph自己还出名。只能从官网上找到Xiph的介绍:
Xiph.Org is about open source and the ideals for which free software stands.
Xiph基金会关乎 开源 与 自由软件所代表的理想。
Xiph基金会致力于打造开放标准、开发开源软件,所有项目均为完全开源免费,开放协议不是GNU、GPL就是BSD。
Xiph与其他开源公司不同之处在于:专攻多媒体音视频领域,与闭源商业软件抗争。
早期OggSquish徽标
Ogg是一种流式容器格式。提供了对流式数据进行分割、存储、排列、按时间顺序查找 以及检查数据丢失的框架,可以混合多个数据流即多路复用。
“Ogg”源于上世纪 世界第三款网络游戏 Netrek(没准会在第二篇文章里侃侃 文章已新鲜出炉)的梗:“Oh, it's Ogging!”。“OGG”和“ogg”严格意义上都是错误的。
Ogg亦指代Xiph的第一个大型项目,此项目旨在建立完整的开源多媒体规范(包括音视频及一切附属规范)。
参见《Ogg格式》。
vorbis徽标 Many-fish (好多鱼)
Vorbis 是一种通用有损压缩音频格式。适用于中高质量(8kHz-48.0kHz,16+ 位PCM)音频,使用可变/平均比特率,范围从16至128kbps/通道。Vorbis在中高比特率 >可能< 比AAC还略胜一筹(128kbps最佳),支持多通道(目前标准最高为7.1环绕立体声,Vorbis预留了256个声道)。Vorbis定点解码器叫做Tremor(震颤)。
Vorbis 与 Ogg 、 Theora 共同特点是都采取向前兼容设计。任何老版本的文件都可以由新版解码器正常解析,而且为将来可能的改进留下充足空间。然鹅Vorbis规格 2 再未更新。如今,Xiph打算用更强的Opus代替所有有损音频格式。
算法方面主要采用了MDCT、矢量量化VQ、哈夫曼编码、FFT等,屏蔽了人耳不可见的声音,提高压缩率。
Vorbis有个反常的设计:它将解码必需的信息(码本、基底、残差)全部放在头部,没有任何类似mp3的静态概率模型。换句话说,见不到头部,后面的数据直接废了。其实无伤大雅,但招来不少非议。
Vorbis设计了【Vorbis注释】存储音乐的基本信息(作者、演奏者、时长等),这套设计被一字不改套在了FLAC和Opus、Theora、Kate上。
FLAC徽标
FLAC即Free Lossless Audio Codec。FLAC是目前最快、支持最广泛的无损音频格式,也是唯一一个开源无专利的无损音频格式。它和 Opus 应该是Xiph最出色的作品。
FLAC原为Josh Coalson发起的项目,后FLAC组织并入Xiph基金会。
FLAC只使用整数运算,不同于APE无损压缩格式的浮点运算,在计算速度上远超APE;压缩率略低;APE文件一旦有一处损坏整个作废,而FLAC有高容错率;而FLAC作为开源项目,还获得了巨大的市场支持,被认为是最优秀的无损压缩格式。
Opus徽标
Opus是一款高度通用的有损音频编解码器。
Opus特点是编解码极快、延迟极低,适用于网络的交互式语音和音频传输;音频质量又非常可观,可作为通用音频使用。
Opus原为两个项目:Skype公司的SILK(偏向语音)和Xiph的CELT(偏向低延迟)。两家公司都大力支持互联网基础设施开源。于是互联网工程任务组(IETF)将两个技术集成为Opus,由两家合作开发。CELT技术原为Ghost项目(已废弃)的继承者。
Opus得到了Google老哥WebM的大力支持,Xiph计划用它替代所有有损音频格式:包括Vorbis、Speex、mp3(这老东西还有人在乎?)、AAC,可谓野心勃勃了。
Opus采用CELT(继承自Vorbis的MDCT技术)和SILK(Skype的LP线性预测技术)混合。8kHz以下(语音)用LP,8~20kHz的声音用MDCT,强强联手无缝切换,不仅音质极高,而且适用范围广,即“高度通用”。
Speex是紧随Vorbis后Xiph开发的第二个有损压缩音频格式。Vorbis在中高码率时优势明显,Speex为了补充Vorbis,专攻低码率语音,适用于视频通话、游戏聊天、有声读物等。
后来Xiph研发CELT技术改进Speex(Speex已使用CELT技术),最后CELT成了Opus。Opus如此高级耀眼,Speex自然中道崩殂,2013年便“不建议使用”。
在Ogg容器里存储未经压缩的原始PCM数据。
其本身不是一种格式,只是将PCM数据映射到Ogg流的一项规范。也并非Xiph官方开发的,是社区的作品。
夭折。原本Xiph单独开发Daala,后来Xiph与Mozilla合作,Mozilla为Xiph提供资金支持。在此基础上,Daala主要开发者被Mozilla雇佣,成立了Daala视频项目。又是后来,Mozilla开发视频格式AV1时将Daala滤波器技术融合到其CDEF技术中,2020年Mozilla大裁员,Daala项目被砍。Monty转职后不再谈起Daala。
Daala徽标
(BBC曾开发一种视频格式Dirac支持Ogg容器,已没落)
Theora是视频压缩技术。基于Ogg容器,技术继承On2的VP3解码器(On2将VP3源代码授权给Xiph,Xiph在VP3基础上研发Theora并开源;最初Theora和VP3几乎一模一样),一般配合Vorbis音频,低码率有优势。2004年问世,成为第一个挑战H.264格式的勇者,也是第一个画质上击败H.264的英雄。为后来出现的AV1、VP9做了开路先锋。
然而Theora到底拉垮,只有低码率时显出优势。市场上不能与H.264竞争,技术上又无法与后起之秀媲美。自2009年1.1版本后长期缺乏维护,被谷歌VP8完爆,Xiph便全力开发Daala去了。
2000~2002年开发的实验性视频格式,使用离散小波变换。得到On2的VP3源代码后,Thoera成为视频格式的焦点,Tarkin于2002年8月淘汰。
(字面意思,Xiph鱼开发的杂项)
CMML表示连续媒体标记语言,前身是Writ,基于XML。CMML对音视频 类似于 HTML对文本。CMML是框架,音视频是内容。
CMML是一个定时文本编解码器。它通过将时间段(所谓剪辑)划分来构建一个持续采样的数据文件,并为这些剪辑提供额外信息。这些信息类似HTML,本质上是音视频文件的文本表示。CMML允许对这些二进制文件进行文本搜索。
看不懂对不?其实CMML就是在原来的音乐、视频里根据具体时间插入信息(剪辑/文本等)。如3分20秒加一段字幕、5分10秒屏幕反转等等,只不过它是专为Ogg流设计的。
CMML适用于所有Ogg媒体格式,提供字幕和定时元数据。后来被Ogg Kate取代。
Annodex是CSIRO(英联邦科学工业研究组织,属澳大利亚)与Xiph合作开发的一种格式,基于Ogg容器,为音视频提供元数据。后来交由Annodex社区开发。CMML是Annodex的一部分。二者一同淘汰。
Kate是一个叠加编解码器,最初是为卡拉OK歌词设计的,通常在Ogg中复用。Kate不是Xiph官方开发的,是开源社区的作品。
文本、图像可由Kate流携带并显示。它常与音视频混合,携带字幕、歌曲歌词等。
文本可附加属性(位置、字体等),以创建动画叠加。例如定义滚动/褪色文本。这类属性甚至可用于绘制任意形状,因此绘画也可以由Kate流携带并显示。
XSPF是一种XML播放列表格式,JSPF是一种JSON播放列表格式。用来承载媒体信息。
Icecast是一个流媒体音视频服务器软件,支持Ogg(Vorbis/Theora)、Opus、WebM和MP3格式。可用于建立广播电台或个人点唱机,及其他通用流媒体服务器,而且能容易地添加新媒体格式。源客户端软件为IceS。
Icecast由Xiph.Org与Icecast集团支持,Icecast集团已并入Xiph基金会。Icecast直译过来为“冰铸”,霸气有木有!
以上一系列 标准/规格、编解码器、代码库、软件 中,Xiph目前只专注于FLAC、Opus、Icecast。
Xiph认为,开源与闭源、社区与公司 都促进着互联网的进步与发展,都是道德的、合理的。
然而,互联网是为公众服务的,是自由、开放、合作的。闭源本质上为大公司服务。如微软、IBM、Thomson(指名道姓,勇气可嘉)的大公司追逐利润,通过控制数字专利等方式打压开源社区,并互相对抗、形成垄断,利用公众的互联网,侵占公众的利益。
尤其罪恶的是控制互联网的基础设施。如果大公司控制着 HTTP协议 甚至 TCP/IP协议 的专利,今天你能上网吗?公司只在乎利益,但互联网不因公司的利益而进步。
至于为何专注于多媒体,Monty的解释:
Music isn't an art, it's an industry.
音乐已不再是艺术,而是行业。
从20世纪开始,唱片界进入资本垄断时代。唱片公司拼命控制音乐,从分发到复制 ---- 当然不是为音乐家的利益,他们甚至试图把不遵守“规则”的音乐家统统挤出市场,剥夺其创作权利。1909年美国国会修改了版权法,保护音乐家的利益,遭到唱片公司的强烈反对。引用Monty的一句话:
The copyright protects the record label, not the artist.
所谓版权,保护的是唱片公司,不是音乐家。
一开始的唱片公司试图修改法律使唱片不属于版权范畴,如此一来卖出亿万唱片却不需要付给音乐家一分版税。当时个人难以复制唱片,所以他们很容易控制音乐的传播:你只能掏钱买他们的。随着互联网的兴起,从唱片到光盘,磁带到计算机文件,复制音乐越来越简单,唱片帝国崩溃了。取而代之的是另一个帝国:数字专利。
直接关系到Xiph诞生的便是臭名昭著的 mp3版权事件。
Thomson(汤姆逊)公司和Fraunhofer研究院控制着MPEG 3 中 音频格式(即mp3格式)的专利。当mp3已成为世界通用的音乐格式后,1998年9月,Fraunhofer研究院向多名MP3开发者寄信,声称他们的产品触犯了专利权。并宣布:
一切MP3格式的 编/解码器 必须得到Thomson公司和Fraunhofer研究院的授权。每个用mp3制作音乐的作曲家必须交纳专利金,音乐公司的每首mp3格式音乐被播放一次要交纳1%的版税。
从此各类民间mp3播放器绝迹(20世纪初我国毕竟盗版mp3播放器横行,无人在意),也导致了 mp3 和 Thomson 声名狼藉。刺激了Xiph的Ogg Vorbis、微软的Windows Media相继推出。
过去的唱片公司 和 今日的互联网音乐公司,一个避开版权,一个利用版权。但在追逐利润、剥削音乐家方面,半斤八两。
Xiph希望用开源标准和开放规格,让互联网的基础设施开放、免费化,保证互联网始终为公众服务,而非由公司左右一切。Xiph选择了开源音视频,因为此处尚无开源软件涉足。
Monty相信:程序员或许可以改变世界,改变互联网的现状。
个人理解,基于【Xiph基金会官网介绍】
2010年,mp3的专利就过期了。而 mp3 专利事件催生出的Xiph至今不为国内熟知,尽管在国外开源平台上它深受欢迎。大部分数字音乐用户最多在乎一下音乐公司(比如我们只在乎QQ还是酷我、网易云?),毫不在意音频数字专利问题,只有数字音乐爱好者才会去认真钻研音频格式。Ogg Vorbis背后的Xiph就更不为人知了。
Xiph并非毫无作为,最负盛名的 Ogg Vorbis 作为多媒体领域开源向闭源下的第一封战书,其质量之高不仅得到了大量电台广播的青睐(美国加州大学广播、英国BBC广播等),而且众多游戏大作的音乐、音效里依然有Ogg的身影(如Minecraft,植物大战僵尸,侠盗猎车手,雷神之锤4,文明V等);FLAC更是无损音频的巅峰;Opus得到Google一臂之力,也是如日中天。
Xiph创始人Monty的演讲词最令我震撼:很难想象在上世纪末,一个资本主义高度发达的国家,竟然诞生出如此政治化、如此批判性的开源宣言。
Monty本人长期打工,开始在Red Hat,后转到Mozilla开发Dalaa,抽不出身管理基金会。2020年Mozilla裁员,有人愤愤不平认为Mozilla太不厚道,Monty表示 “这与Mozilla无关,我很解脱,我可以摆脱Daala开始新的工作了” “我绝不后悔。Mozilla在10年里给这个永远资产负债的基金会如此丰厚的报酬,才使得Xiph仍然存在。” “感谢各位的慰问,Xiph很好,愿开源多媒体坚持到底。” 然后转至亚马逊,目前只能在推特上找到他最近的踪迹。
他的新个人博客网站 “将” 是montylab.com。今年5月13日Monty不幸感染新冠,已痊愈。
彩蛋:Monty爱吃川菜酸辣汤;Monty的中国朋友老以为他叫“Monkey”;他的名字比较常见,经常因为重名而头疼;喜欢养鱼,尤其是剑尾鱼(现在你知道Xiph名称怎么来的了)。
由于公益性质,Xiph基金会2002年就因资金短缺隐匿一时,二十年过去了,终究因为开源性质,Xiph发展极为缓慢。
Ogg20年未更新;Ogg Skeleton 4规格完成于2012年,版本3代码居然2015年才完成;Ogg Index于2014年失去消息;Theora直接抛弃;官网网页链接失效、更新迟缓;上一个官方视频在2013年;最后新闻是2019年Monty在挪威演讲;只有FLAC、Opus、Icecast的更新不停,剩下的可想而知……
或许Xiph注定是一个开源理想,或许是垄断趋势下的昙花一现,即使它在开源领域也不为我们熟知,但它依然是多媒体开源的里程碑,它所代表的开源精神依然值得 每个听数字音乐的人 脱帽
本文参考资料:
【Xiph基金会官方网站】主要页面:关于、新闻。
【Xiph基金会Wiki百科】主页 主要页面:成员名单、每月议会
【Xiph基金会邮件列表】Xiph的公开邮箱,里面有更详细的开发日记。
【关于OGG ACC MP3的质量问题 - 知乎】
【部分图片来源于网络】
• 如果你希望为Xiph基金会提供支持,可以前往他们的【捐赠】页面。(PayPal 备好!: ) );或者你是大佬程序员 & 资金缺乏,去【悬赏】看看,支持Xiph顺便赚些外快。
• 想学习代码或者支持Xiph开发,前往【gitlab代码库】
• 想在中网宣传Xiph及其作品,去【翻译】帮他们翻译网站 / 技术文档。
【原作者:神武竹 • 未经允许,禁止转载】
<更新记录:2022-8-23>