Android平台移植FFmpeg(一)

一、准备工作

  • mac环境
  • 下载ndk(android-ndk-r14b)(https://developer.android.google.cn/ndk/downloads/index.html)
  • 下载FFmpeg-3.3.5(https://ffmpeg.org/releases/?C=N;O=D)
  • 将ffmepg解压到ndk下sources目录中
  • 配置ndk环境

1、打开terminal(终端)
2、cd ~ ( 进入当前用户的home目录)
3、open .bash_profile (打开.bash_profile文件,如果文件不存在就 创建文件:touch .bash_profile 编辑文件:open -e bash_profile)
4.添加配置如下:
export PATH=${PATH}:$NDK_ROOT:/Users/Library/Android/sdk/platform-tools
export NDK_ROOT=/Users/用户/work/work/ndk/android-ndk-r14b
export PATH=$PATH:$NDK_ROOT
保存后退出

二、编译FFmpeg

我们这里编辑android全架构支持的ffmpeg,需要ndk的交叉编译工具提供支持。
Android中支持以.so 结尾的动态库,例如:libavcodec-57.so,而FFmpeg源码默认编译出来的是这种形式的文件libavcodec.so.57,这显然不能直接被使用,我们需要修改下ffmepg根目录下的configure文件,使其生成android可以引用的标准动态库文件,更改如下:
将 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)'

下载构建脚本,并修改内部配置信息,下载后放脚背文件放到ffmepg-3.3.5根目录下。

感谢大神的无私分享
下载链接:https://github.com/yhaolpz/ffmpeg-command-ndkBuild

打开terminal(终端),进入构建脚本目录,输入build_all.sh开始构建,构建时间会比较长,你可以从一杯咖啡静静等待,好了,打完收工!

你可能感兴趣的:(Android平台移植FFmpeg(一))