Firefox Beta 15 支持新的 Opus 音频格式


Firefox Beta logo

Firefox 15(现在在 Beta 频道)通过 Opus 参考实现 支持 Opus 音频格式

什么是 Opus?

Opus 是一种完全免费的音频格式,最近被 IETF 批准作为标准跟踪 RFC 发布。Opus 文件现在可以在 Firefox Beta 中播放。


Opus audio codec logo

Opus 提供以下优势:

  • 比 MP3、Ogg 或 AAC 格式压缩率更高
  • 适用于音乐和语音
  • 动态可调比特率、音频带宽和编码延迟
  • 支持交互式和预先录制应用程序

为什么我应该关心?

首先,Opus 是自由软件,对所有人免费,可用于任何目的。它也是一个 IETF 标准。编码器和解码器都是免费的,包括定点实现(适用于移动设备)。这些不是玩具演示。它们是我们所能做到的最好,已准备好投入实际应用

我们认为 Opus 是一种适用于 Web 音频的令人难以置信的新格式。我们正在努力说服其他浏览器采用它,以 打破对通用 <audio> 格式的僵局

该编解码器是由 IETF 互联网宽带音频编解码器工作组 的成员合作开发的,包括 Mozilla、微软、Xiph.Org、博通、Octasic 等。

我们 设计它 用于高质量、交互式音频(VoIP、电话会议),并将它用于即将发布的 WebRTC 标准。Opus 也是同类最佳,适用于实时流媒体和静态文件播放。事实上,它是第一个既适合交互式应用程序,又适合非交互式应用程序的音频编解码器。

Opus 与或优于基本上所有现有的有损音频编解码器,与它们在各自的最佳应用场景中竞争,包括:

通用音频编解码器(高延迟、高质量)
  • MP3
  • AAC(所有版本)
  • Vorbis
语音编解码器(低延迟、低质量)
  • G.729
  • AMR-NB
  • AMR-WB (G.722.2)
  • Speex
  • iSAC
  • iLBC
  • G.722.1(所有变体)
  • G.719

而且没有一个编解码器具有支持 Opus 所有用例的通用性。

听力测试表明:

节省了大量带宽。它也更灵活。

Opus 可以流式传输:

  • 窄带语音,比特率低至 6 kbps
  • 全频音乐,每个频道的比特率为 256 kbps

在更高的比特率下,它是感知无损的。它还在这些极端之间动态缩放,具体取决于可用的网络带宽。

Opus 特别擅长压缩语音。那些 相同的测试结果(幻灯片 19)显示,对于全频单声道语音,Opus 在 32 kbps 时几乎是透明的。对于有声读物和播客来说,这是一个真正的胜利。

Opus 也非常适合短文件(如游戏音效)和启动延迟,因为与 Vorbis 不同,它不需要在每个文件开始时使用几千字节的码本。这也使得流式传输更加容易,因为服务器不必保留额外的数据来发送给在流媒体过程中加入的客户端。相反,它可以发送一个动态构建的小型通用标头。

如何在网页中使用它?

Opus 与 <audio> 元素一起工作,就像其他任何音频格式一样。

例如:

 <audio src="ehren-paper_lights-64.opus" controls>

网页中的此代码将显示一个像这样的嵌入式播放器:

%CODEopusdemo%
Paper Lights 作者:Ehren Starks Creative Commons License

 
(需要 Firefox 15 或更高版本)

编码文件

目前,创建 Opus 文件的最佳方法是使用 opusenc 工具。你可以从以下位置获取源代码以及 Mac 和 Windows 二进制文件:

http://www.opus-codec.org/downloads/

虽然 Firefox 15 是第一个支持原生 Opus 的浏览器,但播放功能将很快添加到 gstreamerlibavcodecfoobar2000 和其他媒体播放器中。

流式传输

实时流媒体应用程序从 Opus 的灵活性中受益匪浅。你无需事先决定是想要低带宽还是高质量,是针对语音优化还是音乐优化等等。流媒体服务器可以根据条件调整编码,而不会中断流媒体到播放器。

预编码文件可以从正常的 Web 服务器流式传输。流行的 Icecast 流媒体服务器 可以将一个动态生成的单一实时 Opus 流媒体转发给数千个连接的监听器。Opus 受 当前开发版本的 Icecast 支持。

更多信息

要了解更多信息,请访问 opus-codec.org,或加入 irc.freenode.net 上的 #opus。

关于 Timothy B. Terriberry

Timothy B. Terriberry 是 Xiph.Org 基金会的长期志愿者,参与了 Theora、Vorbis、CELT 和 Opus 等编解码器的开发工作。他自 2008 年以来一直为 Mozilla 的媒体支持做出贡献,并自 2010 年以来一直在开发 WebRTC。

更多 Timothy B. Terriberry 的文章…


35 条评论

  1. Henri Sivonen

    “压缩率高于”……“Ogg” 应该改为“Vorbis”,而不是“Ogg”。

    2012 年 7 月 19 日 22:33

    1. Bernd

      “压缩率高于 […] Ogg […] 格式” - 在“Ogg 格式”家族中,还有一个 Speex 编解码器,它涵盖了 Opus 的一些用例。这句话只是没有明确提及 Vorbis。但 Vorbis 的家族名称可能更流行……

      2012 年 7 月 20 日 20:48

  2. Giuseppe Bilotta

    示例在 Opera 12 中完美运行。

    2012 年 7 月 20 日 00:05

    1. Style Thing

      真是个好消息!越多越好 ^^

      2012 年 7 月 20 日 09:41

    2. Bernd

      我无法在 Ubuntu 11.10 32 位上的 Opera 12.00.1467/Presto 2.10.289 或 12.50.1513/Presto 2.11.310 上重现;也听说过其他人无法重现。
      Opera.com 的官方网站上没有关于 Opus 编解码器的任何信息。

      2012 年 7 月 21 日 09:45

      1. Bernd

        err - 当然是指 gst-plugins-bad v0.10.23。

        2012 年 7 月 21 日 10:33

    3. Bernd

      现在我已经安装了 libopus 并修复了我的 GStreamer 安装,它对我也能正常运行了。

      所以,Opera 并没有内置支持;他们使用不同的外部后端,并支持他们所支持的一切,看来是这样的:http://my.opera.com/community/forums/topic.dml?id=1491802#comment12779922

      2012 年 7 月 24 日 06:30

  3. 匿名

    是否计划在视频容器中与 VP8 或类似格式一起支持 Opus 音频?是否有计划发布新的 WebM 版本?

    2012 年 7 月 20 日 15:49

    1. Bernd

      由于 WebM 的容器格式是 Matroska 的子集,因此我们首先需要 Matroska 支持 Opus。这正在进行中:http://googlecode.com/p/webm/issues/detail?id=453

      2012 年 7 月 20 日 20:21

  4. Jean-Marc Valin

    目前,我还没有听说过将 Opus 纳入 WebM 的计划,不过我们永远不知道未来会发生什么。从技术角度来看,即使 Opus 比 Vorbis 效率高 50%,在计算视频时,总体节省并不大。当然,当我们研究新标准时,Opus 确实很有意义。对于像 WebM 这样的东西,我认为转向 Opus 的主要原因是便利性,例如,如果有一种用例需要录制已经使用 VP8+Opus 编码的 WebRTC 视频。

    2012 年 7 月 20 日 下午 7:16

  5. Wolfgang

    时间戳:2012 年 7 月 21 日 下午 1:32:21
    警告:无法解码媒体资源 http://people.xiph.org/~giles/2012/opus/ehren-paper_lights-64.opus
    源文件:https://hacks.mozilla.ac.cn/2012/07/firefox-beta-15-supports-the-new-opus-audio-format/
    行号:0

    使用 Firefox 15.0b1 测试。

    2012 年 7 月 21 日 上午 4:33

  6. bubba

    我在 Debian testing 上运行 Opera 12.00.1467,音频剪辑播放正常。我已经安装了 base/good/bad/ugly/ffmpeg gstreamer 插件。

    2012 年 7 月 21 日 下午 2:02

  7. Wolfgang Keller

    不幸的是,来自
    http://people.xiph.org/~greg/opus_testvectors/opus_multichannel_examples/
    (链接自 http://www.opus-codec.org/docs/#testvectors)的多声道测试向量无法正常工作。请修复此错误。

    尽管如此,这仍然是一项很棒的工作。

    2012 年 7 月 21 日 下午 4:15

    1. Ralph Giles

      我们会修复这个错误。多声道支持计划在 Firefox 17 中实现,预计将在 12 月发布。Firefox 15 和 16 仅支持立体声和单声道文件。

      2012 年 7 月 25 日 下午 1:00

  8. PuX

    读完所有这些之后,我理解灵活性是这种新编解码器的强项,但是为什么有人会用它来流式传输音乐,而不是其他任何旨在让音乐听起来更好的有损编解码器?为什么不直接使用无损编解码器呢?

    2012 年 7 月 21 日 下午 6:07

    1. sear

      对于流式传输目的,在更低的比特率下获得更好的音质始终是好事。据我所知,HE-AAC 目前被认为是流式传输的黄金标准。这种编解码器超越了 HE-AAC 的说法真是个好消息!

      2012 年 7 月 22 日 下午 10:43

    2. Bernd

      有时人们需要满足各种比特率限制。对于互联网广播,你的服务器通常容量有限,所以使用 Opus 你可以服务更多的人。此外,用户有时使用的互联网线路无法处理 CD 音质的 FLAC 流。
      而且,在网络状况变化的情况下,你可以使用 Opus 灵活地适应。

      Opus 创造了许多新的可能性,对某些人来说,这些可能性在某些情况下非常有用。如果你喜欢 FLAC,就用它吧。如果你遇到上面描述的限制,你可能想记住 Opus ……

      2012 年 7 月 24 日 上午 7:08

      1. PuX

        我理解你的观点。我几乎忘了,有时互联网连接太差,无法处理 1000 kbps 的速率,而这足以支持普通的 CD 音质。所以,没错。如果这种编解码器可以有效地动态调整比特率,我理解为什么它很酷。

        2012 年 7 月 26 日 下午 4:47

        1. panzi

          你在哪个乌托邦生活才能拥有 1000 kbps 的连接?我们这里 250 kbps 已经是标准了。

          2012 年 9 月 11 日 下午 5:59

          1. Steve

            我的连接是 17 mbps。(标准 ADSL2+)。

            (也就是 2 mbps,2000 kbps)

            200 kbps 是 ISDN 时代的带宽。拨号上网是 56 kbps。

            我认为你把 K 和 k 混淆了。

            2012 年 9 月 12 日 下午 6:46

          2. Ouch

            你是说把 B 和 b 混淆了
            字节等于 8 比特,对吧?

            当你下载时,浏览器显示的是 KB/秒。当你播放时,播放器显示的是 Kb/秒,而当你选择互联网套餐时,他们显示的是 Kb/秒。

            为什么不统一一个标准?

            2012 年 11 月 13 日 下午 9:52

  9. austin

    http://imgs.xkcd.com/comics/standards.png
    读到这篇文章的时候,我想到的就是这个……

    2012 年 7 月 24 日 上午 7:01

    1. Bernd

      作者也想到了这一点。你注意到“打破僵局”后面的链接了吗?… ;-)

      2012 年 7 月 24 日 上午 7:12

      1. austin

        完全没注意到……

        2012 年 7 月 27 日 上午 8:10

  10. kizi

    真是个好消息!越多越好 ^^

    2012 年 7 月 26 日 下午 3:19

  11. Caspy7

    有没有计划在 Android 上添加支持?

    2012 年 8 月 2 日 下午 5:09

    1. Bernd

      我认为有:Rockbox 正在开发支持:http://www.rockbox.org/mail/archive/rockbox-dev-archive-2012-08/0007.shtml
      使用“Rockbox 作为应用程序”(RaaA,http://www.rockbox.org/wiki/RockboxAsAnApplication2010),你应该可以在 Android 上播放 Opus。

      2012 年 8 月 13 日 上午 8:46

      1. Caspy7

        我理解这一点,但这与在 Android 上获得原生支持并不完全相同。

        2012 年 8 月 13 日 上午 8:58

        1. pow

          至少通过 Wi-Fi,我可以在 Android 上的 Firefox Beta 上使用 Opus。我的 Android 版本是手机自带的姜饼。

          2012 年 8 月 26 日 下午 7:50

  12. pd

    尝试过编码器,非常快,在 256 CBR 时音质很好。它似乎也压缩得很好。我从一个 wav 文件(Radiohead 的 Morning Mr Magpie)获得了 82% 的压缩率,音质很棒。我自然地使用了 –music 配置文件。

    我还希望看到 Android 上的 Firefox 支持这种编解码器。也许 Aurora for mobile 已经支持了?

    2012 年 8 月 2 日 下午 9:33

    1. pow

      我在姜饼上的 Firefox Beta 上播放了文章中的 Opus 示例,可以正常播放。(通过 Wi-Fi 测试)。

      2012 年 8 月 26 日 下午 7:52

  13. sylock

    您好!

    我很好奇,有没有计划支持某种加密技术?我来解释原因。我使用 Deezer,因为它方便搜索音乐,而且我可以在任何地方快速收听。

    我听说 Deezer 更改了界面以适应 HTML5,除了音频流,音频流仍然使用 Flash,因为除了 Flash 之外,没有其他东西可以处理加密,从而“保证”音乐不会被复制。

    我真的很想看到其他东西替代 Flash 的这个功能,这样我就可以在没有安装 Flash 插件的情况下使用 Deezer。
    我说的是我的使用情况,但我认为我并不是唯一一个有这种需求的人。;)

    2012 年 9 月 4 日 上午 7:35

  14. Ralph Giles

    我们没有计划为媒体流实现内容加扰。这种技术主要用于限制用户操作,并创建锁定,这与我们的使命背道而驰。

    Mozilla 可能会实现 MediaSource API,或者类似的东西,这将允许网站实现自己的在线转换,控制缓冲,报告更准确的传输统计信息等等。

    http://dvcs.w3.org/hg/html-media/raw-file/tip/media-source/media-source.html

    2012 年 9 月 4 日 下午 1:01

  15. sylock

    所以,如果我理解正确,MediaSource API 是对当前 HTML5 视频和音频标签的一种扩展?

    2012 年 9 月 4 日 下午 10:31

    1. Ralph Giles

      没错。它是在视频和音频标签上添加的额外接口,让你可以从本地 Javascript 提供压缩数据流,而不是直接从你的服务器提供。有点像 ActionScript 中的 AppendBytes 方法。

      2012 年 9 月 11 日 下午 9:51

本文的评论已关闭。