Ubuntu16.04交叉編譯Android平臺下的x264
阿新 • • 發佈:2019-02-01
一,獲取x264原始碼
使用git下載:
官網下載:
歷史版本:
二, ubuntu16.04 + ndk-r10e環境
官網下載:
百度網盤下載:
連結:https://pan.baidu.com/s/1cOMfj_TlKosuoK_zxJYE8A 密碼:ctv3
下載之後進入到ndk(android-ndk-r10e-linux-x86_64.bin )所在目錄,右擊開啟Teminal命令視窗,逐次執行以下兩條命令:chmod a+x android-ndk-r10c-linux-x86_64.bin ./android-ndk-r10c-linux-x86_64.bin1三,編譯指令碼
如果是編譯動態庫,先進入到x264目錄,修改configure檔案。定位到 1500行
else echo "SOSUFFIX=so" >> config.mak
echo "SONAME=libx264.so.$API"
這幾行,將"libx264.so.$API"替換為"libx264.so",檔名中就不要版本了
在原始碼根目錄下建立指令碼檔案 build_android.sh, 內容如下:
#!/bin/bash if [ -z "$ANDROID_NDK" ]; then echo "You must define ANDROID_NDK before starting." echo "They must point to your NDK directories.\n" exit 1 fi # Detect OS OS=`uname` HOST_ARCH=`uname -m` export CCACHE=; type ccache >/dev/null 2>&1 && export CCACHE=ccache if [ $OS == 'Linux' ]; then export HOST_SYSTEM=linux-$HOST_ARCH elif [ $OS == 'Darwin' ]; then export HOST_SYSTEM=darwin-$HOST_ARCH fi SOURCE=`pwd` PREFIX=$SOURCE/build/android SYSROOT=$ANDROID_NDK/platforms/android-14/arch-arm CROSS_PREFIX=$ANDROID_NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/$HOST_SYSTEM/bin/arm-linux-androideabi- EXTRA_CFLAGS="-march=armv7-a -mfloat-abi=softfp -mfpu=neon -D__ARM_ARCH_7__ -D__ARM_ARCH_7A__" EXTRA_LDFLAGS="-nostdlib" ./configure --prefix=$PREFIX \ --cross-prefix=$CROSS_PREFIX \ --extra-cflags="$EXTRA_CFLAGS" \ --extra-ldflags="$EXTRA_LDFLAGS" \ --enable-pic \ --enable-static \ --enable-strip \ --disable-cli \ --host=arm-linux \ --sysroot=$SYSROOT make clean make STRIP= -j4 install || exit 1
注意 :ANDROID_NDK為NDK所在目錄,
PREFIX,為編譯生成x264目標庫檔案路徑
SYSROOT ,CROSS_PREFIX 為NDK相關路徑,
可以根據自己電腦配置修改以上變數。
然後修改build_android_arm.sh檔案的許可權:
sudo chmod a+x build_android.sh
然後執行:
./build_android.sh
等待編譯.........
音視訊開發訓練營公眾號