Opus codec

概览

Opus开源免专利费音频编解码器正式成为IETF标准(RFC6716)。Opus 主要是结合Skype 早期网路通话的SILK 语音编解码器与Xiph.org 的CELT 音乐编解码器而成,设计传输网络语音和音频流,可用于VOIP,视频会议、游戏内聊天等应用,其品质被认为优于现有的私有音频编解码器。Opus由 Xiph.Org、Mozilla、微软、Broadcom、Octasic和Google联合开发,现在Opus已经与G.711 编码同样被列入WebRTC (http://www.webrtc.org/)计划,一同实现令浏览器具有沟通能力的功能。


技术细节

Opus codec 被设计来处理大部分的交互式音频和视频包括,Voice over IP,网络会议,游戏中聊天,甚至远程音乐会。它可以在不同的网络带宽环境中自适应。目前的功能有:

  • Sampling rates from 8 to 48 kHz
  • Bit-rates from 6 kb/s 510 kb/s (*)
  • Support for both constant bit-rate (CBR) and variable bit-rate (VBR)
  • Audio bandwidth from narrowband to full-band (*)
  • Support for speech and music (*)
  • Support for mono and stereo (*)
  • Frame sizes from 2.5 ms to 60 ms (*)
  • Good loss robustness and packet loss concealment (PLC)
  • Floating point and fixed-point implementation
 



源码下载:

最新稳定版本:(2012.12)

libopus 1.0.2



  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Opus是一种高效的音频编解码器,它支持多种采样率,帧大小和比特率。对于Java开发人员而言,可以使用Java wrapper库jopus来进行Opus编解码。下面是一个简单的示例,展示如何使用jopus库进行Opus解码: ```java import java.nio.ByteBuffer; import com.ibm.media.codec.audio.AudioCodec; public class OpusDecoder { private AudioCodec codec; private ByteBuffer outBuf; public OpusDecoder() { codec = new AudioCodec(); codec.setInputFormat(AudioCodec.getLinearAudioFormat(48000, 16, 2)); codec.setOutputFormat(AudioCodec.getLinearAudioFormat(48000, 16, 2)); codec.open(); outBuf = ByteBuffer.allocate(4096); } public byte[] decode(byte[] input) { ByteBuffer inBuf = ByteBuffer.wrap(input); outBuf.clear(); codec.process(inBuf, outBuf); byte[] output = new byte[outBuf.position()]; outBuf.flip(); outBuf.get(output); return output; } public void close() { codec.close(); } } ``` 在上面的示例中,我们使用了com.ibm.media.codec.audio.AudioCodec类来进行Opus解码。在构造函数中,我们打开了编解码器并设置了输入和输出的音频格式。在decode()方法中,我们将输入数据包装在ByteBuffer中,然后使用编解码器进行解码,并将解码后的数据放入一个ByteBuffer中。最后,我们将解码后的数据从ByteBuffer中提取出来,并返回一个字节数组。在close()方法中,我们关闭了编解码器。 需要注意的是,在使用jopus库进行Opus解码时,需要先将Opus数据解包成多个Opus帧,然后逐帧进行解码。另外,因为Opus解码后的数据是PCM格式的,因此需要使用其他库或API将PCM数据转换为适合播放或存储的音频格式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值