FFmpeg For Android 编译

编译异常:

/bin/sh: ranlib/usr/local/lib/libavdevice.a: No such file or directory
make: *** [install-libavdevice-static] Error 127

环境

编译系统环境:macOS 10.13.4
NDK: Mac 版 Android Studio 工具中同步的最新版本NDK
FFmpeg:ffmpeg-4.0

编译脚本

#!/bin/sh
#--disable-avdevice
NDK=/Users/heli/Library/Android/sdk/ndk-bundle
export PATH=$PATH:$NDK
SYSROOT=$NDK/platforms/android-21/arch-arm
TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64
export RANLIB=$TOOLCHAIN/bin/arm-linux-androideabi-ranlib
function build_one
{
./configure \
--prefix=$PREFIX \
--enable-shared \
--disable-static \
--disable-doc \
--disable-ffmpeg \
--disable-ffplay \
--disable-ffprobe \
--disable-ffserver \
--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 -j4
make install
}
CPU=armv7-a
PREFIX=$(pwd)/android/$CPU
ADDI_CFLAGS="-marm"
build_one

解决

  1. 从官网https://developer.android.com/ndk/downloads/older_releases?hl=zh-cn重新下载了r14版本的NDK,重新编译,还是报同样的错。
  2. 从ffmpeg官网http://www.ffmpeg.org/download.html下载3.3.7版本,重新编译,搞定��!
    附上解决后的脚本,和前面脚本区别不大,只是改了一下ndk路径。
#!/bin/sh
#--disable-avdevice
NDK=/Users/heli/Library/Android/sdk/ndk/android-ndk-r14b
export PATH=$PATH:$NDK
SYSROOT=$NDK/platforms/android-21/arch-arm
TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64
export RANLIB=$TOOLCHAIN/bin/arm-linux-androideabi-ranlib
function build_one
{
./configure \
--prefix=$PREFIX \
--enable-shared \
--disable-static \
--disable-doc \
--disable-ffmpeg \
--disable-ffplay \
--disable-ffprobe \
--disable-ffserver \
--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 -j4
make install
}
CPU=armv7-a
PREFIX=$(pwd)/android/$CPU
ADDI_CFLAGS="-marm"
build_one

说的比较潦草,有什么疑问,可留言,我帮你看。

你可能感兴趣的:(ffmpeg,ffmpeg,for,android,交叉编译,ffmpeg)