下载ffmpeg源码

下载地址:www.ffmpeg.org/download.ht…

下载NDK

下载地址:user-gold-cdn.xitu.io/2019/4/10/1…

编写Android脚本

解压好ffmpeg和ndk后; 修改ffmpeg的configure文件:

因为android只能加载*.so结尾的动态库,不能识别如*.so.57结尾的 所以将:

#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)'
复制代码

在终端输入以下命令设置权限(具体目录根据自身情况修改):

chmod 777 /Users/**/ffmpeg-3.2.4/build_android.sh
复制代码

进入ffmpeg目录下终端输入命令:

./configure
复制代码

注意如果不输入这一步,后面编译时会报错

Unknown option "--disable-ffserver"...
复制代码

上述操作完成后,编写android编译脚本

在ffmpeg-3.2.4/下创建 build_android.sh文件,并将以下内容复制到此文件:

#!/bin/bash
export NDK_HOME=/Users/*/Library/Android/sdk/ndk-bundle
export PLATFORM_VERSION=android-14
function build
{echo "start build ffmpeg for $ARCH"./configure --target-os=linux \--prefix=$PREFIX --arch=$ARCH \--disable-doc \--enable-shared \--disable-static \--disable-yasm \--disable-asm \--disable-symver \--enable-gpl \--disable-ffmpeg \--disable-ffplay \--disable-ffprobe \--disable-ffserver \--cross-prefix=$CROSS_COMPILE \--enable-cross-compile \--sysroot=$SYSROOT \--enable-small \--extra-cflags="-Os -fpic $ADDI_CFLAGS" \--extra-ldflags="$ADDI_LDFLAGS" \$ADDITIONAL_CONFIGURE_FLAGmake cleanmakemake installecho "build ffmpeg for $ARCH finished"
}#arm
ARCH=arm
CPU=arm
PREFIX=/Users/*/Documents/ffmpeg-4.1.3/arm
TOOLCHAIN=$NDK_HOME/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64
CROSS_COMPILE=$TOOLCHAIN/bin/arm-linux-androideabi-
ADDI_CFLAGS="-marm"
SYSROOT=$NDK_HOME/platforms/$PLATFORM_VERSION/arch-$ARCH/
build#x86
ARCH=x86
CPU=x86
PREFIX=/Users/*/Documents/ffmpeg-4.1.3/arm/x86
TOOLCHAIN=$NDK_HOME/toolchains/x86-4.9/prebuilt/darwin-x86_64
CROSS_COMPILE=$TOOLCHAIN/bin/i686-linux-android-
ADDI_CFLAGS="-march=i686 -mtune=intel -mssse3 -mfpmath=sse -m32"
SYSROOT=$NDK_HOME/platforms/$PLATFORM_VERSION/arch-$ARCH/
build
复制代码

上述脚本需要根据自身实际安装的目录进行一些修改:

保存后执行:

./build_android.sh
复制代码

等待一段时间后 需要的so文件就生成在对应目录啦

照做就完事了:Mac下编译ffmpeg生成so文件相关推荐

  1. Mac下编译ffmpeg出现“ERROR: x265 not found using pkg-config”

    x265已经编译成功,但是ffmpeg/configure出现错误 ERROR: x265 not found using pkg-config 看了一下config.log,出了一坨"Un ...

  2. windos下编译ffmpeg生成dll、lib库(开启265)

    编译环境Win 64位+MSYS2 一.安装MSYS2 1.下载msys.exe,https://www.msys2.org/ 2.安装msys 3.运行msys并执行命令pacman -Syu,一律 ...

  3. iOS架构-C/C++lame库在Mac下编译通用静态库.a库(13)

    C/C++ 有很多成熟的库,还有很多特殊功能的库,有时候iOS 平台开发一些比较前沿或者冷门的功能时,iOS并没有提供解决方案,这时候就可以研究C/C++的一些库,为我们使用.但是在Xcode编译C/ ...

  4. mac下编译hadoop-3.0.3

    文章目录 1.编译前准备 2. 源码目录下执行 3.编译 5.错误集锦 5.1 Apache Hadoop Pipes编译失败 5.1.2 解决: 5.2 hadoop-client-check-te ...

  5. mac下编译安卓源码

    资源 Mac OS10.12 编译Android源码8.1 aosp编译-需翻墙 Mac下编译安卓源码 手把手教你在Mac OS下载.编译及导入Android源码 步骤 准备 磁盘空间大于180G 安 ...

  6. 在Mac下编译ijkplayer os文件

    在Mac下编译ijkplayer os文件 第一步: 1.安装homebrew ruby -e "$(curl -fsSL https://raw.githubusercontent.com ...

  7. linux编译ffmpeg成so,「ffmpeg」一 mac 环境下编译ffmpeg,生成so库文件

    1.下载ffmpeg源码,官网,我这里直接采用git 方式下载: 下载ffmpeg.png 终端输入git命令: 静静等待~ 最后下载的版本为3.4.6 . image.png 这里注意一下,刚开始我 ...

  8. Ubuntu 下编译ffmpeg和x264解编码器(翻译的一篇文章:)

    拿出自己一篇早期接触Ubuntu时翻译的文章,对逝去的SEO-DIC.COM.CN这个网站默哀. Ubuntu 下编译ffmpeg和x264解编码器 今年初由于个人的一些原因和其它因素:希奥开源(ht ...

  9. ffmpeg for android windows,windows10下编译ffmpeg for android

    最近实现了一款基于FFMpeg的支持多路视频的实时流媒体播放器:https://github.com/huweijian5/RtspPlayer 有兴趣能够关注下.html 本文记录在windows1 ...

最新文章

  1. “时隔 10 年,重新开始写代码的我要崩溃了!”
  2. docker安装ActiveMQ
  3. jmeter测试元件--控制器
  4. ORA-16198: LGWR received timedout error from KSR
  5. 基于Python的HTTP接口测试
  6. Python中的AES加解密算法
  7. MySQL vs. MongoDB: Choosing a Data Management Solution
  8. h3c trunk口改access_H3C交换机恢复出厂和各种基本配置
  9. SVN,HG,GIT 命令说明
  10. 基于c语言编写的五子棋小游戏
  11. 优麒麟系统安装MySQL_优麒麟系统安装教程-电脑系统安装手册
  12. 基本知识 100032
  13. ucla 计算机专业 本科申请,2020年加州大学洛杉矶分校本科专业设置
  14. 生产力飙升!皮卡智能新产品上线,带你进入AIGC新纪元
  15. 红米手机开发版怎么样获取ROOT权限
  16. 批量执行ABAQUS的inp文件——整理
  17. word怎么将文档分成三节_分节排版,就是将Word 2010的文档分节,使文档在不同的节中具有不同的______。(2.0分)_学小易找答案...
  18. 《贝叶斯思维:统计建模的Python学习法》——2.3 贝叶斯框架
  19. liunx下通过Canal将MySQL数据同步到Elasticsearch
  20. java---JUC并发包详解

热门文章

  1. 【手把手教你树莓派3 (二)】 启动wifi模块
  2. B cannot be cast to java.sql.Blob
  3. [Ljava.lang.String; cannot be cast to java.lang.String
  4. 使用sqoop从Oracle或mysql抽取数据到HDFS遇到的报错及解决
  5. 服务器的虚拟化配置,怎么配置服务器的虚拟化环境
  6. python tfidf特征变换_Spark MLlib机器学习开发指南(4)--特征提取--TF-IDF
  7. python fillna,Pandas之Fillna填充缺失数据的方法
  8. 金乡高考成绩查询2021,金乡一中举行2021届高三年级一模成绩分析暨表彰大会!现场颁奖...
  9. 10桌面管理文件收纳_二十余件精选桌面好物推荐,让学习工作生活满满正能量!...
  10. python模糊匹配忽略大小写_在python中忽略大小写的简单方法?