一、可参考英文官网
https://trac.ffmpeg.org/wiki/CompilationGuide/Generic
【安装编译、更新、移除】https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu#RevertingChangesmadebythisGuide
https://trac.ffmpeg.org/wiki/CompilationGuide
https://trac.ffmpeg.org/
二、下载步骤
备注:可参考官网【安装编译、更新、移除】
安装依赖脚本,并执行它:【若有已安装的可去掉】
sudo apt-get update -qq && sudo apt-get -y install \
autoconf \
automake \
build-essential \
cmake \
git-core \
libass-dev \
libfreetype6-dev \
libgnutls28-dev \
libsdl2-dev \
libtool \
libva-dev \
libvdpau-dev \
libvorbis-dev \
libxcb1-dev \
libxcb-shm0-dev \
libxcb-xfixes0-dev \
meson \
ninja-build \
pkg-config \
texinfo \
wget \
yasm \
zlib1g-dev
在自己的home目录中创建:
mkdir -p ~/ffmpeg_sources
然后直接在官网下载最新tar.gzip压缩包版本,放入linux ffmpeg_sources 中解压出来,进入ffmpeg根目录,创建build_android.h,内容如下可参考别人写的利用NDK(r20) 编译FFmpeg 4.2.1 Android版本,也可参考官网自行优化。
但他这边文章有一个错误配置:
如下,即文中的 --arch=arm64 应该写为:–arch=aarch64
–arch=xxx的参数列表在ffbuild/config.log里面会所有支持的arch列表:
ARCH_LIST=’
aarch64
alpha
arm
avr32
avr32_ap
avr32_uc
bfin
ia64
m68k
mips
mips64
parisc
ppc
ppc64
s390
sh4
sparc
sparc64
tilegx
tilepro
tomi
x86
x86_32
x86_64
’
三、编译步骤
linux版本编译直接参考官网即可:
Linux下必须安装 yasm汇编器【nasm】对ffmpeg中的汇编部分进行编译,默认配置会使用它,否则报错。
ffmpeg源码目录下,首先执行 ./configure ,看是否一切正常,正常将不会报错,还可以看到许多配置信息。
注意修改编译脚本编译结果为so库,而非静态库。
执行上面的编译脚本,等待编译结果在当前目录的android_shared目录中生成。
备注:多核CPU可使用make -j4来提升编译