NDK开发——x264、AAC在Linux下编译

x264编译

1、下载x264.zip,加入/usr/x264/目录下,进入该目录

1
cd /usr/x264/

2、解压x264

1
unzip x264-snapshot-20161111-2245.zip

3、授予权限

1
chmod 777 -R x264-snapshot-20161111-2245

4、进入x264目录,创建sh文件,并授权

1
2
3
cd x264-snapshot-20161111-2245/
touch build_android.sh
chmod 777 build_android.sh

5、进入build_android.sh文件,编写以下代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#!/bin/bash
export NDK_HOME=/usr/ndk/android-ndk-r10e
export SYSROOT=$NDK_HOME/platforms/android-9/arch-arm/
export TOOLCHAIN=$NDK_HOME/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64
export CPU=arm
export PREFIX=${pwd}/android/$CPU
function build_x264
{
./configure --prefix=$PREFIX \
--enable-static \
--disable-shared \
--disable-asm \
--enable-debug \
--enable-pic \
--host=arm-linux \
--cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
--sysroot=$SYSROOT
make clean
make
make install
}
build_x264

6、执行sh文件,编译x264

1
./build_android.sh

7、下面是我们编译成功所要用到的库

  • x264.h
  • x264_config.h
  • libx264.a

AAC编译

1、下载faac.zip,加入/usr/aac/目录下,进入该目录

1
cd /usr/aac/

2、解压faac

1
tar -zxvf faac-1.28.tar.gz

3、给予权限

1
chmod 777 -R faac-1.28

4、进入该目录,创建sh文件,并授权

1
2
3
cd faac-1.28/
touch build_android
chmod 777 build_android.sh

5、编写以下代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#!/bin/bash
export NDK_HOME=/usr/ndk/android-ndk-r10e
export SYSROOT=$NDK_HOME/platforms/android-9/arch-arm
export TOOLCHAIN=$NDK_HOME/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64
export CPU=arm
export PREFIX=$(pwd)/android/$CPU
CFLAGS="-fpic -DANDROID -fpic -mthumb-interwork -ffunction-sections -funwind-tables -fstack-protector -fno-short-enums -D__ARM_ARCH_7__ -Wno-psabi -march=armv7 -mtune=xscale -msoft-float -mthumb -Os -fomit-frame-pointer -fno-strict-aliasing -finline-limit=64 -DANDROID -Wa,--noexecstack -MMD -MP "
CROSS_COMPILE=$TOOLCHAIN/bin/arm-linux-androideabi-
export CPPFLAGS="$CFLAGS"
export CFLAGS="$CFLAGS"
export CXXFLAGS="$CFLAGS"
export CXX="${CROSS_COMPILE}g++ --sysroot=${SYSROOT}"
export LDFLAGS="$LDFLAGS"
export CC="${CROSS_COMPILE}gcc --sysroot=${SYSROOT}"
export NM="${CROSS_COMPILE}nm"
export STRIP="${CROSS_COMPILE}strip"
export RANLIB="${CROSS_COMPILE}ranlib"
export AR="${CROSS_COMPILE}ar"
function build_one
{
./configure \
--prefix=$PREFIX \
--without-mp4v2 \
--host=arm-linux
make clean
make
make install
}
build_one

6、执行sh文件,编译faac

1
2
./configure --disable-yasm
./build_android.sh

7、下面是我们编译成功所要用到的库

  • include/faac.h
  • include/faaccfg.h
  • libfaac.a
坚持原创技术分享,您的支持将鼓励我继续创作!