ffmpeg 2.1 + x264 (version 140) 编译安卓下可用的库

来源:互联网 发布:千锋大数据 百度云盘 编辑:程序博客网 时间:2024/05/11 02:41


必备条件: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-r9export PREBUILT=$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64export CC=$PREBUILT/bin/arm-linux-androideabi-gccexport LD=$PREBUILT/bin/arm-linux-androideabi-ldexport AS=$PREBUILT/bin/arm-linux-androideabi-gccexport AR=$PREBUILT/bin/arm-linux-androideabi-arexport RANLIB=$PREBUILT/bin/arm-linux-androideabi-ranlibexport STRIP=$PREBUILT/bin/arm-linux-androideabi-stripexport PLATFORM=$NDK/platforms/android-8/arch-arm export PREFIX=/home/mtb0157/Project/libexport 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

注意:NDK的目录和PREFIX的目录需要根据自己的环境设置

打开终端 - > 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/bashNDK=/home/mtb0157/workspace/android-ndk-r9SYSROOT=$NDK/platforms/android-9/arch-arm/TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64export PLATFORM=$NDK/platforms/android-8/arch-arm export PREFIX=/home/mtb0157/Project/libfunction 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=armPREFIX=$(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文件了。








原创粉丝点击