将 FFmpeg 编译为 iOS 8 框架

zeb*_*ton 5 ffmpeg ios xcode6

由于https://github.com/kewlbear/FFmpeg-iOS-build-script和最新版本的 gas-preprocessor ( https://github.com/libav/gas-preprocessor ),我成功地用 iOS 8.2 SDK 编译了 FFmpeg 。

但是,由于法律限制,我想将 FFmpeg 库打包为 iOS 8 动态框架。我找到了创建 iOS 8 动态框架的资源,但是我找不到 FFmpeg 的任何解决方案。

谁能帮我打包这些库?谢谢大卫

car*_*arl 0

据我所知,Github 中的 FFmpeg-iOS 存储库可以从 FFmpeg 源代码构建静态库。但我搜遍了网络,没有人教我如何用动态库进行编译。

但我想知道我们是否可以创建一个新的cocoa touch框架项目,并将所有头文件和库拖到这个项目中,并在基础.h文件中做一些头声明,然后将框架项目作为子项目拖到现有的iOS项目中项目,将其添加为嵌入式框架,并编译整个项目。

我使用子项目而不是给出最终的 .framework 文件的原因是静态符号只有在某个地方使用时才能链接。

稍后我将演示这一点。如果有人有更好的想法,将不胜感激。

编辑:经过几天的研究,我发现轻松构建动态框架并不容易,但我找到了一种解决方法来实现目标:

  1. 构建FFmpeg的静态库
  2. 新建一个iOS动态框架项目
  3. 创建一个类,封装FFmpeg的基本用法,例如视频编码/解码
  4. 将静态库复制到此动态框架项目中
  5. 确保您的项目构建没有错误
  6. 将此项目作为子项目添加到现有项目中
  7. 在嵌入式二进制文件以及链接的框架和库中添加依赖项
  8. 构建并运行主项目
  9. 该项目开源为 LGPL2.1+,与 FFmpeg 本身相同。

通过它并不完美,但至少它可以工作,并且它符合 FFmpeg 的 LGPL 许可证。