将ffmpeg添加到我们的Xcode项目中

Sar*_*ith 5 xcode ffmpeg ios

我编译了ffmpeg库,并在我的文件夹中成功创建了许多文件.

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

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

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

all*_*enh 12

在过去,我已成功使用此构建脚本来集成ffmpeg.

除非另有说明,否则后续的图示说明适用于Objective-C和Swift项目.

作为旁注,您应该确保ffmpeg是正确的工具.AVFoundation和VideoToolBox都是Apple提供的非常强大的工具,可用于执行许多视频操作.

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

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

在此输入图像描述

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

在此输入图像描述

将文件添加到项目中:

(通过从finder中拖放) 在此输入图像描述

使用这些设置:

在此输入图像描述

将include目录添加到标头:

在此输入图像描述

链接所需的库:

在此输入图像描述

将标头添加到桥接标头(仅限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"
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

在斯威夫特:

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
    }
}
Run Code Online (Sandbox Code Playgroud)