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