go to index

Mac下编译androind下的pjsip+openh264

read time 3 min read
Mac openh264 pjsip android 安卓

概述

本文将介绍如何在 Mac 环境下编译 Android 版本的 PJSIP 和 OpenH264。编译过程中涉及设置环境变量、编译 OpenH264 和 PJSIP 的不同架构(arm 和 arm64),并最终将生成的文件集成到你的项目中。

编译前准备

设置 ANDROID NDK 环境变量

确保你已经安装了 Android NDK,并设置好环境变量:

bash
export ANDROID_NDK_ROOT=XXXXX

编译 OpenH264

下载并解压 OpenH264

bash
git clone https://github.com/cisco/openh264.git
cd openh264

编译 arm 架构

bash
mkdir android-arm
cd build

修改 platform-android.mk 文件

在文件末尾添加:

makefile
PREFIX=android-arm

执行编译命令

bash
make OS=android NDKROOT=$ANDROID_NDK_ROOT TARGET=android-21 ARCH=arm NDKLEVEL=21 clean
make OS=android NDKROOT=$ANDROID_NDK_ROOT TARGET=android-21 ARCH=arm NDKLEVEL=21
make install OS=android NDKROOT=$ANDROID_NDK_ROOT TARGET=android-21 ARCH=arm NDKLEVEL=21

复制库文件

将生成的 libopenh264.so 复制到你的项目中。

编译 arm64 架构

bash
cd openh264
mkdir android-arm64
cd build

修改 platform-android.mk 文件

在文件末尾添加:

makefile
PREFIX=android-arm64

执行编译命令

bash
make OS=android NDKROOT=$ANDROID_NDK_ROOT TARGET=android-21 ARCH=arm64 NDKLEVEL=21 clean
make OS=android NDKROOT=$ANDROID_NDK_ROOT TARGET=android-21 ARCH=arm64 NDKLEVEL=21
make install OS=android NDKROOT=$ANDROID_NDK_ROOT TARGET=android-21 ARCH=arm64 NDKLEVEL=21

复制库文件

将生成的 libopenh264.so 复制到你的项目中。

编译 PJSIP

下载并解压 PJSIP

bash
git clone https://github.com/pjsip/pjproject
cd pjproject-2.13.1

编译 armeabi-v7a 架构

执行配置和编译命令

bash
TARGET_ABI=armeabi-v7a APP_PLATFORM=android-21 ./configure-android --with-openh264=/你的openh264路径/android-arm
make dep && make

编译应用程序

bash
cd swig/src/app
make

复制生成的文件

  • so 文件

    plaintext
    pjsip-apps/src/swig/java/android/app/src/main/jniLibs/armeabi
    
  • java 文件

    plaintext
    pjsip-apps/src/swig/java/android/pjsua2/src/main/java
    

将这些文件复制到你的项目中。

编译 armeabi-v8a 架构

清理之前的编译

bash
cd swig/src/app
make clean

回到根目录并执行配置和编译命令

bash
cd ../..
TARGET_ABI=armeabi-v8a APP_PLATFORM=android-21 ./configure-android --with-openh264=/你的openh264路径/android-arm64
make dep && make

编译应用程序

bash
cd swig/src/app
make

复制生成的文件

将生成的 so 文件复制到你的项目中。

总结

本文详细介绍了如何在 Mac 环境下编译 Android 版本的 PJSIP 和 OpenH264,并将生成的文件集成到你的项目中。通过分步骤的指导,确保编译过程顺利进行。希望这篇文章能帮助你在开发过程中顺利解决问题。