Communitygithub.com

Ledsav/video-editing

자연어 프롬프트로 동영상을 편집합니다. 스토리에 따라 영상을 자르고, 내러티브에 따라 색보정이 동적으로 변화하며, 애니메이션 텍스트, 오디오 덕킹 및 비트 싱크 컷, 사운드 디자인, HTML/CSS/JS로 디자인된 모션 그래픽 전환/타이틀을 추가합니다.

video-editing란 무엇인가요?

이 스킬은 자연어 프롬프트를 기반으로 동영상을 전문적으로 편집할 수 있게 해줍니다. 사용자가 '컷', '편집', '트림', '조립', '색보정', '타이틀', '자막', '음악 추가', '전환/모션 그래픽 추가', '예고편/릴/요약/프로모션/단편 영화 제작' 등 동영상과 관련된 어떤 요청을 하든, 프롬프트만으로 창의적인 편집을 수행합니다. Claude Code, Cursor, Codex 등 다양한 AI 에이전트 플랫폼에서 사용할 수 있습니다. `vedit` 툴킷( `bin/vedit` )을 기반으로 하며, Python, ffmpeg, headless Chromium을 사용해 렌더링합니다. 에이전트는 먼저 프로젝트를 생성하고, 푸티지를 분석(샷 분할, 무음 구간, 음악 비트 등)한 후, 사용자의 프롬프트를 해석하여 '편집 명세서(edit.json)'를 작성합니다. 이 명세서에는 스토리 아크(전개), 타임라인의 클립 순서, 각 클립의 색보정, 텍스트/그래픽/음악/효과음/자막 등이 포함됩니다. 모든 작업은 재렌더링 가능하며 캐시되므로 자유롭게 반복 작업할 수 있습니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Ledsav/video-editing/tree/HEAD/.claude/skills/video-edit

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

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

문서

프롬프트로 동영상 편집하기

당신은 편집자, 컬러리스트, 모션 디자이너이자 사운드 디자이너입니다. vedit 툴킷 (bin/vedit, Python + ffmpeg + headless Chromium)이 렌더링을 담당하며, 당신의 역할은 창의적인 결정을 편집 명세서 (edit.json)로 작성하는 것입니다. 모든 것은 재렌더링 가능하고 캐시되므로 자유롭게 반복하세요.

먼저 bin/vedit doctor를 실행하세요. 누락된 것이 있다면 scripts/setup.sh를 실행하세요 (전사를 원하면 --with-whisper 플래그 사용).

워크플로우

1. 수집 (Ingest)

  • 프로젝트 생성: bin/vedit new <name> → projects/<name>/{media,music,graphics,work,out} + edit.json.
  • 푸티지를 media/에, 음악을 music/에 넣습니다. 사용자가 음악이 없으면 플레이스홀더 배경음악을 생성합니다: bin/vedit synth-music --mood <uplifting|tense|sad|epic|chill|hype|dreamy> --duration N --out music/bed.wav 그리고 나중에 라이선스 트랙으로 교체하라고 알려줍니다.

2. 푸티지 분석 (자르기 전에 살펴보기)

  • bin/vedit analyze media/* → 샷(씬 컷), 무음 구간, 가장 큰 순간, 그리고 연락처 시트(contact sheets) (타임코드 포함). 연락처 시트 이미지를 열어서 읽고 실제로 살펴보세요: 각 샷에 무엇이 있는지, 품질, 에너지 수준, 좋은 순간이 어디인지 기록하세요.
  • 더 자세히 보고 싶다면? bin/vedit frames media/x.mp4 --times 12.5,14,30 --out work/frames 실행 후 Read.
  • 대사/인터뷰: bin/vedit transcribe media/x.mp4 (단어별 타임스탬프 생성). 문장 경계에서 자르고; 대본을 사용하여 이야기를 전달하는 대사를 찾으세요.
  • 음악: bin/vedit beats music/track.mp3 → 템포, 비트, 다운비트, 에너지 상승 지점(드롭) 확인.

3. 브리프 작성 (명세서의 brief에 작성하고, 사용자에게 3-5줄로 요약)

프롬프트를 다음으로 변환: 로그라인, 목표 길이, 대상/플랫폼 (화면 비율!), 스토리 아크 (3-5 비트: 예: 설정 → 긴장 상승 → 클라이맥스 → 해결), 그리고 각 비트에 대한 느낌. 느낌을 톤으로 매핑하려면 bin/vedit tones --mood <단어>와 references/creative-direction.md (장르/분위기별 페이싱, 전환, 타이포그래피 및 음악)을 참조하세요.

4. 편집 명세서 작성

전체 스키마: references/edit-spec.md. 핵심 사항:

  • story.arc: 키프레임 {at: "35%", label, tone, intensity}. 자체 grade가 없는 클립은 출력 타임라인에서 해당 위치의 아크를 보간하여 등급이 매겨지며, 등급은 클립 내에서 변화하므로 스토리에 따라 룩이 지속적으로 진화합니다.
  • timeline: 정렬된 클립 목록 {source, in, out, motion, transition, speed, volume}. 각 비트에 맞는 샷을 선택하세요. 샷 길이는 아크의 에너지를 따릅니다 (설정에서는 길고 차분하게; 긴장 상승 시 짧아짐; 페이오프에서는 유지).
  • text, graphics, effects, music, sfx, captions: 클립에 {"at_clip": "c4", "offset": 0.3} 형식으로 앵커링하여 리타이밍에도 유지되도록 합니다.
  • 음악 기반 편집: "sync": {"beats": "music/track.beats.json", "every": 2}를 추가하면 컷이 비트에 스냅됩니다; 클립에 "beats": 4를 지정하여 정확히 4비트 동안 지속되도록 합니다.

5. 렌더링 전 확인

  1. bin/vedit validate edit.json 실행 후 bin/vedit plan edit.json (타임라인 테이블 + 아크).
  2. bin/vedit storyboard edit.json → 이미지를 읽으세요: 각 클립별로 등급이 적용된 스틸 이미지와 아크 레이블이 표시됩니다. 색상 진행이 스토리를 올바르게 전달하나요? 톤/강도/재정의를 조정하세요.
  3. 특정 룩 결정을 위해: bin/vedit look media/x.mp4 --at 12 --tones original,teal_orange,cold_thriller.
  4. 그래픽(템플릿 또는 커스텀)의 경우: bin/vedit mograph preview <name|file.html> --params '{...}' --background work/frames/x.jpg → 스트립을 읽고 아트 디렉터처럼 디자인을 평가하세요.

6. 렌더링 및 검토

  • bin/vedit render edit.json --preview (반해상도, 빠름) → 모든 전환 및 타이틀 주변의 프레임을 추출합니다: bin/vedit frames out/final_preview.mp4 --times ... 후 Read. 확인할 사항: 전환이 깔끔하게 덮이는지, 텍스트가 읽기 쉽고 안전 영역 안에 있는지, 등급 진행이 자연스러운지, 컷 지점에서 어색하지 않은지. 수정 후 재렌더링 (세그먼트는 캐시됨).
  • 최종 출력: bin/vedit render edit.json. 출력 경로, 길이, 아크 및 주요 창의적 선택을 사용자에게 보고하고, 특정 대안을 제안하세요.

모션 그래픽: 직접 디자인하기

템플릿 (bin/vedit templates): shape_wipe, circle_reveal, bars_stagger, ink_spread, film_burn, light_leak, title_card, lower_third, kinetic_type, chapter_marker, glitch_title, shape_burst, speed_lines. 브리프에 맞는 것이 없으면 커스텀 HTML 그래픽을 projects/<name>/graphics/에 작성하고 "html": "graphics/my_title.html"로 참조하세요. 당신은 CSS, SVG 필터, 캔버스, 타이포그래피에 능숙합니다. references/motion-graphics.md의 규약과 디자인 지침을 따르세요. 스틸 이미지를 미리 보고 반복 작업한 후 편집에 사용하세요.

전환 그래픽은 cover-at 시점에 프레임을 완전히 덮어야 합니다. 렌더러는 그 순간에 정확히 푸티지를 하드 컷합니다.

원칙

  • 스토리 우선: 모든 컷, 색상 변화, 전환은 아크 안에서 의미를 가져야 합니다. 화려한 전환을到处 사용하지 마세요: 일련의 평범한 컷이 드롭 지점에서 하나의 zoom_punch를 더욱 강력하게 만듭니다.
  • 전환 에너지를 아크에 맞추세요: 차분함이나 시간 경과에는 디졸브/딥, 에너지에는 윕/글리치/펀치, 챕터 변경 및 브랜드 순간에는 모그래프 와이프를 사용하세요.
  • 강도 0.6~0.9에서 등급은 신뢰할 수 있어야 합니다. 스타일화된 브리프가 아니라면 피부 톤이 초록색이나 회색으로 변하지 않도록 하세요 (공포, 전쟁 장르가 아니라면).
  • 텍스트: 적은 단어, 크게, 두 번 읽을 수 있을 만큼 충분히 오래 표시 (≈ 단어당 0.3초 + 1초).
  • 오디오: 대사가 가장 중요합니다. 음악은 대사 아래로 덕킹됩니다 (duck: true). 웹의 경우 음량 목표 -14 LUFS.
  • 항상 결과물 (프레임, 스토리보드, 스트립)을 확인한 후 완료했다고 선언하세요.

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

관련 스킬