编译x264
- 下载x264源码
- 下载 并安装 yasm
- 在源码文件的根目录下传建android_build.sh文件,内容如下:
export ANDROID_NDK=~/linux_station/android-ndk-r21e ##linux 版ndk的路径
export TOOLCHAIN=${ANDROID_NDK}/toolchains/llvm/prebuilt/linux-x86_64
export PATH=$TOOLCHAIN/bin:$PATH ##将toolchain 下的bin 添加到系统变量中
export SYSROOT=${TOOLCHAIN}/sysroot
export AR=$TOOLCHAIN/bin/aarch64-linux-android-ar
export CC=$TOOLCHAIN/bin/aarch64-linux-android21-clang
export CXX=$TOOLCHAIN/bin/aarch64-linux-android21-clang++
export LD=$TOOLCHAIN/bin/aarch64-linux-android-ld
export RANLIB=$TOOLCHAIN/bin/aarch64-linux-android-ranlib
export STRIP=$TOOLCHAIN/bin/aarch64-linux-android-strip
./configure \
## --prefix=./so \ ## 指定生成的lib和include 文件的路径,若不设置,则默认生成在usr/local下
--sysroot=${SYSROOT} \
--enable-shared \
--enable-pic \
--host=aarch64-linux-android ##这里指定host的版本,根据需要可以选择 arm 还是arm64(aarch),x86
make clean
make
make install
-
修改x264 configure 文件中的SONAME 命名的code,$API是x264的版本号,如157 否则导入到Android项目中后 编译apk时,.so.157的文件不会加载到apk的lib中
echo "SONAME=libx264.so.$API" >> config.mak
修改为echo "SONAME=libx264.so" >> config.mak
-
在terminal 中执行 sudo ./android_build.sh,编译完成后,terminal中会打印生成的 lib 和 include 的路径
编译ffmpeg
- 下载ffmpeg的源码
- 在源码文件的根目录下传建android_build.sh文件,内容如下:
NDK=~/linux_station/android-ndk-r21e
TOOLCHAIN=$NDK/toolchains/llvm/prebuilt/linux-x86_64
SYSROOT=${TOOLCHAIN}/sysroot
PLATFORMS=$NDK/platforms
AR=$TOOLCHAIN/bin/aarch64-linux-android-ar
AS=$TOOLCHAIN/bin/aarch64-linux-android-as
CC=$TOOLCHAIN/bin/aarch64-linux-android21-clang
CXX=$TOOLCHAIN/bin/aarch64-linux-android21