【问题标题】:Using FFMPEG library with iPhone SDK for video encoding使用带有 iPhone SDK 的 FFMPEG 库进行视频编码
【发布时间】:2009-11-05 10:30:29
【问题描述】:

我需要将 iPhone 相机拍摄的几张图片编码为 mp4 视频文件,我知道 FFMPEG 可以做到这一点(应用程序 TimeLapser 和 ReelMoments 已经做到了)。我计划在我的应用 iMotion(可在应用商店中获得)中使用它。

我通过以下链接成功安装并编译了 iphone SDK 的 ffmpeg: http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/2009-October/076618.html

但现在我被困在我的 XCode 项目中。下一步我应该怎么做才能使用 FFMPEG 库进行视频编码? Apple 关于外部库使用的文档非常简单,我可以在网上找到任何解释如何执行此操作的教程。

【问题讨论】:

  • 如果您使用的是 ffmpeg,请务必遵守 LGPL。
  • 另外,如果您计划向 App Store 提交应用程序,请注意销售使用 ffmpeg 的软件的法律影响。它可能侵犯了您所在司法管辖区的专利 (ffmpeg.org/legal.html)。这也可能会影响您在 App Store 上获得批准的能力。
  • 是的,当使用 ffmpeg 作为静态库时,您需要发布应用程序的源代码或目标代码以符合 LGPL:huyzing.com/2009/08/24/…
  • iOS 已经通过 AVAssetWriter 类支持内置硬件的 h.264 编码。见stackoverflow.com/questions/2563212/create-video-in-iphone/…

标签: iphone video encoding ffmpeg


【解决方案1】:

查看 github 上的 iFrameExtractor 项目。虽然这不是您正在寻找的内容,但它具有用于构建 ffmpeg 库的脚本,并且 xcode 项目链接这些库。

此博文中的更多信息:

http://www.codza.com/extracting-frames-from-movies-on-iphone

【讨论】:

  • 我试图让它工作,但是当我做 ./build_universal 时,文件中的“lipo”指令似乎失败了,我最终没有 *.a 文件。我收到此错误:lipo: specifed architecture type (armv6) for file (armv6/libavcodec.a) does not match it's cputype (16777223) and cpusubtype (3) (should be cputype (12) and cpusubtype (6)) 用于每个 lipo 命令
  • 要解决这个问题,请关注此线程stackoverflow.com/questions/6994151/…
【解决方案2】:

在项目菜单中,选择编辑活动目标“[...]”。

然后在构建分隔符中,确保您选择了所有配置并执行以下操作:

  • 搜索“标头搜索路径”并指明 FFmpeg 标头的位置;
  • 搜索“库搜索路径”并指明已编译的静态库二进制文件(.a 文件)的位置。

应该这样做,但后者还有一个更巧妙的技巧。您可以向“库搜索路径”添加构建条件,以便编译器为不同的架构使用不同的二进制文件,即您可以为模拟器和设备无缝编译。说明如下。

  • 选中 Library Search Paths 行后,单击同一窗口左下角的按钮并选择 Add Build Setting Condition;
  • 在出现“Any SDK”的位置,选择“Any iPhone OS Simulator”并指明 x86 ffmpeg 二进制文件的路径。
  • 重复上述步骤,将“Any iPhone OS Simulator”替换为“Any iPhone OS Device”并指明 ARM ffmpeg 二进制文件。

以下是此类构建设置的示例。

【讨论】:

    【解决方案3】:

    另一种选择是在服务器上使用 FFMPEG。将图像发送到服务器并使用带 ffmpeg 的 PHP 转换视频。 有了这个,您就不必担心在设备上编译 FFMPEG。 只是一个想法

    【讨论】:

      猜你喜欢
      • 2020-09-24
      • 2011-12-23
      • 1970-01-01
      • 2014-05-02
      • 1970-01-01
      • 2015-08-18
      • 1970-01-01
      • 2011-04-15
      • 2017-01-10
      相关资源
      最近更新 更多