关于 update-ffmpeg
用于更新 Remotion 的 FFmpeg 构建产物和生成绑定的仓库技能。它指导维护者执行 CI 构建、产物校验与导入、跨平台重建,并在提交拉取请求前完成验证。
主要功能
- 01为源代码 SHA 触发 CI 构建
- 02收集构建产物与来源信息
- 03校验并上传不可变归档
- 04导入校验和及生成绑定
- 05重建七个目标包
- 06运行构建与样式验证
适用场景
- 01更新 Remotion 的 FFmpeg
- 02验证来自对应 CI 构建的产物
- 03跨目标重建 compositor 包
- 04准备经过验证的 FFmpeg 更新拉取请求
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ remotion-dev/ remotion --skill update-ffmpeg安装后在 Claude Code 中输入/update-ffmpeg确认已加载。
附带文件agents/openai.yaml
详细介绍
更新 Remotion FFmpeg
FFmpeg 构建配方、Rust 绑定和封装程序位于 packages/compositor/ffmpeg。合成器和封装程序使用本地 Cargo 依赖项,相关更新会在同一个 Remotion 拉取请求中审核。
收集并导入
使用目标 FFmpeg 构建所对应的完整源代码提交 SHA。
在包含该提交的分支上,通过网页应用的 Trigger Pipeline 按钮或 API 显式触发 CircleCI 流水线。无需任何参数:该工作流仅在 pipeline.trigger.type == "api" 时运行,这两种方式均符合此条件。请参阅触发说明。等待该提交对应的五个作业和 macOS GitHub Actions 构建成功。然后在 Remotion 仓库根目录收集构建产物:
node packages/compositor/ffmpeg/collect-artifacts.mjs --sha <full-source-sha>
收集器要求同一 SHA 对应的 GitHub Actions 和 CircleCI 构建均成功。不要混合不同的运行,也不要用旧构建补齐缺失的目标。将返回的 MANIFEST.json 和 SHA256SUMS 与七个归档文件一同保留。
使用仓库的 R2 上传工作流,将已验证的归档文件上传到 remotion.media 上的新建不可变目录。切勿覆盖现有发布目录。然后运行:
node packages/compositor/ffmpeg/import-artifacts.mjs <artifact-directory> <immutable-https-base-url>
导入器会在更新 assets.json 和七个规范生成的绑定之前,验证本地和托管归档文件的校验和。归档文件仍作为被忽略的下载文件保留。不要手动编辑绑定。
重新构建并验证
使用 bun install --frozen-lockfile 安装依赖项。在 packages/compositor 中,使用 bun install-toolchain.ts 安装缺失的交叉编译工具链,然后运行 bun run build-all。
要求包含全部七个目标:Windows x64 GNU、macOS ARM64/x64、Linux ARM64/x64 GNU/musl。在 macOS 上,使用目标为 MSVCRT 的 x86_64-w64-mingw32-gcc。验证 objdump -p packages/compositor-win32-x64-msvc/remotion.exe 导入了 msvcrt.dll,且未导入任何 api-ms-win-crt-* 或 ucrtbase.dll。
在仓库根目录运行 bun run build、bun run stylecheck 和 git diff --check。检查 FFmpeg 元数据和绑定的变更,以及全部七个重新构建的合成器包。不要包含无关变更。
如果需要提交 PR,请阅读 ../pr/SKILL.md 和 ../pr-name/SKILL.md。请包含完整源代码 SHA、托管归档目录、CI 来源信息、重新构建的目标和验证结果。使用以下标题:
`@remotion/compositor`: Update FFmpeg and rebuild binaries
packages/lambda-binaries 会打包 Chromium 和字体,因此仅更新 FFmpeg 时无需重新构建。