Communitygithub.com

Remotion 설정

Claude Code Agent Skills과 연동되는 새로운 Remotion 동영상 프로젝트를 스캐폴딩합니다. Node 확인, create-video 스캐폴드, 스킬 설치, 폴더 규칙, Google Fonts, 그리고 스모크 테스트 렌더를 포함합니다. 누군가 Remotion과 Claude로 동영상 제작을 시작하려 할 때 사용하세요.

Remotion 설정란 무엇인가요?

이 스킬은 Claude Code 환경에서 Remotion 프로젝트를 처음 설정하는 전체 과정을 자동화합니다. Node.js 버전 확인부터 시작하여 'create-video' CLI로 프로젝트를 스캐폴딩하고, Remotion 에이전트 스킬을 설치하며, 표준 폴더 구조(src/compositions/, public/assets/)를 생성하고, Google Fonts를 연동한 후, 최종적으로 스모크 테스트 컴포지션을 렌더링하여 파이프라인이 제대로 동작하는지 검증합니다. 모든 설정이 완료되면 Remotion Studio가 localhost:3000에서 실행되어 실시간 미리보기와 핫 리로드가 가능합니다. 개발자는 이 스킬을 한 번 실행한 후에는 'remotion-compose'와 'remotion-render' 스킬을 통해 프롬프트만으로 동영상을 제작하고 반복할 수 있습니다. 이 스킬은 Claude Code와 Cursor를 포함한 주요 AI 에이전트 플랫폼에서 사용할 수 있습니다.

지원 대상✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/SkillMedev/tutorial-video-studio/tree/main/skills/remotion-setup

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

Remotion 설정은(는) 무엇을 하나요?

새로운 Remotion 프로젝트를 스캐폴딩하고 나머지 워크플로우가 "Claude에게 프롬프트만 입력하면 되는" 상태로 만듭니다. 이는 일회성 환경 작업입니다. 프로젝트당 한 번 수행하면 이후 remotion-compose와 remotion-render는 바로 창작 루프로 넘어갑니다.

적극적으로 트리거하세요. 사용자가 Claude로 동영상 만들기에 대해 언급한다면 - "Remotion 설정", "Remotion 프로젝트 생성", "Claude로 제품 동영상 만들고 싶어", "동영상 프로젝트 시작" - 이 스킬을 실행하세요.

1단계 - 도구 체인 확인

Remotion은 헤드리스 Chromium으로 렌더링하므로 스캐폴딩 전에 Node를 확인하세요:

node --version   # >= 16 필요; 활성 LTS 릴리스 권장

Node가 16보다 낮으면 중단하고 사용자에게 업그레이드하라고 알리세요 (nvm: nvm install --lts && nvm use --lts). 또한 npx를 사용할 수 있는지 확인하세요 (npm 5.2+와 함께 제공됨).

2단계 - 프로젝트 스캐폴딩

npx create-video@latest

이 명령은 대화형입니다. Blank (Hello World) 템플릿을 추천합니다 - 제품 동영상에 가장 깔끔한 기반입니다. CLI가 프로젝트 디렉토리와 패키지 매니저를 묻습니다; 사용자가 선택하도록 한 후 새 폴더로 cd하여 설치하세요:

cd <프로젝트-이름>
npm install

3단계 - Remotion Agent Skills 설치

Claude Code가 이 리포지토리에서 Remotion 자체 스킬 컨텍스트를 사용할 수 있도록:

npx remotion skills add remotion

이 명령은 Remotion의 에이전트 스킬 파일을 프로젝트에 넣습니다. 설치된 Remotion 버전에서 명령을 사용할 수 없는 경우, 최신 @remotion/cli를 안내하고 계속 진행하세요 - 필수는 아니지만 편의 기능입니다.

4단계 - 폴더 규칙 수립

이후 스킬이 항상 파일 위치를 알 수 있도록 레이아웃을 표준화합니다:

src/
  Root.tsx              # 모든 <Composition>을 등록 (항목 레지스트리)
  index.ts              # registerRoot(RemotionRoot)
  compositions/         # 동영상당 하나의 .tsx 파일 - remotion-compose가 여기에 작성
public/
  assets/               # 이미지, 로고, 오디오 - staticFile()을 통해 참조

템플릿이 생성하지 않은 폴더를 만드세요:

mkdir -p src/compositions public/assets

src/Root.tsx가 레지스트리입니다. 모든 동영상은 여기에 등록된 <Composition>입니다:

// src/Root.tsx
import { Composition } from "remotion";
import { HelloWorld } from "./compositions/HelloWorld";

export const RemotionRoot: React.FC = () => {
  return (
    <Composition
      id="HelloWorld"
      component={HelloWorld}
      durationInFrames={90}
      fps={30}
      width={1920}
      height={1080}
    />
  );
};
// src/index.ts
import { registerRoot } from "remotion";
import { RemotionRoot } from "./Root";
registerRoot(RemotionRoot);

등록할 합리적인 기본값: 가로형 제품 동영상은 30fps와 1920x1080 (세로형 소셜 미디어는 1080x1920), 짧은 길이 - 30fps에서 90프레임은 3초이며, 대부분의 제품 데모 동영상은 15초에서 60초 사이입니다 (450-1800프레임).

5단계 - Google Font 로드

Remotion은 Google Fonts를 기본적으로 지원하여 텍스트가 결정적으로 렌더링됩니다. 한 번 설치하고 로드하세요:

npm install @remotion/google-fonts
// 컴포지션 파일 상단 근처에서 로드
import { loadFont } from "@remotion/google-fonts/Inter";
const { fontFamily } = loadFont();
// 사용: <div style={{ fontFamily }}>...</div>

loadFont()는 글꼴이 준비될 때까지 렌더를 차단하므로, 화면의 텍스트가 스타일이 적용되지 않은 폴백 글꼴로 깜빡이는 일이 없습니다. 브랜드에 맞는 글꼴을 선택하세요 - Inter 대신 Poppins, Roboto 등을 사용할 수 있습니다.

6단계 - 스모크 테스트 컴포지션

환경이 처음부터 끝까지 렌더링되는지 증명할 간단한 컴포지션을 작성하세요:

// src/compositions/HelloWorld.tsx
import { AbsoluteFill, useCurrentFrame, interpolate } from "remotion";
import { loadFont } from "@remotion/google-fonts/Inter";

const { fontFamily } = loadFont();

export const HelloWorld: React.FC = () => {
  const frame = useCurrentFrame();
  const opacity = interpolate(frame, [0, 30], [0, 1], {
    extrapolateRight: "clamp",
  });
  return (
    <AbsoluteFill style={{ backgroundColor: "#0B0B0F", justifyContent: "center", alignItems: "center" }}>
      <h1 style={{ fontFamily, color: "white", fontSize: 90, opacity }}>
        작동합니다.
      </h1>
    </AbsoluteFill>
  );
};

src/Root.tsx에 등록되었는지 확인하고 (4단계), 그런 다음 렌더링하세요:

npx remotion render src/index.ts HelloWorld out/smoke-test.mp4

첫 번째 렌더는 헤드리스 Chromium을 다운로드합니다 (수백 MB - 일반적인 연결에서 처음 한 번은 몇 분 정도 기다려야 함); 이후 이 90프레임 스모크 테스트는 1분 이내에 렌더링되어야 합니다. out/smoke-test.mp4가 페이드인 되는 제목을 재생하면 환경이 정상입니다. 렌더가 실패하면 거의 항상 (a) Chromium 다운로드/권한, (b) 컴포지션이 Root.tsx에 등록되지 않음, 또는 (c) 1단계의 Node 버전 문제입니다.

7단계 - 미리보기를 위한 Remotion Studio 실행

대화형 미리보기 (타임라인 스크럽, 편집 시 핫 리로드):

npx remotion studio

이 명령은 Studio를 **http://localhost:3000**에 제공합니다. create-video 템플릿은 또한 npm run dev를 동일한 기능에 연결합니다. 반복 작업 중에는 Studio를 계속 실행하세요 - 컴포지션 파일을 편집하면 핫 리로드가 즉시 적용됩니다.

결과물

사용자는 작동하는 Remotion 프로젝트를 갖게 됩니다: src/compositions/ + public/assets/ 레이아웃이 적용된 스캐폴딩된 리포지토리, Remotion 에이전트 스킬 설치, Google Font 연결, 등록된 스모크 테스트 컴포지션, 실제로 재생되는 렌더링된 out/smoke-test.mp4, 그리고 미리보기를 위해 실행 중인 Remotion Studio. 스모크 테스트 MP4가 존재하고 재생될 때까지 "설정 완료"가 아닙니다.

금지 사항

  • Node 확인을 건너뛰고 스캐폴딩하지 마세요 - 16 미만의 Node는 설치 시가 아닌 Chromium 렌더 내부 깊숙한 곳에서 이해하기 어려운 오류로 실패합니다.
  • 스모크 테스트를 렌더링하지 않고 설정 완료를 선언하지 마세요; 컴파일은 되지만 MP4를 한 번도 생성하지 않은 프로젝트는 Chromium 파이프라인이 작동함을 입증하지 못합니다.
  • 컴포지션이나 에셋을 임의의 위치에 두지 마세요 - 이후 스킬(remotion-compose, remotion-render)은 src/compositions/와 public/assets/가 존재한다고 가정합니다.
  • 에셋을 상대 경로나 URL로 참조하지 마세요; public/에서 staticFile()을 사용하세요. 그렇지 않으면 로컬에서는 작동하지만 다른 곳에서는 깨집니다.
  • 화면 텍스트에 시스템 또는 CSS 가져오기 글꼴을 사용하지 마세요 - loadFont()로 차단하지 않으면 렌더 머신에서 텍스트가 폴백 글꼴로 렌더링될 수 있습니다.
  • 제품 동영상에 기능이 많은 템플릿을 선택하지 마세요; Blank 템플릿은 사용자가 나중에 삭제해야 하는 데모 코드가 없습니다.

품질 기준

  • node --version이 16 이상이며 스캐폴딩 전에 확인되었습니다.
  • out/smoke-test.mp4가 존재하고 페이드인 되는 제목을 재생합니다.
  • 폴더 규칙이 정확히 지정된 대로 존재하며 스모크 컴포지션이 src/Root.tsx에 등록되어 있습니다.
  • 텍스트가 시스템 폴백이 아닌 @remotion/google-fonts의 loadFont()를 통해 렌더링됩니다.
  • Remotion Studio가 localhost:3000에서 실행되고 편집 시 핫 리로드됩니다.

인계

스모크 테스트가 렌더링되고 Studio가 켜지면, 사용자에게 프로젝트가 준비되었음을 알리고 인계하세요: "설정이 완료되었습니다. 원하는 동영상을 설명해 주세요 - 길이, 장면, 브랜드 색상 - 그러면 제가 컴포지션을 작성하고(remotion-compose), 렌더링하고 반복하겠습니다(remotion-render)."

Individual skills in this repo

This repo contains 11 individual skills — each has its own dedicated page.

Captions From Transcript

Produce an accurate, properly timed caption track (SRT or WebVTT) from a video

Kinetic Typography

Put text in motion the right way - title cards, animated captions, lower-thirds, callouts, and word-by-word reveals - with a reading-time-per-word budget so copy holds long enough to read, plus enter/exit timing, weight and size transitions, and type hierarchy in motion. Use when someone asks to

Motion Design Principles

The craft layer for motion: pick the right easing (ease-in / ease-out / ease-in-out / spring), get timing and spacing right, build the anticipation→action→follow-through arc, and apply Disney

Narration Script

Write the spoken voiceover for a tutorial or demo - the actual words, phrased for the ear and synced one-instruction-per-action to what is on screen, with a pacing budget and a confident, jargon-checked tone. Use when someone says

Product Demo Director

Direct the craft of putting a real software UI on screen - cursor choreography, zoom/pan/callout language, screen-recording vs recreated-UI, and making state changes legible with highlights, focus pulls, and slow-downs. Use when filming or recreating an app for a product demo, feature walkthrough, onboarding clip, or release reel and asking

Remotion Compose

Turns a natural-language video brief into a complete, ready-to-preview Remotion composition - extracts duration, scenes, brand colors, aspect ratio, and real copy; plans the frame budget; and writes data-driven React/TypeScript using useCurrentFrame, interpolate, spring, AbsoluteFill, and Sequence, registered in Root.tsx. Use when someone says

Remotion Render

Renders a Remotion composition to MP4 and runs the edit-and-re-render loop - CLI render commands, 1080p/4K/9:16 presets, concurrency tuning, codec selection, batch variants from a JSON data file, and Lambda for cloud rendering. Use when someone says

Screencast Capture

Capture clean raw screen and camera footage for a tutorial or product demo - choosing the recorder (macOS Screenshot toolbar, QuickTime, OBS, Windows Game Bar), setting resolution / frame-rate / cursor / microphone, prepping a distraction-free stage, and recording in retakeable segments. Use when someone says

SkillMedev/tutorial-video-studio

Plan a product demo, feature announcement, or launch video as a beat sheet and shot list BEFORE animating - hook in the first 3s, problem, reveal, proof, CTA - with target duration and pacing per scene type, output as a JSON scene plan that remotion-compose consumes directly. Use when someone says

Social Video Formatter

Reframe and export a finished video for social platforms - 9:16 ↔ 16:9 cropping, burned-in captions, a platform-native first frame, loop design, and per-platform specs (aspect, length, safe areas) for TikTok, Reels, Shorts, X, and LinkedIn. Use when someone says

Sound and Music Sync

Score a video like an editor: beat-match cuts to the music, land SFX on transitions, pace the voiceover so it breathes, source royalty-free tracks safely, and duck the music so the VO sits clearly on top. Use when adding music, sound effects, or voiceover to a video, when asked to

관련 스킬