您的位置:首页 > 其它

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

2013-11-07 16:02 387 查看
必备条件: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


注意: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/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文件了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: