FFmpeg下载
http://ftp.osuosl.org/pub/blfs/conglomeration/ffmpeg/?C=N;O=D
FFmpeg编译
cd ffmpeg-3.4
新建脚本build_android.sh
准备好:android-ndk-r14b
./build_android.sh
#!/bin/bash
echo "进入编译ffmpeg脚本"
#NDK=/root/ff/android-ndk-r14b
NDK=/home/hmi/work/ffmpeg_android/android-ndk-r14b
#5.0 编译的平台
PLATFORM=$NDK/platforms/android-21/arch-arm
#交叉编译工具链 arm体系
TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64
#cpu的输出类型
CPU=armv7-a
#输出路径
PREFIX=./android/$CPU
function buildFF
{
echo "开始编译ffmpeg"
./configure \
--prefix=$PREFIX \
--target-os=android \
--cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
--arch=arm \
--cpu=$CPU \
--sysroot=$PLATFORM \
--extra-cflags="$CFLAG" \
--cc=$TOOLCHAIN/bin/arm-linux-androideabi-gcc \
--nm=$TOOLCHAIN/bin/arm-linux-androideabi-nm \
--enable-shared \
--enable-runtime-cpudetect \
--enable-gpl \
--enable-small \
--enable-cross-compile \
--disable-debug \
--disable-static \
--disable-doc \
--disable-ffmpeg \
--disable-ffplay \
--disable-ffprobe \
--disable-ffserver \
--disable-postproc \
--disable-avdevice \
--disable-symver \
--disable-stripping \
$ADD
make -j16
make install
echo "编译结束!"
}
###########################################################
echo "编译支持neon和硬解码"
CPU=armv7-a
PREFIX=./android/armv7-a-neon-hard
CFLAG="-I$PLATFORM/usr/include -fPIC -DANDROID -mfpu=neon -mfloat-abi=softfp "
ADD="--enable-asm \
--enable-neon \
--enable-jni \
--enable-mediacodec \
--enable-decoder=h264_mediacodec \
--enable-hwaccel=h264_mediacodec "
buildFF
###########################################################
echo "编译不支持neon和硬解码"
CPU=armv7-a
PREFIX=./android/$CPU
CFLAG="-I$PLATFORM/usr/include -fPIC -DANDROID -mfpu=vfp -mfloat-abi=softfp "
ADD=
buildFF
![](https://img-blog.csdnimg.cn/img_convert/5363cfed807842d48e1b520a50d2fc44.png)
编译完成后复制头文件和库
![](https://img-blog.csdnimg.cn/img_convert/df68ee0b723736024ef923da6ad156a9.png)
设置app/build.gradle
![](https://img-blog.csdnimg.cn/img_convert/dd74c156c67662b808753d4f92b34c9e.png)
NDK配置
![](https://img-blog.csdnimg.cn/img_convert/427885491c57f50f8cfa825647fac01b.png)
libs配置否则运行就会停止
![](https://img-blog.csdnimg.cn/img_convert/d38a72dd914167b8e07c5c559b29130f.png)
添加sd卡的读取权限
![](https://img-blog.csdnimg.cn/img_convert/1f932a95671e626bceb748cca221431f.png)
测试是否成功
![](https://img-blog.csdnimg.cn/img_convert/194e412cfe488e9b6da22a6546ac8244.png)
![](https://img-blog.csdnimg.cn/img_convert/7b7234ecad40979e0a4f4a1bf6f4086f.png)