macOS下如何编译FFmpeg-for-macOS-APP


转载请注明原地址,Clang的博客:https://chenhu1001.github.io 谢谢!

作者:Clang
链接:https://www.jianshu.com/p/f96854919ed4
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


一、基本编译

二、高级编译

三、导入MacOS项目后,添加系统依赖库

我们今天来说说如何编译出适用于macOS APP的库,包括动态库和静态库。

一、基本编译

1、首先我们下载一个最新的ffmpeg源码。

git clone https://git.ffmpeg.org/ffmpeg.git

2、配置./configure选项,这个要注意需要设置对macOS最低版本的要求,否则是默认当前本机的最新系统如,这样的话在使用库的时候,如果是APP要运行在10.10及之下的系统时候,就会报错。

--extra-cflags=-mmacosx-version-min=10.8 --extra-ldflags=-mmacosx-version-min=10.8

3、执行./configure内容如下:

./configure --target-os=darwin --enable-static --enable-swscale --enable-nonfree  --enable-gpl --enable-version3 --enable-nonfree --disable-programs  --libdir=/ffmpegbuild/lib --incdir=/ffmpegbuild/include --enable-shared --extra-cflags=-mmacosx-version-min=10.8 --extra-ldflags=-mmacosx-version-min=10.8 


注意:

1.编译后的MacOS版本FFmpeg库,需要添加liblzma.tbd系统库;
然后打包项目提交审核的时候,就悲催被拒了;
原因是调用了私有方法库:

Your app uses or references the following non-public APIs:
Symbols: _lzma_end, _lzma_stream_decoder, _lzma_code
The use of non-public APIs is not permitted on the App Store, because >it can lead to a poor user experience should these APIs change.

2.liblzma是一个关于压缩解压的算法库,编译ffmpeg的时候,可以选择不用这个库;
禁用lzma库的设置: –disable-lzma

3.执行./configure的时候,就变成了:

./configure --target-os=darwin --enable-static --enable-swscale --enable-nonfree --disable-lzma  --enable-gpl --enable-version3 --enable-nonfree --disable-programs  --libdir=/ffmpegbuild/lib --incdir=/ffmpegbuild/include --enable-shared --extra-cflags=-mmacosx-version-min=10.13 --extra-ldflags=-mmacosx-version-min=10.13

4、执行编译和安装

make && sudo make install  

5、在根目录下的ffmpegbuild目录中,就是编译好的头文件和库文件,包括静态库和动态库。

二、高级编译

前面的之所以说是基本编译,主要都是ffmpeg自带的库的编译,包括了几乎全部的大部分的Decoder解码编译器,但是对于Encoder编码编译器,却不是特别多,比如aac就只有解码器没有编码器,如果想要对一个音频转换到aac格式,那么这时候就需要用的aac编码器。

1、下载和编译aac库

git clone https://github.com/mstorsjo/fdk-aac.git
cd fdk-aac
./autogen.sh /* 执行这个一步的需要automake,如果没有可以直接brew install automake */
./configure —enable-shared —enable-static —prefix=/Users/forcetech/Downloads/opt/
make && sudo make install

当然也可以直接通过brew安装编译后的aac库,下面是我使用的命令

brew install fdk-aac

2、下载和编译x264库

git clone http://git.videolan.org/git/x264.git.
cd x264
./configure —disable-asm —enable-shared —enable-static —prefix=/Users/forcetech/Downloads/opt/
make && sudo make install

当然也可以直接通过brew安装编译后的x264库,下面是我使用的命令行

brew install x264

3、./configure配置
这里要注意,需要把acc、x264的库文件和头文件的路径加到配置里面,要不回出错,提示aac not found。

./configure --target-os=darwin --enable-static --enable-swscale --enable-libfdk-aac --enable-libx264 --enable-nonfree  --enable-gpl --enable-version3 --enable-nonfree --disable-programs  --libdir=/ffmpegbuild/lib --incdir=/ffmpegbuild/include --enable-shared --extra-cflags=-mmacosx-version-min=10.8 --extra-ldflags=-mmacosx-version-min=10.8 --extra-cflags=-I/Users/forcetech/Downloads/opt/include --extra-ldflags=-L/Users/forcetech/Downloads/opt/lib --prefix=/Users/forcetech/Downloads/opt/

4、执行编译和安装

make && sudo make install  

5、在根目录下的ffmpegbuild目录中,就是编译好的头文件和库文件,包括静态库和动态库。

三、导入MacOS项目后,添加系统依赖库

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

推荐阅读更多精彩内容