Communitygithub.com

renoise-ai/renoise-skills

사용자의 제품, 브랜드 또는 서비스를 위한 홍보 비디오를 제작합니다. 사용자 자료를 분석하고, 업계와 대상을 파악하여 스타일과 길이를 추천합니다. 대본과 스토리보드를 정리한 후 사용자 확인을 거쳐 Remotion으로 MP4를 렌더링합니다. 템플릿 영상(스토리보드 기반 다이나믹 타이포그래피, SVG, 이미지) 또는 시네마틱 단편(3D 메탈 로고, 실제 제품 인터페이스를 재현한 타이핑 및 클릭 데모, 3D 갤러리 & 피사계 심도, 모션 블러, 실제 키보드 사운드 효과)을 제작하며, 내장 오픈소스 음악 라이브러리에서 자동으로 음악을 선택하여 비트에 맞춥니다(또는 사용자 제공 음악, 신디사이저 배경 음악 사용). 모든 영상에는 모션 디자인 레이어(매치 컷, 다이나믹 텍스트, 쉐이프 모프, 마스크 전환, 파티클 클라이맥스)가 추가됩니다. 또한 작품 모음집, 순수 모션 그래픽 포트폴리오(다이나믹 텍스트, 쉐이프 모프, 3D, 파티클, 마스크 리듬) 및 단일 쉐이프 UI 모션 루프 영상(하나의 쉐이프가 연속적으로 변형되고, 스프링 효과, 커서 직접 조작, 매끄러운 루프)도 제작할 수 있습니다. 사용자가 홍보 비디오, 프로모션 영상, 제품 출시 비디오, 제품 소개 애니메이션, 모션 디자인 포트폴리오, 인트로, promo video, product launch video, explainer video, brand video, motion graphics showreel 또는 루핑 원-쉐이프 UI 모프 애니메이션을 요청할 때 사용하세요.

renoise-skills란 무엇인가요?

이 스킬은 사용자에게 제품, 브랜드 또는 서비스를 위한 전문적인 홍보 비디오를 제작하는 엔드-투-엔드 파이프라인을 제공합니다. 주요 기능으로는 템플릿 기반 영상(스토리보드 기반의 다이나믹 타이포그래피, SVG, 이미지)과 시네마틱 단편(3D 메탈 로고, 실제 제품 인터페이스 재현, 타이핑 및 클릭 데모, 3D 갤러리, 피사계 심도, 모션 블러, 실제 키보드 사운드)의 두 가지 모드를 지원합니다. 각 영상에는 매치 컷, 다이나믹 텍스트, 쉐이프 모프, 마스크 전환, 파티클 클라이맥스와 같은 고급 모션 디자인 레이어가 자동으로 추가됩니다. 내장된 오픈소스 음악 라이브러리에서 자동으로 음악을 선택하고 비트에 맞추거나, 사용자가 직접 음악을 제공할 수 있으며, 신디사이저로 생성된 배경 음악을 최후의 수단으로 사용합니다. 또한 작품 모음집, 순수 모션 그래픽 포트폴리오, 단일 쉐이프 UI 모션 루프 영상 등 다양한 옵션을 제공합니다. 이 스킬은 Claude Code, Cursor, Codex, Windsurf와 같은 AI 에이전트 환경에서 실행되도록 설계되었으며, Remotion 프레임워크를 기반으로 렌더링합니다. SKILL.md 문서에는 영상 제작의 전체 워크플로우가 상세히 설명되어 있습니다: 사용자 자료 분석 및 브랜드 정보 추출, 제안된 스타일과 길이에 대한 사용자 확인, 스토리보드 및 대본 작성 및 확정, `rn`(renoise-kit) 명령줄 도구를 사용한 렌더링 및 품질 관리 등이 포함됩니다. 이 스킬은 영화 수준의 품질, 세심한 디자인 원칙, 모든 영상의 완벽한 오디오 및 시각적 동기화를 보장합니다. 사용자가 영상을 요청하면, 이 스킬은 사용자 자료를 분석하고, 업계와 대상을 파악하며, 스타일과 길이를 추천하고, 스토리보드를 정리하여 사용자 확인을 받은 후 최종 MP4 파일을 렌더링합니다. 이를 통해 AI 에이전트는 사용자를 대신하여 전문적인 품질의 홍보 비디오 제작 과정 전체를 자동화할 수 있습니다.

지원 대상✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/renoise-ai/renoise-skills/tree/HEAD/skills/promo-video

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

홍보 비디오

경로 규칙: <skill>은 이 SKILL.md 파일이 있는 디렉토리를 의미합니다. scripts/, references/, assets/, templates/는 모두 그 아래에 있습니다. 명령어 안의 <skill>/scripts/…는 이 디렉토리의 절대 경로로 바꿔서 실행하세요.

기본값

  • 화면 비율 16:9(1920×1080, 30fps). 사용자가 지정한 크기가 있으면 그에 따르며, 16:9, 9:16, 1:1, 4:5를 지원합니다. 사용자가 TikTok, Xiaohongshu, WeChat Video Channel, Reels 등 세로형 플랫폼을 언급하면 9:16을 사용합니다.
  • 언어는 사용자 자료를 따릅니다. 첫 번째 단계에서는 더빙을 하지 않습니다. 화면 텍스트가 이미 정보를 전달하고 있다면 자막은 기본적으로 꺼져 있습니다.
  • 글꼴은 기본적으로 DM Sans / SF Pro / PingFang으로 설정되지 않습니다. references/typography.md에 따라 '글꼴 제안'을 만듭니다. 공식 웹사이트나 브랜드 매뉴얼의 글꼴 + 톤에 맞는 3가지 페어를 골라 fonts.py specimen으로 실제 영상 카피로 이미지를 생성하여 사용자에게 보여주고, 선택되면 선택 카드 다섯 번째 줄에 기록합니다.
  • 전환은 하드 컷을 피하고, 오디오는 디지털 무음을 피하며, 텍스트는 세부 체크리스트를 통과해야 합니다. 제공 전에 references/detail-pass.md를 한 번 확인하세요(전환점 목록 → rn sheet --around → rn qa / rn cuts → typo_lint.py / font_check.py). 사용자가 '어색하다', '오디오에 문제가 있다', '충분히 우아하지 않다'고 느끼는 부분은 대부분 여기서 발생합니다.
  • 로고는 사용자가 제공합니다. 로고가 제공되지 않으면 브랜드명 텍스트 로고를 사용하고, brand.disclaimer에 '예시 브랜드, 데모용으로만 사용됨'과 같은 고지 사항을 명시합니다. 사용자가 제공하지 않은 통계 데이터는 모두 예시로 간주하고, 고지 사항에 포함시키며, 실제 데이터로 조작해서는 안 됩니다.
  • 배경 음악 우선 순위: 사용자 제공 > 내장 음악 라이브러리 pick_music.py(기본값, 최근 사용한 곡 자동 회피) > 온라인 오픈소스 음악 라이브러리 보충 > synth_bgm.py 신디사이저 배경 음악(최후의 수단).

의존성: rn(renoise-kit)

화면과 믹싱은 Remotion으로 렌더링됩니다. 모든 기계적이고 오류가 발생하기 쉬운 단계는 rn에 맡깁니다: 프레임 정확한 이미지 캡처 및 콘택트 시트, 음악 읽기(라우드니스/비트/BPM), 최종 인코딩 및 마스터링, 제공 품질 검사, 하드 컷 / 무음 / 피크 음량 감사. render.py가 이미 연결되어 있으므로, 수동으로 사용할 때는 rn <명령어> --help로 매개변수를 확인하세요.

brew install ffmpeg-full && export PATH="$(brew --prefix ffmpeg-full)/bin:$PATH"   # macOS: rn이 시스템 ffmpeg 호출
apt install ffmpeg                                                                 # Debian / Ubuntu
winget install Gyan.FFmpeg                                                         # Windows(설치 후 새 터미널 열기)
uv tool install "renoise-kit[all]"                                                 # rn 명령어 제공

macOS, Linux, Windows 공통: skill의 스크립트는 모두 Python이며, bash에 의존하지 않습니다. 아래 python3는 Windows에서 python(또는 py -3)으로 바꾸세요. 경로는 / 또는 \를 모두 사용할 수 있습니다.

할 일명령어
자료 / 미리보기 / 스틸 프레임 폴더 보기rn sheet <비디오 또는 폴더> [--fps 4 | --around 프레임시간,.. --span 4 --diff]
배경 음악 읽기: 라우드니스, 비트, BPM(반/두 배 속도 후보 포함)rn listen bgm.wav --json out/music.json
프레임별 밝기/움직임/주파수 대역/드럼/피크 음량rn signal <파일> -o out/signal.png --json out/signal.json
최종 영상 인코딩, 마스터링, 오디오 교체, 1080p 출력rn finish raw.mp4 -o out.mp4 [--audio mix.wav] [--height 1080]
제공 품질 검사(포맷, 라우드니스, true peak, 무음, 레벨 점프, 피크 음량, 블랙 프레임, 프리즈 프레임, 고정 프레임 레이트)rn qa out.mp4 [--accept CHECK@초]
하드 컷 목록 + 각 컷의 전후 프레임rn cuts out.mp4 --sheet out/audit/cuts.jpg
이전 버전/참고 영상과 비교rn compare 새것.mp4 이전것.mp4 --cuts
화면 텍스트(글자 감사, 참고 영상 자막 읽기)rn text out.mp4

모드 선택 및 스타일 라우팅

각 영상은 먼저 references/style-router.md에 따라 4계층 선택을 수행합니다: ① 모드 ② 시각적 톤 ③ 내러티브 구조 ④ 강화 레이어(≤2개), 그리고 ⑤ 글꼴(typography.md)을 추가하여 5줄 '선택 카드'를 스토리보드 테이블 위에 작성하여 사용자 확인을 받습니다. 선택된 문서만 읽습니다. 충돌 시: 사용자 명시적 지시 > 라우팅 테이블의 입소문 기록 > 업계 기본값. 아래 표는 ①모드와 각 확장 팩의 진입점입니다:

사용자 요구 사항모드먼저 읽을 문서예시
제품/서비스 홍보 영상, 출시 영상시네마틱 홍보 영상(기본값)cinematic.md → motion-craft.mdexamples/youware/, examples/renoise/
빠른 설명, 소셜 미디어 배치템플릿 영상storyboard.md, styles.mdstoryboard.json
개인 소개, 계정 홍보개인 브랜드 영상cinematic.md '개인 브랜드 및 픽셀 아바타'—
스마트폰, 기기 등 하드웨어 컨셉하드웨어 컨셉 영상cinematic.md '실물 하드웨어 제품'—
여러 완성 영상을 하나의 모음집으로 편집작품 모음집recap.md—
모션 디자인 기술, 인트로, 채널 ID 자랑모션 그래픽 포트폴리오motion-craft.mdexamples/motion-reel/
음악 기반, 리퀴드 퓨전, 데이터 차트, 무한 횡단, 관통 시각화스타일 확장 팩 01(시네마틱 홍보 영상 위에 중첩)style-pack-01.md(음악 기반은 먼저 audio_features.py 실행)—
원테이크, 하드 컷 없음, 참고 영상의 연속성; 제품에 '입력→출력→지속적 실행' 흐름이 있음스타일 확장 팩 02: 원테이크 릴레이(내러티브 구조, 나레이션 포함)style-pack-02.md(나레이션은 먼저 narrate_mimo.py 실행, 고객 목소리 복제 가능)src/cinematic/relay/ 컴포넌트
움직이는 아이콘, 다이나믹 이모지, 프로세스 노드가 하나씩 켜짐애니메이션 아이콘(모든 모드 위에 중첩)animated-icons.md(이모지는 먼저 fetch_noto_emoji.py 실행)examples/animated-icons/
브랜드 톤 영상, 브랜드 리뉴얼, 'Claude 스러운' 공식 느낌, Apple 스타일의 휴머니즘, 특정 기능 시연 없음스타일 확장 팩 03: 컨셉 사다리 · 스펙시멘북(점→선→면→입체→장, 각 장은 하나의 가치 문장, 끝에 로고 등장; 60초, 피아노)style-pack-03.md(글자 스펙시멘은 먼저 glyph_outline.py 실행)examples/youware-ladder/
모델/제품 출시 영상, '질감도 있고 실력도 증명해야 함'; 이름으로 말장난 가능; 공식적인 규모의 사실(셀 수 있는 경이로움) 존재스타일 확장 팩 04: 소네트 · 3D 피사계 심도(대본이 시, 한 줄이 한 절; 사양 HUD는 공식 원문만 인용; 68만 획이 브랜드 별 모양으로 정렬)style-pack-04.md—
'N가지 스타일' 모음집, 하나의 제품을 다양한 화풍으로 보여주기, 고객에게 스타일 선택권 제공; 예능 자막 / 스티커 스타일 해설 / 등축 2.5D 미니어처 시티스타일 확장 팩 05: 상업용 스타일 라이브러리(스타일 카탈로그 영상 템플릿 + 자막 스타일 + 스티커 + 등축; 모든 모드 위에 개별적으로 중첩 가능)style-pack-05.md(Three.js 샘플 영상은 먼저 비디오로 사전 렌더링한 후 카탈로그 영상에 포함)examples/style-catalog/
프레임별 핸드 드로잉 / 한 획 선 / 콜라주 / 플랫 일러스트 / 바우하우스 포스터 / 리퀴드 / 디퓨즈 글래스 / 3D 폭신폭신 핀 배열 / 사이버 HUD / 픽셀 / 신스웨이브, 또는 완전한 15가지 스타일 모음집스타일 확장 팩 06: 상업용 스타일 라이브러리 2차(11가지 화풍 컴포넌트 + 15칸 카탈로그 영상 + 섹션별 배경 음악 길이 확장 / 레트로 신스 배경 음악)style-pack-06.md(필터 영역과 three 바운딩 박스 두 가지 주의사항 필독)examples/style-catalog/ (Reel15.tsx)
신모델 출시 당일 '동일 주제 비교' 숏폼: 두 모델의 애니메이션 SVG / 작품을 나란히 배치 + YouWare 입력 필드 및 모델 메뉴 + 끝에 후크모델 출력 비교 영상(프레임별 SVG 플레이어, 네임스페이스 격리, 동일 배율 확대, 섹션별 배경 음악 사용)svg-compare.md(먼저 모델 공식명, 추론 강도, 프롬프트 원문 및 생성 출처 확인)examples/svg-compare/
Dribbble 수준의 UI 모션, 하나의 쉐이프가 연속적으로 변형되어 제품 흐름 전달단일 쉐이프 홍보 영상(기본 16:9 홍보 영상 버전; 순수 1:1 루프 버전 선택 가능)one-shape.md(먼저 상태 목록, 색상, 음악을 정하고 비트 그리드를 구성한 후 코드 작성)examples/morph-promo/, examples/morph-loop/

모든 모드는 동일한 디자인 원칙, 모션 디자인 레이어, 음악 라이브러리 및 사운드 효과 라이브러리를 공유합니다.

디자인 원칙(기본적으로 실행)

모든 영상은 references/design-principles.md에 따라 제작됩니다: Apple 스타일의 한 화면에 한 가지 아이디어, 큰 글자와 여백, 절제된 색상 사용과 신뢰성 있는 질감; 통일된 lucide-react 아이콘(1.75 선 굵기, 기능 노드는 IconTile 사용; 움직임이 필요하면 lucide-animated 사용, 접촉 프레임에서 한 번 재생), 이모지는 기본적으로 Noto 다이나믹 버전만 사용하며 기본적으로 사용하지 않음, 플레이스홀더 그래픽 사용 금지; 모든 프레임은 먼저 초점과 감정을 결정하고, 카메라 움직임에는 동기가 있어야 함(트래킹 샷, 초점 이동, 관통, 휙휙 패닝, 급속 줌); 사운드는 액션의 접촉 프레임에 맞춤. 제공 전에 문서의 '마스터 리뷰' 체크리스트를 항목별로 확인.

콘텐츠 레이어가 완성된 후 '모션 디자인 레이어'(references/motion-craft.md)를 추가합니다: 먼저 공식 웹사이트 자료를 사용한 다음, 파티클, 변형, 마스크를 이러한 화면 위에 중첩합니다(예: 파티클이 제품 스크린샷 위에 모여 슬로건을 형성). 제품과 관련 없는 검은 배경에서 따로 떼어 보여주지 마세요. 섹션 간 전환을 명확히 작성하고(매치 컷 우선), 시작 객체는 끝에 다시 등장합니다.

작업 흐름

이 목록을 복사하여 진행 상황을 추적하세요:

- [ ] 1. 자료 분석: 제품, 업계, 타겟, 판매 포인트
- [ ] 2. 일회성 확인: 목적, 스타일, 길이, 화면 비율, 언어, 배경 음악
- [ ] 2b. 글꼴 제안: 톤에 맞는 3가지 페어 + 브랜드 현재 사용 글꼴 제안 이미지(fonts.py specimen) → 사용자 선택
- [ ] 3. 대본 및 스토리보드(각 섹션의 주요 기술 및 전환 열 포함) → 사용자 확인 대기
- [ ] 4. 프로젝트 설정 → 샘플 프레임 → 사용자 화면 확인 대기
- [ ] 5. 배경 음악: pick_music.py로 곡 선택 후 비트 맞춤, 타임라인을 곡 BPM에 따라 재배열
- [ ] 6. 저화질 미리보기 → 수정
- [ ] 6b. 세부 검토: 전환점 목록 + 전후 4프레임(rn sheet --around) + rn qa / rn cuts + typo_lint.py(사용자에게 미리보기를 보여주기 전에 먼저 직접 확인)
- [ ] 7. 최종 영상 제공 및 검증

1. 자료 분석

사용자가 제공한 모든 자료(텍스트, PDF, URL, 스크린샷, 로고)를 읽습니다. 사용자가 URL만 제공한 경우, references/brand-from-website.md에 따라 공식 웹사이트에서 로고, 글꼴, 색상 및 고화질 제품 이미지를 추출합니다. 다음을 정리합니다:

  • 제품은 무엇이며, 한 문장으로 된 가치 제안(≤ 20자)
  • 3–4개의 판매 포인트, 각각 하나의 아이콘 이미지와 연결
  • 사용자가 명확하게 제공한 데이터(이 데이터만 사용)
  • 기존 시각 자료: 스크린샷, 로고, 브랜드 색상, 글꼴
  • 업계 분류 및 타겟: references/industries.md를 기준으로 판단하여 추천 스타일, 카메라 움직임 및 배경 음악 분위기 획득

2. 일회성 확인

한 번에 모든 질문을 하되, 유추할 수 없는 항목만 질문합니다. 각 항목은 추천 옵션을 첫 번째에 두고 '(추천)'이라고 표시합니다. 호스트에 객관식 질문 도구가 있으면 그것을 사용하고(이러한 도구는 한 번에 질문할 수 있는 양이 제한적이므로, 질문이 많으면 중요도에 따라 두 라운드로 나눔), 없으면 한 메시지에 번호가 매겨진 옵션으로 나열합니다:

  • 비디오 목적: 제품 출시, 기능 소개, 브랜드 이미지 구축, 투자 유치 설명회, 소셜 미디어 광고
  • 제작 모드: 시네마틱(실제 인터페이스 데모 + 3D + 사운드 효과, 제품 출시/브랜드 영상에 추천) 또는 템플릿 영상(빠른 제작, 설명 및 소셜 미디어 배치에 적합)
  • 시네마틱 스타일: 다크 테크 / 종이 공예 / 라이트 편집, 업계별 추천(cinematic.md '스타일' 참조)
  • 스타일: 업계 표에 따라 3가지 사전 설정 제공, 각각 화면 설명 한 문장 포함(사전 설정은 references/styles.md 참조)
  • 길이: 목적에 따라 옵션 제공(references/storyboard.md 참조), '길이가 짧을수록 한 화면의 텍스트가 적습니다' 안내
  • 화면 비율: 자료가 세로 화면 또는 멀티 플랫폼 게재를 암시하는 경우에만 질문, 그렇지 않으면 16:9 사용
  • 언어
  • 배경 음악 출처: 내장 음악 라이브러리(추천, 2–3곡의 후보 곡 스타일 설명 제공) / 직접 제공 / 신디사이저

사용자가 이미 명확하게 말한 항목은 다시 질문하지 않습니다.

2b. 글꼴 제안

references/typography.md §1에 따름: 톤 설정 → fonts.py pairs --tone <톤>(공식 웹사이트가 상업용 글꼴인 경우 먼저 fonts.py similar "<글꼴명>") → 영상의 실제 제목, 부제목, 본문 텍스트, 중국어/일본어로 제안 이미지 생성, 3가지 페어 + 1가지 브랜드 현재 사용 글꼴:

python3 <skill>/scripts/fonts.py specimen --pair warm-soft --pair editorial-italic --pair bold-youth --combo <브랜드제목글꼴>+<브랜드본문글꼴> \
  --title "..." --sub "..." --body "..." [--zh "..."] [--ja "..."] --out <프로젝트디렉토리>/out/type-proposal.png

이미지를 사용자에게 보내 선택하게 합니다. 선택 후 fonts.py fetch <id> --to <프로젝트디렉토리>, 텍스트 작성을 완료한 후 fonts.py subset <프로젝트디렉토리> --text-file copy.txt(중국어/일본어). 라이선스는 typography.md §8에 따름: Fontshare 글꼴은 서브셋화하지 않으며, 프로젝트와 함께 제3자에게 전달하지 않습니다.

3. 대본 및 스토리보드

사용자가 대본을 제공했다면 대본에 따라 장면으로 나눕니다. 그렇지 않으면 references/storyboard.md의 구조에 따라 작성합니다. 테이블 위에 먼저 선택 카드(style-router.md)를 작성한 후, 테이블로 사용자에게 확인을 요청합니다:

#길이장면 유형화면화면 텍스트카메라 움직임주요 기술 / 전환

사용자 확인 없이 렌더링을 진행하지 않습니다. 사용자가 수정한 후 테이블을 업데이트하여 다시 확인합니다.

4. 프로젝트 설정 및 샘플 프레임

python3 <skill>/scripts/setup_project.py <프로젝트디렉토리>

시네마틱: storyboard.json은 브랜드 정보만 제공하고, 화면은 src/Film.tsx에서 references/cinematic.md에 따라 작성하며(참고: templates/remotion/examples/youware/), 샘플 프레임은 render.py <프로젝트디렉토리> film-stills <프레임번호...>로 구간별로 샘플링하고, film-preview로 미리보기, film으로 최종 영상을 만듭니다(출력 out/film.mp4 및 라우드니스 검사). 아래 storyboard 검증 및 render.py는 템플릿 영상용입니다.

  • 확인된 스토리보드를 <프로젝트디렉토리>/storyboard.json에 씁니다(필드는 storyboard.md 참조).
  • 자료를 public/에 넣습니다: brand/(로고), fonts/(fonts.py fetch로 다운로드, fonts.json 및 LICENSES.md 포함), images/(스크린샷), music/. storyboard.json의 경로는 public/을 기준으로 합니다.
  • 샘플 프레임(각 장면의 중간 프레임) 검증 및 렌더링:
python3 <skill>/scripts/check_storyboard.py <프로젝트디렉토리>/storyboard.json
python3 <skill>/scripts/render.py <프로젝트디렉토리> stills
  • ERROR는 반드시 수정해야 합니다. WARN 독서 시간은 텍스트를 다 읽을 수 없다는 의미입니다: 텍스트를 줄이거나 장면 길이를 늘리세요.
  • out/stills/scene-N.png( out/stills-sheet.jpg는 한 페이지 개요)를 하나씩 보고, design-principles.md의 '마스터 리뷰' 체크리스트(초점, 여백, 오버플로우, 아이콘, 대비)에 따라 확인하고, 수정한 후 샘플 프레임을 사용자에게 보냅니다(호스트가 파일을 보낼 수 있으면 이미지를 직접 보내고, 그렇지 않으면 파일 경로를 제공).
  • 사용자가 스타일을 비교하고 싶어하면 style을 변경하여 샘플 프레임을 다시 생성하고, 이전 샘플 프레임을 out/stills-<스타일>/로 별도 저장하여 나란히 비교할 수 있도록 합니다.

5. 배경 음악

references/music.md에 따라 처리합니다. 어떤 출처든 music.bpm을 설정해야 합니다(rn listen으로 읽음). 타임라인은 각 편집 지점을 비트에 맞춥니다.

더빙이 필요한 경우 cinematic.md '나레이션 더빙'에 따라 voiceover.py로 생성하고(Xiaomi MiMo TTS 또는 로컬 say), 타임라인은 더빙 길이에 의해 구동됩니다. 최종 영상의 라우드니스를 변경해야 하는 경우 오디오 트랙만 다시 만들고, 화면을 다시 렌더링하지 않습니다: rn finish out/film.mp4 -o out/film-loud.mp4 --copy-video --lufs -12.

6. 미리보기

python3 <skill>/scripts/render.py <프로젝트디렉토리> preview

절반 해상도로 빠르게 출력합니다. out/preview.mp4 경로를 사용자에게 제공하고, 피드백에 따라 storyboard.json을 수정한 후 다시 렌더링합니다.

6b. 세부 검토

사용자에게 미리보기를 보여주기 전에 references/detail-pass.md에 따라 직접 한 번 확인합니다:

rn sheet out/film-preview.mp4 --around <전환점초,...> --span 4 -o out/seam.jpg                       # 각 마운트/언마운트/매개변수 변경 지점 전후 4프레임(초 = 프레임 번호 / 30)
rn qa out/film-preview.mp4                                                                             # 블랙 프레임, 프리즈 프레임, 디지털 무음, 레벨 점프, 피크 음량(render.py가 자동으로 실행)
rn cuts out/film-preview.mp4 --sheet out/audit/cuts.jpg                                                # 하드 컷 목록, 각 컷의 전후 프레임
python3 <skill>/scripts/typo_lint.py storyboard.json                             # 또는 --ts src/film/*.ts*; --fix로 JSON 자동 수정
python3 <skill>/scripts/font_check.py public/fonts                               # 광학 글자 크기 축, 실제 구두점 글리프

각 항목을 수정하거나 프로젝트 루트 디렉토리의 qa-accept.txt에 기록합니다(한 줄에 하나의 검사항목 또는 검사항목@초, # 뒤에 이유 작성). 제공 설명에 '의도적인 것임'을 명시하고, 이후 감사에서 다시 보고하지 않습니다.

7. 최종 영상

python3 <skill>/scripts/render.py <프로젝트디렉토리> final

out/final.mp4, out/cover.png를 생성하고, caption이 있으면 out/captions.srt도 생성합니다. 사용자에게 제공되는 파일은 항상 rn finish의 출력입니다(render.py의 film / final은 자동으로 수행: 화면을 별도로 렌더링하고, 오디오 믹스를 별도로 WAV로 렌더링한 후 rn finish --audio로 합성). Remotion에서 직접 출력한 MP4는 일부 플레이어 및 업로드 플랫폼에서 절반 길이로만 표시됩니다(사용자 피드백: '보낸 것은 38초인데 열면 19초만 보임'). 근본 원인은 references/detail-pass.md '제공 인코딩'을 참조하세요. 수동으로 4K를 렌더링하는 경우:

npx remotion render src/index.ts Film out/film-raw-4k.mp4 --muted                # 구성 자체는 3840×2160; 1080p 구성은 --scale=2 추가
npx remotion render src/index.ts Film out/mix.wav --codec=wav --config=remotion.audio.config.ts
rn finish out/film-raw-4k.mp4 -o out/<이름>.mp4 --audio out/mix.wav
rn finish out/<이름>.mp4 -o out/<이름>-1080p.mp4 --height 1080 --lufs keep                          # WeChat / 소셜 미디어용
rn qa out/<이름>.mp4                                                                               # 보내는 모든 파일은 먼저 이 단계를 거침

rn qa의 결과(FAIL은 0이어야 함; WARN은 수정하거나 qa-accept.txt에 기록)와 out/audit/cuts.jpg의 하드 컷을 확인하고, 커버 프레임을 확인한 후 파일 경로와 간단한 설명(스타일, 길이, 배경 음악 출처 및 라이선스, 고지 사항 내용, 의도적으로 유지한 WARN)을 제공합니다. 사용자가 평가(좋아함 / 이전보다 못함 / 다시 만들어야 함)를 제공한 후, '조합 → 영상 → 반응'을 style-router.md의 입소문 기록에 기록합니다.

렌더링 제약 사항

  • 모든 애니메이션은 useCurrentFrame()에서 파생되어야 합니다. CSS transition/animation, Framer Motion 자동 재생, setTimeout, 시드 없는 Math.random()은 금지됩니다. 그렇지 않으면 프레임별 렌더링에서 깜빡이거나 위치가 어긋납니다. GSAP은 프레임별 seek으로만 사용할 수 있습니다.
  • render.py는 명령 샌드박스 외부에서 실행되어야 합니다(Headless Chrome이 CPU 코어 수와 GPU를 읽어야 함). 호스트가 셸 명령에 샌드박스를 추가한 경우, 호스트의 방식에 따라 이 명령을 샌드박스 해제하세요.
  • 전체 영상 렌더링(preview, final, film-preview, film) 및 첫 번째 setup_project.py(npm install)는 몇 분이 소요되며, 대부분의 호스트 단일 명령 시간 제한을 초과합니다: 백그라운드에서 실행하세요(호스트에 백그라운드 실행 기능이 있으면 사용하고, 없으면 시스템 자체 백그라운드 방식을 사용하여 출력을 out/render.log에 기록: macOS / Linux nohup … > out/render.log 2>&1 &, Windows PowerShell Start-Process python -ArgumentList '…' -RedirectStandardOutput out/render.log -NoNewWindow, 이후 로그를 확인). 높은 빈도로 폴링하지 마세요. stills, film-stills의 몇 프레임 추출은 포그라운드에서 실행할 수 있으며, 시간 제한을 10분으로 늘리세요.
  • 전역 Node가 필요하지 않습니다: setup_project.py가 기존 Node를 찾고, 없으면 휴대용 버전을 ~/.cache/promo-video/node에 다운로드합니다. ffmpeg와 rn은 시스템에 설치되어야 합니다('의존성' 참조). setup_project.py가 없으면 알림을 표시합니다.
  • hero3d 렌더링이 가장 느리므로, 한 영상에 1–2개로 유지하세요.
  • 자주 사용하는 도구: rn finish(제공 인코딩: fixed_frame_rate_flag=1, BT.709 TV 범위, moov 선행, −14 LUFS 및 인코딩 후 true peak ≤ −1 dBTP, --audio는 WAV 믹스로 교체, --height 1080으로 작은 버전 출력); rn qa(제공 검사 + 블랙 프레임 / 프리즈 프레임 / 디지털 무음 / 레벨 점프 / 피크 음량, render.py가 자동 실행); rn cuts --sheet(하드 컷 목록); rn sheet(정확한 프레임 캡처 및 콜라주, 비디오 또는 스틸 프레임 폴더, 샷 선택 및 검토에 모두 사용, ffmpeg -r 1 사용 금지); rn listen(BPM, 비트, 라우드니스); typo_lint.py(화면 텍스트의 곧은 따옴표, 세 점, --, 전각 구두점, 교수형 구분 기호, 외로운 문자); font_check.py(글꼴 파일의 축, 특성, 실제 구두점 글리프, opsz 누락 시 경고); fonts.py(글꼴 목록 / 페어링 / 제안 이미지 / 다운로드 / 서브셋화 / 상업용 글꼴 대안, typography.md 참조); audio_features.py(배경 음악의 프레임별 특징, AudioReactive.tsx가 이 형식을 읽음); pick_music.py(곡 선택 및 비트 맞춤); narrate_mimo.py(나레이션: MiMo 사전 설정 음색 또는 고객의 몇 초 녹음 클론, 출력은 단어별 시간 timings.json을 사용하여 화면 구동, --qa로 재읽기 검증).
  • 셸은 zsh입니다: for t in $LIST는 공백으로 분할되지 않으므로, 목록을 for t in 1 2 3에 직접 작성하세요. heredoc에 백틱 또는 ${}가 포함된 경우 <<'EOF'를 사용하세요. 그렇지 않으면 셸에서 확장됩니다.

확장

  • 새로운 장면 유형 추가: src/scenes/에 컴포넌트를 작성하고, src/types.ts의 Scene 유니온 타입과 src/Promo.tsx의 SceneBody에 추가한 후, check_storyboard.py의 SCENE_TYPES와 scene_text를 동기화합니다.
  • 이미지는 <Img>를 사용하고, GIF는 @remotion/gif를 설치하며, Lottie는 @remotion/lottie를 설치합니다. @remotion/* 패키지 버전은 remotion과 완전히 일치해야 합니다.
  • AI 자료 보충: 촬영할 수 없는 인물과 장면은 Renoise를 사용하여 키프레임과 이미지-비디오를 생성합니다(Renoise 플러그인 설치 및 로그인 필요), 화풍은 고객 자체 디자인 가이드를 따릅니다. 모델은 Renoise의 model-routing skill에 따라 선택하고, 각 배치마다 먼저 estimate_cost로 수량과 견적을 보고한 후 사용자 동의를 받아 제출합니다. 절차, 프롬프트 규칙 및 기준선은 references/ai-footage.md를 참조하세요.

참고 자료

  • references/brand-from-website.md: 공식 웹사이트에서 텍스트, 색상, 글꼴, 로고 및 제품 이미지 추출
  • references/design-principles.md: 디자인 원칙, 아이콘 규칙, 감독 카메라 워크, 사운드 및 마스터 리뷰 체크리스트(기본적으로 실행)
  • references/detail-pass.md: 세부 검토: 연속성 / 비어 있지 않음 / 정밀함 세 가지 원칙, 전환점 목록 프로세스, 밝음→어두움 전환의 화면 및 사운드 레시피, rn qa의 판정 임계값 및 면제, 제공 인코딩, 겪었던 문제들(제공 전 필수)
  • references/typography.md: 글꼴 시스템: 글꼴 제안 워크플로우, 11가지 톤 → 선호 글꼴, 17가지 페어링(중국어/일본어 대응), 최고급 광고에 사용되는 글꼴(확인 완료) 및 오픈소스 대안 실사용 테스트, 글꼴 파일은 반드시 opsz 축을 포함해야 함, 비디오 타이포그래피 규칙 및 Display 매개변수, 라이선스(OFL / ITF FFL / 공급업체 계약), 모션 타이포그래피 컴포넌트(src/cinematic/type/: VarType, OutlineFill, HandReveal, TrackIn, Decode), 세부 사항 및 검토 체크리스트
  • assets/fonts/catalog.json: 99개의 엄선된 글꼴(Google Fonts / Fontshare / GitHub 릴리스, 라틴 + 중국어 + 일본어), 17가지 페어링, 상업용 글꼴 대체 표, 수동 다운로드가 필요한 공급업체 글꼴 목록; scripts/fonts.py가 이를 읽음
  • references/cinematic.md: 시네마틱 Film 모드: 스타일, 장면 컴포넌트, 제품 인터페이스 및 보고서 재현, 3D, 모션 및 사운드 디자인
  • assets/sfx/README.md: 상업적 용도로 무료로 사용할 수 있는 사운드 효과 라이브러리 디렉토리(타이핑, 마우스, UI, 전환, 종이, 페이지 넘김), preview.wav로 미리 듣기 가능
  • assets/music/catalog.json: 음악 라이브러리 디렉토리(분위기, BPM, 에너지 도달 지점, 라이선스, 다운로드 주소 및 sha256); 음악은 저장소와 함께 배포되지 않으며, pick_music.py가 처음 사용 시 Mixkit 공식 주소에서 ~/.cache/promo-video/music/로 다운로드하고 검증
  • references/industries.md: 업계 분류 → 추천 스타일, 카메라 워크, 배경 음악, 규정 준수 팁
  • references/styles.md: 4가지 스타일 사전 설정 및 브랜드 색상 오버라이드 규칙
  • references/camera.md: 카메라 워크 용어집, 클래식 기법 매핑 및 리듬 규칙
  • references/storyboard.md: storyboard.json 필드, 길이 옵션, 내러티브 구조 및 카피 규칙
  • references/music.md: 내장 음악 라이브러리 및 pick_music.py, 확장 오픈소스 음악 라이브러리, BPM 비트 맞춤, 신디사이저 배경 음악(최후의 수단), 라우드니스 및 라이선스
  • references/motion-craft.md: 모션 디자인 레이어: 절제/표현 두 가지 레벨, 기술 지도, 전환 디자인, 모션 그래픽 포트폴리오
  • references/recap.md: 여러 완성 영상을 하나의 모음집으로 편집(Apple 스타일 회전식 캐러셀 회고)
  • references/animated-icons.md: 애니메이션 아이콘(lucide-animated 467개, 프레임별 대체 아이콘 대조 검증 완료) 및 Noto 다이나믹 이모지(fetch_noto_emoji.py), 리듬 규칙 및 라이선스
  • references/style-router.md: 4계층 선택 카드 시스템: 모드, 내러티브, 스타일, 강화; 입소문 기록(사용자 반응 누적); 참고 문서 의존성 추적 완료

관련 스킬