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


必备条件: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文件了。








你可能感兴趣的:(ffmpeg 2.1 + x264 (version 140) 编译安卓下可用的库)