我是靠谱客的博主 朴实巨人,这篇文章主要介绍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:MinGwbin和D:MinGwmsys1.0bin,具体路径根据个人安装的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:MinGwmsys1.0下打开msys.bat文件,依次输入下面两行命令。

cd D:ffmpeg-3.4.1
./build_android.sh

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

最后

以上就是朴实巨人最近收集整理的关于FFMPEG for Android(一)的全部内容,更多相关FFMPEG内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(110)

评论列表共有 0 条评论

立即
投稿
返回
顶部