必备条件:NDK9 、Ubuntu12.04、ffmpeg源码、X264源码
1.首先,编译X264源码。
这个貌似需要yasm1.2。如果提示这个版本过低自己更新下,这边不再多讲
下载X264的源码:http://www.videolan.org/developers/x264.html
在文件夹下新建一个 build_x264.sh,内容如下
export NDK=/home/mtb0157/workspace/android-ndk-r9 export PREBUILT=$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64 export CC=$PREBUILT/bin/arm-linux-androideabi-gcc export LD=$PREBUILT/bin/arm-linux-androideabi-ld export AS=$PREBUILT/bin/arm-linux-androideabi-gcc export AR=$PREBUILT/bin/arm-linux-androideabi-ar export RANLIB=$PREBUILT/bin/arm-linux-androideabi-ranlib export STRIP=$PREBUILT/bin/arm-linux-androideabi-strip export PLATFORM=$NDK/platforms/android-8/arch-arm export PREFIX=/home/mtb0157/Project/lib export STRIP=$PREBUILT/bin/arm-linux-androideabi-strip ./configure --prefix=$PREFIX \ --enable-static \ --enable-pic \ --enable-strip \ --disable-cli \ --extra-cflags= "-march=armv7-a -mfloat-abi=softfp -mfpu=neon" \ --host=arm-linux \ --cross-prefix=$PREBUILT/bin/arm-linux-androideabi- \ --sysroot=$PLATFORM
打开终端 - > CD到x264的目录下 -> chmod +x build_x264.sh 修改权限-> ./build_x264.sh执行配置->make进行编译->make install 导出库
这时候库会导出到之前设置的PREFIX目录下(请提前先创建这个目录)
这时候我们就可以在目录下看到x264导出的include和lib文件夹了
注意:如果make 出现 Cortex-A8 erratum because it has no mapping symbols.
请参考:http://blog.csdn.net/zsc09_leaf/article/details/14452451
2.解压ffmpeg的源码: http://www.ffmpeg.org/download.html#releases
源码目录下创建 build_ffmpeg.sh
#!/bin/bash NDK=/home/mtb0157/workspace/android-ndk-r9 SYSROOT=$NDK/platforms/android-9/arch-arm/ TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64 export PLATFORM=$NDK/platforms/android-8/arch-arm export PREFIX=/home/mtb0157/Project/lib function build_one { ./configure --prefix=$PREFIX\ --disable-doc \ --enable-gpl \ --enable-libx264 \ --disable-symver \ --cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \ --target-os=linux \ --arch=arm \ --enable-cross-compile \ --sysroot=$PLATFORM \ --extra-cflags=-I/home/mtb0157/Project/lib/include \ --extra-ldflags=-L/home/mtb0157/Project/lib/lib } CPU=arm PREFIX=$(pwd)/android/$CPU ADDI_CFLAGS="-marm" build_one
注意:
--arch=arm \
--enable-libx264 \编译arm架构的.a并启用libx264,同样NDK的目录自己要设置好
打开终端-> CD到ffmpeg的目录下 -> chmod +x build_ffmpeg.sh 修改权限-> ./build_ffmpeg.sh执行配置->make进行编译->make install 导出库
编译完成就可以在各个源码目录下找到生成的.a文件了。