video-motion-analysislisted
Install: claude install-skill psmon/pencil-creator
# Video Motion Analysis — 영상 동작/안무 분석 스킬
YouTube URL이나 로컬 영상에서 인물의 **동작·안무·제스처를 구간별 프레임 시퀀스로
분석**한다. 핵심 아이디어: 영상을 직접 "볼" 수는 없으므로, 일정 간격으로 프레임을
뽑아 **타임스탬프가 박힌 타일 콘택트 시트** 한 장으로 합친 뒤 그 이미지를 읽는다.
한 번에 수십 프레임의 자세 변화를 비교할 수 있어 토큰 효율이 높고, 동작의 흐름
(포즈 → 전환 → 클라이맥스)을 놓치지 않는다.
번들 스크립트 `scripts/vframes.py`가 다운로드·프레임 추출·몽타주를 모두 처리한다.
ffmpeg 필터를 매번 새로 짜지 말고 이 스크립트를 쓴다 — 폰트/도구 경로 탐색,
타임코드 오버레이, Windows 콘솔 인코딩까지 이미 해결돼 있다.
---
## 사전 요구
- **ffmpeg / ffprobe**: 프레임 추출·메타 조회에 필수.
- **yt-dlp**: YouTube 등 URL 입력에만 필요(로컬 파일은 불필요).
없으면 `pip install -U yt-dlp`로 설치. 스크립트가 PATH·pip Scripts·`python -m
yt_dlp` 순으로 자동 탐색한다.
도구가 없으면 스크립트가 명확한 한글 에러로 안내하므로, 먼저 실행해보고 실패 시
설치한다.
---
## 워크플로우 (3단계)
스크립트는 `prepare` → `overview` → `montage` 순으로 점진적으로 좁혀간다.
호출 형식(파이썬 인터프리터는 환경에 맞게):
```
python <skill>/scripts/vframes.py <subcommand> ...
```
### 1단계 — prepare: 영상 확보 + 메타 파악
URL이면 받고(기본 480p — 동작 분석엔 충분), 로컬 파일이면 그대로 쓴다.
길이·해상도·fps를 읽어 `meta.json`과 콘솔 요약을 남긴다.
```
python vframes.py prepare --source "<URL 또는 로컬경로>" --outdir <작업폴더>
```
- 작업 폴더는 `image/video-analysis/<videoId 또는 이름>/` 컨벤션을 따른다.
- 길이를 보고 구간 전략을 세운다(3분이면 overview 5초 간격이면 충분).
### 2단계 — overview: 전체 흐름 파악
영상 전체를 그리드 칸 수에 맞춰 **자동 간격**으로 한 장에 담는다. 이걸 읽고
인물이 등장하는 구간, 카메라가 클로즈업되는 구간, 동작이 큰 구간을 식별한다.
```
python vframes.py overview --video <영상> --outdir <작업폴더> --grid 6x8
```
overview를 **Read 툴로 직접 본 뒤**, 어디를 더 촘촘히 볼지 정한다. 동작 분석의
핵심은 보통 인물 클로즈업/미디엄 샷 구간이다.
### 3단계 — montage: 핵심 구간 정밀 추출
식별한 구간을 짧은 간격으로 다시 뽑는다. 간격(step) 가이드:
| 목적 | ste