Communitygithub.com

johnnyfekete/video-tighten

DaVinci Resolve Studio에서 화자 중심 컷을 타이트하게 정리합니다. 각 클립의 음성을 측정하고, 첫 단어 앞과 마지막 단어 뒤의 자연스러운 컷 경계를 설정하며, 잘린 단어 끝을 복구하고, 테이크 내 긴 멈춤을 줄인 후 B-roll을 리플합니다. resolve-bridge를 통해 새 타임라인 버전을 생성합니다. 사용자가 컷이 너무 갑작스럽거나 느리다고 말하거나, 단어가 잘리거나, 데드 에어가 있거나, 무음을 제거하거나 편집을 타이트하게 요청할 때 사용하세요.

video-tighten란 무엇인가요?

이 스킬은 DaVinci Resolve Studio에서 화자 중심 영상 편집의 타이밍을 자동으로 최적화하는 AI 에이전트 도구입니다. 사용자가 컷이 너무 빠르거나 느리다거나, 단어 끝이 잘리거나, 불필요한 정적 구간이 있다고 느낄 때 `python3 scripts/tighten.py --workdir <폴더>` 명령어로 실행할 수 있습니다. 먼저 드라이 런을 통해 변경 사항을 보고서로 미리 확인하고, 사용자와 협의하여 보호해야 할 멈춤(예: 의도적인 침묵, 연기 동작)을 `--skip` 옵션으로 지정한 후 최종 적용합니다. 이 스킬은 resolve-bridge 스킬과 ffmpeg에 의존하며, DaVinci Resolve의 타임라인 구조를 변경(빌드 모드)하므로 그래픽이나 타이틀을 추가하기 전에 사용하는 것이 좋습니다. 또한 잘린 단어 끝을 복구하고, 내부 멈춤을 줄이며, B-roll을 자동으로 리매핑/단축하여 일관된 편집 흐름을 유지합니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/johnnyfekete/resolve-video-skills/tree/HEAD/skills/video-tighten

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

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

문서

video-tighten은(는) 무엇을 하나요?

resolve-bridge 스킬이 이 스킬과 함께 설치되어 있어야 합니다(../resolve-bridge에서 찾거나 RVS_BRIDGE 환경 변수 설정). 또한 ffmpeg가 필요합니다.

워크플로

  1. 현재 위치 확인. python3 <resolve-bridge>/scripts/rvs.py --workdir <폴더> status를 실행합니다. 상태가 없으면 사용자가 타이트하게 만들 타임라인을 선택(resolve-bridge 참조)합니다.
  2. 드라이 런. Resolve에서 아무것도 변경하지 않습니다:
    python3 scripts/tighten.py --workdir <폴더>
    
    <폴더>/.edit/tighten/REPORT.md, report.json 및 plan.json 파일을 생성합니다.
  3. 사용자와 보고서 검토. 런타임 변경량, 줄어든 멈춤 수, 모든 플래그를 보여줍니다. 플래그는 스크립트가 수정할 수 없는 컷(인포인트 이전에 단어가 시작되고 바로 직전에 다른 음성이 있는 경우)을 표시하므로, 사용자가 직접 귀로 확인하거나 다른 테이크를 선택해야 합니다.
  4. 의도된 멈춤 보호. 연기적인 침묵(눈빛, 펀치라인 전의 박자, 카메라 앞에서 타이핑하는 모습 등)은 잘라내면 안 됩니다. 사용자에게 확인 후 --skip <클립 이름 또는 타임라인 시작 프레임> ... 옵션을 추가하여 다시 실행합니다.
  5. 적용.
    python3 scripts/tighten.py --workdir <폴더> --skip ... --apply
    
    <베이스>_vNN_tighten을 생성하고, 이전 버전을 보관하며, 프로젝트를 저장합니다. 모든 플래그는 EDIT_CHECKLIST.md에 이슈로 기록되며, 새 타임라인의 클립 이름과 타임코드로 위치가 표시됩니다. 사용자에게 새 타임라인 이름과 이슈 ID를 알려줍니다.

기능 설명

항목기본값옵션
첫 단어 앞의 공기0.22 초--pre
마지막 단어 뒤의 공기0.38 초--post
같은 테이크의 무음 영역으로 가장자리 확장 가능(잘린 단어 복구)최대 0.5 초--max-extend
다른 소리(숨, 중얼거림, 다음 테이크)와의 최소 거리0.08 초--guard
클립 내 멈춤이 이 시간보다 길면…0.75 초--pause-max
…다음 시간으로 단축0.3 초--pause-keep
생성되는 조각의 최소 길이0.5 초--min-piece
가장자리만 수정하고 모든 멈춤 유지끄기--no-pauses
대화가 아닌 오디오 트랙(음악)없음--ignore-audio-tracks 3 4
  • 음성 감지는 에너지 기반입니다(resolve-bridge/scripts/rvs_audio.py): 임계값은 전체 소스 파일에서 계산되며, 강한 임계값으로 단어를 찾고 가장자리를 부드러운 끝과 붙어 있는 숨소리까지 확장합니다. 클로즈 마이크 녹음에 적합합니다. 소음이 많은 경우 플래그를 더 주의 깊게 확인하세요.
  • 줄어든 각 멈춤은 점프 컷이 됩니다(클립이 분할됨). 이후 video-framing을 실행하여 펀치인으로 숨기거나 B-roll로 덮으세요.
  • 리플: 이후 클립이 위로 이동합니다. 비디오 전용 항목(B-roll, 오버레이)은 새 타이밍에 맞게 다시 매핑되고, 해당 구간이 짧아지면 단축됩니다. 0.5초 미만이 되는 B-roll은 제거되고 목록에 표시됩니다.
  • 모드: 이는 구조적 단계이므로 resolve-bridge의 빌드 모드를 사용합니다. 현재 타임라인의 타이틀과 생성기는 이전되지 않습니다(브리지가 경고함). 그래픽을 추가하기 전에 타이트닝을 실행하세요.

아직 처리되지 않은 사항

  • 겹치는 대화(타임라인에 이미 있는 J/L 컷): 해당 클립은 그대로 두고 플래그를 표시합니다.
  • 필러 단어("음", "그러니까")는 대본이 필요하며, 이후 스킬에서 전사를 통해 계획 중입니다.

관련 스킬