ffmpeg 构建
构建 FFmpeg 路径: FFmpeg 版本, 平台, 许可证, 库和您自己的补丁, 从一个 YAML 文件开始 . 每个图书馆版本都被锁定,每张许可证都会在任何东西建立之前被检查,每个档案都说它是什么 是用这个做的.
# ffmpeg-build.yml
bases:
common: { with: [dav1d, opus, srt] }
targets:
linux-x64-lgplv3:
{ platform: linux-x64, license: lgplv3, ffmpeg: 9, base: [common], with: [vaapi] }
win-x64-gplv3:
{ platform: win-x64, license: gplv3, ffmpeg: 9, base: [common], with: [x264, x265] }
ffmpeg-build check # is every target possible? (offline)
ffmpeg-build lock # pick and lock the versions (asks upstream)
ffmpeg-build build --target win-x64-gplv3 # ffmpeg-9.x.y-win-x64-gplv3.tar.gz and -dev.tar.gz
状态:0.x,早起. 下面的每个平台都建立和复制已出版的devenvy/ffmpeg所建,并发布
以 CI 结尾。 直至1.0
ffmpeg-build.yml 格式,则, ffmpeg.lock 编辑 @v0 工作流程输入仍然可能改变; 修改它们的发布
在他的笔记中是这样说的.
平台
| Linux (glibc 2. 28+) (英语) | linux- x64, linux- arm64, linux- armhf (英语) |
| Linux( 穆斯尔 ) | linux- musl- x64, linux- musl- arm64 (英语) |
| 窗口 | 双臂64,双臂64 |
| 机器人 | android-arm64, android-x64 (中文(简体) ) |
| 马科斯 | o-arm64; o-x64 |
| iOS 和 Mac Catoryst 软件 | ios-arm64, ios-sim-arm64, maccatalyst-arm64, maccatalyst-x64 (英语) |
Linux,Windows和Android在任意主机上以被钉住的多克图像构建;Apple平台以有Xcode的Mac为基础构建.
每一个都复制Devenvy/ffmpeg出版的建筑(文件、配置旗帜、组件和依赖性,以及
”)。 苹果上的Vulkan运行在MoltenVK上,就像devenvy/ffmpeg's一样(仅v3:它是
Apache-2.0: macOS档案载有Vulkan装载器, libMoltenVK.dylib 财务报告和审定财务报表 MoltenVK_icd.json (点)
VK_ICD_FILENAMES 在iOS和Mac Catoryst MoltenVK上连接到libav*框架,以及一个应用链接
-framework Metal -framework IOSurface -framework Foundation -framework QuartzCore -framework CoreGraphics -framework UIKit (和 -framework IOKit 在麦克催化剂.
安装
npm install --global @devenvy/ffmpeg-build # Node 24+
建筑还需要多克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克; lock, (中文(简体) ), update 财务报告和审定财务报表
outdated 需求 git。 。 。 .
快开始
mkdir my-ffmpeg && cd my-ffmpeg
ffmpeg-build init --license lgplv3 --platforms linux-x64,win-x64 # from the shipped targets
ffmpeg-build profile remove whisper --from linux-x64-lgplv3 # make it yours
ffmpeg-build check && ffmpeg-build lock
ffmpeg-build build --target linux-x64-lgplv3
开始 穿过一栋小楼,然后CI 建造和出版 和下载它们的产品.
图标
init write ffmpeg-build.yml from the shipped targets
check is every target possible? (offline)
plan what each target builds: options, libraries, versions (offline)
show what one target gets and which base gave it; --has <name>: which targets get it
targets the targets (--json for CI matrices)
options what a target can list: library, licenses, platforms (offline)
profile add | remove | missing: edit ffmpeg-build.yml in place, keeping its comments
lock write ffmpeg.lock, looking up only what is missing
outdated what is newer upstream (read-only)
update move ffmpeg.lock to the newest allowed versions (and write the PR text)
build build one target in its pinned toolchain
test run a build where this machine can (a library build: link a program against it, run that where it can)
releases each release's next tag, and whether it changed since it was last published
bundle write a release's sources archive, manifest.yml, SHA256SUMS and notes (--apple: the iOS bundle)
fetch take a published build (for products that don't build FFmpeg)
migrate convert a folder of old matrix profiles
guide the step-by-step guide, for people, scripts and AI agents
最厉害的 --json没有提示 出站代码:0精细,1目标有问题,2使用,数据,网络或工具
问题(消息说是哪个).
文档
- 开始:第一种构件,CI和释放,一种产品;环境变量
- 目标数字 :
ffmpeg-build.yml、基础、许可证、针头、补丁、更新 - 大楼工具链 缓存,
THIRD-PARTY-NOTICES.txt,这是从什么建筑 - 释放、CI和产品: 发布标签,工作流程,
fetch - 命令 (单位:千美元)
ffmpeg-build guide:按你使用的顺序,带有出口代码
发展
pnpm install
pnpm test # vitest
pnpm run dev check # the CLI from source, in the folder you are in
node <path to the engine>/src/cli.ts check # the same, from anywhere (or `npm link` once)
见 发展.md 检查CI运行,食谱和平台如何组合,如何释放 出来吧.
许可证
发动机是 麻省理工学院. FFmpeg 构造其生产量由每个目标选择的许可证(LGPL或GPL,
• 携带每个部件的许可证进入 THIRD-PARTY-NOTICES.txt 在他们的根部.