بنقرة واحدة
remotion-api
Remotion 프레임워크 API 레퍼런스. 핵심 API, 트랜지션, Player, 렌더링, 성능 최적화 가이드. 컴포넌트 작성·애니메이션·렌더링 시 참조.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Remotion 프레임워크 API 레퍼런스. 핵심 API, 트랜지션, Player, 렌더링, 성능 최적화 가이드. 컴포넌트 작성·애니메이션·렌더링 시 참조.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
Remotion 슬라이드의 compare 타입 전용 스킬. 2~4개 항목을 나란히 비교하는 슬라이드를 설계하거나 수정할 때 사용.
Remotion 슬라이드의 evolution-flow 타입 전용 스킬. 왼쪽 상태에서 오른쪽 상태로 무엇이 어떻게 바뀌었는지, 그 변화 축과 결과를 3열 흐름으로 설명할 때 사용.
슬라이드를 PDF로 내보내기. 각 슬라이드를 PNG로 렌더한 뒤 pdf-lib으로 합쳐서 단일 PDF 파일을 생성한다. "PDF로 뽑아줘", "PDF 내보내기" 등의 요청에 사용.
Remotion 슬라이드의 quote 타입 전용 스킬. 핵심 문장이나 인용구를 큰따옴표 장식과 함께 크게 보여주는 슬라이드를 설계하거나 수정할 때 사용.
Remotion 슬라이드의 stat 타입 전용 스킬. 큰 숫자와 짧은 설명으로 임팩트를 주는 슬라이드를 설계하거나 수정할 때 사용.
Remotion 슬라이드의 steps 타입 전용 스킬. 번호가 매겨진 순차 프로세스를 연결선과 함께 보여주는 슬라이드를 설계하거나 수정할 때 사용.
استنادا إلى تصنيف SOC المهني
| name | remotion-api |
| description | Remotion 프레임워크 API 레퍼런스. 핵심 API, 트랜지션, Player, 렌더링, 성능 최적화 가이드. 컴포넌트 작성·애니메이션·렌더링 시 참조. |
import { useCurrentFrame, useVideoConfig } from "remotion";
const frame = useCurrentFrame(); // 현재 프레임 (Sequence 기준 로컬)
const { width, height, fps, durationInFrames } = useVideoConfig();
프레임 기반 애니메이션의 기본.
import { interpolate, Easing } from "remotion";
const opacity = interpolate(frame, [0, 30], [0, 1], {
extrapolateLeft: "clamp",
extrapolateRight: "clamp",
});
const translateY = interpolate(frame, [0, 30], [20, 0], {
extrapolateLeft: "clamp",
extrapolateRight: "clamp",
easing: Easing.out(Easing.cubic),
});
물리 기반 0→1 애니메이션. 바운스 효과에 적합.
import { spring } from "remotion";
const scale = spring({
frame: frame - delay,
fps,
config: { damping: 12, stiffness: 200 },
});
전체 화면 절대 위치 컨테이너.
import { AbsoluteFill } from "remotion";
<AbsoluteFill style={{ backgroundColor: "#000" }}>
{/* 내용 */}
</AbsoluteFill>
장면 배치와 타이밍 제어. from으로 시작 프레임, durationInFrames로 지속 시간.
import { Sequence } from "remotion";
<Sequence from={0} durationInFrames={150}>
<IntroScene />
</Sequence>
premountFor prop: 등장 N프레임 전에 미리 렌더링 (무거운 씬에 유용).
Root.tsx에서 렌더 대상을 등록. id가 렌더 명령의 컴포지션 식별자.
<Composition
id="Slides-Markdown"
component={MyComponent}
durationInFrames={450}
fps={30}
width={1920}
height={1080}
/>
@remotion/transitions)<Sequence> 수동 오프셋 계산을 대체. 트랜지션 구간만큼 자동으로 총 길이가 줄어든다.
import { TransitionSeries, linearTiming } from "@remotion/transitions";
import { fade } from "@remotion/transitions/fade";
<TransitionSeries>
<TransitionSeries.Sequence durationInFrames={150}>
<SceneA />
</TransitionSeries.Sequence>
<TransitionSeries.Transition
presentation={fade()}
timing={linearTiming({ durationInFrames: 15 })}
/>
<TransitionSeries.Sequence durationInFrames={150}>
<SceneB />
</TransitionSeries.Sequence>
</TransitionSeries>
| 트랜지션 | 설명 | 주요 옵션 |
|---|---|---|
fade() | 페이드인/아웃 | shouldFadeOutExitingScene |
slide({ direction }) | 밀어내기 | from-left, from-right, from-top, from-bottom |
wipe({ direction }) | 덮어쓰기 | 8방향 지원 |
clockWipe({ width, height }) | 시계 방향 원형 | width, height 필수 |
flip({ direction }) | 3D 뒤집기 | perspective (기본 1000) |
타이밍: linearTiming() 또는 springTiming().
@remotion/player)브라우저에서 Remotion 컴포지션을 재생. 파일 렌더링 없이 실시간 프리뷰.
import { Player } from "@remotion/player";
<Player
component={MyComponent}
inputProps={{ slides: data }}
durationInFrames={450}
fps={30}
compositionWidth={1920}
compositionHeight={1080}
controls={false}
autoPlay={false}
acknowledgeRemotionLicense
/>
PlayerRef로 seekTo(), play(), pause() 제어 가능.
npx remotion studio # Studio 프리뷰
npx remotion render src/index.ts CompositionId out/video.mp4
npx remotion still src/index.ts CompositionId out/frame.png --frame=100
npx remotion benchmark # 최적 동시성 측정
주요 플래그: --codec (h264/h265/vp8/vp9/av1), --concurrency, --scale
import { Config } from "@remotion/cli/config";
Config.setVideoImageFormat("jpeg"); // PNG보다 빠름 (투명도 불필요 시)
Config.setOverwriteOutput(true);
Config.overrideWebpackConfig((config) => ({
...config,
module: {
...config.module,
rules: [...(config.module?.rules ?? []), { test: /\.md$/, type: "asset/source" }],
},
}));
--concurrency: npx remotion benchmark로 최적값 측정useMemo(), useCallback()으로 비용 큰 계산 캐싱--log=verbose로 느린 프레임 확인--scale 옵션으로 테스트 시 해상도 낮추기box-shadow, filter: blur()) 주의 — 클라우드 렌더 시 병목import { Easing } from "remotion";
Easing.linear // 선형
Easing.ease // CSS ease
Easing.in(Easing.cubic) // 가속
Easing.out(Easing.cubic) // 감속 (등장 애니메이션 추천)
Easing.inOut(Easing.cubic) // 가감속
Easing.bezier(x1, y1, x2, y2) // 커스텀 베지어