FFmpeg编译:mac下编译iOS平台的FFmpeg库(支持armv7, arm64, i386, x86_64)
环境:
FFmpeg 3.4.6
Xcode 10.3
macOS 10.14.6
iOS SDK 12.4
一.准备工作
1. 下载FFmpeg
我这里使用的是3.4.6版本的FFmpeg,可以从FFmpeg官网下载最新(http://www.ffmpeg.org)或者历史版本(http://www.ffmpeg.org/releases/)的FFmpeg。
2. 下载最新的gas-preprocessor.pl
由这里(https://github.com/libav/gas-preprocessor)下载最新的gas-preprocessor.pl,下载完毕后将gas-preprocessor.pl拷贝到/usr/local/bin目录下, 并且修改权限使其可执行。
// 跳转到该目录
cd /usr/local/bin
// 修改访问权限
chmod gas-preprocessor.pl
3. 检查mac是否已安装Command Line Tools
具体请参见:https://www.cnblogs.com/yongdaimi/p/11723573.html
4. 下载编译脚本
从https://github.com/kewlbear/FFmpeg-iOS-build-script 这里下载iOS版本的编译脚本。
二. 准备编译
1. 将下载下来的FFmpeg3.4.6压缩包拷贝到与编译脚本相同的目录下,并解压该压缩包:

2. 修改编译脚本中FFmpeg的版本号
打开build-ffmpeg.sh, 修改FF_VERSION后面的版本号,使其于下载下来的FFmpeg版本号保持一致。

3. 回到终端,执行./build-ffmpeg.sh,开始编译

整个过程大约会持续5~8分钟,耐心等待编译结束。编译结束后会在当前目录下生成FFmpeg-iOS文件夹,里面包含有我们将要使用的头文件和库文件:

该编译脚本已经自动将armv7, arm64, i386, x86_64 四个平台的库整合到了一起,我们可以使用lipo命令查看该静态库的详细信息:

其它
1. 以上所使用的资源
链接: https://pan.baidu.com/s/1oWt8GqxA34PfSIzYnL1Mjw 提取码: aphj
FFmpeg编译:mac下编译iOS平台的FFmpeg库(支持armv7, arm64, i386, x86_64)的更多相关文章
- 多媒体开发(7):编译Android与iOS平台的FFmpeg
编译FFmpeg,一个古老的话题,但小程还是介绍一遍,就当记录.之前介绍怎么给视频添加水印时,就已经提到FFmpeg的编译,并且在编译时指定了滤镜的功能. 但是,在手机盛行的时代,读者可能更需要的是能 ...
- MAC 下编译 ANDROID P 源码 提示 internal error: Could not find a supported mac sdk: ["10.10" "10.11" "10.12" "10.13"]
MAC 下编译 ANDROID P 源码出现下面的问题: ninja: no work to do. [21/21] out/soong/.bootstrap/bin/soong_build out/ ...
- mac下编译FFmpeg-Android
参考: [史上最傻瓜的]mac下编译FFmpeg-Android http://blog.csdn.net/ashqal/article/details/9381037
- Mac 下编译 Hadoop
Mac 下编译 Hadoop-2.9.2 系统环境 系统: Mac OS_10.14.4 maven: Apache Maven 3.6.0 jdk: jdk_1.8.0_201 ProtocolBu ...
- 在iOS平台使用ffmpeg解码h264视频流(转)
在iOS平台使用ffmpeg解码h264视频流,有需要的朋友可以参考下. 对于视频文件和rtsp之类的主流视频传输协议,ffmpeg提供avformat_open_input接口,直接将文件路径或UR ...
- 在iOS平台使用ffmpeg解码h264视频流
来源:http://www.aichengxu.com/view/37145 在iOS平台使用ffmpeg解码h264视频流,有需要的朋友可以参考下. 对于视频文件和rtsp之类的主流视频传输协议,f ...
- iOS开发~制作同时支持armv7,armv7s,arm64,i386,x86_64的静态库.a以及 FrameWork 的创建
armv7,armv7s,arm64,i386,x86_64 详解 一.概要 平时项目开发中,可能使用第三方提供的静态库.a,如果.a提供方技术不成熟,使用的时候就会出现问题,例如: 在真机上编译报错 ...
- Mac下编译libpomelo静态库,并在cocos2dx项目中引用
最近在学习cocos2dx的过程中需要和服务器进行交互,所以这几天在学习libpomelo静态库的编译和使用.之前在windows系统下编译libpomelo,并在VS中引入比较顺利:但是,目前对Ma ...
- FFmpeg在Linux下编译使用
文章转自:http://www.cnblogs.com/CoderTian/p/6655568.html 1.FFmpeg编译 1.1.安装yasm 这里我是直接通过ubuntu包安装的,当然也可以通 ...
随机推荐
- HTML&CSS基础-伪元素选择器
HTML&CSS基础-伪元素选择器 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.html源代码 <!DOCTYPE html> <html> ...
- K8S集群证书已过期且etcd和apiserver已不能正常使用下的恢复方案
在这种比较极端的情况下,要小心翼翼的规划和操作,才不会让集群彻底死翘翘.首先,几个ca根证书是10年期,应该还没有过期.我们可以基于这几个根证书,来重新生成一套可用的各组件认证证书. 前期,先制定以下 ...
- 《BUG创造队》作业8:软件测试与Alpha冲刺(第五天)
项目 内容 这个作业属于哪个课程 2016级软件工程 这个作业的要求在哪里 实验十二 团队作业8:软件测试与ALPHA冲刺 团队名称 BUG创造队 作业学习目标 (1)掌握软件测试基础技术.(2)学习 ...
- Machine learning system design---prioritizing what to work on
prioritizing what to work on 设计一个机器学习算法时,我们应该先做什么?以垃圾邮件识别的例子为例: 垃圾邮件发送者可能会故意将一些字符写错,如上图中的Medicine用1 ...
- HDFS内存配置
下图是HDFS的架构: 从上图中可以知道,HDFS包含了NameNode.DataNode以及Client三个角色,当我们的HDFS没有配置HA的时候,那还有一个角色就是SecondaryNameNo ...
- linux下新磁盘创建lvm、扩容lvm
1.首先查看磁盘fdisk -l2.进入磁盘fdisk /dev/sdbn 创建新磁盘p 创建主分区创建分区ID 1-4为主分区根据提示选择磁盘开始位置(默认空格就好)选择结束位置(新增磁盘大小)t ...
- matlab的拟合函数polyfit()函数
matlab的多项式拟合: polyfit()函数 功能:在最小二乘法意义之上,求解Y关于X的最佳的N次多项式函数. clc;clear; close all; x=[ ]; y=[2.7 7.4 2 ...
- 移动端videojs视频插件使用直播流rtmp、hls、http-flv的注意事项
可以访问:https://videojs.com/ 下载对应的脚本包 特别注意的是 移动端videojs一般应用的直播流协议为HLS, RTMP协议一般是PC上使用,需要flash支持. HLS直播源 ...
- python - djanog (静态文件)
# 在 setting 文件中的 static ,通过这个方法(别名) 可以拼接到其它文件夹中的文件 # 第一步: 导入 # {% load static %} # 第二步: 查找 static (别 ...
- Kubernetes 学习19基于canel的网络策略
一.概述 1.我们说过,k8s的可用插件有很多,除了flannel之外,还有一个流行的叫做calico的组件,不过calico在很多项目中都会有这个名字被应用,所以他们把自己称为project cal ...