环境:
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)的更多相关文章

  1. 多媒体开发(7):编译Android与iOS平台的FFmpeg

    编译FFmpeg,一个古老的话题,但小程还是介绍一遍,就当记录.之前介绍怎么给视频添加水印时,就已经提到FFmpeg的编译,并且在编译时指定了滤镜的功能. 但是,在手机盛行的时代,读者可能更需要的是能 ...

  2. 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/ ...

  3. mac下编译FFmpeg-Android

    参考: [史上最傻瓜的]mac下编译FFmpeg-Android http://blog.csdn.net/ashqal/article/details/9381037

  4. 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 ...

  5. 在iOS平台使用ffmpeg解码h264视频流(转)

    在iOS平台使用ffmpeg解码h264视频流,有需要的朋友可以参考下. 对于视频文件和rtsp之类的主流视频传输协议,ffmpeg提供avformat_open_input接口,直接将文件路径或UR ...

  6. 在iOS平台使用ffmpeg解码h264视频流

    来源:http://www.aichengxu.com/view/37145 在iOS平台使用ffmpeg解码h264视频流,有需要的朋友可以参考下. 对于视频文件和rtsp之类的主流视频传输协议,f ...

  7. iOS开发~制作同时支持armv7,armv7s,arm64,i386,x86_64的静态库.a以及 FrameWork 的创建

    armv7,armv7s,arm64,i386,x86_64 详解 一.概要 平时项目开发中,可能使用第三方提供的静态库.a,如果.a提供方技术不成熟,使用的时候就会出现问题,例如: 在真机上编译报错 ...

  8. Mac下编译libpomelo静态库,并在cocos2dx项目中引用

    最近在学习cocos2dx的过程中需要和服务器进行交互,所以这几天在学习libpomelo静态库的编译和使用.之前在windows系统下编译libpomelo,并在VS中引入比较顺利:但是,目前对Ma ...

  9. FFmpeg在Linux下编译使用

    文章转自:http://www.cnblogs.com/CoderTian/p/6655568.html 1.FFmpeg编译 1.1.安装yasm 这里我是直接通过ubuntu包安装的,当然也可以通 ...

随机推荐

  1. [https][tls] 如何使用wireshark查看tls/https加密消息--使用keylog

    姊妹篇: [ipsec][strongswan] 使用wireshark查看strongswan ipsec esp ikev1 ikev2的加密内容 [https][tls] 如何使用wiresha ...

  2. Linux命令——lspci

    参考:7 Linux lspci Command Examples to Get PCI Bus Hardware Device Info 简介 lspci可以看成“ls” + “pci”.lspci ...

  3. ymPrompt简介

    ymPrompt从最简单的1.0版本到现在的4.0版本,代码共经历了四次较大的改动,组件在功能上有了很大的改进,应用灵活度更大,可应用环境的环境更加广泛,特别在4.0版本中加入对遮罩显示隐藏.按钮/图 ...

  4. Oracle数据库的分页

    Oracle的分页 ORACLE支持一个关键字ROWNUM,ROWNUM是一个伪列,该列不存在于任何一张表中,但是每张表都可以查询该列. 而该列在结果集的中值是结果集中每条记录的"行号&qu ...

  5. sublime——开启自动保存

    前言 懒 步骤 失去焦点自动保存 "save_on_focus_lost": true 首选项-->设置-->Ctrl+F搜索‘save’,找到“save_on_foc ...

  6. Linux 安装网络yum地址

    rpm -Uhv http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm   rpm -Uhv http:/ ...

  7. Djiango权限组件

    一. login中注册 权限url def login(request): if request.method == "POST": username = request.POST ...

  8. memorization-根据输入重新计算render的数据

    在实际开发过程中,经常遇到根据props和state变化,重新计算“渲染阶段”需要的数据的情况. 如:根据输入的值实时过滤select列表,或者表格数据(查询过滤). 问题特点: 1. 每次渲染都会调 ...

  9. Openwrt路由器上常用的操作

    换了好些固件,大体上都差不多. 只能用opkg下载安装,不能用apt-get安装. 1.tcpdump和nano是我必备的,个人觉得nano比vi好用 opkg install tcpdump opk ...

  10. Python学习之--用户输入以及运算

    一. 用户输入:input 1. 函数input() 让程序暂停运行,等待用户输入一些文本. 2.使用int()将字符串转为数值 二.运算:+-*. 1.求模运算符 (%)将两个数相除并返回余数: 2 ...