一键导入
一键导入
Best practices for Remotion - Video creation in React
Release a new Remotion version
Fix newly added optional parameters, optional React props, and optional type/interface members in Remotion monorepo diffs by converting internal APIs to required nullable values and updating call sites. Use when a PR, review, or user asks to forbid new `foo?: T` / `param?: T` additions except for exported or documented public APIs where requiring the value would be breaking.
Wait for a Remotion pull request to become mergeable, handle merge conflicts, distinguish genuine CI failures from flakes, rerun flaky checks through the flake skill, and merge the PR. Use when asked to run /merge, merge a current PR after checks pass, or shepherd a Remotion PR through CI to merge.
Add a browser WebCodecs bug to the Remotion Mediabunny WebCodecs bugs docs page. Use when given a Chromium, WebKit, or Firefox issue URL that should be tracked in packages/docs/docs/mediabunny/webcodecs-bugs.mdx, especially when needing to look up the issue title, filing date, reporter, and resolution state before editing the MDX table.
Track Remotion CI flakes in issue
| name | add-sfx |
| description | Add a new sound effect to @remotion/sfx |
Sound effects must first be added to the remotion.media package.
Then it can be deployed using bun run build. The .env may be missing if we are in a worktree, but on the main non-worktree branch it should be present.
The source of truth is generate.ts in that repo. A sound effect must exist there before it can be added to @remotion/sfx.
Sound effects must be:
remotion.media repo (must be done first)In the remotion-dev/remotion.media repo:
soundEffects array in generate.ts:
{
fileName: "my-sound.wav",
attribution:
"Description by Author -- https://source-url -- License: Creative Commons 0",
},
bun generate.ts to copy it to files/ and regenerate variants.jsonpackages/sfx/src/index.tsUse camelCase for the variable name. Avoid JavaScript reserved words (e.g. use uiSwitch not switch).
export const mySound = 'https://remotion.media/my-sound.wav';
packages/docs/docs/sfx/<name>.mdxFollow the pattern of existing pages (e.g. whip.mdx). Include:
image, title (camelCase export name), crumb: '@remotion/sfx'<AvailableFrom> tag with the next release version<PlayButton> import and usage@remotion/media's <Audio> componentafinfo on macOS to get duration/format)[Open this file on remotion.dev/convert](https://remotion.dev/convert?url=<encoded-sfx-url>)packages/docs/sidebars.ts — add 'sfx/<name>' to the @remotion/sfx category itemspackages/docs/docs/sfx/table-of-contents.tsx — add a <TOCItem> with a <PlayButton size={32}>After the sound is added to packages/remotion-media and exported from packages/sfx/src/index.ts, regenerate the waveform samples used by the docs:
bun packages/docs/generate-sfx-waveforms.ts
This uses ffmpeg to sample every exported sound effect into around 2000 waveform samples and updates packages/docs/components/sfx-demos/sfx-waveforms.ts.
Add the new URL to the list in packages/skills/skills/remotion/rules/sfx.md.
cd packages/sfx && bun run make
| File name | Export name |
|---|---|
my-sound.wav | mySound |
switch.wav | uiSwitch (reserved word) |
page-turn.wav | pageTurn |
Use the current version from packages/core/src/version.ts.
For docs <AvailableFrom>, increment the patch version by 1.