mcpField
U
update-remotion-rust-ffmpeg

update-remotion-rust-ffmpeg

github.com/remotion-devDevelopment68.6k464 installsUpdated today
Repository

About update-remotion-rust-ffmpeg

update-remotion-rust-ffmpeg is a repository skill for updating Remotion’s Rust FFmpeg dependency and rebuilding compositor artifacts. It guides maintainers through validation, a draft pull request, and reporting the update chain.

Key features

  1. 01Verify supplied upstream commit SHAs
  2. 02Update Cargo dependency and lockfile
  3. 03Rebuild compositor binaries across targets
  4. 04Validate Windows runtime imports
  5. 05Create a draft pull request

Use cases

  1. 01Updating rust-ffmpeg in Remotion
  2. 02Rebuilding compositor release artifacts
  3. 03Preparing and validating a dependency update PR

Install

Copy the command and run it in a terminal.

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

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

Bundled filesagents/openai.yaml

Details

From the project README

Update Remotion Rust FFmpeg

Require the full published rust-ffmpeg commit SHA from $update-rust-ffmpeg-sys.

Read ../pr/SKILL.md and ../pr-name/SKILL.md before committing or opening the pull request.

Prepare the worktree

Run from the dedicated Remotion worktree on codex/update-rust-ffmpeg. Never perform this work in the primary /Users/jonathanburger/remotion checkout.

Fetch origin. If the branch has no release commits yet, fast-forward it to origin/main. Do not rebase, reset, or overwrite unrelated work.

Allow this skill's own tracked .agents/skills/update-remotion-rust-ffmpeg files to exist unchanged. Stop on any pre-existing change that is not explicitly part of the requested pull request.

Verify that the supplied full SHA is reachable from remotion-dev/rust-ffmpeg's main branch. Read that commit's Cargo.toml and record the exact ffmpeg-sys-next revision for later lockfile verification.

Update Cargo and rebuild artifacts

Change only the ffmpeg-next.rev value in packages/compositor/Cargo.toml to the supplied full SHA. From packages/compositor, run:

cargo update -p ffmpeg-next

Verify in Cargo.lock that:

  • ffmpeg-next resolves to the supplied rust-ffmpeg SHA;
  • ffmpeg-sys-next resolves to the recorded rust-ffmpeg-sys SHA.

Install workspace dependencies without changing the lockfile:

bun install --frozen-lockfile

Install cross-compilation toolchains if packages/compositor/toolchains is absent:

cd packages/compositor
bun install-toolchain.ts
bun run build-all

The all-platform build must complete for Windows x64 GNU, macOS ARM64/x64, and Linux ARM64/x64 GNU/musl. On macOS, ensure an MSVCRT-targeting x86_64-w64-mingw32-gcc linker is available before running the build; do not use a UCRT-defaulting toolchain. It refreshes both the remotion executables and the FFmpeg shared libraries/CLI files in their platform packages. Do not substitute a native-only build.

From the repository root, run:

bun run build
bun run stylecheck
git diff --check

Inspect the diff. It may contain:

  • packages/compositor/Cargo.toml and packages/compositor/Cargo.lock;
  • rebuilt files under the six packages/compositor-{darwin,linux}-* platform packages and packages/compositor-win32-x64-msvc.

Stop if unrelated tracked files changed. Confirm that the Windows compositor package changed, including remotion.exe and the FFmpeg files from the updated archive. Run objdump -p packages/compositor-win32-x64-msvc/remotion.exe: require msvcrt.dll and reject api-ms-win-crt-* or ucrtbase.dll imports.

Commit, push, and open the PR

Before committing, check for an existing pull request for the current branch. If one exists, report it and stop instead of duplicating or rewriting it.

Stage only the two Cargo files, the seven rebuilt compositor platform packages, packages/compositor/build.ts, and any intentional update to this skill. Use this commit and PR title:

`@remotion/compositor`: Update rust-ffmpeg and rebuild binaries

Push once with git push -u origin HEAD. Never force-push. If the push is rejected, stop and report it.

Write a concise PR body to a temporary Markdown file. Include the full rust-ffmpeg and rust-ffmpeg-sys SHAs, the splitter source SHA if available in the handoff, the seven rebuilt targets, and validation results. Create a draft PR against main with gh pr create --draft --body-file; do not pass the body inline.

Finish the chain

Report the PR URL, branch, all three source commit SHAs available in the handoff, rebuilt targets, and validation results. There is no next repository; the multi-repository update chain is complete.

Comments

Markdown supported