데모 비디오 스튜디오
실행 중인 웹 앱을 세련된 데모 영화로 변환합니다: 실제 녹화된 상호작용(슬라이드쇼나 모의 화면이 아님) + 로컬 TTS 내레이션 + 단어 동기화 자막 + 부드러운 배경 음악, HyperFrames를 사용하여 결정론적으로 구성됩니다.
사용 시기
웹 앱의 데모/워크스루/제품/출시/해커톤 비디오를 제작할 때, 특히 실제 제품이 실행되는 모습을 내레이션과 자막과 함께 보여주어야 할 때 사용합니다. 배포된 URL 또는 로컬 개발 서버를 녹화합니다.
파이프라인
① 녹화 Playwright가 라이브 앱을 구동, 보이는 커서 → out/clips/*.webm
② 내레이션 장면별 VO 작성 → Kokoro TTS (로컬) → narration/*.wav
③ 전사 Whisper 단어 수준 타임스탬프 → *.transcript.json
④ 자막 구문 단위 그룹화 + 브랜드 오인 수정 → captions.js
⑤ 음악 ffmpeg 앰비언트 배경 (음성 아래로 낮게 믹스) → music/bed.wav
⑥ 구성 HyperFrames HTML 단일 타임라인: 클립+음성+자막+음악 → MP4
녹화와 구성은 독립적입니다: 한 장면을 다시 녹화하거나 내레이션을 다시 실행해도 다른 단계에 영향을 주지 않습니다. 코드 생성 GIF 트랙(HTML 장면을 MP4로 직접 렌더링, 녹화 불필요)은 문서 페이지를 위한 선택적 사이드 경로입니다.
워크플로
- 먼저 제품을 이해하세요. README/데모 문서를 읽으세요. 도구를 사용하기 전에 데모 흐름을 작성하세요: 문제 → 제품 워크스루 → 증거 → 결론. 각 장면이 도달해야 할 권장 클릭 경로와 보이는 결과를 선택하세요. references/templates.md를 참조하세요.
- 녹화하세요.
scripts/record.mjs를 복사하고APP과SIZE를 설정한 다음scenes를 본인의 안무로 교체하세요 (이동 → 일시 정지 → 동작 → 유지). 1:1 기기 배율로 녹화하세요.node scripts/record.mjs [scene]. 엔진 및 작업 예제: references/recording.md. - 내레이션 → 자막. 장면당 하나의
assets/narration/NN-*.txt파일을 VO 음성으로 작성하세요 (시청자에게 말하는 것이지 README를 읽는 것이 아닙니다). 그런 다음:bash scripts/tts.sh && bash scripts/transcribe.sh && node scripts/build-captions.mjs. 브랜드 이름에 대해build-captions.mjs의PHRASE_FIX를 편집하세요. 가이드: references/narration-and-captions.md. - 구성 및 렌더링. references/composition-skeleton.html에서 시작하여 (하나의 클립 + 자막 트랙 + 오디오), 타임라인을 확장한 다음,
npx hyperframes render . --resolution landscape --fps 30 --crf 17 --quality high. 1:1로 렌더링하세요 (1080p 저작 → 1080p 출력) — 절대 4K로 업스케일하지 마세요. UI가 흐려집니다. references/composition.md. - 배포 전에 QC하세요. ffprobe로 지속 시간/오디오를 확인하고, 1-2프레임을 샘플링하세요 (검은색이나 빈 프레임이 아닌지, 자막이 프레임 안에 있는지, 내레이션이 잘리지 않았는지, 주요 결과 페이지가 실제로 보이는지). 흐름/타이밍을 수정한 후 다시 렌더링하세요.
빠른 시작
# 시스템 종속성
brew install node ffmpeg
npx playwright install chromium
# 로컬 TTS + 전사를 위한 Python venv (최초 한 번)
python3 -m venv .ttsvenv && .ttsvenv/bin/pip install kokoro-onnx soundfile
export PATH="$(pwd)/.ttsvenv/bin:$PATH"
# 1) 녹화 2) 내레이션 3) 자막 4) 구성+렌더링
node scripts/record.mjs
bash scripts/tts.sh && bash scripts/transcribe.sh && node scripts/build-captions.mjs
npx hyperframes render . --resolution landscape --fps 30 --crf 17 --quality high --output out/demo.mp4
첫 TTS는 약 340MB(Kokoro)를 다운로드하고, 첫 전사는 약 466MB(Whisper small.en)를 다운로드합니다. 둘 다 ~/.cache/hyperframes/에 캐시됩니다.
힘들게 얻은 규칙
- 실제 상호작용이 슬라이드보다 낫습니다 — 실제로 실행되는 제품을 녹화하세요.
- 1:1, 절대 2배 업스케일 금지 — 2× DPR로 녹화하고 4K로 렌더링하면 모든 UI 클립이 흐려집니다. 1080p로 저작하고 렌더링하세요.
- 결정론적 구성 — HTML에
Date.now(),Math.random()또는 네트워크를 사용하지 마세요. HyperFrames는 프레임을 탐색하므로 움직임이 재현 가능해야 합니다. - 보이는 커서 + 결과물 유지 — 의도적으로 이동하고, 결과물에서 일시 정지하세요.
- VO, 문서가 아닙니다 — 내레이션은 화면을 따릅니다. README를 소리 내어 읽는 것이 아닙니다.
- 비디오가 내레이션보다 길어야 합니다 — 시각이 음성보다 먼저 끝나지 않도록 클립 시간을 여유 있게 잡으세요.
종속성
Node 22+, FFmpeg, Playwright (Chromium), 그리고 HyperFrames CLI (npx hyperframes, 해당 스킬을 npx skills add heygen-com/hyperframes로 설치). 로컬 TTS/Whisper는 Python + kokoro-onnx가 필요합니다. HyperFrames 설정에 대한 자세한 내용은 references/composition.md를 참조하세요.
참조
- references/pipeline.md — 6단계와 데이터 흐름
- references/recording.md — Director 엔진 + 작업 예제 + 녹화 함정
- references/narration-and-captions.md — VO 작성, TTS, Whisper, 자막 수정
- references/composition.md — HyperFrames 타임라인, 크로스페이드, 1080p, 렌더링
- references/composition-skeleton.html — index.html로 복사할 최소 렌더링 가능 구성
- references/templates.md — 해커톤 + 제품 데모 구조와 VO 골격
- references/troubleshooting.md — 자막, 흰 화면, 오디오, 폰트