1,准备工作
系统:ubuntu
下载地址:https://www.ubuntu.com/download
Ndk : 本教程使用android-ndk-r12b
下载地址:http://www.androiddevtools.cn/
FFmpeg
下载地址http://ffmpeg.org/download.html
如图:
Ndk和FFmpeg下载完成后,解压在Home目录,如上图
2,修改FFmpeg-3.1.5目录下的configure文件
把黄色选中部分修改为:
SLIBNAME_WITH_MAJOR=’$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)’
LIB_INSTALL_EXTRA_CMD=’$$(RANLIB)”$(LIBDIR)/$(LIBNAME)”‘
SLIB_INSTALL_NAME=’$(SLIBNAME_WITH_MAJOR)’
SLIB_INSTALL_LINKS=’$(SLIBNAME)’
修改成功后保存关闭。
3,编写以下脚本
多个库脚本
############################################################
#清除上次编译的东西
make clean
#配置NDK路径
export NDK=/home/zhaoyu/android-ndk-r12b
#配置工具链
export PREBUILT=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt
#配置平台
export PLATFORM=$NDK/platforms/android-14/arch-arm
#配置编译好了之后的文件输出目录,$(pwd)当前目录下
export PREFIX=$(pwd)/android/
build_one(){
./configure –target-os=linux –prefix=$PREFIX \
–enable-cross-compile \
–enable-runtime-cpudetect \
–disable-asm \
–arch=arm \
–cc=$PREBUILT/linux-x86_64/bin/arm-linux-androideabi-gcc \
–cross-prefix=$PREBUILT/linux-x86_64/bin/arm-linux-androideabi- \
–disable-stripping \
–nm=$PREBUILT/linux-x86_64/bin/arm-linux-androideabi-nm \
–sysroot=$PLATFORM \
–enable-gpl –enable-shared –disable-static –enable-nonfree –enable-version3 –enable-small \
–enable-zlib –disable-ffprobe –disable-ffplay –disable-ffmpeg –disable-ffserver –disable-debug \
–extra-cflags=”-fPIC -DANDROID -D__thumb__ -mthumb -Wfatal-errors -Wno-deprecated -mfloat-abi=softfp -marm -march=armv7-a”
}
build_one
#4线程编译
make -j4
make install
################################################################
单个库脚本
########################################################
#清除上次编译的东西
make clean
#配置NDK路径
export NDK=/home/zhaoyu/android-ndk-r12b
#配置工具链
export PREBUILT=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt
#配置平台
export PLATFORM=$NDK/platforms/android-14/arch-arm
#配置编译好了之后的文件输出目录,$(pwd)当前目录下
export PREFIX=$(pwd)/android/
build_one(){
./configure –target-os=linux –prefix=$PREFIX \
–enable-cross-compile \
–enable-runtime-cpudetect \
–disable-asm \
–arch=arm \
–cc=$PREBUILT/linux-x86_64/bin/arm-linux-androideabi-gcc \
–cross-prefix=$PREBUILT/linux-x86_64/bin/arm-linux-androideabi- \
–disable-stripping \
–nm=$PREBUILT/linux-x86_64/bin/arm-linux-androideabi-nm \
–sysroot=$PLATFORM \
–enable-gpl –enable-static –disable-shared –enable-nonfree –enable-version3 –enable-small \
–enable-zlib –disable-ffprobe –disable-ffplay –disable-ffmpeg –disable-ffserver –disable-debug \
–extra-cflags=”-fPIC -DANDROID -D__thumb__ -mthumb -Wfatal-errors -Wno-deprecated -mfloat-abi=softfp -marm -march=armv7-a”
}
build_one
#4线程编译
make -j4
make install
$PREBUILT/linux-x86_64/bin/arm-linux-androideabi-ld -rpath-link=$PLATFORM/usr/lib -L$PLATFORM/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 libpostproc/libpostproc.a libavdevice/libavdevice.a -lc -lm -lz -ldl -llog –dynamic-linker=/system/bin/linker $PREBUILT/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/libgcc.a
########################################################
以上#线内的内容任意一个,保存为build_ffmpeg.sh复制到ffmpeg根目录下
并在根目录下创建android文件夹用于存放生成的so库
如下图:
4,运行脚本,生成so
使用命令行进入ffmpeg目录,执行 build_ffmpeg.sh脚本
cd ffmpeg-3.1.5
./build_ffmpeg.sh
如图:
之后开始编译
脚本执行完成会在android目录下生成对应的so文件
如图(多so版):
单so版,如下图
编译后so下载地址:
http://download.youkuaiyun.com/detail/zhaoyu813113552/9665323