因为工作的原因,用到了源自国外的opus开源库,opus相关的资料比较少,自己用了一段时间,把相关东西整理记录下
首先需要在opus官网上下载opus相关的源码资料
http://www.opus-codec.org/
在第二行downloads里面可以看到全部的源码下载
这里我们需要下载
opus-tools-0.1.9.tar.gz和opus-1.1.tar.gz
(如果是其余平台如Mips或Arm,需要添加 --host=(交叉编译链),在ARM和mips平台推荐使用--enable-fixed-point命令关闭浮点运算)
之前笔者犯了一个错误,就是直接用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文件便可以播放啦