##内容摘要
准备linux系统 ubuntu14.04
安装 git
安装 vim(vimcdoc-1.5.0.tar.gz)
安装 jdk(jdk-8u151-linux-x64.tar.gz)
安装 ndk(android-ndk-r10e-linux-x86_64.bin)
配置jdk、sdk和ndk环境
FFmpeg 编译
问题处理
将已编译的FFmpeg 移植到 android studio
移植问题处理
##略过内容
准备linux系统 ubuntu14.04
安装 git
安装 vim(vimcdoc-1.5.0.tar.gz)
安装 jdk(jdk-8u151-linux-x64.tar.gz)
安装 ndk(android-ndk-r14-linux-x86_64.bin)
配置jdk、sdk和ndk环境
这个过程在上一篇可以看到!
##FFmpeg 编译
###下载源码
下载 FFmpeg 源码,点击进入 Release n3.1.11 · FFmpeg/FFmpeg
解压并进入到目录<这个是我的目录>:/home/ztman/opt/FFmpeg-n3.1.11#
SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)'
LIB_INSTALL_EXTRA_CMD='$$(RANLIB) "$(LIBDIR)/$(LIBNAME)"'
SLIB_INSTALL_NAME='$(SLIBNAME_WITH_MAJOR)'
SLIB_INSTALL_LINKS='$(SLIBNAME)'
即
![](https://i-blog.csdnimg.cn/blog_migrate/9112686d55ab02f47196bdc944bd2d5a.png)
对这几行代码的查找可以通过vim命令快速定位
![](https://i-blog.csdnimg.cn/blog_migrate/f9c692998e0c2eeca380707f6041846d.png)
###编写脚本
#!/bin/bash
NDK=/home/ztman/opt/ndk14/android-ndk-r14b
SYSROOT=${NDK}/platforms/android-23/arch-arm
TOOLCHAIN=${NDK}/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64
function build_so
{
./configure \
--prefix=$PREFIX \
--enable-shared \
--disable-static \
--disable-doc \
--disable-ffmpeg \
--disable-ffplay \
--disable-ffprobe \
--disable-ffserver \
--disable-avdevice \
--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=./android/$CPU
ADDI_CFLAGS="-marm"
build_so
即
![](https://i-blog.csdnimg.cn/blog_migrate/bad8ce1208af4a717a9791fd6362d1b7.png)
如果在此想要了解shell脚本的编写规范,可以点击进入
相关学习资料推荐,点击下方链接免费报名,先码住不迷路~】
音视频免费学习地址:FFmpeg/WebRTC/RTMP/NDK/Android音视频流媒体高级开发
【免费分享】音视频学习资料包、大厂面试题、技术视频和学习路线图,资料包括(C/C++,Linux,FFmpeg webRTC rtmp hls rtsp ffplay srs 等等)有需要的可以点击788280672加群免费领取~
![](https://i-blog.csdnimg.cn/blog_migrate/215265d0ad7d74a3d093047ed6734529.png)
执行脚本命令:"./buildff.sh"之前要执行修改这个文件权限的命令如**“chmod +x buildff.sh”**。然后从图中我们看一下编译的过程,
![](https://i-blog.csdnimg.cn/blog_migrate/52394f9e221e3a32489400ebc0d8753d.png)
![](https://i-blog.csdnimg.cn/blog_migrate/ef07a2ec8b23cd8843bd5377df2df8ee.png)