ffmpeg官网
编译错误:
make: *** No rule to make target '/tests/Makefile'. Stop.
Unknown option "--disable-ffserver".
See ./configure --help for available options.
出现这个错误的原因可能是ffmpeg版本过高或者NDK版本过高
我的环境:
先下载安装NDK
NDK归档历史版本下载
下载android-ndk-r14b-linux-x86_64.zip 然后解压 命令:unzip android-ndk-r14b-linux-x86_64.zip 如果未安装工具软件先安装压缩工具
可以下载再放入到指定文件夹 或者直接下载
mkdir ndk_build//新建文件夹
cd ndk_build//进入到文件夹
wget +linux版本的下载链接地址//下载ndk
unzip + 压缩文件//解压
配置ndk(进入环境配置后在最后添加配置路径 ESC键退出编辑 然后保存退出 ,记得执行环境变量)
vim ~/.bashrc//进入环境变量配置
//以下代码添加到文末
export NDKROOT=/home/ndk_build/android-ndk-r14b//配置你的安装路径
export PATH=$NDKROOT:$PATH//配置路径
:wq!//先按Esc键然后输入wq!保存退出
source ~/.bashrc//执行环境变量
ndk-build//查看是否安装成功,只要不是显示ndk-build not found,则表示安装成功
命令下载ffmpeg版本 建议不要太高 4.1.1我没有编译成功
wget http://ffmpeg.org/releases/ffmpeg-3.3.tar.gz
tar -xzf ffmpeg-3.3.tar.gz
创建编译脚本
在ffmpeg 跟目录下创建android_build.sh(名称随意):
然后编辑该脚本
touch android_build.sh//创建脚本文件
vim android_build.sh
然后复制一下代码使用Shift+Insert键粘贴到脚本中,然后只修改配置NDK路径,注意检查文件copy是否全
#!/bin/bash
make clean
export NDK=/home/ndk_build/android-ndk-r14b
export SYSROOT=$NDK/platforms/android-9/arch-arm/
export TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64
export CPU=arm
export PREFIX=$(pwd)/android/$CPU
export ADDI_CFLAGS="-marm"
./configure --target-os=linux \
--prefix=$PREFIX --arch=arm \
--disable-doc \
--enable-shared \
--disable-static \
--disable-yasm \
--disable-symver \
--enable-gpl \
--disable-ffmpeg \
--disable-ffplay \
--disable-ffprobe \
--disable-ffserver \
--disable-doc \
--disable-symver \
--cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
--enable-cross-compile \
--sysroot=$SYSROOT \
--extra-cflags="-Os -fpic $ADDI_CFLAGS" \
--extra-ldflags="$ADDI_LDFLAGS" \
$ADDITIONAL_CONFIGURE_FLAG
make clean
make
make install
先按Esc键然后输入wq!保存退出 然后执行下面代码
chmod +x android_build.sh
然后修改configure,如果你不修改的话,编译出来过后的.so文件后面会有一串数字,无法使用,所以得修改他的命名规则
将该文件中的如下四行:(输入/SLIBNAME快速搜索定位)
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)'
先按Esc键然后输入wq!保存退出
最好编译.sh文件
./android_build.sh
然后等待编译完成