ndk---ffmpeg--->easy

https://www.jianshu.com/p/9d8322e5de7f

非常明了的怎么编译的

 

 

问题

https://blog.csdn.net/luo0xue/article/details/80048847

 

 

 

 

#!/bin/bash

# 设置临时文件夹,需要提前手动创建
export TMPDIR="/home/wang/Ndisk/ffmpeg-3.4.2/ffmpegtemp"

# 设置NDK路径
NDK=/home/wang/Ndisk/android-ndk-r17b

# 设置编译针对的平台,可以根据实际需求进行设置
# 当前设置为最低支持android-14版本,arm架构
SYSROOT=$NDK/platforms/android-14/arch-arm

# 设置编译工具链,4.9为版本号
TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64

function build_one
{
./configure \
    --enable-cross-compile \
    --enable-static \
    --disable-shared \
    --disable-doc \
    --disable-ffmpeg \
    --disable-ffplay \
    --disable-ffprobe \
    --disable-ffserver \
    --disable-avdevice \
    --disable-doc \
    --disable-symver \
    --prefix=$PREFIX \
    --cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
    --target-os=android \
    --arch=arm \
    --sysroot=$SYSROOT \
    --extra-cflags="-Os -fpic $ADDI_CFLAGS -isysroot $NDK/sysroot -I$NDK/sysroot/usr/include/arm-linux-androideabi" \

$ADDITIONAL_CONFIGURE_FLAG
make clean
make -j4
make install


# 合并生成的静态库
$TOOLCHAIN/bin/arm-linux-androideabi-ld \
-rpath-link=$SYSROOT/usr/lib \
-L$SYSROOT/usr/lib \
-L$PREFIX/lib \
-soname libffmpeg.so -shared -nostdlib -Bsymbolic --whole-archive --no-undefined -o \
$PREFIX/libffmpeg.so \
    libavcodec/libavcodec.a \
    libavfilter/libavfilter.a \
    libswresample/libswresample.a \
    libavformat/libavformat.a \
    libavutil/libavutil.a \
    libswscale/libswscale.a \
    -lc -lm -lz -ldl -llog --dynamic-linker=/system/bin/linker \
    $TOOLCHAIN/lib/gcc/arm-linux-androideabi/4.9.x/libgcc.a


}

# 设置编译后文件的输出目录
CPU=arm
PREFIX=$(pwd)/android/$CPU
ADDI_CFLAGS="-marm"
build_one

换成ndk14版本的???

 

jni调用方法 http://lib.csdn.net/article/liveplay/55380?knId=1586

 

posted @ 2018-10-08 19:22  cnchengv  阅读(110)  评论(0编辑  收藏  举报