iOS 利用FFmpeg 开发音视频流(二)——Mac 系统上编译 iOS 可用的FFmpeg 库

博主里利用上一篇iOS 利用FFmpeg 开发音视频流(一)的文章带了小伙伴们进入了 FFmpeg 的大坑,有观看过上一篇文章的小伙伴都会产生一些疑问,我们现在可以在 Mac 上使用强大的 FFmpeg 了,但是在 IOS 上怎么使用呢?使用起来是不是像Mac 那么简单?几句命令行可以搞掂?大家先别急,凡事都循序渐进嘛,不能一口吃掉一个胖子。
今天,博主就说一下, 如何在iOS上集成 FFmpeg,来,博主带大家往坑里走了。

我们此次入坑需要的工具:

1、gas-preprocessor
2、yasm 1.2.0
3、FFmpeg-iOS-build-script(ps:这个脚本真是业界良心呀,帮我们省下了不少心。)

好了,刀已经有了,但是怎么优雅的使用出招式呢?慢慢来,博主力求详细的为大家分解每个步骤。

1、下载gas-preprocessor
那么 gas-preprocessor 是什么呢?

gas-preprocessor 其实就是我们要编译 FFmpeg 的所需脚本文件。

1)我们将其解压后,发现内部只有简单的 4 个文件,如下图:


gas-preprocessor 解压后的文件

不难发现其中的 gas-preprocessor.pl,没错,这就是我们要找的刀了,恭喜,你获取了小木剑一把,继续往坑里走少年。

2)继续将 gas-preprocessor.pl 文件复制到 /usr/sbin/ 目录下(ps:应该会有很多小伙伴发现这个目录是根本没法修改的,那么这种情况下,小伙伴们可以将文件复制到 /usr/local/bin/ 目录下),然后为文件开启可执行权限,打开终端并输入以下命令行:

chmod 777 /usr/sbin/gas-preprocessor.pl

chmod 777 /usr/local/bin/gas-preprocessor.pl

2、安装 yasm
yasm 又是什么呢?

Yasm是一个完全重写的 NASM 汇编。目前,它支持x86和AMD64指令集,接受NASM和气体汇编语法,
产出二进制,ELF32 , ELF64 , COFF , Mach - O的( 32和64 ),RDOFF2 ,的Win32和Win64对象的格式,
并生成STABS 调试信息的来源,DWARF 2 ,CodeView 8格式。

1)下载 yasm
上一篇文章博文带大家下载了一个好东西 homebrew,既然是优雅的编译,我们就用最像程序员的东西,命令行了,打开终端,输入如下:

brew install yasm

2)检测是否已安装 yasm

brew install yasm

如果你成功安装了 yasm,输出如下图:


brew info yasm

好了,你获得了隔壁老王内裤一条。额。。让我们继续前进。


3、编译 FFmpeg-iOS-build-script,得到我们需要的 iOS 能用的 ffmpeg 库

这个脚本有神马用呢?

不难看出,这个脚本是转为 iOS 编译出可用的 ffmpeg 的库,这个业界良心,我们称之为`神的内裤`。。。
好吧,不搞笑,有了这个脚本,我们根本就不用下载 ffmpeg 了,脚本会帮我们下载好最新版本的 ffmpeg,
并打包成一个 iOS 可用的 ffmpeg 库提供给我们了,当然,前提是你必须要跟着博主一步一步入坑才行喔。

1)进入我们的 gitHub 网站,把 FFmpeg-iOS-build-script 下载好压缩包。

2)编译脚本,打包出我们需要的 iOS 的 ffmpeg 库
解压 FFmpeg-iOS-build-script 得到的文件如下:

解压后得到的 FFmpeg-iOS-build-script

我们目标不是开发 tvos 吧。。那么我们的目标脚本就只剩下 build-ffmpeg.sh 了。打开终端,进入解压后的 FFmpeg-iOS-build-script 文件夹,命令行如下:

  cd 小伙伴们的FFmpeg-iOS-build-script文件夹路径

执行 build-ffmpeg.sh 脚本:

./build-ffmpeg.sh

当然,官方是有说明的:
To build everything:

./build-ffmpeg.sh

To build arm64 libraries:

./build-ffmpeg.sh arm64

To build fat libraries for armv7 and x86_64 (64-bit simulator):

./build-ffmpeg.sh armv7 x86_64

To build fat libraries from separately built thin libraries:

./build-ffmpeg.sh lipo

好了,执行完命令行后,终端就会拿着这条内裤,在啪啪啪了(编译)。。。这段时间里,你可以去喝杯咖啡慢慢等待,最后得到的文件如下:

通过脚本编译 ffmpeg 所得到的文件

小伙伴们不难看到,FFmpeg-iOS 就是我们所需要的文件夹了,看到内部的各种 .a 文件,也就是我们熟悉的静态库了。


4、集成FFmpeg 库开发工程当中

1)把 FFmpeg-iOS 直接复制到你的工程目录下

2)把 FFmpeg-iOS 从你的工程目录下拖到工程当中,最后得到的结果如下图:

集成 FFmpeg 的工程图

3)编译一下,你会发下有错误,哈哈,原因是你没有链接编译文件
好,我们进入 Build Setting ,修改 header search Path 链接到工程的 include 文件当中 操作如下:

链接库文件

OK,我们可以在工程当中引入 #import "avformat.h" 文件了,编译 Success


@end

好了,至此,我们已经成功编译并集成了 ffmpeg 了,但是怎么使用呢?怎么压缩视频,视频压缩视频?
怎么实现 h264 编码?怎么将视频/音频推送到流媒体服务器呢?这些都是我们将要说的。
本博主会继续带大家入坑的,谢谢。

心如止水,奋力前行

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,222评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,455评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,720评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,568评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,696评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,879评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,028评论 3 409
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,773评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,220评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,550评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,697评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,360评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,002评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,782评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,010评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,433评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,587评论 2 350

推荐阅读更多精彩内容