美文网首页
使用NDK编译FFMPEG

使用NDK编译FFMPEG

作者: 码农呀 | 来源:发表于2019-08-09 20:20 被阅读0次

首先,

获取ffmpeg的工具包
这里我使用的是4.1
然后获取编译环境MinGw
下载完成后安卓,会有一个弹窗

如果不懂就直接全点了,安装过程可能有些漫长

然后配置环境变量


这里是win10的

然后进入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)'

编写批处理文件

#!/bin/bash 
set -x
API=21
export TMPDIR="F:/so"
NDK=E:/ndklist/android-ndk-r17c-windows-x86_64/android-ndk-r17c
SYSROOT=$NDK/platforms/android-$API/arch-arm/
TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64
function function_one
{
./configure \
  --prefix=$PREFIX \
  --enable-shared \
  --disable-static \
  --disable-doc \
  --disable-ffplay \
  --disable-ffprobe \
  --disable-symver \
  --disable-ffmpeg \
  --cc=$TOOLCHAIN/bin/arm-linux-androideabi-gcc \
  --cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
  --target-os=android \
  --arch=arm \
  --enable-cross-compile \
  --sysroot=$SYSROOT \
  --extra-cflags="-I$NDK/sysroot/usr/include/arm-linux-androideabi -isysroot $NDK/sysroot -fPIC -DANDROID -D__thumb__ -mthumb -Wfatal-errors -Wno-deprecated -mfloat-abi=softfp -marm -march=armv7-a" \
  --enable-neon

make clean all
make 
make install
}
CPU=armv7-a
PREFIX=F:/FFmpeg/uotput/lib
function_one

注释:

API:你的目标编译版本<gradle配置的tag
TMPDIR: 编译时的临时文件位置,一定要有,不然编译失败!
NDK:你的NDK路径
PREFIX:你编译成功后so文件的位置
以上均为准备工作

正文

进入到你MinGw的安装目录:E:\MinGw\msys\1.0
双击 :msys.bat


按照上面的顺序就可以了,批处理的文件名不要敲错了,尽量CV

如果成功的话那么会有一个漫长的等待时间~~~


会在你批处理文件中设置的(PREFIX)文件夹下生成这个玩意了,然后可以愉快的拿去集成了

相关文章

网友评论

      本文标题:使用NDK编译FFMPEG

      本文链接:https://www.haomeiwen.com/subject/wilkjctx.html