Communitygithub.com

zroeschen/Video-Production-Factory

비디오 편집 파이프라인의 첫 번째 에이전트입니다. 화자 녹화 영상에서 침묵과 데드 에어를 제거합니다. 침묵 제거, 일시 정지 다듬기, 데드 에어/갭 제거, 또는 원시 영상의 템포 조정이 요청될 때 사용됩니다. 단어 수준의 자막을 입력받아 편집 결정 목록(EDL), 다운스트림 에이전트용 재시간 조정 자막을 생성하고, 선택적으로 ffmpeg를 통해 편집된 영상을 출력합니다. 실수, 반복, 말실수는 제거하지 않습니다. 이는 cut-mistakes 에이전트의 역할입니다.

Video-Production-Factory란 무엇인가요?

**Cut Silences (파이프라인 에이전트 1)**는 자동화된 비디오 편집 워크플로우의 첫 번째 단계입니다. 원시 녹화 영상과 단어 수준의 자막을 입력받아 **오직 침묵**만을 제거합니다: 첫 단어 이전과 마지막 단어 이후의 데드 에어, 그리고 임계값보다 긴 단어 사이의 일시 정지를 자연스러운 호흡(full stop은 아님)으로 줄입니다. 화자의 말 자체는 그대로 유지하며, 말실수, 재시도, 더듬거림은 **cut-mistakes** 에이전트(Agent 2)의 작업입니다. 이 에이전트는 결정론적이며 자막 기반으로 작동하므로, 출력(`*.silence-transcript.json`)은 후속 에이전트와 비트 동기화 검증기에 문제없이 전달됩니다. `--gap` 매개변수를 조정하여 편집 강도를 제어할 수 있으며, ffmpeg 필터그래프를 생성하여 비디오와 오디오 동기화를 유지합니다. 10~20%의 순수 침묵을 제거하여 영상의 템포를 개선하고 시청자 집중도를 높이는 데 유용합니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/zroeschen/Video-Production-Factory/tree/HEAD/.agents/skills/cut-silences

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

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

문서

침묵 제거 (파이프라인 에이전트 1)

자동화된 편집의 첫 번째 단계입니다. 원시 녹화 영상 + 단어 수준의 자막을 입력받아 오직 침묵만을 제거합니다: 첫 단어 이전과 마지막 단어 이후의 데드 에어, 그리고 임계값보다 긴 단어 사이의 일시 정지를 자연스러운 호흡(full stop은 아님)으로 줄입니다. 화자의 말 자체는 그대로 유지합니다. 말실수, 재시도, 더듬거림은 cut-mistakes 에이전트(Agent 2)의 작업입니다.

이 에이전트는 결정론적이며 자막 기반으로 작동하므로, 출력(*.silence-transcript.json)은 후속 에이전트와 비트 동기화 검증기에 문제없이 전달됩니다.

사용 시기

  • "침묵을 제거해 줘", "일시 정지를 다듬어 줘", "데드 에어를 제거해 줘", "템포를 조정해 줘"
  • 마스터 편집 워크플로우의 첫 번째 단계로, 자막 생성 직후에 사용합니다.

사전 요구 사항

단어 수준의 자막 JSON 파일이 필요합니다. ElevenLabs Scribe 형식({ words: [{ text, start, end, type }], audio_duration_secs }) 또는 일반 형식({ words: [{ text, start, end }] }) 모두 가능합니다. 워크스페이스 트랜스크라이버를 사용하여 생성할 수 있습니다:

node scripts/transcribe-elevenlabs.mjs path/to/raw.mp4    # -> path/to/raw.json

사용법

# 1) 계획만 — 편집 지점 계산, EDL + 재시간 조정 자막 생성 (영상 처리 없음)
node .agents/skills/cut-silences/scripts/cut-silences.mjs <transcript.json> \
  --out-dir video-projects/<slug>/assets

# 2) 영상과 함께 — ffmpeg 명령어도 생성 (렌더링은 아직 하지 않음)
node .agents/skills/cut-silences/scripts/cut-silences.mjs <transcript.json> \
  --video video-projects/<slug>/assets/raw.mp4 --out-dir video-projects/<slug>/assets

# 3) 편집된 영상 렌더링 (로컬 ffmpeg, 재인코딩, A/V 동기화 유지)
#    --apply를 추가하여 실제로 ffmpeg 실행
node .agents/skills/cut-silences/scripts/cut-silences.mjs <transcript.json> \
  --video video-projects/<slug>/assets/raw.mp4 --apply \
  --output video-projects/<slug>/assets/edited-silenced.mp4

옵션

플래그기본값설명
--video <path>—소스 영상 경로; ffmpeg 명령어/렌더링 활성화
--out-dir <dir>자막 파일 옆출력 파일이 기록될 디렉토리
--output <path><video-stem>.silenced.mp4편집된 영상 파일 경로
--gap <s>0.55침묵으로 간주하여 제거할 최소 일시 정지 시간
--head-pad <s>0.22첫 단어 앞에 유지할 침묵 시간
--tail-pad <s>0.34마지막 단어 뒤에 유지할 침묵 시간
--applyoff실제로 ffmpeg를 실행하여 편집된 영상 렌더링

결정 방식 (침묵 규칙)

  • --gap(0.55초) 미만의 일시 정지는 그대로 유지됩니다. 자연스러운 발화 리듬을 유지하기 위함입니다.
  • 잘린 일시 정지에 대해, 자연스러운 호흡이 문맥에 따라 조정되어 유지됩니다: 긴 일시 정지(2초 이상)는 0.24초, 문장 종결 부호(. ! ?) 뒤에는 0.20초, 그 외에는 0.14초입니다. 유지되는 호흡은 이전 구절의 끝 부분에 약간 치우쳐 배치됩니다.
  • 머리/꼬리 데드 에어는 --head-pad / --tail-pad 값으로 다듬어집니다.
  • 삭제 범위는 병합되고, 유지 범위는 그 여집합으로 결정됩니다. 편집은 ffmpeg trim/atrim + concat 필터그래프를 통해 렌더링되며(*.silence-filter.txt 스크립트로 작성되어 -/filter_complex로 전달), 비디오와 오디오가 동기화됩니다.

출력 (--out-dir에 기록됨)

파일용도
<stem>.silence-edl.json유지/삭제 범위, 지속 시간, 매개변수 — 편집 결정 목록
<stem>.silence-transcript.json편집된 타임라인에 맞게 재시간 조정된 단어들 (Agent 2 + 비트에 전달)
<stem>.silence-decisions.md사람이 읽을 수 있는 요약 + 가장 긴 일시 정지 정보
<stem>.silence-filter.txtffmpeg 필터그래프 (--video 사용 시에만 생성)
<video-stem>.silenced.mp4편집된 영상 (--apply 사용 시에만 생성)

표준 출력으로 출력되는 JSON 요약에는 removed, removedPct, 범위 개수, 출력 경로가 포함되어 있어, 마스터 워크플로우에서 로깅 및 체이닝에 유용합니다.

튜닝 참고 사항

  • YouTube 화면 녹화 기본값(--gap 0.55)은 일반적인 녹화 영상에서 약 15-20%의 순수 침묵을 제거합니다. 더 빠르고 강력한 편집을 원하면 --gap을 낮추고, 더 자연스러운 호흡 공간을 유지하려면 --gap을 높이세요.
  • 문장 경계에서 편집이 너무 과격하다고 느껴지면 문장 종결 호흡 시간을 늘리거나 --gap을 높이세요.

다음 에이전트로 전달

<stem>.silence-transcript.json (그리고 렌더링된 silenced.mp4)를 cut-mistakes 에이전트에 전달하세요. 타임스탬프가 이미 편집된 타임라인에 맞춰져 있으므로, 다운스트림 비트 타이밍과 scripts/validate-beat-sync.mjs는 추가 조정 없이 정상 작동합니다.

Individual skills in this repo

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

zroeschen/Video-Production-Factory

Agent 2 of the video editing pipeline. Finds and removes spoken mistakes — stutters, repeated words, false starts, and retakes (re-recorded lines) — from a talking-head recording. Use after cut-silences, when asked to cut mistakes, remove stutters / repeats / filler restarts, clean up flubs, or keep the best take. Works review-gated: it proposes every cut with context and a reason for approval, then renders only the approved cuts via ffmpeg. Requires a word-level transcript.

zroeschen/Video-Production-Factory

Edit a raw talking-head video through transcription, silence trimming, mistake review, visual storytelling, motion graphics, and verified HyperFrames rendering. Use for a complete edit; route a single requested operation directly to its specialist skill.

zroeschen/Video-Production-Factory

GSAP animation reference for HyperFrames. Covers gsap.to(), from(), fromTo(), easing, stagger, defaults, timelines (gsap.timeline(), position parameter, labels, nesting, playback), and performance (transforms, will-change, quickTo). Use when writing GSAP animations in HyperFrames compositions.

zroeschen/Video-Production-Factory

HyperFrames CLI tool — hyperframes init, lint, preview, render, transcribe, tts, doctor, browser, info, upgrade, compositions, docs, benchmark. Use when scaffolding a project, linting or validating compositions, previewing in the studio, rendering to video, transcribing audio, generating TTS, or troubleshooting the HyperFrames environment.

관련 스킬