FFmpegKit
是一套用于在 iOS
、macOS
、tvOS
、xrOS
、visionOS
应用程序中使用 FFmpeg
的工具集合。
它包含构建 FFmpeg
原生库的脚本,以及在 macOS 上的三个可执行产品 ffplay
/ffmpeg
/ffprobe
。
ffplay
/ffmpeg
/ffprobe
iOS
、macOS
、tvOS
、visionOS
dependencies: [
.package(url: "https://github.com/kingslay/FFmpegKit.git", .branch("main"))
]
swift package --disable-sandbox BuildFFmpeg
var arguments = ["ffmpeg", "-i", "file1.mp4", "-c:v", "mpeg4", "file2.mp4"]
var argv = arguments.map {
UnsafeMutablePointer(mutating: ($0 as NSString).utf8String)
}
ffmpeg_execute(Int32(arguments.count), &argv)
arguments = ["ffprobe", "-h"]
argv = arguments.map {
UnsafeMutablePointer(mutating: ($0 as NSString).utf8String)
}
ffprobe_execute(Int32(arguments.count), &argv)
swift run ffplay
swift run ffmpeg
swift run ffprobe
swift package BuildFFmpeg -h
Usage: swift package BuildFFmpeg [OPTION]...
Default Build: swift package --disable-sandbox BuildFFmpeg enable-libshaderc enable-vulkan enable-lcms2 enable-libdav1d enable-libplacebo enable-gmp enable-nettle enable-gnutls enbale-readline enable-libsmbclient enable-libsrt enable-libzvbi enable-libfreetype enable-libfribidi enable-libharfbuzz enable-libass enable-FFmpeg enable-libmpv
Options:
h, -h, --help display this help and exit
notRecompile If there is a library, then there is no need to recompile
gitCloneAll git clone not add --depth 1
enable-debug, build ffmpeg with debug information
platforms=xros deployment platform: macos,ios,isimulator,tvos,tvsimulator,xros,xrsimulator,maccatalyst,watchos,watchsimulator
--xx add ffmpeg Configuers
Libraries:
enable-libshaderc build with libshaderc
enable-vulkan depend enable-libshaderc
enable-libdav1d build with libdav1d
enable-libplacebo depend enable-libshaderc enable-vulkan enable-lcms2 enable-libdav1d
enable-nettle depend enable-gmp
enable-gnutls depend enable-gmp enable-nettle
enable-libsmbclient depend enable-gmp enable-nettle enable-gnutls enbale-readline
enable-libsrt depend enable-openssl or enable-gnutls
enable-libfreetype build with libfreetype
enable-libharfbuzz depend enable-libfreetype
enable-libass depend enable-libfreetype enable-libfribidi enable-libharfbuzz
enable-libzvbi build with libzvbi
enable-FFmpeg build with FFmpeg
enable-libmpv depend enable-libass enable-FFmpeg
enable-openssl build with openssl [no]
由于 FFmpegKit 默认包含 libsmbclient,并且在编译 FFmepg 和 mpv 时开启了 GPL,因此 FFmpegKit 使用 GPL 许可。
此外,还有一个采用 LGPL 许可的付费版本(请联系我们)。