ffmpeg64位编译

因为项目需求原因,所以这两天一直在研究ffmpeg64位的编译,在这写一下自己研究过程中的一些心得。


首先介绍一下脚本里的语言所代表的含义:

大致可以分为2类:

1.裁剪:即禁用掉一些不必要的编码部分,只打开所需要的部分,这样可以使静态库更小,

--enable-decoder=NAME  启用xx解码器,

--enable-demuxer=NAME 启用xx解轨器,

--enable-parser= NAME 启用xx剖析器

--disable-asm  禁用汇编

还有一些其他的指令,这里不再赘述,视自己情况而定。

2.指定编译环境

--enable-cross-compile    使用交叉编译器

--sysroot=path       root of cross-build tree

--target-os=darwin   编译器的目标操作系统

--extra-cflags=CFLAGS   添加ECLFAGS到CFLAGS[]  表示用于c编译器

--extra-ldflags=LDFLAGS 添加ELDFLAGS 到 LDFLAGS[]  表示用于c++编译器

--prefix=PREFIX 指定静态库的安装路径。

        要整合armv7、armv7s、i386和arm64,首先必须要下载一个脚本文件,这个脚本文件也是我在其他的博客中找到的,链接如下:https://gist.github.com/m1entus/6983547,脚本的所有的版本可以在这个链接中看到:http://www.ffmpeg.org/releases/,还有一个需要的脚本是perl语言写的,下载该脚本(gas-preprocessor.pl)放在/usr/bin/目录(可以在Finder下按comd+shift+g前往文件夹/usr/bin)当中,脚本链接:https://github.com/mansr/gas-preprocessor。然后修改 gas-preprocessor.pl文件的权限在终端上进入/usr/bin文件中,执行下面操作:


然后返回到自己放置.sh脚本的文件夹中,运行


即可。

我在测试中使用的ios sdk版本为8.1,.sh脚本的版本为2.5。经过这样后会出现的文件。


不过,在只是参照上述步骤后不会出现arm64 和universal里,需要在脚本中改动一些地方(参考了一些别人的情况),具体的地方如下:

1.如果没有出现armv7,armv7s,arm64,i386等里面含有的.a文件则加入--disable-armv6  --disable-armv6t2 到./configure中去,

2.

改成图片中的样子,这样,在文件夹中就已经将这4个合并为一个放在universal文件夹中,

3.如果你一直在尝试中没有出现64位的文件夹,那么可以把--cup-cortext-a9删除掉,具体的我也不是很清楚,这样做完了就差不多可以出现上述文件了。


至此,ffmpeg的编译基本上都已经包含了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值