遇到的问题
用了最新的ffmpeg和ndk进行编译,出了些问题,shell脚本对不同ffmpeg、ndk版本,不是都能成功,想要编译成功,版本最好和文中保持一致。
开始
1. 下载ffmpeg和ndk进行解压
FFmpeg下载
NDK下载
这里我使用了ffmpeg-4.0.5和android-ndk-r16b
2. 创建构建脚本
打开ffmpeg文件夹,创建build_android_fffmpeg.sh,再复制以下脚本进行保存
需要修改路径
#!/bin/bash
#修改成自己的ndk路径
NDK=/Users/xufangzhen/StudioProjects/android-ndk-r16b
ADDI_CFLAGS="-marm"
API=27
PLATFORM=arm-linux-androideabi
CPU=armv7-a
SYSROOT=$NDK/platforms/android-$API/arch-arm/
ISYSROOT=$NDK/sysroot
ASM=$ISYSROOT/usr/include/$PLATFORM
TOOLCHAIN=$NDK/toolchains/$PLATFORM-4.9/prebuilt/darwin-x86_64
#指定输出目录
OUTPUT=/Users/xufangzhen/StudioProjects/ffmpeg-4.1.3/build
function build_one
{
./configure \
--prefix=$OUTPUT \
--enable-shared \
--disable-static \
--disable-doc \
--disable-ffmpeg \
--disable-ffplay \
--disable-ffprobe \
--disable-avdevice \
--disable-doc \
--disable-symver \
--cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
--target-os=android \
--arch=arm \
--enable-cross-compile \
--sysroot=$SYSROOT \
--extra-cflags="-I$ASM -isysroot $ISYSROOT -Os -fpic -marm" \
--extra-ldflags="-marm" \
$ADDITIONAL_CONFIGURE_FLAG
make clean
make
make install
}
echo "开始编译ffmpeg..."
build_one
echo "完成编译..."

保存后通过chmod +x build_android_ffmpeg.sh 申请权限
再输入./build_android_ffmpeg.sh执行脚本

一杯咖啡的时间后,成功编译

mac下遇到
无法打开“xxxx”,因为无法验证开发者。需要去安全和隐私里全部打开
网友评论