ffmpeg在iOS上的编译(动态库)与验证

ffmpeg在iOS上编译,github上有两个开源的编译脚本,https://github.com/tanersener/mobile-ffmpeghttps://github.com/kewlbear/FFmpeg-iOS-build-script,前者能变iOS和android,后者看名字就知道很专注。问题是,前者的iOS只能支持静态库(出处),好在后者编译起来挺方便的

编译ffmpeg

下载 https://github.com/kewlbear/FFmpeg-iOS-build-script,后在命令行中运行build-ffmpeg.sh,等到风扇不再狂转后,得到thin目录如图:
在这里插入图片描述
对应的几个不同的cpu架构,这里,模拟器用的是x86_64.

但是,想要编译动态库,则需要修改build-ffmpeg.sh中21行,添加–enable-shared参数。

CONFIGURE_FLAGS="--enable-shared --enable-cross-compile --disable-debug --disable-programs \
                 --disable-doc --enable-pic"

验证库是否可用

因为编译过程过于顺利,也不知道这个库是不是真的有用。在前一篇文章中,阐述了如何在Swift写的iOS程序中调用c库的方法(传送门

  1. 找到c++代码,FunctionFromCPP.cpp添加ffmpeg的hello world代码,参考雷霄骅的最简单的基于FFMPEG的Helloworld程序
char * configurationinfo()
{
    char *info=(char *)malloc(40000);
    memset(info,0,40000);
    av_register_all();
    sprintf(info, "%s\n", avcodec_configuration());
    return info;
}
char * FunctionFromCPP::hello() {
    char *infostr=NULL;
    infostr=configurationinfo();
    printf("\n<<Configuration>>\n%s",infostr);
    free(infostr);
    return "Hello from CPP world!";
}
  1. 添加头文件和库文件的搜索目录,这里因为在模拟器里面跑,所以选的目录是x86_64,真机选arm64
    在这里插入图片描述
  2. 添加程序的链接选项
    在这里插入图片描述
  3. 运行后,XCode的输出中打出,Configure的选项,对应之前在脚本中设置的CONFIGURE_FLAGS,可以看出是一一对应的,至此,可以确定,我们编译出来的库是正确可用的。
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值