Communitygithub.com

tornix-demo-video — 데모 영상 제작

원본 화면 녹화본(macOS, Chrome, 아랍어 음성)을 하나의 브랜드 데모 영상으로 변환합니다. 썸네일, 브랜드 프레임, 주요 장면 확대, 무음 전환, 아웃트로 및 WhatsApp용 720p 사본을 생성합니다.

tornix-demo-video — 데모 영상 제작란 무엇인가요?

이 스킬은 여러 개의 .mov 화면 녹화 파일(특히 아랍어 음성이 포함된 macOS/Chrome 녹화본)을 입력받아 하나의 완성된 브랜드 데모 영상으로 자동 제작합니다. 사용자가 «ادمجهم فيديو واحد» (하나로 합쳐), «اعمل الصورة في الأول» (썸네일 만들어), «الجودة تبقى عالية والحجم يقل» (고화질·저용량), «اعمل مونتاج» (편집해줘) 등의 요청을 하거나, 녹화 전 스크립트를 요청할 때 사용합니다. 또한 특정 녹화본을 교체한 후 영상을 재구성할 때도 사용됩니다. 파이프라인은 **검사 → 설정 작성 → 그래픽 렌더링 → 빌드 → 검증 → WhatsApp 사본 생성**으로 구성됩니다. 가장 중요한 규칙은 사용자의 음성을 절대 자르지 않는 것입니다(무음 제거, 잘못된 시작 제거, '타이트하게' 만들기 금지). 전환은 `build_video.py`가 추가한 무음 패드 위에서만 이루어집니다. 또한 기존 버전을 덮어쓰지 않고 자동으로 새 파일 이름(-v2, -v3...)을 생성합니다. 최종 영상을 다시 전사(Whisper)하여 모든 문장이 포함되었는지 확인하고, WhatsApp 전송 시 **HD** 버튼을 누르거나 문서로 보내도록 안내합니다. 이 스킬은 Claude Code에서 사용하도록 설계되었으며, 쉘 스크립트, Node.js, Python3를 활용합니다. 사용자는 설정 파일(JSON)을 통해 섹션, 스텝 칩, 클립(트림 및 줌), 썸네일, 속도, 인트로 음악(무료 신디사이저 또는 유료 Lyria)을 지정할 수 있습니다. 결과물은 2560×1440 H.264 마스터 영상과 1280×720 WhatsApp용 사본입니다.

지원 대상✓Claude Code~Codex CLI~Cursor
npx skills add ebrahimelbarody74/tornix-demo-video

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

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

문서

Tornix 데모 영상

원본 화면 녹화 → 하나의 브랜드화되고 읽기 쉬우며 WhatsApp에 적합한 워크스루 영상. 파이프라인: 검사(inspect) → 설정 작성 → 그래픽 렌더링 → 빌드 → 검증 → WhatsApp 사본 생성.

엄격한 규칙 (각각은 실제 수정 사례에서 비롯됨)

  1. 사용자의 음성을 절대 자르지 마십시오. 무음 제거, 잘못된 시작 부분 제거, '타이트하게' 만들기 금지 — 사용자가 특정 컷을 요청한 경우는 예외입니다. «مش عايز قص… عايز نفس اللي بعتهولك» (자르지 마… 내가 보낸 그대로). 전환은 build_video.py가 추가한 무음 패드(pad_seconds * 2 >= transition_seconds가 단언됨) 위에서만 이루어집니다.
  2. 사용자가 이미 가진 버전을 절대 덮어쓰지 마십시오. 재빌드할 때마다 새 파일 이름(-v2, -v3…)이 생성됩니다. 스크립트가 --overwrite 플래그가 없으면 자동으로 이렇게 처리합니다.
  3. 오디오를 Groq에 보내기 전에 한 번만 물어보십시오. (타사 서비스). 승인 후에는 작업의 나머지 부분에서 계속 사용해도 됩니다.
  4. 입력 파일이 아닌 최종 파일을 전사(Transcribe)하여 검증하십시오. 녹화본의 모든 문장이 최종 파일에 포함되어야 합니다. Whisper가 긴 파일의 일부 구간을 건너뛸 수 있으므로, 단어가 누락되었다고 결론 내리기 전에 해당 구간만 다시 전사하십시오.
  5. WhatsApp은 작은 텍스트를 망칩니다. 모든 동영상을 낮은 비트레이트의 ≤720p로 다시 인코딩합니다. 항상 -WhatsApp 사본(6단계)도 함께 제공하고, 사용자에게 보낼 때 HD 버튼을 누르거나 문서(Document)로 보내 원본 화질을 유지하라고 알려주십시오.
  6. 사용자가 승인한 스타일을 유지하십시오. 사용자가 «نفس الاستايل بس الجودة أعلى» (같은 스타일에 화질만 더 좋게)라고 말하면 인코딩 설정만 변경하십시오.
  7. 요청에 언급된 클립이 동영상에 없는 경우, 일반적으로 이름이 바뀌거나 잘린 복사본이 존재합니다(예: ee.mov는 Screen Recording … 10.46.44.mov의 트림된 버전) — 길이/내용을 확인한 후 어떤 파일을 대체했는지 알려주십시오.

1. (선택 사항) 녹화 전 스크립트 작성

사용자가 먼저 녹화를 원하면, 일반 이집트 아랍어(Egyptian Arabic)로 내레이션 스크립트를 장면별로 작성하십시오: 화면 → 수행할 작업 → 말할 내용, 총 약 4~5분. 준비 목록(1920×1080 이상, 브라우저 줌 125%, 다른 탭 닫기, 마이크 근처, 시드 데이터)과 "실수하면 3초 동안 멈추고 문장을 반복하세요 — 제가 잘라내겠습니다"(사용자가 컷에 동의한 경우에만)를 포함하십시오. 스크립트는 사용자가 «اكتب الكلام هنا» (여기에 써줘)라고 요청하면 채팅에 작성하십시오.

2. 녹화물 검사

bash ~/.claude/skills/tornix-demo-video/scripts/inspect.sh <작업 디렉토리> rec1.mov rec2.mov …

각 파일의 길이, Groq Whisper 타임스탬프가 포함된 전사본을 출력하고 inspect/cN-tiles.jpg(초당 1 타일, 행당 6개)를 생성합니다. 각 화면이 언제 나타나는지(줌 윈도우 용도) 타일을 읽으십시오. 루프/단어 분할에는 bash를 사용하십시오. zsh는 $var를 분할하지 않습니다(for s in "2 3"; set -- $s가 깨짐).

기본 자르기(crop) 2880x1350+0+238 = 북마크 바가 있는 Chrome의 전체 화면 2880×1748 macOS 녹화에서 브라우저 크롬과 Dock을 제외한 영역입니다. 창 크기가 다르면 측정하십시오: crop=2880:60:0:<y>는 가장자리 주변을 잘라냅니다.

3. 설정 파일 작성

examples/atlas-auto-close.json을 복사하여 편집하십시오:

  • sections — 프레임에 표시될 제목별로 하나씩; step (1..n)은 해당 스텝 칩을 강조하고, all_done: true는 요약 섹션입니다.
  • steps — 비디오 아래 표시될 칩 레이블.
  • clips — 순서대로: path, section, 선택적 zooms [{from, to?, x, y, w}]. 자르기(crop)된 픽셀 공간에서 클립의 원본 타임라인 기준입니다(h는 2400×1125 슬롯에서 파생됨). 스토리를 입증하는 순간(Atlas에 입력한 프롬프트, 채팅 메시지, «أغلقها أطلس» 카드)을 확대하십시오. 클립의 from/to는 트리밍합니다 — 요청된 경우에만.
  • thumbnail — headline ([[단어]]는 브랜드 그라디언트 적용), subtitle (\n = 줄바꿈), 두 개의 chips, card_image = 가장 강력한 UI 순간의 자르기(ffmpeg -ss T -i clip -frames:v 1 -vf crop=…).
  • speed (1.12 = 사용자가 한 번 요청한 값; 1.0 = 변경 없음), output.
  • intro_music — "synth" (기본값, 무료): ffmpeg로 합성된 약 3.6초의 음악(라이저, 썸네일 반짝임과 함께 서브 히트, 패드, 플럭 아르페지오)이 첫 단어 아래에서 페이드 아웃됩니다. "ai" = 유료 Google Lyria 3.5 (genmedia CLI를 통해, 사용자의 fal 키로 생성당 약 $0.10) — 사용자가 요청하고 가격에 동의한 경우에만 사용하십시오. 사용자가 «خليه مجاني وليه أوبشن يدفع هو» (무료로 두고, 유료 옵션을 두자)라고 말했습니다. "none" = 무음, 또는 사용자 자신의 오디오 파일 경로. intro_music_volume (기본값 0.9) — 음악은 음성이 음량 정규화된 후에 믹싱되므로, 이 값은 절대값입니다. 0.9는 히트를 음성보다 약 1dB 낮게 배치합니다.

4. 그래픽 렌더링

node ~/.claude/skills/tornix-demo-video/scripts/render_gfx.js <config.json> <작업 디렉토리>

Playwright가 assets/gfx.html을 스크린샷으로 찍어 gfx-out/에 출력합니다(섹션 프레임, 둥근 마스크, thumb.png, 인트로/아웃트로 프레임(30fps)). 빌드 전에 gfx-out/thumb.png와 bgN.png 하나를 읽으십시오. Playwright를 찾을 수 없으면 PLAYWRIGHT_MODULE을 설정하십시오.

5. 빌드

python3 -I ~/.claude/skills/tornix-demo-video/scripts/build_video.py <config.json> <작업 디렉토리>

로드된 머신에서 약 2분 분량의 비디오 기준 약 5분 소요 — 백그라운드에서 실행하십시오. 출력: 2560×1440 H.264(-tune stillimage, CRF 24 ≈ 2분에 11MB) + <name>-thumbnail.png. 특정 스텝이 오래 걸리면 해당 조각의 프레임 수를 확인하십시오(ffprobe -count_packets). alphamerge에 루핑된 정지 이미지를 입력하면 절대 종료되지 않습니다(한 조각이 27,000프레임을 생성한 후 강제 종료됨). 스크립트는 대신 단일 정지 이미지 + overlay를 사용합니다.

6. WhatsApp 사본

build_video.py가 고화질 조각(CRF-24 파일이 아닌)에서 자동으로 생성합니다: scale=1280:720:flags=lanczos,unsharp=5:5:0.6, -crf 17 -maxrate 4M -tune stillimage -g 60 → <name>-WhatsApp.mp4 (약 2분에 15MB). 사용자에게 알리세요: WhatsApp에서 HD 버튼을 누르거나, 마스터 파일을 문서(Document)로 보내십시오.

7. 검증 및 보고

  • 최종 파일을 전사하십시오(규칙 4). 전체 크기로 2~3프레임을 읽으십시오(확대된 부분, 작은 텍스트가 있는 프레임).
  • 보고: 경로, 길이, 크기, 이전 버전과 변경된 사항, 여전히 적용된 설정(예: 1.12배 속도).

파일

  • scripts/inspect.sh — 길이, 초당 타일, Groq 전사.
  • scripts/render_gfx.js — 설정 파일로부터 브랜드 그래픽 생성.
  • scripts/build_video.py — 조각 → 전환 → 인트로 음악 → 최종 파일 + WhatsApp 사본 + 썸네일. --reuse-pieces는 이미 <작업 디렉토리>/pieces에 있는 클립의 재렌더링을 건너뜁니다(오디오/인코딩만 변경 시 약 2분 소요).
  • scripts/intro_music.sh synth|ai <out.wav> — 인트로 음악(무료 신디사이저 또는 유료 Lyria).
  • assets/gfx.html — 프레임/썸네일/아웃트로 디자인(2560×1440, RTL, Thmanyah). .scene{overflow:hidden}은 필수입니다. RTL에서 왼쪽 가장자리에 걸친 요소가 전체 스크린샷을 밀어내기 때문입니다.
  • assets/ — Tornix 마크 + 워드마크, Atlas 피규어(idle, celebrating, explaining), Thmanyah 굵기.
  • examples/atlas-auto-close.json — 이 스킬로 제작된 첫 번째 영상의 설정 파일입니다.

관련 스킬