目录
目标
准备工作
编译arm版本
遇到的问题及解决方案
arm32, arm64, 成功
编译x86
目标
编译ffmpeg-4.1版本的 arm32, arm64, x86的动态库。
准备工作
新建目录,mkdir ffmpeg, cd ffmpeg, 下载ffmpeg4.1的源码,并解压。http://ffmpeg.org/releases/
# 下载
wget http://ffmpeg.org/releases/ffmpeg-4.2.3.tar.bz2
# 解压
tar xvf ffmpeg-4.2.3.tar.bz2
在同一个目录ffmpeg下,下载编译器:版本选择的是14b。https://developer.android.google.cn/ndk/downloads/older_releases
# 下载
wget https://dl.google.com/android/repository/android-ndk-r14b-linux-x86_64.zip
# 解压
unzip android-ndk-r21b-linux-x86_64.zip
修改ffmpeg4.1的 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)'
在ffmpeg4.1的根目录下,编写run.sh文件, run64.sh文件。
#run.sh, arm 32
#!/bin/bash
#modify those veriable based on your env
#===========================
NDK=/home/ht-dong/ffmpeg/android-ndk-r14b
#32 or 64
archbit=32
#===========================
echo "build for 32bit"
#32bit
abi='armeabi'
cpu='arm'
arch='arm'
android='androideabi'
SYSROOT=$NDK