FFMPEG for Android(一)

  本文是关于在Win10下编译生成FFMPEG头文件和.so文件供Android下使用的具体流程。

准备工作

  首先需要先下载FFMPEG、NDK和MinGW。
  
下载FFMPEG
  具体界面如下图所示,可以直接选择下载最新的版本,当前最新版本为3.4.1。
这里写图片描述

下载NDK
  具体界面如下图所示,推荐下载最新的。
这里写图片描述

下载MinGw
  具体界面如下图所示这里写图片描述

具体版本

  1. Win10 系统
  2. ffmpeg-3.4.1
  3. android-ndk-r14b-windows-x86_64
  4. mingw

开始配置

第一步 安装MinGw

  安装完成后,在 MinGw installation Manager 中点击左边Basic Setup选项,然后选中右边所对应的所有的package包,选中包时右键选择Mark for Installation ,然后点击工具栏中的Installation—>Applay Changes,等待安装完成。网上也有教程指出到选择安装选项的时候只需要选择msys-basemingw32-gcc-ada两项即可。  
这里写图片描述

第二步 配置环境变量

  需要在环境变量path中加入MinGw中两个bin的路径,D:\MinGw\bin和D:\MinGw\msys\1.0\bin,具体路径根据个人安装的MinGw而定。
这里写图片描述

第三步 更改FFMPEG的configure文件

  找到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)'

  我是直接将之前的注释掉
这里写图片描述

第四步 创建build_android.sh文件

  在FFMPEG下新建build_android.sh文件,然后将如下内容粘贴进去。

#!/bin/bash
export TMPDIR=D:/ffmpeg-3.4.1/tempdir
NDK=D:/android-ndk-r14b-windows-x86_64/android-ndk-r14b
SYSROOT=$NDK/platforms/android-14/arch-arm
TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64
CPU=arm
PREFIX=D:/ffmpeg-3.4.1/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— 是个临时目录,tempdir文件需要自己提前新建。
  • NDK—NDK的路径
  • SYSROOT—到NDK路径下查看
  • TOOLCHAIN—到NDK路径下查看
  • PREFIX—编译生成的头文件与so文件的存放处,output文件夹不需要自己手动新建。
  • function build_one部分可以根据自己的需要进行“裁剪”。
第五步 编译

  到D:\MinGw\msys\1.0下打开msys.bat文件,依次输入下面两行命令。

cd D:\ffmpeg-3.4.1
./build_android.sh

这里写图片描述
  等待……
  编译完成后到D:\ffmpeg-3.4.1\output\arm下会看见下面三个文件夹
这里写图片描述
  其中,include为头文件,lib包含生成的.a文件和.so文件。
  至此所有的编译工作完成,本文主要是根据别人的博客自己做的总结,很多参数的意思并没有理解,以后慢慢补充更改。
  
  参考:http://blog.csdn.net/huweijian5/article/details/52840177

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值