Communitygithub.com

Reel 편집 — Lv.1 (Clean & Minimal)

원본 영상에서 무음 구간을 제거하고, Whisper로 자막을 생성하며, 카라오케 스타일 자막(활성 단어는 부드러운 금색, 나머지는 따뜻한 흰색, 배경은 남색)을 입히고, 최대 2.5%의 부드러운 줌과 페이드 아웃을 적용하여 9:16 세로 영상(Reels, TikToks, Shorts)으로 변환합니다.

Reel 편집 — Lv.1 (Clean & Minimal)란 무엇인가요?

이 스킬은 로컬 환경에서 Python, FFmpeg, OpenAI Whisper를 사용하여 세로형 숏폼 영상(Reels, TikToks, Shorts)을 제작하는 완전 자동화된 워크플로우입니다. 사용자는 원본 영상을 `01-crudo/` 폴더에 넣고 "내 릴 편집해 줘" 또는 "자막 넣어 줘" 같은 명령어로 실행할 수 있습니다. 스킬은 먼저 드래프트(Draft)를 생성하고, 사용자가 명시적으로 승인한 후에야 최종 버전을 내보냅니다. 주요 기능으로는 Whisper(small 모델)를 이용한 단어 단위 타임라인 자동 생성, 0.5초 이상 무음 구간 자동 제거, 최대 두 줄의 카라오케 스타일 자막(따뜻한 흰색/금색/남색 배경), 부드러운 줌(최대 2.5%) 및 페이드 아웃 적용, 그리고 음성 볼륨을 -14 LUFS로 정규화하는 오디오 처리가 포함됩니다. 사용 중에는 사용자의 명시적 허가 없이 유료 서비스나 외부 API를 사용하지 않으며, 모든 처리가 로컬에서 무료로 이루어집니다. 이 스킬은 클로드 코드(Claude Code) 또는 유사한 AI 에이전트 환경에서 사용하도록 설계되었습니다.

지원 대상~Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/lesliedominguezriquezaacademy-creator/kit-edicion-reels-nivel-1./tree/HEAD/.claude/skills/edicion-reels-nivel-1

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

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

문서

Reel 편집 — Lv.1 (Clean & Minimal)은(는) 무엇을 하나요?

01-crudo/ 폴더에 있는 녹화 영상을 깔끔하고 검토 준비가 된 9:16 세로 릴로 변환합니다. 무음 구간 제거, 카라오케 자막, 미세한 움직임, 페이드 아웃이 적용됩니다.

핵심 규칙: 먼저 DRAFT를 만들고, 사용자가 승인한 후에만 최종 버전을 만듭니다. 결제 서비스는 절대 사전 문의 없이 사용하지 마세요.

모든 과정은 로컬에서 무료로 진행됩니다(Python + FFmpeg + Whisper). 스크립트는 scripts/ 폴더에 이미 준비되어 있습니다. 다시 작성하지 말고 그대로 사용하세요.


0단계 — 도구 준비 (최초 1회만)

먼저 python scripts/verificar_entorno.py를 실행하세요. Python, FFmpeg(키트에 사용된 필터 포함), Whisper를 확인하고 무엇이 부족한지 알려줍니다. 모든 것이 정상이면 1단계로 넘어갑니다. 그렇지 않으면 아래 명령어로 해결하세요. 존재 여부를 조용히 확인하고, 부족한 것이 있으면 친절한 메시지("도구를 준비 중입니다. 처음에는 몇 분 정도 걸립니다.")와 함께 설치하세요.

python --version
ffmpeg -version
ffprobe -version
python -c "import whisper"

부족한 것이 있을 경우:

  • Python: 사용자에게 python.org에서 설치("Add Python to PATH" 체크)하고 터미널을 재시작하도록 안내하세요.
  • FFmpeg (Windows): winget install Gyan.FFmpeg — 그 후 터미널 재시작. Mac: brew install ffmpeg.
  • Whisper: pip install openai-whisper (처음 실행 시 small 모델을 다운로드하며, 무료이고 사용자 컴퓨터에서 실행됩니다).

설치할 수 없는 것이 있더라도 멈추지 말고, 무엇이 부족한지 설명하고 가장 간단한 대안을 제시하세요.

1단계 — 자료 확인

  1. 01-crudo/ 폴더(및 02-assets/ 리소스)에 무엇이 있는지 나열하세요.
  2. 영상이 하나만 있으면 그것을 사용합니다. 여러 개면 어느 것을 사용할지 물어보세요. 폴더가 비어 있으면 영상을 그곳에 복사하도록 요청하세요.
  3. 재생 시간과 오디오 유무를 확인하세요:
    ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 "01-crudo/파일명.mp4"
    
  4. 필요할 경우에만 최대 하나의 선호 질문을 하세요(예: 수동으로 자를 말버릇이 있는지). 그렇지 않으면 기본값으로 진행하세요.

2단계 — DRAFT 생성

전체 파이프라인을 실행하세요(전사 → 무음 제거 → 세로 내보내기):

python scripts/pipeline.py "01-crudo/파일명.mp4"

각 단계에서 수행하는 작업(별도 실행이나 조정이 필요할 경우를 위해):

단계스크립트결과물
Whisper(small, 단어별 타임스탬프)로 전사scripts/transcribir.py02-assets/subtitulos/파일명.srt 및 .words.json
무음 제거(> 0.5초, -35 dB 기준)scripts/limpiar_silencios.py02-assets/sin_silencios/파일명.mp4 및 .timeline.json
9:16 내보내기(자막, 줌, 페이드 포함)scripts/exportar_reel.py03-output/파일명.mp4

limpiar_silencios.py에서 조정 가능한 옵션(사용자가 요청하거나 결과에 필요할 때만 사용):

  • --silence-duration 0.35 → 더 짧은 일시 정지도 제거(더 빠른 리듬).
  • --cut-range 시작 끝 (반복 가능) → 원본 영상 시간(초) 기준으로 정확한 구간을 잘라냅니다. 말버릇("어", "음", "그러니까")이나 실패한 테이크를 제거하는 방법입니다. 02-assets/subtitulos/파일명.words.json에서 해당 단어를 읽고 시간을 찾아 범위로 전달하세요. 자르기가 여러 개일 경우 적용 전에 사용자에게 목록을 보여주세요.
  • --speed-range 시작 끝 속도 (반복 가능) → 특정 구간(원본 시간 초)의 재생 속도를 다르게 설정합니다. 예: --speed 1.32 --speed-range 13 21.8 1.5. 느린 부분이나 설명 부분을 더 가속하고 중요한 부분은 정상 속도로 두려면 사용하세요. 사용자가 최대 재생 시간(예: 55초)을 요청할 경우 --speed를 조정하여 충족시키고 ffprobe로 측정하세요.
  • --speed 1.1 → 음높이 유지하며 약간 가속(0.5~2.0 사이). 요청 시에만 사용하세요.

조정 후 청소 단계만 다시 실행하고 내보내려면:

python scripts/limpiar_silencios.py "01-crudo/파일명.mp4" --cut-range 12.4 13.1
python scripts/exportar_reel.py "02-assets/sin_silencios/파일명.mp4" "02-assets/subtitulos/파일명.srt" --output "03-output/파일명_draft.mp4"

초안에는 접미사 _draft(반복 시 _draft2, _draft3...)를 붙여 이전 버전을 덮어쓰지 않도록 하세요. pipeline.py를 사용했다면 출력 파일 이름을 파일명_draft.mp4로 변경하세요.

스타일 표준 (스크립트에 이미 반영됨 — 요청 없이 변경하지 마세요)

  • 형식: 세로 9:16, 1080×1920, 30fps.
  • 카라오케 자막: 따뜻한 흰색 텍스트, 활성 단어는 부드러운 금색, 배경은 반투명하고 눈에 띄지 않는 남색, 최대 두 줄, 안전 영역(앱 하단 가장자리와 버튼에서 멀리) 내에 위치.
  • 움직임: 저강도 줌 및 패닝, 최대 2.5%. 효과를 쌓거나 이미 무거운 이미지 위에 그래픽을 추가하지 마세요.
  • 종료: 페이드 아웃(영상 및 오디오).
  • 오디오: 원본 오디오를 깨끗하게 유지, -14 LUFS로 정규화, 음악이나 장식 효과 없음(시작 사운드는 선택 사항이며 각자 고유한 것 사용, 아래 참조).
  • 리듬: 핵심 포인트는 압축하여 전달. 사용자가 특정 단어를 강조하도록 요청하면 금색으로 처리하되 과하지 않게.

자체 시작 사운드 (선택 사항)

기본적으로 릴에는 추가 사운드가 없습니다. 사용자가 시작 부분에 소리 마크를 원할 경우 자신의 것이어야 합니다. 이미 파일(.wav 또는 .mp3)이 있는지 묻거나 직접 만드는 것을 도와주세요(예: FFmpeg나 Python으로 합성, 또는 사용자가 사용할 권리가 있는 리소스 사용). 그런 다음 내보낼 때 음성 아래에 믹싱합니다:

python scripts/exportar_reel.py "02-assets/sin_silencios/파일명.mp4" "02-assets/subtitulos/파일명.srt" --sonido "경로/내_사운드.wav" --output "03-output/파일명_draft.mp4"
  • 사운드가 음성을 가리면 scripts/exportar_reel.py에서 SOUND_VOLUME(기본값 0.55)을 낮추세요.
  • 타사 또는 유료 사운드를 문의 없이 다운로드하거나 사용하지 마세요.

3단계 — 전달 전 초안 검토

완료되었다고 말하기 전에:

  1. 03-output/에 파일이 존재하는지 확인하고 ffprobe로 재생 시간을 측정하세요.
  2. 2~3개의 프레임을 추출하여 자막이 보이고 안전 영역을 벗어나지 않는지 확인하세요:
    ffmpeg -y -ss 5 -i "03-output/파일명_draft.mp4" -frames:v 1 "03-output/_chequeo.png"
    
    확인 후 _chequeo.png 파일은 삭제하세요.
  3. 원본과 최종 재생 시간을 비교하세요.

문제가 발생하면(Whisper가 전사하지 못하거나 FFmpeg 오류 등) 간단한 언어로 문제를 설명하고 수정한 후 재시도하세요. 자막 동기화가 잘못되거나 잘린 초안을 전달하지 마세요.

4단계 — 제시 및 승인 대기

사용자가 듣고 볼 수 있도록 초안을 여세요:

  • Windows: start "" "03-output/파일명_draft.mp4"
  • Mac: open "03-output/파일명_draft.mp4"

몇 줄로 요약하세요:

  • 파일 경로 및 재생 시간 (원본 → 최종).
  • 무엇이 잘렸는지 (무음 및, 해당하는 경우 말버릇이나 수동 구간).
  • 무엇이 적용되었는지 (자막, 줌, 페이드).

마지막으로 질문하세요: "승인하시겠습니까, 아니면 무엇을 조정하시겠습니까?" (오디오, 자막, 리듬, 줌, 컷).

명시적인 승인을 받기 전까지 최종 버전을 생성하지 마세요.

5단계 — 반복 및 최종 버전 전달

  • 변경을 요청하면 적용하고 새 초안(_draft2)을 생성한 후 3단계로 돌아갑니다.
  • 승인하면 동일한 내보내기 명령으로 --output "03-output/파일명_final.mp4"를 사용하여 최종 버전을 내보냅니다.
  • 최종 파일 경로를 전달하고 Reels / TikTok / Shorts에 게시할 것을 제안하세요.

규칙

  • 유료 서비스 사용 전에는 반드시 문의하세요 (API, 클라우드 편집기, 음악 라이브러리, AI 음성 등). 표준 워크플로우는 어떤 유료 서비스도 필요로 하지 않습니다.
  • 로컬 Whisper를 사용하여 전사하세요. 영상을 외부 서비스에 업로드하지 마세요.
  • 01-crudo/의 파일을 삭제하거나 덮어쓰지 마세요. 원본은 항상 보존됩니다.
  • 결과물은 03-output/에, 중간 파일은 02-assets/에 저장하세요.
  • 간단한 언어로 말하세요. 사용자가 편집이나 프로그래밍에 익숙하지 않을 수 있습니다.
  • 사용자가 레벨 1 범위를 벗어난 작업(복잡한 애니메이션, 모션 그래픽, 여러 카메라, 컬러 그레이딩)을 요청하면 정직하게 말하세요. 이 워크플로우는 청소, 자막, 미세한 움직임을 다루며 별도 단계로 처리할 수 있다고 제안하세요.

관련 스킬