Android FFMPEG Mac编译教程

Android FFMPEG Mac编译教程

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 FFMPEG Mac编译教程

编译完成之后的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

相关阅读

  • 网站网络推广代运营(网站代运营你需要了解下)

    网站网络推广代运营(网站代运营你需要了解下)

    随着互联网的快速发展,各种网络营销手段层出不穷,其中网络营销平台的兴起就是其中的一种。随着网络营销平台越来越多,也就出现了许多网络营销公司,网络推广公司又有哪种形式的呢?网络营销公司提供多种网络营销服务:SEO优化、品牌营销、商业...

    2025.12.11 15:27:15作者:iseeyuTags:运营
  • 抖音心动新品日麦当劳“麦麦夜市”新品上市,

    抖音心动新品日麦当劳“麦麦夜市”新品上市,

    最近,抖音心动新品日联合麦当劳推出的麦麦夜市系列新品上市,夜市菜单包括新品麦麦夜小堡、出神卤化鸡架、青花椒风味半鸡等等,专门为喜爱深夜美食的年轻人准备。 神卤化鸡架,鸡架被炸得酥酥脆脆的,吃起来嘎嘣脆,肉和骨头都特别香,越咀嚼越带劲,绵延...

    2025.12.11 14:12:19作者:iseeyuTags:麦当劳关爱吃货成长协会伴随成长的中国味品牌
  • 毕业设计-商城小程序

    毕业设计-商城小程序

    主页.jpg 分类.jpg 优惠劵.png 秒杀.png 登录.png 商品详情.png 购物车.png 订单.png 后台_2.pn...

    2025.12.11 12:12:04作者:iseeyu

添加新评论