
FFMPEG文件.jpg
2、修改configure文件
Sublime打开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)'
注意别换错位置,我就是这段代码替换了错误的位置坑了好久
3、在ffmpeg根目录下新建androidBuilder.sh脚本
写入:
#!/bin/bash
# 修改为自己NDK包根目录
export NDK_HOME=/Users/parker/Library/Android/sdk/ndk/android-ndk-r15c
#根据自己的需求修改编译平台版本
export PLATFORM_VERSION=android-21
#定义编译方法
function build
{
#echo 输出命令
echo "start build ffmpeg for $ARCH"
#调用configure命令开始编译,并传入对应的参数
./configure --target-os=linux \
--prefix=$PREFIX --arch=$ARCH \
--disable-doc \
--disable-static \
--disable-yasm \
--disable-asm \
--disable-symver \
--disable-ffmpeg \
--disable-ffplay \
--disable-ffprobe \
--disable-ffserver \
--cross-prefix=$CROSS_COMPILE \
--enable-cross-compile \
--enable-shared \
--enable-gpl \
--sysroot=$SYSROOT \
--enable-small \
--extra-cflags="-Os -fpic $ADDI_CFLAGS" \
--extra-ldflags="$ADDI_LDFLAGS" \
$ADDITIONAL_CONFIGURE_FLAG
make clean
make
make install
echo "build ffmpeg for $ARCH finished"
}
#编译 arm-v7a
PLATFORM_VERSION=android-21
ARCH=arm
CPU=armeabi-v7a #CPU架构
PREFIX=$(pwd)/android_all/$CPU #输出路径:当前目录/android_all/CPU架构/
TOOLCHAIN=$NDK_HOME/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64
CROSS_COMPILE=$TOOLCHAIN/bin/arm-linux-androideabi- #交叉编译环境路径
ADDI_CFLAGS="-march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mthumb -mfpu=neon"
ADDI_LDFLAGS="-march=armv7-a -Wl,--fix-cortex-a8"
SYSROOT=$NDK_HOME/platforms/$PLATFORM_VERSION/arch-$ARCH/
build
保存。
4、打开终端,把androidBuilder.sh拖进去,Enter。
编译的过程当中会申请很多的权限,一路允许就好。
部分权限需要手动去 偏好设置->安全与隐私 手动授权。
编译过程大概五到十分钟。
编译完成之后,在ffmpeg目录下会出现新的文件夹android_all.如图:

编译完成之后的android_all文件夹.png
armeabi-v7a目录下的include和lib就是我们引入Android需要使用的头文件和动态链接库。
到此FFMPEG编译结束。
备注
如果在整个过程中出现错误,排查顺序:
如果FFMPEG源码编译失败:
1、检查自己的NDK版本号和FFMPEG源码是否对应;
2、检查androidBuilder.sh中是否正确替换了自己的sdk地址。
3、检查FFMPEG根目录下的configure文件中的代码更换位置是否正确。
后续会写FFPEG for Android使用教程。
祝各位同僚一切顺利!
文章均来自互联网如有不妥请联系作者删除QQ:314111741 地址:http://www.mqs.net/post/12985.html
添加新评论