Communitygithub.com

zaddy99999/video-editing

터미널에서 ffmpeg를 사용하여 비디오를 편집하기 위한 진입점입니다. 특히 화면 녹화, 앱 캡처, 게임플레이 또는 음악 콘텐츠로 만든 숏폼 세로형 비디오(Shorts, TikTok, Reels)에 적합합니다.

video-editing란 무엇인가요?

이 스킬은 개발자가 터미널에서 ffmpeg 기반의 작은 단일 목적 스크립트를 실행하여 비디오를 편집할 수 있게 해주는 라우터 역할을 합니다. 사용자가 비디오 편집, 자르기, 자막 추가, 오디오 다듬기, 루프 생성, QC, YouTube 게시 등을 요청할 때 적절한 하위 스킬로 라우팅합니다. 자동 자르기(auto-cut), 훅 오버레이(hook-overlay), 자막(captions), 오디오 다듬기(audio-polish), 루프/GIF/스티커(loops-gifs-stickers), 렌더 QC(render-qc), YouTube 게시(youtube-publish) 등 7가지 전문화된 스킬을 제공하며, 기본 파이프라인은 자동 자르기부터 YouTube 게시까지 순차적으로 진행됩니다. 이 스킬은 원본 파일을 절대 수정하지 않고 `edit/` 디렉토리에 결과물을 저장하며, 모든 작업 전 사용자 승인을 받고, 말소리 내에서 절대 자르지 않는 등 엄격한 규칙을 따릅니다. QC 단계에서는 항상 최종 렌더링을 검증하고 사용자에게 실제 MP4 또는 증명 시트를 보여줍니다. 설정 확인을 위해 ffmpeg, ffprobe, Node.js 18+, npm, faster-whisper가 필요합니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/zaddy99999/video-editing-skills/tree/main/skills/video-editing

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

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

문서

비디오 편집 (라우터)

비디오를 직접 보지 않고 작은 단일 목적 스크립트를 실행하고 그 JSON 출력을 읽어서 비디오를 편집합니다. 결정이 필요한 시점에만 프레임(증명 시트, 풀 해상도 스틸 이미지)을 확인합니다.

어떤 스킬

사용자가 원하는 것...스킬
긴 녹화를 클립으로 나누기, 컷 지점 제안, 불필요한 앞부분 제거auto-cut
동영상에 훅 / 제목 / "POV:" 텍스트 추가hook-overlay
자막, 캡션, 대본, 단어 경계를 존중하는 컷captions
음량 수정, 무음 제거, 깔끔한 연결, 크로스페이드audio-polish
매끄러운 루프, GIF, 밈 GIF, 스티커loops-gifs-stickers
렌더링이 정상인지 확인, 연락처 시트, 승인 단계render-qc
YouTube에 동영상 게시youtube-publish

기본 파이프라인 (원본 화면 녹화에서 게시된 Short까지)

auto-cut  ->  hook-overlay  ->  captions  ->  audio-polish  ->  render-qc  ->  youtube-publish
제안,        플레이트 PNG +      전사,        무음 제거,       검증,          드라이 런,
승인,        오버레이          ASS, 번       loudnorm         증명 시트,     비공개 업로드,
분할, 자르기                    (마지막 시각적) (마지막 오디오)  사용자 승인     원장

모든 작업이 모든 단계를 필요로 하지는 않습니다. 음악 클립은 자막을 건너뛰고, GIF는 게시를 건너<0xE1><0x85><0xA0>니다. 목표가 불분명하면 물어보고, 그렇지 않으면 계획을 설명하고 진행합니다.

하드 규칙 (모든 스킬)

  1. 원본을 절대 건드리지 않습니다. 출력물은 소스 옆에 있는 edit/ 디렉토리로 이동합니다(스크립트는 기본적으로 이렇게 설정됨).
  2. 계획을 세우고, 자릅니다. 파괴적이거나 느린 단계를 진행하기 전에 컷 지점/훅/설정을 제안하고 사용자의 승인을 받습니다.
  3. 단어 중간에서 절대 자르지 않습니다. 음성의 경우 단어 간격(captions/snap-to-words)으로 컷을 맞춥니다.
  4. 모든 오디오 컷에는 약 30ms의 페이드가 있습니다. 0이 아닌 샘플에서 자르면 클릭이 발생합니다.
  5. 클립은 내용부터 시작됩니다. 검은 프레임, 로딩 화면 또는 이전 화면의 꼬리가 없어야 합니다(auto-cut/trim-lead, render-qc에서 확인).
  6. 텍스트는 안전 영역 안에 있어야 합니다. 훅 플레이트는 상단 영역, 최대 2줄; 캡션은 하단 플랫폼 UI 위에; 겹치는 부분 없음.
  7. 순서가 중요합니다. 자르기, 오버레이, 캡션(마지막 시각적 단계), 음량(마지막 오디오 단계), QC.
  8. 모든 최종 렌더링을 QC합니다 render-qc/verify-render를 사용하고, 사용자에게 증명 시트 또는 실제 MP4를 보여줍니다. 축소된 미리보기로 판단하지 마십시오.
  9. 승인은 사람이 합니다. 사용자가 이 대화에서 명시적으로 말하지 않는 한 --approved 또는 --allow-public을 전달하지 마십시오.
  10. 비밀 정보는 git과 로그 밖에 보관합니다. OAuth 클라이언트와 토큰은 환경 변수나 gitignore된 파일에 저장하며, 절대 출력하지 않습니다.
  11. ffmpeg를 수동으로 작성하는 대신 스크립트를 다른 플래그로 다시 실행하는 것을 선호합니다. 모든 스크립트는 --help와 --help --json에 응답합니다.

설정 확인

ffmpeg -version && ffprobe -version     # 필수 (최신 빌드; drawtext는 필요 없음)
node --version                          # >= 18
npm install                             # 한 번, 저장소 루트에서 (sharp 설치)
python3 -m pip install faster-whisper   # captions/transcribe.py에만 필요

ffmpeg가 PATH에 없으면 FFMPEG_PATH와 FFPROBE_PATH를 설정하십시오.

스타일 팩

brands/example.json에는 캔버스 크기, 폰트, 색상, 훅 플레이트 지오메트리 및 캡션 스타일이 저장되어 있습니다. 채널/브랜드별로 복사하고 --brand brands/<name>.json을 전달하십시오. 시스템 폰트 또는 오픈 라이선스 폰트(--font-file)를 사용하고, 상업용 폰트는 절대 커밋하지 마십시오.

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

관련 스킬