【问题标题】:Adding ffmpeg to our Xcode project将 ffmpeg 添加到我们的 Xcode 项目中
【发布时间】:2018-01-18 17:08:54
【问题描述】:

我已经编译了 ffmpeg 库,它在我的文件夹中成功创建了许多文件。

现在我需要在我的 Xcode 项目中实现相同的功能。添加到我的项目的最佳方式是什么。

我希望创建一个框架,但我需要添加哪些文件?

编译后我有很多 .c 文件和 .a 文件可用。

【问题讨论】:

标签: ios xcode ffmpeg


【解决方案1】:

过去我已经成功使用this build script集成ffmpeg。

除非另有说明,否则以下图片说明适用于 Objective-C 和 Swift 项目。

附带说明,您应该确保 ffmpeg 是完成这项工作的正确工具。 AVFoundation 和 VideoToolBox 都是 Apple 提供的用于执行许多视频操作的非常强大的工具。

对于 2018 年末,从 kewlbear 存储库中获取文件夹,如下图所示,但是,还有一个额外的文件 build-ffmpeg-iOS-framework.sh。在终端中, cd 到该文件夹​​。使用当前版本,您必须运行 build-ffmpeg-iOS-framework.sh 而不是 build-ffmpeg.sh 才能遵循以下教程:

执行脚本后,您将拥有以下文件:

将 FFmpeg-iOS 文件夹复制到你的项目中:

将文件添加到您的项目中:

(通过从取景器拖放)

使用这些设置:

将包含目录添加到您的标题中:

链接所需的库:

将标题添加到桥接头(仅限 Swift):

#import "libavcodec/avcodec.h"
#import "libavdevice/avdevice.h"
#import "libavfilter/avfilter.h"
#import "libavformat/avformat.h"
#import "libavutil/avutil.h"
#import "libswresample/swresample.h"
#import "libswscale/swscale.h"

Objective-C 简单示例:

#import "AppDelegate.h"
#import "libavformat/avformat.h"

@interface AppDelegate ()
@end

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    AVFormatContext *context = avformat_alloc_context();

    return YES;
}

@end

在 Swift 中:

import UIKit

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?


    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {

        let context = avformat_alloc_context()

        return true
    }
}

【讨论】:

  • @AllenHumphreys libz.dylib、libbz2.dylib、libiconv.dylib 已更改。请更新答案。
  • libz.dylib 更改为 libz.tbd 和 libiconv.dylib 更改为 libiconv.tbd 。我想就是这样。如果我错了,请告诉我。
  • @AllenHumphreys 感谢您的回复。我知道 ffmpeg 的用法。我已经集成并在android中使用。但我被困在如何参考集成库,就像我从这个答案中所做的那样。如何在我的代码中获取它的引用,以便我可以运行我知道的 ffmpeg 命令。谢谢你的慷慨
  • 我需要做一些不同的事情来使用这个脚本来为 MacOS(不是 iOS)项目集成 ffmpeg 吗?我假设我会使用“x86_64”架构。
  • @robamaton 我认为你根本不需要这个脚本,因为可以使用所有标准设置为 macOS 编译 ffmpeg(和所有组件库)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-11-16
  • 2011-03-14
  • 2010-10-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多