openh264編譯Android SO庫
警告:編譯改庫必須使用android-ndk-r15c
下載源碼
git clone git@github.com:cisco/openh264.git
編譯腳本
#!/bin/bash
# 需要指定 ANDROID_SDK 和 ANDROID_NDK
# 如果已經(jīng)配置環(huán)境變量則不需要
export ANDROID_SDK=/mnt/e/library/linux/android/Sdk
export ANDROID_NDK=/mnt/e/library/linux/android-ndk-r15c
export PATH=$ANDROID_SDK/tools:$PATH
function build_openh264 {
ABI=$1
API_LEVEL=$2
case $ABI in
armeabi-v7a )
ARCH=arm
;;
arm64-v8a )
ARCH=arm64
;;
x86 )
ARCH=x86
;;
x86_64 )
ARCH=x86_64
;;
esac
# 設(shè)置編譯輸出為Android庫
TARGET_OS=android
# 設(shè)置android版本
ANDROID_TARGET=android-$API_LEVEL
# 設(shè)置輸出文件路徑
BUILD_PREFIX=$(pwd)/libs/openh264-out/$ABI
mkdir -p $BUILD_PREFIX
echo "build libopenh264 ${ABI} ${ANDROID_TARGET}"
echo "build libopenh264 ${ABI} output : ${BUILD_PREFIX}"
# 執(zhí)行清除操作
make \
OS=${TARGET_OS} \
NDKROOT=$ANDROID_NDK \
TARGET=$ANDROID_TARGET \
ARCH=$ARCH \
clean
# 執(zhí)行編譯任務(wù)
make \
OS=${TARGET_OS} \
NDKROOT=$ANDROID_NDK \
TARGET=$ANDROID_TARGET \
NDKLEVEL=$API_LEVEL \
ARCH=$ARCH \
PREFIX=$BUILD_PREFIX \
-j4 install
}
# 在工程根路徑下創(chuàng)建libs文件夾秉溉,編譯后生成文件在此處
ROOT_PATH=$(pwd)
OPENH264_SOURCE_DIR=$ROOT_PATH/
mkdir $ROOT_PATH/libs
if [[ ! -d $OPENH264_SOURCE_DIR ]]; then
echo "Did not found $OPENH264_SOURCE_DIR"
exit 1
fi
cd $OPENH264_SOURCE_DIR
build_openh264 armeabi-v7a 16
build_openh264 arm64-v8a 21
編譯SO庫
chmod u+x build_android_so.sh
./build_android_so.sh