最近在初步学习播放器,今天编译了FFmpeg库给Android使用。
Step 1:首先在MAC上安装NDK,我这里使用的是ndk-r10e;
Step 2:去FFmpeg官网下载对应的源码;
Step 3: 将下载后的NDK进行解压,我这里直接放到桌面了,/Users/SkyLight/Desktop/ndk-r10e/android-ndk-r10e
文件目录如下:
Step 4: 将下载后的FFmpeg进行解压,我这里直接直接放到桌面了,/Users/SkyLight/Desktop/ffmpeg-3.2.4
Step 5: 编写sh脚本: 如build.sh,内容如下:
#!/bin/bash
#这里的路径需要修改为你自己的ndk路径
NDK=/Users/SkyLight/Desktop/ndk-r10e/android-ndk-r10e
#注意android-9文件夹的版本号,替换好自己的版本号
SYSROOT=$NDK/platforms/android-9/arch-arm/
#把这里的路径替换好自己的版本号
TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64
function build_one(){
./configure \
--prefix=$PREFIX \
--enable-shared \
--disable-static \
--disable-doc \
--disable-ffserver \
--enable-cross-compile \
--cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
--target-os=linux \
--arch=arm \
--sysroot=$SYSROOT \
--extra-cflags="-Os -fpic $ADDI_CFLAGS" \
--extra-ldflags="$ADDI_LDFLAGS" \
$ADDITIONAL_CONFIGURE_FLAG
}
CPU=arm
PREFIX=$(pwd)/android/$CPU
ADDI_CFLAGS="-marm"
build_one
Step 6:把写好的build.sh放到ffmpeg-3.2.4目录下
Step 7: 修改一下ffmpeg源码下configure文件, 我这里是用xcode打开的,
找到如下代码:
SLIBNAME_WITH_VERSION='$(SLIBNAME).$(LIBVERSION)'
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_VERSION='$(SLIBNAME).$(LIBVERSION)'
SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)'
LIB_INSTALL_EXTRA_CMD='$$(RANLIB)"$(LIBDIR)/$(LIBNAME)"'
SLIB_INSTALL_NAME='$(SLIBNAME_WITH_MAJOR)'
SLIB_INSTALL_LINKS='$(SLIBNAME)'
Step 8:运行行build.sh脚本
mcj1688deMacBook-Pro:~ SkyLight$ cd /Users/SkyLight/Desktop/ffmpeg-3.2.4
mcj1688deMacBook-Pro:ffmpeg-3.2.4 SkyLight$ ./build.sh
Step 9:运行行build.sh脚本
如果运行过程中出现上述WARNING,可以忽略
Step 10:执行make
mcj1688deMacBook-Pro:ffmpeg-3.2.4 SkyLight$ make
Step 11:执行make install
Step 12:此时在ffmpeg-3.2.4目录下会出现一个android文件夹, 进入到arm目录
图片中的include目录下就是所要的头文件,lib目录下就是so库文件。