/auto-video-edit: 원본 영상에서 완성된 영상까지
중단 없이 전체 과정을 실행하세요. 오류를 수정하고 final-video.mp4가 제대로 생성될 때까지 다시 실행하세요.
SKILL_DIR은 이 파일이 있는 폴더를 의미합니다 (일반적으로 ~/.claude/skills/auto-video-edit).
1. 환경 설정 확인 (한 번만)
ls SKILL_DIR/.venv/bin/python SKILL_DIR/remotion/node_modules/.bin/remotion
어느 하나라도 없으면, 저장소의 install.sh를 실행하거나 수동으로 설치하세요:
python3 -m venv SKILL_DIR/.venv && SKILL_DIR/.venv/bin/pip install -r SKILL_DIR/requirements.txt
cd SKILL_DIR/remotion && npm install && npx remotion browser ensure
또한 ffmpeg, ffprobe 및 node가 PATH에 있어야 합니다 (macOS: brew install ffmpeg node).
2. 파이프라인 실행
영상 파일이 있는 폴더에서 실행하세요 (가장 큰 비디오 파일이 사용되거나, 파일 이름을 지정할 수 있습니다):
bash SKILL_DIR/scripts/run_all.sh # 또는: run_all.sh my-take.mov
세 단계로 실행되며, 각 단계는 SKILL_DIR/.venv/bin/python SKILL_DIR/scripts/<step>.py로 개별 실행 가능합니다:
| 단계 | 기능 | 출력 파일 |
|---|---|---|
edit.py | 음성 찾기, 0.5초 이상 침묵 제거 (0.15초 유지), 약 4.5초 단위 샷 분할, 단어 기반 일반/확대(1.3배)/밀착(1.5배) 샷 선택, 얼굴 중심 확대, 컬러 그레이딩, 음성 -14 LUFS 마스터링, 모든 컷에 10ms 페이드 | edited-video.mp4, work/transcript.json, work/edit_report.json |
animate.py | 시각적 요소가 필요한 순간 감지: 숫자+단위 → 카운터, "A vs B"/"대신에"/전후 → 비교, 3개 이상의 "첫째/둘째/마지막" 문장 → 순서도, 강한 주장("진실은", "대부분 사람들은", …) → 텍스트 카드; 약 15초당 1개 카드, 처음 2.5초는 제외; 각 카드를 영상 해상도와 프레임 레이트로 렌더링 | work/animation_plan.json, animations/*.mp4, work/animation_manifest.json |
finalize.py | 각 카드를 해당 시간에 부드러운 페이드로 삽입; broll/ 폴더가 있으면 파일 이름이 음성 단어와 일치하는 클립을 3초간 삽입 (broll/coffee.mp4 → "coffee") | final-video.mp4, work/finalize_report.json |
유용한 플래그: edit.py --no-zoom, --whisper small (더 나은 자막, 느림), --silence-db -35 (조용한 방) / -25 (시끄러운 방), --min-silence 0.35 (더 세밀한 컷). animate.py --max 3, --min-gap 8.
3. 카드 현명하게 만들기 (매번 수행)
자동 계획은 규칙을 기반으로 합니다. 최종 렌더링 전에 자막을 사용하여 개선하세요:
SKILL_DIR/.venv/bin/python SKILL_DIR/scripts/animate.py --plan-onlywork/transcript.json및work/animation_plan.json을 읽으세요. 계획을 편집하세요:- 모든
headline/label/steps/value를 발언자의 의도를 전달하는 2~6개의 간결한 단어로 다시 작성하세요 (문장 일부가 아닌). 자막이 잘못 인식한 숫자를 수정하세요. - 이해에 도움이 되지 않는 카드는 삭제하고, 중요한 숫자, 목록 또는 대비가 있는 곳에 카드를 추가하세요. 카드 유형 및 속성:
Counter:{"to": 75, "decimals": 0, "prefix": "$", "suffix": "%", "label": "..."}Comparison:{"left": {"label": "Before", "value": "4 hours"}, "right": {"label": "After", "value": "10 min"}}Flowchart:{"steps": ["Record", "Upload", "Post"]}(2~5 단계)TextCard:{"headline": "Nobody talks about this", "body": ""}
- 각 카드에는
"start"(edited-video.mp4 기준 초)와"seconds"(3~5)가 필요합니다.
- 모든
SKILL_DIR/.venv/bin/python SKILL_DIR/scripts/animate.py --from-planSKILL_DIR/.venv/bin/python SKILL_DIR/scripts/finalize.py
4. 결과 확인
work/edit_report.json및work/finalize_report.json을 읽으세요: 지속 시간이 합리적으로 줄었는지, 경고가 없는지 확인하세요.- 프레임을 캡처하여 확인하세요:
ffmpeg -ss 5 -i final-video.mp4 -frames:v 1 -y work/check.jpg(그리고 각 카드의 시작 시간 + 1초). 확인할 사항: 확대 샷에서 얼굴이 프레임 안에 있는지, 카드가 읽기 쉬운지, 잘린 부분이 없는지. - 확대가 얼굴을 심하게 자르면
edit.py --no-zoom으로 다시 실행하세요. 컷이 어색하면--min-silence 0.8을 사용하세요.
문제 발생 시
각 단계는 전체 ffmpeg/Remotion 출력을 work/*.log에 기록합니다. 마지막 줄을 읽고, 원인을 수정한 후 해당 단계만 다시 실행하세요. 일반적인 문제:
whisper unavailable→ venv가 없습니다; 설치하세요 (1단계). 확대 선택 없이도 편집은 계속 실행됩니다.- Remotion
Could not find a browser→cd SKILL_DIR/remotion && npx remotion browser ensure. - 카드 렌더링 실패 → 일반 TextCard로 재시도 후 건너뜁니다; 영상은 계속 완성됩니다.
보고서
--- VIDEO EDIT COMPLETE ---
Input / Output / Duration before → after / cuts / zoom mix / cards / b-roll / file size
그런 다음 수정할 수 없었던 항목을 명시하세요.