azosi · 2026.7.29 01:46 · 조회 1

Remotion Timeline (Pro)

Remotion Timeline은 Pro 제품으로, 드래그 가능한 비주얼 타임라인 UI 컴포넌트를 제공한다. 사용자가 직접 씬·트랙·자막을 조작하는 영상 에디터 SaaS에 적합.


💡 왜 Timeline 컴포넌트가 필요한가

Remotion은 기본적으로 컴포지션 단위로 작동한다. 하지만 사용자가 씬 단위로 자르고 드래그하며 편집하려면 비주얼 타임라인 UI가 필수. Timeline은 이를 위한 React 컴포넌트 모음을 제공한다.


🛒 접근

Timeline은 Remotion Pro 라이선스 필요:


🧩 핵심 컴포넌트

컴포넌트역할
<Timeline />메인 타임라인 컨테이너
<Timeline.Track />한 트랙 (영상/오디오/자막)
<Timeline.Item />트랙 내 한 항목 (씬)
<Timeline.Playhead />현재 시간 인디케이터
<Timeline.Scrubber />드래그 가능한 시간 표시

🚀 기본 사용법

import { Timeline } from "@remotion/timeline";

const items = [
  { id: 1, from: 0, duration: 60, content: <Scene1 /> },
  { id: 2, from: 60, duration: 90, content: <Scene2 /> },
  { id: 3, from: 150, duration: 60, content: <Scene3 /> },
];

<Timeline.Root
  duration={210}            // 전체 길이 (frames)
  fps={30}
>
  <Timeline.Track trackId="main">
    {items.map((item) => (
      <Timeline.Item
        key={item.id}
        from={item.from}
        duration={item.duration}
        content={item.content}
      />
    ))}
  </Timeline.Track>
  <Timeline.Playhead />
</Timeline.Root>

🎨 커스터마이즈

트랙 추가 (자막, 오디오 등)

<Timeline.Root duration={210} fps={30}>
  <Timeline.Track trackId="video">
    {scenes.map((s) => <Timeline.Item key={s.id} {...s} />)}
  </Timeline.Track>

  <Timeline.Track trackId="audio">
    {audioClips.map((c) => <Timeline.Item key={c.id} {...c} />)}
  </Timeline.Track>

  <Timeline.Track trackId="captions">
    {captions.map((c) => <Timeline.Item key={c.id} {...c} />)}
  </Timeline.Track>
</Timeline.Root>

드래그·리사이즈

Timeline은 기본적으로 드래그로 from 변경, 양쪽 핸들로 duration 변경 지원:

<Timeline.Item
  from={item.from}
  duration={item.duration}
  draggable            // 사용자가 위치 변경 가능
  resizable            // 사용자가 길이 변경 가능
  onChange={(newFrom, newDuration) => {
    // 상태 업데이트
  }}
/>

🎬 타임라인과 Player 연결

const [frame, setFrame] = useState(0);

<Timeline.Root duration={210} fps={30} onFrameChange={setFrame}>
  {/* ... */}
</Timeline.Root>

<Player
  ref={playerRef}
  component={Composition}
  durationInFrames={210}
  compositionWidth={1920}
  compositionHeight={1080}
  fps={30}
/>

// 타임라인 클릭 시 Player 시킹
useEffect(() => {
  playerRef.current?.seekTo(frame);
}, [frame]);

🎯 실전 패턴: 영상 에디터 SaaS

[Left Sidebar]   [Center: Preview]              [Right: Properties]
   Scenes         <Player />                     Item: "Scene 2"
   Audio                                            From: 60
   Captions                                          Duration: 90
                                                     Color: #f5576c

   ─────────────────────────────────────────────────
   [Timeline - 드래그/리사이즈 가능]
   Video:  [Scene 1] [Scene 2][Scene 3]
   Audio:       [BGM              ]
   Captions:   [안녕하세요] [반갑습니다]
   ─────────────────────────────────────────────────
   [Render Button]

⚠️ 알아둘 점

  • Pro 라이선스 — 구매 필요
  • Remotion 4.0+ — Timeline은 최신 Remotion API 기반
  • 상태 관리 — 외부에서 items 상태 관리 (Redux / Zustand / Recoil 등)
  • 렌더 통합 — Timeline에서 만든 items를 <Composition> + inputProps로 변환해 Lambda/SSR 렌더

📚 영역 구분

  • 에디터 SaaS 전체: Remotion Editor Starter (Pro)
  • 단순 Player: Remotion Player
  • 앱 통합: Remotion Building Apps
  • 한글 hub: Remotion Studio & Player

상위 문서: ← Remotion Studio & Player 출처: Remotion 공식 문서 — Timeline (Pro) 한글화 (2026-07-29) 공급사: Remotion AG

변경 이력

날짜변경
2026-07-29초판 작성 (공식 Timeline (Pro) 가이드 한글화)
2026-07-29메타데이터 블록을 본문 하단으로 이동

댓글

아직 댓글이 없습니다.

댓글을 작성하려면 로그인이 필요합니다.