前情提要:NDK已正确安装,并配置好编译环境变量
一、下载ffmpeg源码: http://www.ffmpeg.org/download.html
二、解压至文件目录/usr/local/ffmpeg
[root@localhost ffmpeg]# tar xvf ffmpeg-3.2.2.tar.bz2
并命名为:3.2.2
[root@localhost ffmpeg]# mv ffmpeg-3.2.2/ 3.2.2
[root@localhost 3.2.2]# gedit configure
照此图做以下调整:
SLIBNAME_WITH_MAJOR='$(SLIBNAME).$(LIBMAJOR)'
LIB_INSTALL_EXTRA_CMD='$$(RANLIB)"$(LIBDIR)/$(LIBNAME)"'
SLIB_INSTALL_NAME='$(SLIBNAME_WITH_VERSION)'
SLIB_INSTALL_LINKS='$(SLIBNAME_WITH_MAJOR)$(SLIBNAME)'
替换为
SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)'
LIB_INSTALL_EXTRA_CMD='$$(RANLIB)"$(LIBDIR)/$(LIBNAME)"'
SLIB_INSTALL_NAME='$(SLIBNAME_WITH_MAJOR)'
SLIB_INSTALL_LINKS='$(SLIBNAME)'
退出、保存!
四、在ffmpeg目录下,新增Android编译脚本,build_android.sh
#!/bin/bash
NDK=/usr/local/android/ndk/r12b
SYSROOT=$NDK/platforms/android-9/arch-arm/
TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64
function build_one
{
./configure \
--prefix=$PREFIX \
--enable-shared \
--disable-static \
--disable-doc \
--disable-ffmpeg \
--disable-ffplay \
--disable-ffprobe \
--disable-ffserver \
--enable-avdevice \
--enable-gpl \
--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
make install
}
CPU=arm
PREFIX=$(pwd)/android/$CPU
ADDI_CFLAGS="-marm"
build_one
具体编译脚本的相关参数将会在后续的文章中在做单独讲解
五、修改下build_android.sh 权限
[root@localhost 3.2.2]# chmod a+x build_android.sh
[root@localhost 3.2.2]# ./build_android.sh
此过程依据你计算机的性能,时间可能会要5分钟左右的时间
该命令执行完毕后,会在ffmpeg的根目录下的/android/arm/下生成相应的头文件以及so文件,如下图所示
这些文件拷贝出来放至Android的ndk工程中即可开发使用了!
此文原创~转载请注明出处!