Startup-os-skills remotion-render-config
Generates render and output configuration for Remotion videos. Focuses ONLY on output settings, codec, format, quality, resolution. Input is target platform/quality requirements. Output is RENDER_CONFIG.md with Remotion render settings.
git clone https://github.com/ncklrs/startup-os-skills
T=$(mktemp -d) && git clone --depth=1 https://github.com/ncklrs/startup-os-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/remotion-render-config" ~/.claude/skills/ncklrs-startup-os-skills-remotion-render-config && rm -rf "$T"
skills/remotion-render-config/SKILL.mdRemotion Render Config
Generates render configuration documents that define video output settings, codec parameters, format options, and quality settings for Remotion video renders. This skill focuses exclusively on render/export configuration.
What This Skill Does
Generates render configurations for:
- Output format — MP4, WebM, ProRes, etc.
- Codec settings — H.264, H.265, VP9 parameters
- Quality settings — CRF, bitrate, compression level
- Resolution — Output dimensions and scaling
- Platform optimization — YouTube, Twitter, Instagram presets
Scope Boundaries
IN SCOPE:
- Render command configuration
- Codec and format selection
- Quality and compression settings
- Platform-specific optimizations
- Output file parameters
OUT OF SCOPE:
- Composition implementation (use
)/remotion-composition - Scene logic (use
)/remotion-component-gen - Animation parameters (use
)/remotion-animation - Asset management (use
)/remotion-asset-coordinator
Input/Output Formats
Input Format: Target Platform/Quality Requirements
Accepts render target specifications:
Natural Language:
Render for YouTube at high quality with H.264 codec
Structured Format:
## Render Requirements **Target Platform:** YouTube **Quality Level:** High **Format:** MP4 (H.264) **Resolution:** 1920x1080 **Frame Rate:** 30 fps **Additional:** Upload-ready, optimized file size
Output Format: RENDER_CONFIG.md
Generates complete render configuration document:
# Render Configuration: ProductDemo ## Status ✅ Render settings defined ⏳ Ready for video render ## Render Command ```bash npx remotion render \ src/index.tsx \ ProductDemo \ output.mp4 \ --codec=h264 \ --crf=18 \ --pixel-format=yuv420p \ --audio-codec=aac \ --audio-bitrate=320k
Configuration Details
Output Format
- Container: MP4
- Video Codec: H.264 (x264)
- Audio Codec: AAC
- Pixel Format: yuv420p (for maximum compatibility)
Quality Settings
- CRF: 18 (high quality, ~15-20 MB/min)
- Audio Bitrate: 320 kbps (high quality)
- Preset: medium (balanced speed/quality)
Resolution
- Output: 1920x1080 (16:9)
- Frame Rate: 30 fps
- Duration: 30 seconds (900 frames)
Platform: YouTube
Optimized for YouTube upload:
- ✅ H.264 codec (widely supported)
- ✅ yuv420p pixel format (required)
- ✅ AAC audio (recommended)
- ✅ CRF 18 (high quality, good file size)
- ✅ Metadata compatible
Estimated File Size: ~45-60 MB
Alternative Render Options
Web Delivery (Smaller File)
npx remotion render \ src/index.tsx \ ProductDemo \ output.mp4 \ --codec=h264 \ --crf=23 \ --audio-bitrate=192k
File size: ~25-35 MB
Maximum Quality (Archive)
npx remotion render \ src/index.tsx \ ProductDemo \ output.mp4 \ --codec=h264 \ --crf=15 \ --audio-bitrate=320k \ --preset=slower
File size: ~80-100 MB
Fast Preview Render
npx remotion render \ src/index.tsx \ ProductDemo \ preview.mp4 \ --crf=28 \ --preset=ultrafast
File size: ~15-20 MB
Render Workflow
-
Test render (first 3 seconds):
npx remotion render src/index.tsx ProductDemo test.mp4 --frames=0-90 -
Full render with progress:
npx remotion render src/index.tsx ProductDemo output.mp4 --codec=h264 --crf=18 -
Verify output:
- Check file size
- Play in video player
- Verify audio sync
- Check quality
-
Upload to platform (YouTube, etc.)
Next Steps
- Run test render to verify timing and quality
- Adjust CRF if file size too large/small
- Full render when ready
- Upload to target platform
Troubleshooting
File too large:
- Increase CRF (23-28 for web)
- Lower audio bitrate (192k or 128k)
Quality issues:
- Decrease CRF (15-17 for higher quality)
- Use slower preset (slow, slower)
Rendering slow:
- Use faster preset (fast, veryfast)
- Reduce resolution temporarily for testing
Checklist
- Codec selected
- Quality settings defined
- Platform optimized
- Render command generated
- Test render completed
- Full render completed
- Output verified
## Codec Reference ### H.264 (Most Compatible) Best for: YouTube, web delivery, social media ```bash --codec=h264 --crf=18 # Quality (lower = better, 15-28 typical) --pixel-format=yuv420p --audio-codec=aac --audio-bitrate=320k
Quality Levels:
- CRF 15-17: Excellent (large files)
- CRF 18-20: High (recommended)
- CRF 21-23: Good (web delivery)
- CRF 24-28: Acceptable (preview/draft)
H.265 (HEVC) - Better Compression
Best for: Modern platforms, smaller files, 4K video
--codec=h265 --crf=23 --pixel-format=yuv420p10le
Note: Not universally supported, but ~50% smaller files at same quality
VP9 (Open Source)
Best for: WebM format, web delivery, Chrome/Firefox
--codec=vp9 --crf=30 --pixel-format=yuv420p
ProRes (Professional)
Best for: Video editing, maximum quality, no compression
--codec=prores --prores-profile=3 # HQ profile
Warning: Very large files (~1-2 GB/minute)
Quality vs File Size Reference
For 30-second 1080p video at 30fps:
| CRF | Quality | File Size | Use Case |
|---|---|---|---|
| 15 | Excellent | 80-100 MB | Archive, editing |
| 18 | High | 45-60 MB | YouTube, high quality |
| 21 | Good | 30-40 MB | Web, social media |
| 23 | Acceptable | 20-30 MB | Web delivery |
| 28 | Preview | 10-15 MB | Draft, testing |
Platform-Specific Presets
YouTube
npx remotion render src/index.tsx VideoName output.mp4 \ --codec=h264 \ --crf=18 \ --pixel-format=yuv420p \ --audio-codec=aac \ --audio-bitrate=320k
Specifications:
- Resolution: 1920x1080 or higher
- Frame rate: 24, 25, 30, 48, 50, or 60 fps
- Codec: H.264 or H.265
- Audio: AAC-LC, 320 kbps
Twitter/X
npx remotion render src/index.tsx VideoName output.mp4 \ --codec=h264 \ --crf=20 \ --audio-bitrate=192k
Specifications:
- Max duration: 2:20 (140 seconds)
- Max file size: 512 MB
- Resolution: Up to 1920x1200 or 1200x1920
Instagram Feed
npx remotion render src/index.tsx VideoName output.mp4 \ --codec=h264 \ --crf=20 \ --audio-bitrate=192k
Specifications:
- Max duration: 60 seconds
- Resolution: 1080x1080 (1:1) or 1080x1350 (4:5)
- Frame rate: 30 fps
- Codec: H.264
Instagram Reels/Stories
npx remotion render src/index.tsx VideoName output.mp4 \ --codec=h264 \ --crf=20 \ --audio-bitrate=192k
Specifications:
- Resolution: 1080x1920 (9:16)
- Max duration: 90 seconds (Reels), 15 seconds (Stories)
- Frame rate: 30 fps
TikTok
npx remotion render src/index.tsx VideoName output.mp4 \ --codec=h264 \ --crf=20 \ --audio-bitrate=192k
Specifications:
- Resolution: 1080x1920 (9:16)
- Max duration: 10 minutes
- Max file size: 287.6 MB
- Frame rate: 30 or 60 fps
npx remotion render src/index.tsx VideoName output.mp4 \ --codec=h264 \ --crf=20 \ --audio-bitrate=192k
Specifications:
- Max file size: 5 GB
- Resolution: 256x144 to 4096x2304
- Frame rate: 10-60 fps
Advanced Render Options
Concurrency (Faster Renders)
--concurrency=8 # Use 8 CPU cores
Image Sequence (for Post-Processing)
--sequence --image-format=png
Outputs PNG sequence for After Effects, Premiere, etc.
Specific Frame Range
--frames=30-90 # Render frames 30-90 only
Scale Output
--scale=0.5 # Render at 50% resolution (960x540)
Useful for quick previews.
Overwrite Existing File
--overwrite
Custom Output Name
npx remotion render src/index.tsx VideoName "output/final-video.mp4"
Environment Variables
# Number of CPU cores to use export REMOTION_CONCURRENCY=8 # Disable browser sandbox (Docker) export REMOTION_DISABLE_CHROMIUM_SANDBOX=true # Set custom Chromium path export REMOTION_CHROMIUM_PATH=/path/to/chromium
Render Configuration File
Create
remotion.config.ts:
import { Config } from "@remotion/cli/config"; Config.setCodec("h264"); Config.setCrf(18); Config.setPixelFormat("yuv420p"); Config.setAudioBitrate("320k"); Config.setAudioCodec("aac"); Config.setConcurrency(8); Config.setOverwriteOutput(true);
Then render with:
npx remotion render
Render Scripts
Add to
package.json:
{ "scripts": { "render:preview": "remotion render src/index.tsx VideoName preview.mp4 --crf=28 --preset=ultrafast", "render:draft": "remotion render src/index.tsx VideoName draft.mp4 --crf=23", "render:final": "remotion render src/index.tsx VideoName output.mp4 --codec=h264 --crf=18", "render:youtube": "remotion render src/index.tsx VideoName youtube.mp4 --codec=h264 --crf=18 --audio-bitrate=320k" } }
Usage:
npm run render:youtube
Render Performance Tips
- Use concurrency to utilize all CPU cores
- Close other applications during render
- Use SSD for faster file I/O
- Reduce composition complexity if render is too slow
- Test render small ranges before full render
- Use image-format prop if you need transparency
Quality Verification Checklist
After rendering:
- File plays without errors
- Audio is in sync with video
- Visual quality meets expectations
- File size is reasonable for platform
- No encoding artifacts visible
- Colors look correct
- Text is readable
- Animations are smooth
Integration Workflow
- Complete composition via other skills
- Generate render config using this skill → RENDER_CONFIG.md
- Run test render (first few seconds)
- Verify quality and timing
- Run full render
- Upload to target platform
Integration with Other Skills
This skill is the FINAL STEP in the pipeline:
remotion-render-config (this skill) ↓ outputs: RENDER_CONFIG.md ↓ used after: All implementation is complete ↓ produces: Final video file
Works with:
— Render outputs completed project/remotion-scaffold
— Renders structured composition/remotion-composition
— Renders implemented scenes/remotion-component-gen
— Orchestrates this as final step/remotion-spec-translator
This skill provides production-ready render configurations that ensure high-quality video output optimized for target platforms.