opus官网:https://opus-codec.org

github:https://github.com/xiph/opus

opus简介

1
2
Opus 是一个完全开放、免版税、高度通用的音频编解码器。Opus 在互动方面无与伦比 通过互联网传输语音和音乐,但也用于存储和流式传输
应用。它被互联网工程任务组 (IETF) 标准化为 RFC 6716,它结合了 Skype 的 SILK 编解码器和 Xiph.Org 的 CELT 编解码器的技术;

下载opus

1
2
3
1.官网download页面找到Source code: opus-1.4.tar.gz,点击后自动下载
2.通过github的cmake页面内的指南:git clone https://gitlab.xiph.org/xiph/opus
(https://github.com/xiph/opus/tree/master/cmake)

编译opus

1
2
3
4
5
6
7
8
9
10
11
12
通过查看cmake内的编译介绍
1.cd opus
2.mkdir build
3.cd build
4.cmake .. -DCMAKE_TOOLCHAIN_FILE=/home/tyl/Android/Sdk/ndk/26.1.10909125/build/cmake/android.toolchain.cmake -DANDROID_ABI=arm64-v8a
//需要修改为本机的ndk路径,执行成功
5.make
//执行完成后在build目录中就会看到libopus.a
//如果需要so文件则需要进行配置 -DOPUS_BUILD_SHARED_LIBRARY=y
6.cmake .. -DCMAKE_TOOLCHAIN_FILE=/home/tyl/Android/Sdk/ndk/26.1.10909125/build/cmake/android.toolchain.cmake -DANDROID_ABI=arm64-v8a -DOPUS_BUILD_SHARED_LIBRARY=y
7.make
//执行完毕后build目录下可以看到libopus.so文件

自建编译脚本android.sh (自定义名字)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#!/bin/bash

# 每次编译删除原来的编译文件
rm build -rf
rm install -rf
# 创建临时编译目录,避免污染源文件
mkdir build
# 定义一个数组,存储架构类型,用来循环编译
ARCH_ARRAY=(armeabi-v7a arm64-v8a x86 x86_64)
mkdir install
cd build

for item in "${ARCH_ARRAY【@】}"; do
mkdir -p install/$item
echo "$item"
echo "$ANDROID_HOME"
rm * -rf
cmake .. \
-DCMAKE_TOOLCHAIN_FILE=${ANDROID_HOME}/ndk/26.1.10909125/build/cmake/android.toolchain.cmake \
-DANDROID_ABI=$item \
-DOPUS_BUILD_SHARED_LIBRARY=y
make -j8
mkdir -p ../install/$item
mv *.so ../install/$item/
done

# 拷贝头文件到安装目录
cp ../include -rf ../install