When to use
Use this skills whenever you are dealing with Remotion code to obtain the domain-specific knowledge.
Critical: Trimming Videos
NEVER trim videos with one-off ffmpeg commands. Always use a script approach:
- Create
scripts/trim-videos.sh that trims ALL source files
- Output to
public/trimmed/ subfolder (keep originals untouched)
- Reference trimmed files in your composition
- Re-run script when timestamps change
See rules/troubleshooting.md for the full script template.
How to use
Read individual rule files for detailed explanations and code examples:
- rules/3d.md - 3D content in Remotion using Three.js and React Three Fiber
- rules/animations.md - Fundamental animation skills for Remotion
- rules/assets.md - Importing images, videos, audio, and fonts into Remotion
- rules/audio.md - Using audio and sound in Remotion - importing, trimming, volume, speed, pitch
- rules/calculate-metadata.md - Dynamically set composition duration, dimensions, and props
- rules/can-decode.md - Check if a video can be decoded by the browser using Mediabunny
- rules/charts.md - Chart and data visualization patterns for Remotion
- rules/compositions.md - Defining compositions, stills, folders, default props and dynamic metadata
- rules/display-captions.md - Displaying captions in Remotion with TikTok-style pages and word highlighting
- rules/extract-frames.md - Extract frames from videos at specific timestamps using Mediabunny
- rules/fonts.md - Loading Google Fonts and local fonts in Remotion
- rules/get-audio-duration.md - Getting the duration of an audio file in seconds with Mediabunny
- rules/get-video-dimensions.md - Getting the width and height of a video file with Mediabunny
- rules/get-video-duration.md - Getting the duration of a video file in seconds with Mediabunny
- rules/gifs.md - Displaying GIFs synchronized with Remotion's timeline
- rules/images.md - Embedding images in Remotion using the Img component
- rules/import-srt-captions.md - Importing .srt subtitle files into Remotion using @remotion/captions
- rules/lottie.md - Embedding Lottie animations in Remotion
- rules/measuring-dom-nodes.md - Measuring DOM element dimensions in Remotion
- rules/measuring-text.md - Measuring text dimensions, fitting text to containers, and checking overflow
- rules/sequencing.md - Sequencing patterns for Remotion - delay, trim, limit duration of items
- rules/tailwind.md - Using TailwindCSS in Remotion
- rules/text-animations.md - Typography and text animation patterns for Remotion
- rules/timing.md - Interpolation curves in Remotion - linear, easing, spring animations
- rules/transcribe-captions.md - Transcribing audio to generate captions in Remotion
- rules/transitions.md - Scene transition patterns for Remotion
- rules/trimming.md - Trimming patterns for Remotion - cut the beginning or end of animations
- rules/videos.md - Embedding videos in Remotion - trimming, volume, speed, looping, pitch
- rules/parameters.md - Make a video parametrizable by adding a Zod schema
- rules/maps.md - Add a map using Mapbox and animate it
- rules/troubleshooting.md - Common issues and solutions: Video component differences, audio/video sync, timestamp conversion, rendering tips
1---2name: remotion-best-practices3description: Best practices for Remotion - Video creation in React4---56## When to use78Use this skills whenever you are dealing with Remotion code to obtain the domain-specific knowledge.910## Critical: Trimming Videos1112**NEVER trim videos with one-off ffmpeg commands.** Always use a script approach:131. Create `scripts/trim-videos.sh` that trims ALL source files142. Output to `public/trimmed/` subfolder (keep originals untouched)153. Reference trimmed files in your composition164. Re-run script when timestamps change1718See [rules/troubleshooting.md](rules/troubleshooting.md#trimming-videos---the-script-approach) for the full script template.1920## How to use2122Read individual rule files for detailed explanations and code examples:2324- [rules/3d.md](rules/3d.md) - 3D content in Remotion using Three.js and React Three Fiber25- [rules/animations.md](rules/animations.md) - Fundamental animation skills for Remotion26- [rules/assets.md](rules/assets.md) - Importing images, videos, audio, and fonts into Remotion27- [rules/audio.md](rules/audio.md) - Using audio and sound in Remotion - importing, trimming, volume, speed, pitch28- [rules/calculate-metadata.md](rules/calculate-metadata.md) - Dynamically set composition duration, dimensions, and props29- [rules/can-decode.md](rules/can-decode.md) - Check if a video can be decoded by the browser using Mediabunny30- [rules/charts.md](rules/charts.md) - Chart and data visualization patterns for Remotion31- [rules/compositions.md](rules/compositions.md) - Defining compositions, stills, folders, default props and dynamic metadata32- [rules/display-captions.md](rules/display-captions.md) - Displaying captions in Remotion with TikTok-style pages and word highlighting33- [rules/extract-frames.md](rules/extract-frames.md) - Extract frames from videos at specific timestamps using Mediabunny34- [rules/fonts.md](rules/fonts.md) - Loading Google Fonts and local fonts in Remotion35- [rules/get-audio-duration.md](rules/get-audio-duration.md) - Getting the duration of an audio file in seconds with Mediabunny36- [rules/get-video-dimensions.md](rules/get-video-dimensions.md) - Getting the width and height of a video file with Mediabunny37- [rules/get-video-duration.md](rules/get-video-duration.md) - Getting the duration of a video file in seconds with Mediabunny38- [rules/gifs.md](rules/gifs.md) - Displaying GIFs synchronized with Remotion's timeline39- [rules/images.md](rules/images.md) - Embedding images in Remotion using the Img component40- [rules/import-srt-captions.md](rules/import-srt-captions.md) - Importing .srt subtitle files into Remotion using @remotion/captions41- [rules/lottie.md](rules/lottie.md) - Embedding Lottie animations in Remotion42- [rules/measuring-dom-nodes.md](rules/measuring-dom-nodes.md) - Measuring DOM element dimensions in Remotion43- [rules/measuring-text.md](rules/measuring-text.md) - Measuring text dimensions, fitting text to containers, and checking overflow44- [rules/sequencing.md](rules/sequencing.md) - Sequencing patterns for Remotion - delay, trim, limit duration of items45- [rules/tailwind.md](rules/tailwind.md) - Using TailwindCSS in Remotion46- [rules/text-animations.md](rules/text-animations.md) - Typography and text animation patterns for Remotion47- [rules/timing.md](rules/timing.md) - Interpolation curves in Remotion - linear, easing, spring animations48- [rules/transcribe-captions.md](rules/transcribe-captions.md) - Transcribing audio to generate captions in Remotion49- [rules/transitions.md](rules/transitions.md) - Scene transition patterns for Remotion50- [rules/trimming.md](rules/trimming.md) - Trimming patterns for Remotion - cut the beginning or end of animations51- [rules/videos.md](rules/videos.md) - Embedding videos in Remotion - trimming, volume, speed, looping, pitch52- [rules/parameters.md](rules/parameters.md) - Make a video parametrizable by adding a Zod schema53- [rules/maps.md](rules/maps.md) - Add a map using Mapbox and animate it54- [rules/troubleshooting.md](rules/troubleshooting.md) - Common issues and solutions: Video component differences, audio/video sync, timestamp conversion, rendering tips