FFmpeg编译iOS静态库
第一步:下载gas-preprocessor
1.1 下载https://github.com/libav/gas-preprocessor
1.2 拷贝 gas-preprocessor.pl 到 /usr/sbin 目录,命令为:sudo -r gas-preprocessor.pl /usr/sbin
1.3 修改 gas-preprocessor.pl 文件权限,命令为:chmod 777 /usr/sbin/gas-preprocessor.pl
注意:如果执行1.2出现 Operation not permitted,该如何操作?
* 系统开启了 SIP(System Integrity Protection) ,root 权限也无法修改 /usr/sbin 目录
* 如何禁止 SIP,重启电脑,按住 Command+R ,进入 Recovery 模式,打开 Utilities 下的终端
* 在终端中输入 csrutil disable,正常启动电脑即可。
* 如何查看 /usr/sbin目录是否拷贝成功,Shift+Command+G,输入路径 /usr/sbin 进入目录查看即可
第二步:下载编译脚本
下载 https://github.com/kewlbear/FFmpeg-iOS-build-script
第三步:下载FFmpeg
下载:https://github.com/FFmpeg/FFmpeg
第四步:编译
将下载的 FFmpeg 放在编译脚本目录下,执行 sh build-ffmpeg.sh,等待完成。

第五步:项目
将静态库和头文件放入 Xcode 工程里面,编译报错

原因是找不到路径,在 Build Settings 设置 Headers 路径即可

再次运行,仍会报出大量错误,是因为缺少相应的库,在Build Phases里导入下面的库,项目可以编译
* libz.1.2.5.tbd
* libbz2.1.0.tbd
* libiconv.2.tbd
* AudioToolbox.framework
* VideoToolbox.framework
* CoreMedia.framework
FFmpeg编译iOS静态库的更多相关文章
- 使用CMake编译跨平台静态库
在开始介绍如何使用CMake编译跨平台的静态库之前,先讲讲我在没有使用CMake之前所趟过的坑.因为很多开源的程序,比如png,都是自带编译脚本的.我们可以使用下列脚本来进行编译: . / con ...
- 【转】iOS编译OpenSSL静态库(使用脚本自动编译)
原文网址:https://www.jianshu.com/p/651513cab181 本篇文章为大家推荐两个脚本,用来iOS系统下编译OpenSSL通用库,如果想了解编译具体过程,请参看<iO ...
- iOS - 静态库的创建与使用
在日常项目开发中,不论是为了两个公司项目上的业务交流还是为了减少项目的编译时间,有的时候我们会把项目中的私密内容打包成静态库,或者是把项目中变动较少一部分打包成静态库以便提高编译效率,那么下面我们就来 ...
- iOS静态库及Framework 创建
本文转自cocoachina,尊重作者的汗水. 讲述的非常透彻,有需要的朋友可以阅读实践.转载请注明出处 //=================以下留着备份==================// 在 ...
- iOS静态库小结--(yoowei)
准备知识: 1.什么是库? 库是程序代码的集合,是共享程序代码的一种方式 2.根据源代码的公开情况,库可以分为2种类型 a.开源库 公开源代码,能看到具体实现 ,比如SDWebImage.AFNetw ...
- iOS静态库.a文件制作和导入使用
iOS静态库.a文件制作: 1.新建Cocoa Touch Static Library工程 新建工程 - 选择iOS-FrameWork&Libary,选择 Cocoa Touch Stat ...
- iOS 静态库和动态库的区别&静态库的生成
linux中静态库和动态库的区别 一.不同 库从本质上来说是一种可执行代码的二进制格式,可以被载入内存中执行.库分静态库和动态库两种. 1. 静态函数库 这类库的名字一般是libxxx.a:利用静态函 ...
- iOS 静态库,动态库与 Framework 浅析
静态库与动态库的区别 首先来看什么是库,库(Library)说白了就是一段编译好的二进制代码,加上头文件就可以供别人使用. 什么时候我们会用到库呢?一种情况是某些代码需要给别人使用,但是我们不希望别人 ...
- iOS静态库 ---iOS-Apple苹果官方文档翻译
iOS静态库 ---iOS-Apple苹果官方文档翻译 •什么是库? 库是共享程序代码的方式,一般分为静态库和动态库.静态库与动态库的区别? 静态库:链接时完整地拷贝至可执行文件中,被多次使⽤用就为什 ...
随机推荐
- BZOJ 1032 JSOI2007 祖码Zuma 动态规划
题目大意:给定一个祖玛序列,任选颜色射♂出珠子,问最少射♂出多少珠子 输入法近期越来越奇怪了0.0 首先我们把连续同样的珠子都缩在一起 令f[i][j]表示从i開始的j个珠子的最小消除次数 初值 f[ ...
- cocos2d-x3.6 连连看完整源代码
我的博客:http://blog.csdn.net/dawn_moon 好了,这个连连看是用最新版cocos2d-x 3.6版写的,里面使用了非常多新特性. 基本完工了.另一个积分和关卡没有做.有兴趣 ...
- A. Arrays(Codeforces Round #317 水题)
A. Arrays time limit per test 2 seconds memory limit per test 256 megabytes input standard input out ...
- 关于React组件之间如何优雅地传值的探讨
闲话不多说,开篇撸代码,你可以会看到类似如下的结构: import React, { Component } from 'react'; // 父组件 class Parent extends Com ...
- 【Sqlsever系列】日期和时间
1 概述 本文将集合MSDN简要概述Sqlserver中日期和时间函数. 2 具体内容 2.1 date and time data types 2.2 日期和时间功能 3 参考文献 ...
- 多线程编程学习笔记——async和await(三)
接上文 多线程编程学习笔记——async和await(一) 接上文 多线程编程学习笔记——async和await(二) 五. 处理异步操作中的异常 本示例学习如何在异步函数中处理异常,学习如何对多 ...
- 非等高cell实战(01)-- 实现微博页面
非等高cell实战(01)-- 实现微博页面 学习过UITableView.AutoLayout以及MVC的相关知识,接下来通过一个微博页面实战来整合一下. 首先看一下效果图: 需求分析 此页面为非等 ...
- .Net Ajax跨域请求实现
下一阵子要做一个网站Web储备一下知识,AJAX 实现跨域请求,估计会用到,以前在学 WebServer 时候老师整理的一个文档,现在便于查阅和使用现在放到我的博客中. 一般平时我写web页面的时 ...
- java-生成任意格式的json数据
最近研究java的东西.之前靠着自己的摸索,实现了把java对象转成json格式的数据的功能,返回给前端.当时使用的是 JSONObject.fromObject(object) 方法把java对象换 ...
- 【JS】第一个js示例
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...