PjSip编译 for android

编译Openh264

参考git上的README

切换到openh264目录下

armeabi-v7a版本

make OS=android NDKROOT=$NDK_HOME TARGET=android-27

arm64-v8a版本

make -B OS=android NDKROOT=$NDK_HOME TARGET=android-27 ARCH=arm64 NDKLEVEL=21

编译完后在openh264目录下,头文件在/openh264/codec/api/svc目录下

make OS=android NDKROOT=/usr/local/Android/Sdk/ndk/android-ndk-r13b TARGET=android-24 NDKLEVEL=24 ARCH=arm APP_ABI=armeabi-v7a PREFIX=/home/fwy/pjsip/pjproject/openh264lib install-shared
APP_PLATFORM=android-17 TARGET_ABI=armeabi-v7a ./configure-android --use-ndk-cflags --disable-l16-codec --disable-gsm-codec --disable-ilbc-codec
export ANDROID_NDK_ROOT=/usr/local/Android/Sdk/ndk/android-ndk-r13b
export PATH=$ANDROID_NDK_ROOT:$PATH
APP_PLATFORM=android-24 TARGET_ABI=armeabi-v7a ./configure-android --use-ndk-cflags --disable-l16-codec --disable-gsm-codec --disable-ilbc-codec --with-openh264=/home/fwy/pjsip/pjproject/openh264lib

APP_PLATFORM=android-24 TARGET_ABI=armeabi-v7a ./configure-android --use-ndk-cflags --disable-l16-codec --disable-gsm-codec --disable-ilbc-codec --with-openh264=/home/fwy/pjsip/pjproject/openh264lib --with-bcg729=/home/fwy/pjsip/pjproject/g729

arm64-v8a

android编译bcg729库

参考PJSIP G.729的支持,依赖于bcg729库。也可以使用bcg729
android编译bcg729库:

git clone git://git.linphone.org/bcg729.git
cd bcg729
cmake -DDEBUG=ON -DCMAKE_TOOLCHAIN_FILE=/usr/local/Android/Sdk/ndk/android-ndk-r13b/build/cmake/android.toolchain.cmake -DCMAKE_INSTALL_PREFIX=./androidlib -DANDROID_NDK=/usr/local/Android/Sdk/ndk/android-ndk-r13b -DANDROID_ABI=armeabi-v7a -DANDROID_TOOLCHAIN=clang -DANDROID_PLATFORM=android-24 -DANDROID_STL=c++_shared
make 
make install
cmake -DDEBUG=ON -DCMAKE_INSTALL_PREFIX=./androidlib -DANDROID_NDK=/usr/local/Android/Sdk/ndk/android-ndk-r13b -DANDROID_ABI=armeabi-v7a -DANDROID_TOOLCHAIN=clang -DANDROID_PLATFORM=android-24 -DANDROID_STL=c++_shared

Support for G729 backend implementation from ​bcg729.

Requirement:

Source code to bcg729, (download ​here). 

Notes:

The source code of bcg729 is licensed under GPLv2. 

Below are the steps to use the codec:

For GNU targets:

Build the bcg729 library as specified by the their doc.
Run PJSIP's configure by specifying the location to bcg729 library using --with-bcg729 option. E.g.:

./configure --with-bcg=/home/user/opt

Make sure that the library is usable and correctly configured by looking at the configure output. The check is applicable for iOS and android build as well.

Using bcg729 prefix... /Users/riza/src/bcg729/ios
checking bcg729 usability... ok

For Visual Studio:

Build the bcg729 library using Visual Studio, by generating the project using cmake.
Add bcg729 include and library installation paths (folder that contains libbcg729.dll.a) to Visual Studio search path settings.
Add this to your config_site.h:

#define PJMEDIA_HAS_BCG729		1

For iOS:

Build the bcg729 library as specified by the their doc.
Run PJSIP's configure with --with-bcg729 option. E.g.:

./configure-iphone --with-bcg729=/Users/teluu/bcg729/iphone

Copy libbcg729.a to your XCode project directory. Create a folder ios_local/lib inside your XCode project directory (example: for our ipjsua sample app, the directory will be: (PJPROJECT_DIR)/pjsip-apps/src/pjsua/ios/ios_local/lib). Then copy bcg729 dynamic library files to the folder. E.g:

cp bcg729/lib/libbcg729.a pjproject-iphone/pjsip-apps/src/pjsua/ios/
cp bcg729/lib/*.dylib pjproject-iphone/pjsip-apps/src/pjsua/ios/ios_local/lib

Add libbcg729.a to your application project in XCode. 

For Android:

Patch Android.mk in the bcg729 source root directory, just append src/cng.c, src/dtx.c, src/vad.c to LOCAL_SRC_FILES.
Build the bcg729 library, e.g:

cd [bcg729-source-path]
$ANDROID_NDK_ROOT/build/ndk-build APP_ABI=arm64-v8a \
        NDK_PROJECT_PATH=. APP_BUILD_SCRIPT=Android.mk

Create directory lib under bcg729 library source, and copy the libbcg729.a from [bcg729-source-path]/obj/local/[ABI] to it.
Run PJSIP's configure with --with-bcg729 option. E.g.:

./configure-android --with-bcg729=/Users/teluu/bcg729/android
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
编译PJSIP Android版本,你需要按照以下步骤进行操作: 1. 首先,你需要设置你的编译环境。根据引用和引用,你需要安装Ubuntu 14.04和Android NDK(如android-ndk-r9d-linux-x86_64或android-ndk-r13b)。确保你已经安装了SWIG 2.0.5以上的版本。 2. 接下来,你需要下载PJSIP源代码。根据引用,你可以从官方网站上下载最新版本的源代码。解压缩源代码文件。 3. 修改配置文件。根据引用和引用,你需要在配置文件(config_site.h)中添加一些内容,例如#define PJ_CONFIG_ANDROID 1,如果你需要视频功能,还需要添加#define PJMEDIA_HAS_VIDEO 1。 4. 设置NDK环境变量。根据引用和引用,你需要设置ANDROID_NDK_ROOT环境变量,指向Android NDK的安装路径。 5. 配置PJSIP。根据引用,你可以运行./configure-android命令进行配置。如果你需要视频功能,可以使用./configure-android --with-openh264=/path/to/openh264进行配置,其中/path/to/openh264是你编译openh264成功后生成的androidlib目录的路径。 6. 编译PJSIP。根据引用和引用,运行make dep && make clean && make命令进行编译。静态库和动态库将会在编译完成后生成。 7. 编译Java接口文件。根据引用,进入pjsip-apps/src/swig目录,运行make命令编译Java接口文件。 8. 最后,你可以使用生成的libpjsua2.so和相关的Java文件进行apk开发。根据引用,libpjsua2.so将会被生成在pjsip-apps/src/swig/java/android/app/src/main/jniLibs目录下,Java文件将会生成在pjsip-apps/src/swig/java/android/app/src/main目录下。 请注意,编译过程可能会因为不同环境和版本的差异而有所不同,如果遇到问题,可以参考官方文档或社区的帮助资源。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [pjsip for Android编译](https://blog.csdn.net/u012247418/article/details/80161658)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [Android 编译PjSip](https://blog.csdn.net/ou_yb2006/article/details/89354643)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [PJSIP-Android-Compilation:PJSIP-Android平台编译后的Hello World](https://download.csdn.net/download/weixin_42138139/19728536)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

五一编程

程序之路有我与你同行

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值