2018-09-29 Mac 下使用NDK进行FFmpeg编译源
以下只针对Mac版本下进行FFmpeg版本的编译,移植到Android上
环境:Mac
工具:Mac 终端编译
源码:git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg(下载源代码后,我这里放到桌面上,命名文件ffmpeg,把当前文件复制到android-ndk-r10e根目录下,也就是android-ndk-r10e/ffmpeg)
NDK版本:android-ndk-r10e(这里可以选择自己需要的版本)
步骤:
一.首先配置NDK环境:
1.打开Mac终端编译
输入open -e .bash_profile
2.编辑.bash_profile文件
export NDK_HOME=/Users/xxx/Documents/android-ndk-r10e(这里是ndk的目录位置)
export PATH=NDK_HOME
3.保存.bash_profile文件
4.终端输入ndk-build
如果有显示,类似以下内容,表示配置成功
Android NDK: Could not find application project directory !
Android NDK: Please define the NDK_PROJECT_PATH variable to point to it.
/Users/yaganglian/Documents/android-ndk-r10e/build/core/build-local.mk:143: *** Android NDK: Aborting . Stop.
二.把我们下载好的FFmpeg源码复制到NDK根目录下
三.在FFmpeg根目录下,新建文件build-android.sh文件,复制以下内容
!/bin/bash
这里的路径需要修改为你自己的ndk路径
NDK=/Users/yaganglian/Documents/android-ndk-r10e
注意android-9文件夹的版本号,替换好自己的版本号
SYSROOT=$NDK/platforms/android-9/arch-arm/
把这里的路径替换好自己的版本
TOOLCHAIN=PREFIX
--enable-shared
--disable-static
--disable-doc
--enable-cross-compile
--cross-prefix=SYSROOT
--extra-cflags="-Os -fpic ADDI_LDFLAGS"
(pwd)/android/$CPU
ADDI_CFLAGS="-marm"
build_one
这里注意下,新版的FFmpeg不需要再设置disable-ffmpeg-server
四.修改FFmpeg目录下configure文件
将该文件中的如下四行
SLIBNAME_WITH_MAJOR='(LIBMAJOR)'
LIB_INSTALL_EXTRA_CMD='$$(RANLIB)"(LIBNAME)"'
SLIB_INSTALL_NAME='(SLIBNAME_WITH_MAJOR)$(SLIBNAME)'
替换为
SLIBNAME_WITH_MAJOR='(FULLNAME)-(SLIBSUF)'
LIB_INSTALL_EXTRA_CMD='$$(RANLIB)"(LIBNAME)"'
SLIB_INSTALL_NAME='(SLIBNAME)'
五.以上步骤都做好后,就开始回到Mac终端,最好是重启下终端,使用cd 进入到ffmpeg文件目录下,使用以下命令
./build_android
等待一会儿,输入 make
最后输入make install 全部编译后,我们打开ffmpeg目录,会发现生成了一个文件夹,android,android/xxx/lib/下就是我们需要的so文件了。
以上就是ffmpeg在Mac下移植的过程,讲真简书我真的还用不习惯,这格式好难梳理,
有编译的疑问可以留言给我