照做就完事了:Mac下编译ffmpeg生成so文件
下载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文件相关推荐
- Mac下编译ffmpeg出现“ERROR: x265 not found using pkg-config”
x265已经编译成功,但是ffmpeg/configure出现错误 ERROR: x265 not found using pkg-config 看了一下config.log,出了一坨"Un ...
- windos下编译ffmpeg生成dll、lib库(开启265)
编译环境Win 64位+MSYS2 一.安装MSYS2 1.下载msys.exe,https://www.msys2.org/ 2.安装msys 3.运行msys并执行命令pacman -Syu,一律 ...
- iOS架构-C/C++lame库在Mac下编译通用静态库.a库(13)
C/C++ 有很多成熟的库,还有很多特殊功能的库,有时候iOS 平台开发一些比较前沿或者冷门的功能时,iOS并没有提供解决方案,这时候就可以研究C/C++的一些库,为我们使用.但是在Xcode编译C/ ...
- mac下编译hadoop-3.0.3
文章目录 1.编译前准备 2. 源码目录下执行 3.编译 5.错误集锦 5.1 Apache Hadoop Pipes编译失败 5.1.2 解决: 5.2 hadoop-client-check-te ...
- mac下编译安卓源码
资源 Mac OS10.12 编译Android源码8.1 aosp编译-需翻墙 Mac下编译安卓源码 手把手教你在Mac OS下载.编译及导入Android源码 步骤 准备 磁盘空间大于180G 安 ...
- 在Mac下编译ijkplayer os文件
在Mac下编译ijkplayer os文件 第一步: 1.安装homebrew ruby -e "$(curl -fsSL https://raw.githubusercontent.com ...
- linux编译ffmpeg成so,「ffmpeg」一 mac 环境下编译ffmpeg,生成so库文件
1.下载ffmpeg源码,官网,我这里直接采用git 方式下载: 下载ffmpeg.png 终端输入git命令: 静静等待~ 最后下载的版本为3.4.6 . image.png 这里注意一下,刚开始我 ...
- Ubuntu 下编译ffmpeg和x264解编码器(翻译的一篇文章:)
拿出自己一篇早期接触Ubuntu时翻译的文章,对逝去的SEO-DIC.COM.CN这个网站默哀. Ubuntu 下编译ffmpeg和x264解编码器 今年初由于个人的一些原因和其它因素:希奥开源(ht ...
- ffmpeg for android windows,windows10下编译ffmpeg for android
最近实现了一款基于FFMpeg的支持多路视频的实时流媒体播放器:https://github.com/huweijian5/RtspPlayer 有兴趣能够关注下.html 本文记录在windows1 ...
最新文章
- “时隔 10 年,重新开始写代码的我要崩溃了!”
- docker安装ActiveMQ
- jmeter测试元件--控制器
- ORA-16198: LGWR received timedout error from KSR
- 基于Python的HTTP接口测试
- Python中的AES加解密算法
- MySQL vs. MongoDB: Choosing a Data Management Solution
- h3c trunk口改access_H3C交换机恢复出厂和各种基本配置
- SVN,HG,GIT 命令说明
- 基于c语言编写的五子棋小游戏
- 优麒麟系统安装MySQL_优麒麟系统安装教程-电脑系统安装手册
- 基本知识 100032
- ucla 计算机专业 本科申请,2020年加州大学洛杉矶分校本科专业设置
- 生产力飙升!皮卡智能新产品上线,带你进入AIGC新纪元
- 红米手机开发版怎么样获取ROOT权限
- 批量执行ABAQUS的inp文件——整理
- word怎么将文档分成三节_分节排版,就是将Word 2010的文档分节,使文档在不同的节中具有不同的______。(2.0分)_学小易找答案...
- 《贝叶斯思维:统计建模的Python学习法》——2.3 贝叶斯框架
- liunx下通过Canal将MySQL数据同步到Elasticsearch
- java---JUC并发包详解
热门文章
- 【手把手教你树莓派3 (二)】 启动wifi模块
- B cannot be cast to java.sql.Blob
- [Ljava.lang.String; cannot be cast to java.lang.String
- 使用sqoop从Oracle或mysql抽取数据到HDFS遇到的报错及解决
- 服务器的虚拟化配置,怎么配置服务器的虚拟化环境
- python tfidf特征变换_Spark MLlib机器学习开发指南(4)--特征提取--TF-IDF
- python fillna,Pandas之Fillna填充缺失数据的方法
- 金乡高考成绩查询2021,金乡一中举行2021届高三年级一模成绩分析暨表彰大会!现场颁奖...
- 10桌面管理文件收纳_二十余件精选桌面好物推荐,让学习工作生活满满正能量!...
- python模糊匹配忽略大小写_在python中忽略大小写的简单方法?