피드로 돌아가기
I Built a Tool to Export Claude Design Animations as MP4
Dev.toDev.to
Frontend

Deterministic Frame Capture를 통한 고화질 MP4 익스포트 시스템 구현

I Built a Tool to Export Claude Design Animations as MP4

Tom Pavlin2026년 4월 24일2intermediate

Context

Claude Design의 애니메이션이 React 기반 라이브 코드로 렌더링되어 비디오 파일로 직접 추출할 수 없는 구조적 한계 존재. 기존의 Screen Recording 방식은 GPU Compositing 및 모니터 프로파일 영향으로 인해 Color Banding과 Frame Drop이 발생하는 품질 저하 문제 직면.

Technical Solution

  • Playwright와 Headless Chromium을 활용한 브라우저 제어 기반의 렌더링 파이프라인 구축
  • 실시간 시간 흐름을 배제하고 Backend에서 Animation Clock을 수동으로 제어하는 Deterministic Frame Capture 방식 도입
  • React Fiber Tree 분석을 통한 Stage 컴포넌트 식별 및 내부 Time Hook의 직접 호출로 60fps(16.6ms 단위) 정밀 프레임 생성
  • DOM 업데이트와 Compositor Paint 시간을 보장하기 위해 두 번의 requestAnimationFrame 사이클 대기 로직 적용
  • Raw Canvas 기반 애니메이션 대응을 위해 window.requestAnimationFrame을 Stub으로 교체하여 Render 함수를 직접 호출하는 폴백 전략 설계
  • 캡처된 Raw PNG 시퀀스를 ffmpeg로 스트리밍하여 H.264 코덱 기반 고화질 MP4로 인코딩

- 실시간 애니메이션 캡처 시 Time Drift 방지를 위해 브라우저 내부 클럭을 제어하는 결정론적 렌더링 검토 - Web 기반 그래픽 추출 시 DOM 변경과 실제 Paint 사이의 비동기 간격을 고려한 대기 전략 수립 - React 내부 상태에 접근해야 하는 경우 Fiber Tree 분석을 통한 내부 훅/프롭스 추출 가능성 확인

원문 읽기