为什么写这篇教程?
网上的教程确实很多,让人眼花缭乱,经过一番周折之后终于摸索的编译成功了,特记录操作。
1、安装MinGW
①下载地址:https://sourceforge.net/projects/mingw/files/
②安装不太懂直接全部选中安装即可
③配置环境变量
image.png
2、可选 yasm.exe(如果系统中有 跳过)
①下载地址:http://yasm.tortall.net/Download.html
②下载完成,重命名yasm.exe 放在C:\Windows下
3、下载ffmpeg
①下载地址:https://ffmpeg.org/download.html)
②建议直接放c盘下(我的是C:\ffmpeg)
③在ffmpeg文件下找到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)'
注意:删除末尾空格
④然后再FFmpeg文件中建一个buid_android.sh文件
image.png
内容:
#!/bin/bash
export TMPDIR=C:/ffmpeg/tmp
NDK=E:/androidstudio/sdk/ndk-bundle
SYSROOT=$NDK/platforms/android-18/arch-arm
TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64
CPU=arm
PREFIX=C:/ffmpeg/tmp/output/$CPU
ADDI_CFLAGS="-Os -fpic -marm"
function build_one
{
./configure \
--prefix=$PREFIX \
--enable-shared \
--enable-static \
--enable-asm \
--enable-neon \
--disable-doc \
--disable-ffmpeg \
--disable-ffplay \
--disable-ffprobe \
--disable-ffserver \
--disable-doc \
--disable-symver \
--enable-pthreads \
--enable-small \
--enable-jni \
--enable-mediacodec \
--enable-runtime-cpudetect \
--cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
--target-os=android \
--arch=arm \
--enable-cross-compile \
--sysroot=$SYSROOT \
--extra-cflags="$ADDI_CFLAGS" \
--extra-ldflags="$ADDI_LDFLAGS" \
$ADDITIONAL_CONFIGURE_FLAG
make clean
make
make install
}
build_one
read -p "Press any key to continue."
TMPDIR:是个临时目录,编译时用,存在即可
NDK:你的ndk路径;
SYSROOT:根据你的需求设置?
PREFIX:编译后so的存放地址
4、编译
①进入C:\MinGW\msys\1.0 点击msys.bat
②进入FFmpeg文件夹(我是直接放c盘中的)
cd c:
cd ffmpeg
./build_android.sh
5、等待即可