TRENDSHIFT 일간 #10 · 2026-06-09

Remotion 딥다이브
— React 코드로 영상을 '프로그래밍'하는 프레임워크

Remotion은 영상을 타임라인에서 손으로 편집하는 대신, React 컴포넌트로 한 프레임씩 '계산'해서 진짜 동영상 파일(MP4 등)로 렌더링하는 프레임워크입니다. 화면을 그리는 모든 웹 기술(CSS·SVG·Canvas·WebGL)을 그대로 쓰면서, 변수·함수·반복문·API 호출로 영상 내용을 자동 생성할 수 있습니다. 핵심은 "프레임 번호를 입력하면 그 순간의 화면을 그려내는 함수"라는 발상입니다. 실시간 미리보기 편집기 Studio, 내 앱에 영상을 끼워 넣는 Player, AWS Lambda로 수백 대 분산 렌더링하는 @remotion/lambda까지 한 저장소에 들어 있습니다. (remotion-dev/remotion · TypeScript/React 19 · Bun+Turbo 모노레포 · 특수 라이선스)
목차
  1. 프로젝트 한줄 요약
  2. 왜 주목받는가
  3. 기술 스택 전체 지도
  4. 아키텍처 심화 분석
  5. 디렉토리 구조 해부
  6. 학습 포인트
  7. 하드웨어 / 시스템 요구사항
  8. 직접 해볼 수 있는 실습 과제
  9. 관련 기술 심화 학습 로드맵
  10. 핵심 키워드 사전
  11. 참고 링크

1프로젝트 한줄 요약

한 문장으로 — 이게 뭐 하는 물건인가

"영상을 마우스로 자르고 붙이는 대신, React 코드로 짜서 자동으로 뽑아내는 도구"입니다. 우리가 아는 영상 편집은 프리미어·다빈치리졸브처럼 타임라인에 클립을 올리고 손으로 다듬는 방식입니다. Remotion은 발상을 뒤집습니다. "이 영상의 0.5초 지점은 어떻게 생겼는가?"를 코드로 정의해 두면, Remotion이 1초당 30번(또는 60번) 그 코드를 호출해 프레임을 한 장씩 그리고, 그 그림들을 이어 붙여 진짜 동영상 파일을 만듭니다.

이름의 'Remotion'은 'Re(act) + motion(움직임)'의 합성으로 읽힙니다. 핵심은 React + 프레임 단위 결정론 + 자동 렌더링이라는 조합입니다. 덕분에 데이터가 바뀌면 영상도 자동으로 바뀝니다. 1만 명의 사용자에게 각자 이름이 박힌 연말정산 영상을 보내거나, 매출 데이터를 넣으면 매주 자동으로 갱신되는 리포트 영상을 만드는 식의 "대량 개인화·자동화 영상"이 Remotion이 가장 빛나는 영역입니다. GitHub의 "GitHub Unwrapped"(개인별 연간 리뷰 영상)가 대표적인 실사용 사례입니다.

핵심 비유

"영상 편집기 = 손으로 그린 플립북 / Remotion = 그림 그리는 로봇팔에게 준 설계도"

플립북(넘기면 움직이는 그림책)을 만든다고 합시다. 일반 편집기는 종이 100장에 직접 그림을 그려 넘기는 방식입니다. 한 장 한 장 손이 갑니다.

Remotion은 다릅니다. "n번째 장에는 공을 (n×5)픽셀 오른쪽에 그려라"라는 규칙(코드)만 적어 로봇팔에게 줍니다. 그러면 로봇이 알아서 100장을 그려 책으로 묶어줍니다. 공의 속도를 바꾸고 싶으면 숫자 하나만 고치면 됩니다. 1000장짜리도, 사람 이름만 바꾼 100권도 순식간에 찍어냅니다. 이게 "영상을 프로그래밍한다"의 의미입니다.

용어
프레임 (Frame)
동영상을 이루는 낱장 그림 한 장. 이 그림들을 빠르게 넘기면 움직임으로 보인다. 1초에 몇 장을 넘기는지를 fps(frames per second)라 하며, 보통 30이나 60을 쓴다. Remotion에서 영상의 모든 것은 "지금 몇 번째 프레임인가"라는 숫자 하나에서 결정된다.
용어
선언적(Declarative) vs 명령형(Imperative)
명령형은 "공을 왼쪽으로 5px 옮겨라, 또 옮겨라…"처럼 동작의 순서를 일일이 지시한다. 선언적은 "프레임 n일 때 공의 위치는 5n이다"처럼 결과의 규칙만 적는다. Remotion·React 모두 선언적이라, 어떤 프레임이든 그 순간의 모습을 독립적으로 계산할 수 있다. 이 성질이 분산 렌더링을 가능하게 한다.

2왜 주목받는가

트렌딩 이유 · 경쟁 방식 대비 장점

2026년 들어 "AI로 영상을 자동 생성/편집"하는 흐름이 거세지면서, 코드로 영상을 다루는 Remotion이 AI 에이전트의 '영상 출력 엔진'으로 재조명받고 있습니다. LLM은 텍스트·코드를 잘 만들지만 영상을 직접 만들지는 못합니다. 그런데 Remotion이 있으면 "LLM이 React 코드를 짜고 → Remotion이 그 코드를 영상으로 렌더링"하는 파이프라인이 가능해집니다. 실제로 이 저장소 안에는 skills-evals처럼 AI 스킬 관련 디렉토리까지 생겼습니다.

일반 영상 도구와의 비교

항목GUI 편집기(프리미어 등)모션 템플릿(AE 템플릿)Remotion
제작 방식마우스로 손편집템플릿에 값 끼우기React 코드로 정의
데이터 연동거의 불가제한적API·DB·JSON 자유 연동
대량 개인화불가능수작업 반복props만 바꿔 무한 생성
버전 관리바이너리(불가)바이너리(불가)Git으로 코드 diff 관리
협업파일 주고받기파일 주고받기PR·코드리뷰
자동 렌더링수동 export수동CLI·Lambda로 CI 자동화

핵심 차별점 셋

차별점 ①

"웹 기술 전부가 영상 재료" — 배운 걸 그대로 쓴다

새 영상 언어를 배울 필요가 없습니다. CSS 애니메이션, SVG, Canvas, WebGL(Three.js), HTML 폰트, npm 패키지를 그대로 영상에 씁니다. 프론트엔드 개발자라면 이미 가진 기술로 바로 영상을 만들 수 있다는 점이 강력한 진입 장벽 제거입니다.

차별점 ②

"데이터 → 영상" 파이프라인 — 자동화와 개인화

영상의 내용이 props(입력값)로 들어갑니다. 사용자 이름·매출 숫자·지도 좌표를 props로 넘기면 같은 코드가 수천 개의 서로 다른 영상을 찍어냅니다. 마케팅·뉴스레터·SaaS 대시보드 영상 등 "콘텐츠는 같고 데이터만 다른" 영상에 압도적으로 강합니다.

차별점 ③

"세 가지 도구가 한 세트" — Studio · Player · Lambda

Studio(브라우저 미리보기 편집기)로 만들고, Player(React 컴포넌트)로 내 웹앱에 영상 플레이어를 끼워 넣고, @remotion/lambda로 AWS에 수백 대를 동시에 띄워 긴 영상을 몇 초 만에 렌더링합니다. 제작-임베드-대규모 렌더링이 하나의 생태계로 묶여 있습니다.

반드시 짚을 점
Remotion은 '완전 무료 오픈소스'가 아니다 — 특수 라이선스

코드는 공개돼 있지만 라이선스가 특별합니다. 개인·비영리·소규모 회사는 무료로 쓸 수 있으나, 일정 규모 이상의 회사는 유료 '회사 라이선스(Company License)'를 구매해야 합니다. MIT/Apache 같은 통상의 오픈소스로 착각하고 사내 도입했다가 라이선스 위반이 될 수 있으니, 도입 전 LICENSE.md를 반드시 확인해야 합니다.

3기술 스택 전체 지도

코어 · 도구 · 렌더링 · 인프라를 각각 뜯어본다

Remotion은 단일 패키지가 아니라 수십 개의 npm 패키지가 한 저장소에 모인 모노레포(monorepo)입니다. package.json을 보면 bun(패키지 매니저)과 turbo(빌드 오케스트레이터)로 묶여 있고, React 19를 쓰며, AWS SDK·Three.js·WebCodecs 관련 라이브러리가 카탈로그로 버전 고정돼 있습니다. 즉 "영상 코어 + 편집기 + 플레이어 + 분산 렌더링 + 미디어 파서"가 한 묶음으로 개발됩니다.

코어 — remotion + React 19

항목내용
언어TypeScript 5.9 (+ 실험적 native-preview 컴파일러)
UI 런타임React 19.2 / react-dom — 프레임을 그리는 주체
핵심 APIComposition, useCurrentFrame(), interpolate(), spring(), Sequence, AbsoluteFill, Series
검증Zod 4 — Composition의 props 스키마를 정의해 Studio에서 폼으로 편집

도구 — CLI · Studio · Player

패키지역할
@remotion/cli터미널에서 remotion render, remotion studio 실행
@remotion/studio브라우저 기반 실시간 미리보기·타임라인 편집기
@remotion/player내 React 앱에 끼워 넣는 영상 플레이어 컴포넌트(렌더 없이 실시간 재생)
create-videonpx create-video@latest — 템플릿 스캐폴딩

렌더링 · 미디어 — 서버부터 브라우저까지

패키지역할
@remotion/lambdaAWS Lambda 분산 렌더링 — 프레임을 쪼개 수백 함수가 병렬 처리
@remotion/serverless서버리스 렌더링 공통 로직(클라우드 추상화)
@remotion/media-parser순수 JS 미디어 컨테이너 파서(mp4/webm 등 메타·프레임 추출)
@remotion/webcodecs브라우저 WebCodecs로 인코딩/디코딩 — 서버 없이 변환
@remotion/web-renderer브라우저 안에서 영상 렌더(서버리스의 끝판)
@remotion/whisper-web브라우저에서 음성→자막 변환(Whisper)
@remotion/threeThree.js / react-three-fiber로 3D 영상
용어
모노레포 (Monorepo) · Turbo · Bun
여러 패키지를 하나의 저장소에서 함께 개발하는 방식. Bun은 빠른 JS 런타임 겸 패키지 매니저, Turbo(turborepo)는 "바뀐 부분만 다시 빌드"하는 캐시형 빌드 오케스트레이터다. Remotion처럼 패키지가 수십 개면, 이 둘이 빌드 시간을 크게 줄여준다.
용어
WebCodecs
브라우저가 영상/오디오를 인코딩·디코딩할 수 있게 해주는 최신 웹 표준 API. 예전엔 영상 변환을 하려면 서버의 ffmpeg가 필요했지만, WebCodecs 덕분에 브라우저 안에서 직접 프레임을 다룰 수 있다. Remotion의 @remotion/webcodecs·web-renderer가 이 위에 서 있다.

4아키텍처 심화 분석

"코드가 어떻게 MP4 파일이 되는가" — 렌더링 파이프라인

Remotion의 마법을 한 문장으로 줄이면 이렇습니다. "헤드리스 크롬으로 React 화면을 한 프레임씩 띄워 스크린샷을 찍고, 그 PNG들을 ffmpeg로 이어 붙여 동영상으로 인코딩한다." 즉 진짜 영상 코덱을 React가 다루는 게 아니라, "브라우저 화면 캡처 + 인코딩"을 자동화한 것입니다.

① 단일 머신 렌더링 흐름

[1] 내 코드 (Composition) └ <MyVideo /> : fps=30, durationInFrames=90 (=3초) │ ▼ [2] 번들링 (webpack/rspack) └ 영상 코드를 브라우저가 읽을 한 덩어리로 묶음 │ ▼ [3] 헤드리스 Chrome 실행 (화면 없는 브라우저) └ frame=0 으로 세팅 → 화면 그림 → 스크린샷(PNG) frame=1 으로 세팅 → 화면 그림 → 스크린샷(PNG) ... (총 90장) │ ↑ useCurrentFrame()가 매번 다른 값을 반환 ▼ [4] ffmpeg 인코딩 └ PNG 90장 + 오디오 → out.mp4 │ ▼ [5] 결과: 3초짜리 동영상 파일

여기서 가장 중요한 설계 원칙은 결정론(determinism)입니다. 같은 프레임 번호는 언제 그려도 똑같은 그림이어야 한다는 규칙입니다. Math.random()이나 현재 시각 같은 "매번 달라지는 값"을 화면에 직접 쓰면 안 되고, Remotion이 주는 random()(시드 고정)을 써야 합니다. 이 원칙 덕분에 프레임 0번과 89번을 서로 다른 컴퓨터가 동시에 그려도 결과가 일관됩니다 — 이것이 분산 렌더링의 전제입니다.

② Lambda 분산 렌더링 — 긴 영상을 몇 초 만에

10분짜리 4K 영상을 한 대로 렌더링하면 수십 분이 걸립니다. @remotion/lambda는 프레임 구간을 청크(chunk)로 쪼개, 수백 개의 Lambda 함수에 "너는 0~30프레임, 너는 31~60프레임" 식으로 나눠줍니다. 각자 부분 영상을 만들어 S3에 올리면, 마지막에 하나로 합칩니다(concat). 프레임이 서로 독립적(결정론)이기에 가능한 전략입니다.

┌─ Lambda #1 → 프레임 0~29 → part1.mp4 ─┐ render 요청 ──────┼─ Lambda #2 → 프레임 30~59 → part2.mp4 ─┼─→ S3에서 (S3에 코드 업로드)│─ Lambda #3 → 프레임 60~89 → part3.mp4 ─┤ concat └─ ... (병렬, 동시 실행) ─┘ → final.mp4

③ 핵심 API가 화면을 그리는 방식

// 프레임 번호를 '값'으로 바꾸는 것이 Remotion의 전부
import {useCurrentFrame, interpolate, spring, useVideoConfig} from 'remotion';

const MyTitle = () => {
  const frame = useCurrentFrame();          // 지금 몇 번째 프레임?
  const {fps} = useVideoConfig();

  // frame 0→30 동안 투명도를 0→1로 (페이드 인)
  const opacity = interpolate(frame, [0, 30], [0, 1], {
    extrapolateRight: 'clamp',
  });

  // 통통 튀는 자연스러운 등장 (물리 기반 스프링)
  const scale = spring({frame, fps, config: {damping: 12}});

  return <div style={{opacity, transform: `scale(${scale})`}}>안녕!</div>;
};

핵심 패턴이 보입니다. useCurrentFrame()로 "지금"을 숫자로 받고, interpolate()로 그 숫자를 "투명도·위치·크기" 같은 화면 값으로 변환합니다. spring()은 물리 시뮬레이션으로 자연스러운 가속/감속을 줍니다. 시간을 if문이 아니라 함수로 다룬다는 점이 핵심입니다.

설계가 주는 이점
"한 프레임 = 순수 함수"라는 단순함의 위력

각 프레임이 다른 프레임에 의존하지 않으니, ① 어느 지점이든 즉시 미리보기(Player)가 되고 ② 여러 머신이 동시에 렌더링할 수 있고 ③ 같은 입력이면 결과가 항상 같아 테스트·캐싱이 쉽습니다. "복잡한 영상 = 단순한 함수의 모음"으로 분해한 것이 Remotion 아키텍처의 정수입니다.

5디렉토리 구조 해부

모노레포의 packages/ 안에 무엇이 들어 있나

저장소 루트의 package.json"workspaces": {"packages": ["packages/**"]}로 돼 있습니다. 즉 실질 코드는 거의 전부 packages/ 아래에 패키지별로 흩어져 있습니다. 빌드 스크립트 이름(makecore, makestudio, makeplayer, makeserverless…)에서 주요 패키지를 역으로 읽어낼 수 있습니다.

remotion/ ├── package.json ← 모노레포 루트(bun + turbo 설정, 버전 카탈로그) ├── turbo.json ← 어떤 작업을 어떤 순서/캐시로 돌릴지 ├── LICENSE.md ← ★ 특수 라이선스(회사용 유료) — 꼭 확인 ├── CONTRIBUTING.md └── packages/ ├── core/ ← 'remotion' 본체: useCurrentFrame, interpolate, Composition ├── cli/ ← @remotion/cli : render/studio 명령 ├── studio/ ← 브라우저 미리보기·타임라인 편집기 (UI) ├── studio-server/ ← Studio의 백엔드(파일·렌더 제어) ├── player/ ← @remotion/player : 임베드용 플레이어 컴포넌트 ├── renderer/ ← 헤드리스 Chrome + ffmpeg 제어(렌더 엔진) ├── lambda/ ← @remotion/lambda : AWS 분산 렌더링 ├── serverless/ ← 서버리스 공통 추상화 ├── streaming/ ← 렌더 중 데이터 스트리밍 ├── media-parser/ ← 순수 JS 미디어 컨테이너 파서 ├── webcodecs/ ← 브라우저 WebCodecs 인코딩/디코딩 ├── web-renderer/ ← 브라우저 내 렌더링 ├── media/ ← 새 미디어 태그(차세대 <Video>) ├── media-utils/ ← 오디오 파형·이미지 등 유틸 ├── whisper-web/ ← 브라우저 음성인식(자막) ├── three/ ← @remotion/three : 3D(react-three-fiber) ├── skills-evals/ ← AI 스킬 평가(영상 생성 에이전트 실험) ├── promo-pages/ ← 공식 사이트/문서 디자인 └── template-*/ ← create-video 템플릿(tiktok, audiogram, recorder 등)

주목할 점은 template-tiktok·template-audiogram·template-recorder 같은 실전 템플릿과, 이들이 @remotion/install-whisper-cpp 패키지를 통해 whisper.cpp(C++ 음성인식)를 런타임에 다운로드하는 구조라는 사실입니다. 즉 "틱톡용 자막 영상"이나 "오디오 파형 시각화 영상" 같은 흔한 수요를 바로 시작할 수 있는 출발점이 들어 있습니다. skills-evals의 존재는 Remotion이 AI 영상 생성 쪽으로 영역을 넓히고 있다는 신호입니다.

6학습 포인트

기술별로 — 여기서 무엇을 배울 수 있나 + 실습 아이디어

① "시간을 함수로 다루기" — 애니메이션의 본질

Remotion을 배우면 애니메이션이 결국 "시간(t) → 화면 속성" 함수임을 체득합니다. interpolate·spring·Easing의 사용법은 CSS 애니메이션, 게임 루프, 데이터 시각화 트랜지션에 그대로 전이됩니다.

실습: 0~60프레임에 글자가 아래에서 위로 올라오며 페이드인하는 타이틀을 만들고, springdamping 값을 바꿔가며 "탄성"이 어떻게 달라지는지 관찰해 보세요.

② React 컴포넌트 합성 — Sequence / Series

<Sequence from={30} durationInFrames={60}>로 "이 장면은 30프레임부터 60프레임 동안만 보인다"를 선언합니다. 여러 장면을 시간축 위에 배치·중첩하는 사고는 복잡한 UI 상태를 컴포넌트로 쪼개는 훈련과 똑같습니다.

실습: 인트로(0~30) → 본문(30~120) → 아웃트로(120~150)로 나뉜 15초 영상을 Series로 구성하고, 각 구간을 별도 컴포넌트로 분리해 보세요.

③ 데이터 → 영상 (props + Zod)

Composition에 schema={zodSchema}를 주면 Studio가 자동으로 입력 폼을 그려줍니다. "입력값에 따라 결과가 달라지는 영상" 설계는 곧 함수형 사고이며, 대량 개인화 영상의 토대입니다.

실습: {name, score} props를 받아 "○○님의 점수는 △△점!"을 보여주는 영상을 만들고, 같은 코드에 props만 바꿔 5개의 다른 영상을 CLI로 렌더링해 보세요.

④ 렌더링 인프라 — CLI·Lambda·CI

remotion render를 GitHub Actions에 넣으면 "데이터가 바뀌면 영상이 자동 갱신"되는 파이프라인이 됩니다. Lambda 편을 파면 서버리스·S3·병렬 처리·동시성 제한 같은 클라우드 개념을 영상이라는 구체적 맥락으로 익히게 됩니다.

실습: 로컬에서 npx remotion render MyComp out.mp4로 첫 영상을 뽑은 뒤, props를 JSON 파일로 빼서 --props=./data.json으로 주입해 보세요.

7하드웨어 / 시스템 요구사항

내 컴퓨터로 돌릴 수 있을까
항목요구사항
Node.js16 이상(engines 명시). 실제로는 18/20 LTS 권장
OSmacOS · Windows · Linux(서버 렌더링 시 Linux + 폰트/Chrome 의존성 설치 필요)
브라우저렌더 시 헤드리스 Chrome/Chromium 자동 사용(Remotion이 내려받음)
메모리HD는 4~8GB로 충분, 4K·고해상도·동시 렌더는 16GB+ 권장
CPU/GPU코어가 많을수록 동시 프레임 렌더가 빠름. GPU는 일부 가속에만 관여
디스크중간 PNG 프레임 저장 공간 필요(긴 4K 영상은 수 GB 임시 사용)
클라우드(선택)AWS 계정(@remotion/lambda) — Lambda·S3·IAM 권한 설정
주의
렌더링은 'CPU 노가다'다 — 길이·해상도·fps에 비례

영상 1초가 30fps면 프레임 30장을 모두 그려야 합니다. 길고(분), 크고(4K), 촘촘할수록(60fps) 렌더 시간이 급격히 늘어납니다. 로컬에서 오래 걸린다면 동시성(--concurrency) 조절, 그래도 부족하면 Lambda 분산이 정답입니다. "미리보기(Player)는 즉시, 최종 렌더는 무거움"을 항상 염두에 두세요.

8직접 해볼 수 있는 실습 과제

난이도별 — 손으로 익히는 것이 최고의 학습

🟢 입문 Lv.1 · 30분

첫 영상 띄우고 한 글자 움직이기

npx create-video@latest로 프로젝트를 만들고 npm run dev로 Studio를 엽니다. 기본 컴포넌트에서 useCurrentFrame() + interpolate로 텍스트가 좌→우로 미끄러지게 만들어 보세요. 타임라인을 드래그하며 프레임별 변화를 눈으로 확인하는 것이 목표입니다.

🟢 입문 Lv.2 · 1시간

3장면 소개 영상 (Sequence 조립)

로고 등장 → 슬로건 → 콜투액션(CTA) 세 장면을 <Sequence>로 시간축에 배치합니다. 각 장면을 별도 컴포넌트로 분리하고, spring()으로 등장 애니메이션을 입혀 보세요.

🟡 중급 Lv.3 · 반나절

데이터로 만드는 개인화 영상

Zod 스키마로 {name, stats[]} props를 정의하고, 막대그래프가 자라나는 "연간 리뷰" 영상을 만듭니다. 그런 다음 CLI에서 서로 다른 JSON 5개를 --props로 넣어 5개의 다른 MP4를 자동 생성해 보세요. (GitHub Unwrapped의 미니 버전)

🟡 중급 Lv.4 · 하루

오디오 파형 + 자막 영상 (template-audiogram 분석)

공식 template-audiogram을 받아 코드를 뜯어봅니다. @remotion/media-utils로 오디오 진폭을 읽어 파형을 그리고, @remotion/whisper-web 또는 자막 파일로 가사를 동기화해 보세요. 팟캐스트 클립 제작 워크플로를 체험합니다.

🔴 고급 Lv.5 · 주말 프로젝트

CI 자동 렌더링 + (선택) Lambda 분산

GitHub Actions에서 remotion render를 돌려, 저장소의 데이터 파일이 바뀌면 영상이 자동으로 다시 만들어지는 파이프라인을 구축합니다. 여력이 되면 AWS 계정을 연결해 @remotion/lambda로 긴 영상을 분산 렌더링하고, 단일 머신 대비 시간을 비교해 보세요.

9관련 기술 심화 학습 로드맵

4주 계획 — 기초부터 자동화 파이프라인까지
주차주제학습 내용
1주차React + 시간 모델함수형 컴포넌트·hooks 복습, useCurrentFrame·interpolate·spring·Easing로 애니메이션 기본기
2주차구성과 합성Composition·Sequence·Series·AbsoluteFill, 오디오/이미지/비디오 삽입, 레이어링
3주차데이터·검증·렌더Zod 스키마 props, CLI 렌더링, --props 주입, 대량 개인화 영상 자동화
4주차인프라·확장@remotion/player 임베드, @remotion/lambda 분산 렌더, CI 연동, (옵션) @remotion/three 3D·webcodecs
학습 순서 팁

처음부터 Lambda·WebCodecs 같은 인프라로 가지 마세요. "프레임 → 값" 한 줄 애니메이션이 손에 붙는 1~2주차가 가장 중요합니다. 이 직관만 생기면 나머지(합성·데이터·렌더)는 React/클라우드 지식의 응용일 뿐입니다.

10핵심 키워드 사전

이 프로젝트에서 마주칠 용어 총정리
용어
Composition (컴포지션)
렌더링할 영상 하나의 정의 단위. id·표시할 컴포넌트·durationInFrames(길이)·fps·width·height를 묶는다. "이 영상은 1920×1080, 30fps, 90프레임짜리이고 이 컴포넌트를 그린다"를 선언하는 것.
용어
useCurrentFrame()
"지금 그리는 프레임이 몇 번째인가"를 숫자로 돌려주는 hook. Remotion에서 시간을 읽는 유일한 공식 통로. 이 값에서 모든 움직임이 계산된다.
용어
interpolate()
한 숫자 범위를 다른 범위로 비례 변환하는 함수. 예: 프레임 [0,30]을 투명도 [0,1]로. 끝값을 넘어갈 때의 처리(clamp 등)도 지정한다. 애니메이션 값 계산의 일꾼.
용어
spring()
물리(용수철) 모델로 자연스러운 가속·감속·탄성을 만드는 함수. damping(감쇠)·stiffness(강성)로 통통 튀는 정도를 조절한다. 선형 변환(interpolate)보다 생동감 있는 모션에 쓴다.
용어
Sequence / Series
Sequence는 자식 요소를 특정 프레임 구간에만 보이게 하고 그 안의 시간 기준을 0부터 다시 센다. Series는 여러 장면을 순서대로 이어 붙이는 편의 컴포넌트. 장면 배치의 핵심 도구.
용어
헤드리스 브라우저 (Headless Chrome)
화면(GUI) 없이 백그라운드에서 돌아가는 크롬. Remotion은 이걸로 React 화면을 띄워 프레임을 스크린샷한다. 사람이 보는 창이 없을 뿐 렌더링 엔진은 동일하다.
용어
결정론적 렌더링 (Deterministic)
같은 프레임 번호 → 항상 같은 그림. 무작위·현재시각을 직접 쓰지 않고 Remotion의 시드 고정 random()을 써야 보장된다. 분산·재시도·캐싱의 전제 조건.
용어
Player (@remotion/player)
최종 MP4 렌더 없이, 내 웹앱 안에서 영상을 실시간으로 재생하는 React 컴포넌트. 사용자가 입력을 바꾸면 미리보기가 즉시 반영되는 "인터랙티브 영상"을 만들 수 있다.

11참고 링크

공식 문서부터 실전 사례까지

공식 — 깃허브 remotion-dev/remotion · 문서 remotion.dev/docs · API remotion.dev/api · 쇼케이스 remotion.dev/showcase

시작하기 — 터미널에서 npx create-video@latest 한 줄. 라이선스는 저장소의 LICENSE.md(개인/소규모 무료, 일정 규모 이상 회사는 유료)를 반드시 확인.

실전 사례GitHub Unwrapped(개인별 연간 리뷰 영상) · Fireship의 "코드로 만든 영상" 등. 저장소 packages/template-*의 tiktok·audiogram·recorder 템플릿이 좋은 출발점.