美文网首页
FFmpeg笔记:00 - 简述

FFmpeg笔记:00 - 简述

作者: sun__x | 来源:发表于2019-01-20 20:53 被阅读54次

    该系列的文章是对我在2018年学习 FFmpeg 的一些记录和总结,文章里面的示例代码主是使用 Swift 语言编写的,基于我对 FFmpeg C API 编写的一个封装库 - SwiftFFmpeg

    在正式开始之前,我们首先需要了解一下如何搭建我们要使用的开发环境:

    第一步是安装 FFmpeg,最简单的方式是直接使用 brew 安装,如果你爱折腾的话可以下载源码进行编译,具体如何编译可以自行网上查找,这方面的资料有很多。

    第二步是创建工程,目前仅支持使用 SPM,首先使用下面的命令创建一个 SPM 项目:

    $ mkdir FFmpegExample
    $ cd FFmpegExample
    $ swift package init --type executable
    

    创建成功后,打开 Package.swift,添加 SwiftFFmpeg 作为工程依赖:

    // swift-tools-version:4.2
    // The swift-tools-version declares the minimum version of Swift required to build this package.
    
    import PackageDescription
    
    let package = Package(
        name: "FFmpegExample",
        dependencies: [
            .package(url: "https://github.com/sunlubo/SwiftFFmpeg.git", .branch("master"))
        ],
        targets: [
            .target(
                name: "FFmpegExample",
                dependencies: ["SwiftFFmpeg"]
            ),
            .testTarget(
                name: "FFmpegExampleTests",
                dependencies: ["FFmpegExample"]
            ),
        ]
    )
    

    现在你可以在你的工程里面使用 SwiftFFmpeg 了,打开 main.swift 文件添加以下代码:

    import SwiftFFmpeg
    
    for fmt in AVInputFormat.supportedFormats {
        print(fmt.name)
    }
    

    执行 swift run,程序运行成功后将打印出当前支持的所有输入格式:

    Fetching https://github.com/sunlubo/SwiftFFmpeg.git
    Completed resolution in 4.10s
    Cloning https://github.com/sunlubo/SwiftFFmpeg.git
    Resolving https://github.com/sunlubo/SwiftFFmpeg.git at master
    Compile Swift Module 'SwiftFFmpeg' (31 sources)
    Compile Swift Module 'FFmpegExample' (1 sources)
    Linking ./.build/x86_64-apple-macosx10.10/debug/FFmpegExample
    aa
    aac
    ac3
    acm
    act
    adf
    adp
    ads
    ...
    

    最后为了便于我们开发,我们需要生成 Xcode 工程,执行以下命令:

    $ swift package generate-xcodeproj
    

    至此我们已成功配置好开发环境,后续文章对应的示例都是在此基础上完成的。

    相关文章

      网友评论

          本文标题:FFmpeg笔记:00 - 简述

          本文链接:https://www.haomeiwen.com/subject/fdsfjqtx.html