因为工作的原因,用到了源自国外的opus开源库,opus相关的资料比较少,自己用了一段时间,把相关东西整理记录下

首先需要在opus官网上下载opus相关的源码资料

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

在第二行downloads里面可以看到全部的源码下载




这里我们需要下载

opus-tools-0.1.9.tar.gzopus-1.1.tar.gz

下载后可以在ubuntu里解压

然后

./configure

(如果是其余平台如Mips或Arm,需要添加 --host=(交叉编译链),在ARM和mips平台推荐使用--enable-fixed-point命令关闭浮点运算)

然后 make && make install

之后,会出现一堆供测试用的可执行文件

opus开源库使用

之前笔者犯了一个错误,就是直接用opus_demo文件对MP3和wav格式的音频进行编码,结果导致出错

在README里面我们可以看到


input and output are little-endian signed 16-bit PCM files or opus
bitstreams with simple opus_demo proprietary framing.


所以更换了pcm格式的文件,我们便可以进行编码

编码的命令为:

./opus_demo -e voip 48000 2 128000 xxx.pcm xxx.opus

之后便生成你参数指定的opus文件

其中-e指的事编码,voip是编码格式,还有audio和restricted-lowdelay两种格式,48000是采样率,2是指双通道,128000是比特率,随后是输入文件和输出文件

这些输入./opus_demo --help都会有提示

随后我们可以对生成的opus文件解码

./opus_demo -d 48000 2 128000 xxx.opus xxx.pcm

之后会解码生成pcm文件

我们可以将编解码前后的文件波形进行对比

源文件波形

编解码后波形


效果还是相当可喜的

当然,如果想直接将wav,flac格式的音频文件,编码成可播放的opus文件

需要使用opus_tools

同样是./configure make && install之后

然后使用

./opus_enc xxx.wav xxx.opus命令

生成的opus文件便可以播放啦

相关文章: