【问题标题】:Compile FFmpeg as iOS 8 Framework将 FFmpeg 编译为 iOS 8 框架
【发布时间】:2015-05-16 03:47:49
【问题描述】:

感谢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 的任何解决方案。

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

【问题讨论】:

  • 嗨,zebeurton,你能帮忙解决一下那个框架吗,你有编译兼容所有架构的最新版本的 FFMpeg 吗?
  • 伙计们,请记住,ffmpeg 在视频上的性能将比在 iOS 设备中使用内置的 H.264 编码器/解码器硬件差很多。此外,您还需要就 LGPL 许可问题寻求法律建议:multinc.com/2009/08/24/…

标签: ios ffmpeg xcode6


【解决方案1】:

据我所知,Github 中的 FFmpeg-iOS repo 可以从 FFmpeg 源代码构建静态库。但是我搜索了整个网络,没有人告诉我如何使用动态库进行编译。

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

我之所以使用子项目,而不是给出最终的 .framework 文件,是因为静态符号只有在某处使用时才能链接。

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

编辑: 经过几天的研究,我发现很难轻松构建动态框架,但我找到了实现目标的解决方法:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-31
    • 1970-01-01
    • 2012-12-06
    • 2013-05-15
    • 2014-11-27
    • 2011-07-17
    • 2014-06-02
    相关资源
    最近更新 更多