🔧

Remotion 트러블슈팅 — 자주 발생하는 에러와 해결법

렌더링 속도 저하, delayRender 타임아웃, useState 무한 루프 등 실전 에러 모음

Remotion 개발에서 자주 발생하는 에러들과 해결법을 정리합니다.

1. 렌더링이 느림

증상: 20분 비디오 렌더링에 수 시간 소요

원인: 기본 concurrency가 CPU 스레드 수의 절반으로 제한

해결:

# 병렬 수 늘리기
npx remotion render --concurrency=4

# Remotion Lambda 사용 (클라우드 렌더링)
npx remotion lambda render


2. delayRender 타임아웃

증상: "A delayRender() was called but not resolved" 에러

원인: delayRender()를 호출한 후 continueRender()를 호출하지 않음

해결:

// ❌ 잘못된 예
const handle = delayRender();
fetch(url).then(data => setData(data));
// continueRender()가 없음!

// ✅ 올바른 예
const handle = delayRender('Fetching data...');
fetch(url)
  .then(data => {
    setData(data);
    continueRender(handle);  // ← 반드시 호출
  })
  .catch(err => {
    console.error(err);
    continueRender(handle);  // ← 에러 시에도 호출!
  });


3. useState 무한 루프

증상: "too many renderings" 에러

원인: Remotion은 1프레임마다 리렌더링하므로, useState의 상태 변경이 무한 루프를 유발

해결: useState 대신 useCurrentFrame() + interpolate() 사용

// ❌ 잘못된 예
const [opacity, setOpacity] = useState(0);

// ✅ 올바른 예
const frame = useCurrentFrame();
const opacity = interpolate(frame, [0, 30], [0, 1]);


4. CSS 애니메이션이 작동하지 않음

증상: CSS의 transition이나 animation이 의도대로 동작하지 않음

원인: Remotion은 각 프레임을 독립적으로 렌더링하므로, CSS 애니메이션과 동기화되지 않음

해결: Remotion의 애니메이션 API(spring(), interpolate())를 사용

// ❌ CSS transition은 작동하지 않음
// style={{ transition: 'opacity 0.3s ease' }}

// ✅ Remotion API 사용
const frame = useCurrentFrame();
const opacity = spring({ frame, fps: 30, config: { damping: 15 } });


5. Lambda 렌더링에서 깜빡임(치라츠키) 발생

증상: Remotion Lambda로 렌더링하면 중간에 검은 화면이 깜빡임

원인: 병렬 렌더링 결합 시의 문제

해결:

  • concurrency를 낮춤

  • 로컬에서 먼저 렌더링하여 확인 후 Lambda에 전송

  • Remotion 버전을 최신으로 업데이트

동작 흐름

1

에러 메시지를 확인: delayRender, too many renderings, timeout 등 키워드로 원인 특정

2

useState 사용 여부 확인: 프레임 기반 값은 반드시 useCurrentFrame() + interpolate()로 대체

3

delayRender 호출 확인: 모든 분기(성공/실패)에서 continueRender()가 호출되는지 검증

4

CSS animation/transition 사용 여부 확인: Remotion API로 교체

5

렌더링 속도 문제 시 --concurrency 옵션 또는 Lambda 도입 검토

장점

  • 대부분의 에러가 패턴화되어 있어 해결이 빠름
  • Remotion Studio에서 문제 프레임을 특정하여 디버깅 가능

단점

  • Lambda 관련 문제는 AWS 인프라 지식이 필요하여 해결이 어려울 수 있음

사용 사례

Remotion 입문자가 겪는 흔한 실수 해결 프로덕션 환경에서 렌더링 안정성 확보