ios - 构建用于 Swift 的 FFmpeg

标签 ios swift xcode ffmpeg

新的 XCode/Swift 版本带来了使用二进制依赖项的能力。在我看来,这是为 FFMpeg 创建 SPM 包的理想时机。

然而,虽然我去年花了一年时间学习使用 Swift 编写代码,但实际上我并不完全熟悉如何构建库,尤其是那些像 FFmpeg 这样复杂的库,具有所有可配置库和第三方依赖项。

kewlbear's iOS build scripts ,但这些适用于 iOS/tvOS,理想情况下,FFMpeg SPM 包也可用于 MacOS。它也没有针对最新的 Xcode 和 Swift 版本进行更新。

我个人的兴趣只是音频,我不需要太多花里胡哨的东西,但我认为理想的情况是一个完整的包,包含完整的源代码和它需要的任何依赖项,然后当它被用作包依赖项,编译器将只使用它需要的部分。

我想我的问题是......我将如何理想地为此目的编译 ffmpeg 代码。我正在尝试 follow the directions for compiling yourself , 但我在编译 gettext 时卡住了,因为我不确定是否应该按照说明(在 gettext 源代码中)编译一个胖二进制文件对于多种架构,当我尝试运行时:

      ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
                  CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
                  CPP="gcc -E" CXXCPP="g++ -E"

我收到以下错误:

 checking whether the C compiler works... no configure: error: in
 `/Users/nolainecrusher/Downloads/FFMpeg-source/gettext-0.21/gettext-runtime':
 configure: error: C compiler cannot create executables See
 `config.log' for more details configure: error: ./configure failed for
 gettext-runtime

config.log 并没有真正告诉我任何有用的信息:

这是我在日志末尾看到的:

 mkdir_p='$(MKDIR_P)' oldincludedir='/usr/include' pdfdir='${docdir}'
 prefix='/usr/local' program_transform_name='s,x,x,' psdir='${docdir}'
 sbindir='${exec_prefix}/sbin' sharedstatedir='${prefix}/com' subdirs='
 gettext-runtime libtextstyle gettext-tools' sysconfdir='${prefix}/etc'
 target_alias=''

我觉得我的做法可能是错误的,但我不确定正确的方法是什么。

最佳答案

请参阅以下内容:

A Swift wrapper package for FFmpegA C wrapper package for FFmpeg

SwiftFFmpeg 假定 ffmpeg 已安装在本地并将与这些库链接。此外,SwiftFFmpeg 使用 CFFmpeg 作为包依赖项,您的应用程序可以使用 SwiftFFmpeg 作为依赖项。

如果您想查看用于编译 ffmpeg(x86_64 和 arm64)的构建脚本,请查看 my own audio player project .

关于ios - 构建用于 Swift 的 FFmpeg,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64507539/

相关文章:

html - iOS视口(viewport)设置

ios - CFString(不可变)内存使用在 IOS 应用程序中不断增长

ios - 使图像从左向右移出屏幕

ios - 使用对象属性填充 TableView ?

ios - 验证 uialertview 中的文本字段

ios - XCode 5,分析器警告

ios - Swift 3,框架 IBOutlet 属性始终展开可选

swift - 为什么在 URL 中处理 Vapor GET 请求

iphone - iPad 界面生成器 (xib) 问题

ios - 如何使用图表库设置自定义标记图像