安卓- 如何为所有CPU架构编译FFmpeg

4
如何为Android编译适用于所有CPU架构的FFmpeg。目前我正在使用以下脚本,该脚本仅生成ARM架构的库。
#!/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? - Alex Cohn
它支持 ARMv7 吗?! 为什么禁用 ffplay?! 这是什么意思?: "ADDI_CFLAGS="-marm""? - Dr.jacky
1个回答

1

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


但是这会编译一个.SO库以在Android应用程序中使用。我想要输出一个二进制文件。 - Dr.jacky

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接