iOS 项目中包含多个 FFMPEG 方法冲突的通用解决办法。
来源:互联网 发布:学生管理系统报告c语言 编辑:程序博客网 时间:2024/06/05 18:32
参考:http://blog.csdn.net/jhy835239104/article/details/53377633
现在的项目中没个视频播放,在线直播都不好意思说自己是 app了。
一个项目中集成多个第三方 SDK 也是普遍现象,大部分音视频相关 SDK 都会把 FFMPEG 封装到自己的框架内部。
我们使用者看不见,改不了。这时候就会出现 FFMPEG 冲突或者一个功能能播放,一个功能无法播放,崩溃等等奇葩问题。
这些问题出现的大部分原因是因为 Xcode 比较弱。
多个 FFMEPG 的方法出现了冲突或者调用混乱,解决这些问题的方法有一个就是将多个 SDK 的 FFMPEG 换成同一个版本。
我们的项目中 使用到360小水滴 ,XX 直播SDK ,ijkPlayer 都使用到了 FFMPEG。
大家可以跟厂家协商,让他们把 FFMPEG 更新成一个版本,我这里因为360小水滴的比较新,所以直接朝360要了他们的 FFMPEG 给 XX 直播 SDK 做更换,IjkPlayer 是自己编译的,也用了同样的360FFMPEG。冲突,方法调用混乱的问题都得到了解决,而且 FFMPEG 这种框架 SDK 厂不会轻易升级,我们也不用担心频繁的让厂家做统一(不说一劳永逸也差不多)。
参考:http://www.cocoachina.com/bbs/read.php?tid=460282
把其中一个库的ffmpeg干了。
lipo -info XXXXX.a
看看有什么架构的编译库
lipo -thin armv7 XXXXX.a -output XXXXX-armv7.a
ar -d -sv XXXXX-armv7.a ffmpeg.o
同理其他什么v7s、x64都这么做
lipo -create XXXXX-armv7.a XXXXX-armv7s.a (加上所有架构的编译库) -output XXXXX-NOFfmpeg.a
最后重新解出来看看ffmpeg还在不
lipo -thin armv7 XXXXX-NOFfmpeg.a -output XXXXX-armv7.a
ar -t XXXXX-armv7.a
如果没看到。。成功!!
- iOS 项目中包含多个 FFMPEG 方法冲突的通用解决办法。
- iOS 项目中包含多个 FFMPEG 方法冲突的通用解决办法。
- iOS项目中引用多个第三方库引发冲突的解决方法
- maven项目由于多个依赖中含有同一个jar包导致的冲突问题的解决办法
- Android项目依赖多个项目,它们的jar包冲突的解决办法
- 写一个之前遇到的问题,遇到ios项目中包含idfa的解决办法
- iOS多个链接库冲突的解决办法(重复使用相同的开源代码)
- Flash SWF 包含一个声音项目的多个副本的解决办法
- iOS 字符串 中包含 % 百分号的方法
- AOM项目部署到JBOSS中冲突的解决办法
- 多个Laravel项目的冲突问题
- Listview、RecyclerView中的item中包含可以点击的控件,点击冲突解决办法
- Listview、RecyclerView中的item中包含可以点击的控件,点击冲突解决办法
- iOS同一项目多个Target的快速实现方法
- vs2005中编译包含多个项目的解决方案出现的错误
- vs2005中编译包含多个项目的解决方案出现的错误
- as中包含多个项目,用include
- 在vc6.0中建立包含多个源程序的项目
- ubuntu14.04安装最新版本的wine
- Opevswitch总体架构
- 从此编写 Bash 脚本不再难
- MapReuce 算法设计--Combiner 和 In-Mapper Combing
- 从程序员到项目经理(18):不要试图和下属做朋友
- iOS 项目中包含多个 FFMPEG 方法冲突的通用解决办法。
- Java入门学习- 理解List和HashMap和HashTable的用法和区别
- Nginx location模块整理
- J
- 多线程之匿名内部类实现
- 调整队形
- java 线程池
- 【BZOJ3295】动态逆序对(CQOI2011)-CDQ分治:三维偏序
- js如果在function之前加上感叹号 (!) 等运算符是什么作用