mcpField
U
update-ffmpeg

update-ffmpeg

github.com/remotion-devOther69.1k10 installsUpdated today
Repository

About update-ffmpeg

A repository skill for updating Remotion’s FFmpeg build artifacts and generated bindings. It guides maintainers through CI builds, artifact verification and import, cross-platform rebuilds, and validation before a pull request.

Key features

  1. 01Trigger CI builds for a source SHA
  2. 02Collect build artifacts and provenance
  3. 03Verify and upload immutable archives
  4. 04Import checksums and generated bindings
  5. 05Rebuild seven target packages
  6. 06Run build and style validation

Use cases

  1. 01Updating FFmpeg for Remotion
  2. 02Verifying artifacts from matching CI builds
  3. 03Rebuilding compositor packages across targets
  4. 04Preparing a validated FFmpeg update pull request

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/remotion-dev/remotion --skill update-ffmpeg

After installing, type/update-ffmpegin Claude Code to confirm it loaded.

Bundled filesagents/openai.yaml

Details

From the project README

Update Remotion FFmpeg

The FFmpeg build recipes, Rust bindings and wrapper live in packages/compositor/ffmpeg. The compositor and wrapper use local Cargo dependencies, and updates are reviewed in a single Remotion pull request.

Collect and import

Use the full source commit SHA for the intended FFmpeg build.

Explicitly trigger the CircleCI pipeline on the branch containing that commit using the web app's Trigger Pipeline button or the API. No parameters are needed: the workflow only runs for pipeline.trigger.type == "api", which covers both methods. See the trigger instructions. Wait for its five jobs and the macOS GitHub Actions build for the same commit to succeed. Then collect artifacts from the Remotion repository root:

node packages/compositor/ffmpeg/collect-artifacts.mjs --sha <full-source-sha>

The collector requires successful GitHub Actions and CircleCI builds for that same SHA. Do not combine runs or fill missing targets from an older build. Keep the returned MANIFEST.json and SHA256SUMS with the seven archives.

Upload the verified archives to a new immutable directory on remotion.media using the repository's R2 upload workflow. Never overwrite an existing release directory. Then run:

node packages/compositor/ffmpeg/import-artifacts.mjs <artifact-directory> <immutable-https-base-url>

The importer verifies local and hosted archive checksums before updating assets.json and the seven canonical generated bindings. Archives remain ignored downloads. Do not hand-edit bindings.

Rebuild and validate

Install dependencies with bun install --frozen-lockfile. From packages/compositor, install missing cross-compilation toolchains with bun install-toolchain.ts, then run bun run build-all.

Require all seven targets: Windows x64 GNU, macOS ARM64/x64, Linux ARM64/x64 GNU/musl. On macOS, use an MSVCRT-targeting x86_64-w64-mingw32-gcc. Verify objdump -p packages/compositor-win32-x64-msvc/remotion.exe imports msvcrt.dll and no api-ms-win-crt-* or ucrtbase.dll.

From the repository root, run bun run build, bun run stylecheck, and git diff --check. Inspect the FFmpeg metadata/binding changes and all seven rebuilt compositor packages. Do not include unrelated changes.

When a PR is requested, read ../pr/SKILL.md and ../pr-name/SKILL.md. Include the full source SHA, hosted archive directory, CI provenance, rebuilt targets and validation results. Use the title:

`@remotion/compositor`: Update FFmpeg and rebuild binaries

packages/lambda-binaries packages Chromium and fonts and does not need a rebuild for an FFmpeg-only update.

Comments

Markdown supported