H264/FFmpeg音视频开发经验之路

Android移植FFmpeg(1)-编译

2016-12-30  本文已影响143人  依然小激动

环境:win7 FFmpeg-n3.2.2 mingw

1.下载mingw,并安装

下载之后,安装,选中这两项后apply changes

进入到mingw的安装目录下,找到\MinGW\msys\1.0目录,由于编译要使用make命令,把bin的路径配置到环境变量中,然后打开msys.bat,一会编译使用

2.下载FFmpeg,我下载的版本是3.2.2,下载之后解压。然后找到configure文件,用ultraedit或者notepad++打开,找到如下代码

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

这里无脑替换即可,主要是so文件命名的需要

3.在FFmpeg目录下新建build_android.sh文件,内容如下

#!/bin/bash

export TMPDIR=F:/ffmpeg/FFmpeg-n3.2.2/tmpdir

NDK=G:/devtool/android-studio-sdk/ndk-bundle

SYSROOT=$NDK/platforms/android-23/arch-arm/

TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64

CPU=arm

PREFIX=F:/ffmpeg/FFmpeg-n3.2.2/install

ADDI_CFLAGS="-marm"

function build_one

{

./configure \

--prefix=$PREFIX \

--enable-shared \

--disable-static \

--disable-doc \

--disable-ffmpeg \

--disable-ffplay \

--disable-ffprobe \

--disable-ffserver \

--disable-doc \

--disable-symver \

--enable-small \

--cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \

--target-os=linux \

--arch=arm \

--enable-cross-compile \

--sysroot=$SYSROOT \

--extra-cflags="-Os -fpic $ADDI_CFLAGS" \

--extra-ldflags="$ADDI_LDFLAGS" \

$ADDITIONAL_CONFIGURE_FLAG

make clean

make

make install

}

build_one

read -p "Press any key to continue." var

其中,TMPDIR是个临时目录,编译时需要用到,可以随意指定路径;

NDK则替换为本机的ndk路径;

SYSROOT根据本机设置,但不要大于你的target,比如你的target是23,就不要用 大于Android-23的;

PREFIX则是编译后so的存放地址,路径可以随便指定。

4.在刚才打开的mingw中,切换到FFmpeg目录下,执行./build_android.sh

在此过程中会提示一堆pr command not found的提示,不用管,继续执行下去即可

经过了漫长的等待,会在install目录下生成so包和头文件

上一篇下一篇

猜你喜欢

热点阅读