remotion-server
Create professional videos from code with Remotion v4 - local CLI, Lambda, Vercel, Cloud Run, GPU rendering. Social media presets, templates, sfx, starburst, captions, Mediabunny. Headless on any Linux server.
소스 정보
- 저장소
- mvanhorn/clawdbot-skill-remotion-server
- 최근 소스 활동
- 2026년 3월 16일 05:09
- 감지된 SKILL.md 언어
- 영어
- 스타
- 1
- 포크
- 1
설치 방법
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
소스 파일 검토
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
SKILL.md 표시 중
SKILL.md
소스 지침 · 읽기 전용 미리보기- name
- remotion-server
- version
- 3.0.0
- description
- Create professional videos from code with Remotion v4 - local CLI, Lambda, Vercel, Cloud Run, GPU rendering. Social media presets, templates, sfx, starburst, captions, Mediabunny. Headless on any Linux server.
- author
- mvanhorn
- license
- MIT
- repository
- https://github.com/mvanhorn/clawdbot-skill-remotion-server
- homepage
- https://remotion.dev
- metadata
- {"openclaw":{"emoji":"🎬","requires":{"bins":"[Truncated]"},"tags":["video","remotion","rendering","react","headless","social-media","tiktok","youtube","instagram","templates","thumbnails","batch","mp4","webm","lambda","vercel","gpu","sfx","captions"],"triggers":["render a video","make a video","create a video","generate a video","tiktok video","youtube short","instagram reel","promo video","chat demo video","code walkthrough video","product demo video","generate a thumbnail","batch render","render on lambda","render on vercel","add sound effects","add captions"]}}
# Remotion Server
Render videos headlessly on any Linux server using Remotion v4 (latest: v4.0.435). No Mac or GUI required.
Chrome Headless Shell handles all rendering - works on VPS, Raspberry Pi, CI runners, Docker containers, anywhere Node.js runs.
FFmpeg is baked into each Remotion project - no separate FFmpeg install needed.
## Setup (one-time)
Install browser dependencies for Chrome Headless Shell:
```bash
bash {baseDir}/scripts/setup.sh
```
This installs system libraries (libnss3, libatk, libgbm, libcups2, etc.) required by Chrome on headless Linux.
Supports Ubuntu 22.04/24.04, Debian, and Amazon Linux.
### Verify setup
After setup, confirm Chrome Headless Shell works:
```bash
npx @remotion/chrome-headless-shell --help
```
If this fails, the system dependencies are missing. Re-run setup.sh or install manually:
```bash
# Ubuntu/Debian
sudo apt install -y libnss3 libatk1.0-0 libatk-bridge2.0-0 libcups2 libgbm1 \
libpango-1.0-0 libcairo2 libxcomposite1 libxdamage1 libxfixes3 libxrandr2
# Amazon Linux
sudo yum install -y mesa-libgbm libX11 libXrandr libdrm libXdamage libXfixes \
libxkbcommon dbus-libs libXcomposite alsa-lib nss pango cups-libs at-spi2-core atk
```
## Quick Start
### Create a project
```bash
bash {baseDir}/scripts/create.sh my-video
cd my-video
```
### Render a video
```bash
npx remotion render MyComp out/video.mp4
```
### Preview in browser (dev mode)
```bash
npx remotion preview
```
Opens a local dev server where you can scrub through the video timeline, adjust props, and iterate before rendering.
## Rendering Options (5 ways to render)
Remotion v4 offers five rendering backends. Choose based on your infrastructure and scale.
### 1. Local CLI (default)
Render on the machine where Node.js runs. Best for development, CI, and single-server deployments.
```bash
npx remotion render MyComp out/video.mp4
```
### 2. Remotion Lambda
Distribute rendering across AWS Lambda functions. Renders up to ~80 minutes of Full HD video. Supports webhooks for async notifications and built-in cost estimation.
```bash
npm install @remotion/lambda
# Deploy Lambda function
npx remotion lambda functions deploy
# Render on Lambda
npx remotion lambda render MyComp
# Estimate cost before rendering
npx remotion lambda still --estimate-price MyComp
```
Key features:
- Distributed rendering across multiple Lambda invocations
- Webhook callbacks on render completion
- Cost estimation before rendering
- S3 output storage
See https://www.remotion.dev/docs/lambda
### 3. @remotion/vercel (NEW - Feb 2026)
Render inside Vercel Sandboxes. Simplest setup - no AWS account needed.
```bash
npm install @remotion/vercel
```
Deploy your Remotion project to Vercel and trigger renders via API. Best for teams already on Vercel who want zero-config rendering.
See https://www.remotion.dev/docs/vercel
### 4. Cloud Run (alpha)
Render on Google Cloud Run. Lower compute costs than Lambda for longer videos.
```bash
npm install @remotion/cloudrun
npx remotion cloudrun render MyComp
```
See https://www.remotion.dev/docs/cloudrun
### 5. GPU rendering on EC2 (v4.0.248+)
Hardware-accelerated rendering on EC2 GPU instances. Fastest option for complex compositions with heavy animations or 3D content.
Requires an EC2 instance with a GPU (e.g., g4dn.xlarge) and appropriate drivers.
See https://www.remotion.dev/docs/gpu
## Social Media Format Presets
Use these resolution and aspect ratio presets when creating compositions. Pass `--width` and `--height` to `npx remotion render` to override the composition defaults.
### TikTok / YouTube Shorts / Instagram Reels (9:16 vertical)
```bash
npx remotion render ChatDemo out/tiktok.mp4 --width=1080 --height=1920
```
- Resolution: 1080x1920
- Aspect ratio: 9:16
- Recommended FPS: 30
- Max duration: 60s (TikTok), 60s (Shorts), 90s (Reels)
### YouTube Standard (16:9 landscape)
```bash
npx remotion render MyComp out/youtube.mp4 --width=1920 --height=1080
```
- Resolution: 1920x1080
- Aspect ratio: 16:9
- Recommended FPS: 30 or 60
### Instagram Post (1:1 square)
```bash
npx remotion render MyComp out/instagram-post.mp4 --width=1080 --height=1080
```
- Resolution: 1080x1080
- Aspect ratio: 1:1
- Max duration: 60s
### Twitter/X Video (16:9 landscape)
```bash
npx remotion render MyComp out/twitter.mp4 --width=1280 --height=720
```
- Resolution: 1280x720
- Aspect ratio: 16:9
- Max file size: 512MB
- Max duration: 140s
### Format preset summary
| Platform | Width | Height | Ratio | FPS |
|-----------------|-------|--------|-------|-----|
| TikTok | 1080 | 1920 | 9:16 | 30 |
| YouTube Shorts | 1080 | 1920 | 9:16 | 30 |
| Instagram Reel | 1080 | 1920 | 9:16 | 30 |
| Instagram Post | 1080 | 1080 | 1:1 | 30 |
| YouTube | 1920 | 1080 | 16:9 | 30 |
| Twitter/X | 1280 | 720 | 16:9 | 30 |
When building a Composition in code, set `width`, `height`, and `fps` directly:
```tsx
<Composition
id="TikTokPromo"
component={PromoVideo}
durationInFrames={30 * 15}
fps={30}
width={1080}
height={1920}
/>
```
## New Packages (v4.0.429+)
### @remotion/sfx (v4.0.429)
Built-in sound effects for quick audio cues:
```tsx
import { Sfx } from "@remotion/sfx";
// Available sounds: ding, bruh, vineBoom
<Sfx name="ding" />
<Sfx name="bruh" />
<Sfx name="vineBoom" />
```
### @remotion/starburst (v4.0.435)
Starburst shape and animation component:
```tsx
import { Starburst } from "@remotion/starburst";
<Starburst
points={12}
innerRadius={50}
outerRadius={100}
fill="yellow"
/>
```
### @remotion/shapes (updated v4.0.432)
Geometric shape primitives. Now includes Arrow shape:
```tsx
import { Triangle, Star, Pie, Arrow } from "@remotion/shapes";
<Triangle length={100} direction="up" fill="red" />
<Star points={5} innerRadius={30} outerRadius={60} fill="gold" />
<Pie radius={50} progress={0.75} fill="blue" />
<Arrow length={150} direction="right" fill="black" />
```
### @remotion/captions
Animated captions for video content. Supports word-level timing and multiple animation styles:
```tsx
import { Caption } from "@remotion/captions";
<Caption
text="Hello world"
startFrame={0}
endFrame={60}
style="bounce"
/>
```
### @remotion/player
Embed Remotion videos in React apps without rendering to file. Interactive playback with controls:
```tsx
import { Player } from "@remotion/player";
<Player
component={MyComp}
durationInFrames={300}
fps={30}
compositionWidth={1920}
compositionHeight={1080}
controls
/>
```
## Mediabunny (format conversion)
Mediabunny is the successor to @remotion/media-parser and @remotion/webcodecs. GPU-accelerated format conversion built into Remotion.
Supported inputs: MP4, WebM, MOV, MKV, M3U8, TS, AVI, MP3, FLAC, WAV, M4A, AAC
Supported outputs: MP4, WebM, WAV
```tsx
import { convertMedia } from "@remotion/media-converter";
await convertMedia({
src: "input.mov",
container: "mp4",
});
```
## Remotion Skills (Jan 2026)
AI agent integration for prompt-to-video workflows. Claude Code can generate Remotion compositions from natural language descriptions.
```
"Create a 15-second TikTok video with animated text saying 'New Feature'
that fades in with a spring animation, then show three bullet points"
```
The agent generates the TSX composition, registers it, and renders it - all from a single prompt.
## Templates
All templates are created via the `create.sh` script. Each generates a full Remotion project with TypeScript, TailwindCSS 4.2.0, and the template components.
### Chat Demo (Telegram-style phone mockup)
Animated chat bubbles appearing in sequence inside a phone mockup. Good for product demos, bot showcases, customer support highlights.
```bash
bash {baseDir}/scripts/create.sh my-chat --template chat
cd my-chat
```
Edit `src/messages.json` to customize the conversation:
```json
[
{"text": "How do I reset my password?", "isUser": true},
{"text": "Go to Settings > Account > Reset Password. You'll get an email in ~30 seconds.", "isUser": false},
{"text": "Got it, thanks!", "isUser": true}
]
```
Render at TikTok resolution:
```bash
npx remotion render ChatDemo out/chat-tiktok.mp4 --width=1080 --height=1920
```
Default composition: 1080x1920 (vertical), 30fps, duration auto-calculated from message count.
### Title Card (animated intro)
Fade-in title with spring animation. Use for video intros, section headers, or standalone announcement cards.
```bash
bash {baseDir}/scripts/create.sh my-intro --template title
cd my-intro
```
Customize by editing `src/TitleCard.tsx` defaultProps:
```tsx
defaultProps={{ title: "Product Launch", subtitle: "Coming March 2026" }}
```
Render at YouTube resolution:
```bash
npx remotion render TitleCard out/title-youtube.mp4 --width=1920 --height=1080
```
Default composition: 1920x1080 (landscape), 30fps, 3 seconds.
### Blank (starter template)
Empty canvas for building custom compositions from scratch.
```bash
bash {baseDir}/scripts/create.sh my-project
cd my-project
```
Shows frame counter. Replace `src/Composition.tsx` with your own component.
### Building Custom Templates
To add a new template (e.g., promo, code walkthrough, stats dashboard, countdown, testimonial), create a React component that uses Remotion primitives:
```tsx
import { AbsoluteFill, useCurrentFrame, spring, useVideoConfig, interpolate, Sequence, Img, Audio } from "remotion";
```
Key Remotion APIs for templates:
- `useCurrentFrame()` - current frame number for animation
- `spring({ frame, fps, config })` - spring physics animation
- `interpolate(frame, inputRange, outputRange)` - linear interpolation
- `<Sequence from={30}>` - delay child content by N frames
- `<Img src={staticFile("logo.png")} />` - load static assets
- `<Audio src={staticFile("music.mp3")} />` - add background audio
- `<AbsoluteFill>` - full-frame container
Register compositions in `src/Root.tsx`:
```tsx
import { Composition } from "remotion";
import { PromoVideo } from "./PromoVideo";
export const RemotionRoot: React.FC = () => {
return (
<>
<Composition
id="PromoVideo"
component={PromoVideo}
durationInFrames={300}
fps={30}
width={1080}
height={1920}
/>
</>
);
};
```
## Thumbnail Generation
Extract a single frame as a still image using Remotion's `still` command:
```bash
npx remotion still MyComp out/thumbnail.png
```
### Options
```bash
# Specific frame (default is frame 0)
npx remotion still MyComp out/thumb.png --frame=45
# JPEG output
npx remotion still MyComp out/thumb.jpeg --image-format=jpeg
# JPEG quality (0-100)
npx remotion still MyComp out/thumb.jpeg --image-format=jpeg --jpeg-quality=90
# Custom resolution
npx remotion still MyComp out/thumb.png --width=1280 --height=720
# Pass props
npx remotion still MyComp out/thumb.png --props='{"title":"Episode 1"}'
```
### Thumbnail for YouTube
```bash
npx remotion still TitleCard out/yt-thumb.png --width=1280 --height=720 \
--props='{"title":"How to Build an AI Agent","subtitle":"Step by step guide"}'
```
YouTube recommended thumbnail: 1280x720 (16:9), PNG or JPEG.
### Thumbnail for Instagram
```bash
npx remotion still MyComp out/ig-thumb.png --width=1080 --height=1080
```
## Batch Rendering
Render multiple videos in sequence using a shell loop or xargs.
### Render multiple compositions from one project
If your Root.tsx registers multiple compositions:
```bash
npx remotion render PromoVideo out/promo.mp4
npx remotion render ChatDemo out/chat.mp4
npx remotion render TitleCard out/title.mp4
```
### Render with different props
```bash
for topic in "AI Agents" "Open Source" "DevTools"; do
slug=$(echo "$topic" | tr ' ' '-' | tr '[:upper:]' '[:lower:]')
npx remotion render TitleCard "out/${slug}.mp4" \
--props="{\"title\":\"$topic\",\"subtitle\":\"Deep dive\"}"
done
```
### Render all social formats at once
```bash
npx remotion render MyComp out/youtube.mp4 --width=1920 --height=1080
npx remotion render MyComp out/tiktok.mp4 --width=1080 --height=1920
npx remotion render MyComp out/square.mp4 --width=1080 --height=1080
GitHub에서 보기이 SKILL.md는 매우 커서 SkillsMP가 여기에는 첫 섹션만 미리 보여줍니다. GitHub에서 보기