2014-07-11 37 views
4

如何在android中为所有cpu架构编译ffmpeg。目前我正在使用下面的脚本,它只为arm生成libs。android-如何为所有cpu架构编译ffmpeg

#!/bin/bash 
NDK=$HOME/ndk32 
SYSROOT=$NDK/platforms/android-9/arch-arm/ 
TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86 
function build_one 
{ 
./configure \ 
    --prefix=$PREFIX \ 
    --enable-shared \ 
    --disable-static \ 
    --disable-doc \ 
    --disable-ffmpeg \ 
    --disable-ffplay \ 
    --disable-ffprobe \ 
    --disable-ffserver \ 
    --disable-avdevice \ 
    --disable-doc \ 
    --disable-symver \ 
    --cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \ 
    --target-os=linux \ 
    --arch=arm \ 
    --enable-cross-compile \ 
    --sysroot=$SYSROOT \ 
    --extra-cflags="-Os -fpic $ADDI_CFLAGS" \ 
    --extra-ldflags="$ADDI_LDFLAGS" \ 
    $ADDITIONAL_CONFIGURE_FLAG 
make clean 
make 
make install 
} 
CPU=arm 
PREFIX=$(pwd)/android/$CPU 
ADDI_CFLAGS="-marm" 
build_one 

我想支持所有可能的平台。

+1

试过https://www.vitamio.org/en/2013/Tutorial_0509/13.html? –

+0

它支持ARMv7吗?!你为什么禁用ffplay?这是什么?:“ADDI_CFLAGS =” - marm“”? –

回答

1

只需使用不同的工具链,请参阅build_android.sh from AndroidFFmpeg项目就是一个很好的例子。请注意,它也为ARM NEON SIMD处理库,如果检测到NEON支持,它将在运行时加载。

+0

但是这个编译一个.SO库在android应用程序中使用。我想输出一个BINARY文件。 –