1.参考PJSIP G.729的支持,依赖于bcg729库。也可以使用bcg729
android编译bcg729库:
git clone git://git.linphone.org/bcg729.git
cd bcg729
cmake -DDEBUG=ON -DCMAKE_TOOLCHAIN_FILE=/opt/ffandroid/android-ndk-r15c/build/cmake/android.toolchain.cmake -DCMAKE_INSTALL_PREFIX=./androidlib -DANDROID_NDK=/opt/ffandroid/android-ndk-r15c -DANDROID_ABI=arm64-v8a -DANDROID_TOOLCHAIN=clang -DANDROID_PLATFORM=android-26 -DANDROID_STL=c++_shared
make
make install
需要自己修改参数
window编译:
git clone git@gitlab.linphone.org:BC/public/linphone-sdk.git --recursive
接着按照readme.txt去安装环境编译就好了
2.导入baresip环境
android的编译参考
https://blog.csdn.net/Java_lilin/article/details/99450195
win的编译参考
https://blog.csdn.net/Java_lilin/article/details/102776890
准备好环境之后就可以注册729编码了 在项目中导入so 或者lib、dll
自己实现一个模块来编解码729 参考726或者7221编码来写
主要实现
static struct g729_aucodec g729 = {
.ac = {
.name = "G729", .
srate = 8000,
.crate = 8000,
.ch = 1,
.pch = 1,
.encupdh = gg729_encode_update,
.ench = g729_encode,
.decupdh = g729_decode_update, .dech = g729_decode, .fmtp_ench = g729_fmtp_enc,
.fmtp_cmph = g729_fmtp_cmp, },
.bitrate = 8000,
};
aucodec_register(baresip_aucodecl(), (struct aucodec *)&g729);
将其改成729就可以了
如果你自己实现起来麻烦可以 https://item.taobao.com/item.htm?id=609454953644
交流群:261074724