몽타주 비디오: 러시에서 게시 가능한 비디오까지
사용자가 촬영하고, 파일을 놓으면, 깔끔하게 편집된 비디오를 받습니다.
이 스킬이 직접 수행하지 않는 것: 편집 및 렌더링 엔진은 video-use(함께 설치해야 하는 공개 스킬)의 것이고, 애니메이션은 HyperFrames에 의해 렌더링됩니다. 이러한 도구 중 하나가 이미 하는 작업을 여기서 다시 수행하는 것은 유지 관리할 두 개의 버전을 만드는 것입니다.
설치 (머신당 한 번)
이 스킬은 Apple Silicon Mac(M1 이상), macOS 14 이상에서 실행됩니다. 모든 것은 머신에 남아 있습니다: 어떤 비디오도 온라인으로 전송되지 않습니다. 순서대로 확인하고, 누락된 항목을 설치하십시오:
- 스킬 자체: 이
montage-video폴더를~/.claude/skills/에 넣습니다. - ffmpeg 및 ffprobe:
brew install ffmpeg(Homebrew: https://brew.sh). - uv: Python 환경을 별도로 생성합니다:
brew install uv. - Node.js 18 이상(
npx포함):brew install node. 일러스트레이션을 렌더링하는 HyperFrames는 첫 번째 렌더링 시 자동으로 다운로드됩니다(npx [email protected]), 자체 렌더링 브라우저와 함께. - video-use 스킬(편집 및 렌더링 엔진), 이 스킬이 테스트된 정확한 버전:
git clone https://github.com/browser-use/video-use ~/.claude/skills/video-use git -C ~/.claude/skills/video-use checkout 87f00c6~/.claude/skills/video-use가 아닌 다른 곳에 있는 경우:VIDEO_USE_DIR로 해당 폴더를 제공하십시오. 이 스킬은helpers/render.py만 사용하며, 이는 ffmpeg만 필요로 합니다: ElevenLabs 키는 필요 없습니다. - CrisperWhisper: '어' 소리를 감지하는 전사기:
python3 scripts/derush.py installer(2.2GB, 스킬 외부, 5GB 미만의 여유 공간에서는 거부됨; 디러시의 0단계 참조). - B-롤 라이브러리를 분류하는 비전 모델: 아무것도 할 필요 없음, 첫 번째
brolls.py indexer에서 자동 다운로드됨(mlx-vlm, uv 사용). - Final Cut Pro: 플레이어의 "Final Cut Pro에서 열기" 버튼에만 필요합니다.
- Playwright 및 해당 WebKit 브라우저: 키나 계정 없이 Pexels 및 Pixabay에서 무료 B-롤을 검색합니다:
npm install -g playwright후npx playwright install webkit. 이것들이 없으면, 에이전트는 자체 브라우저로 검색합니다("B-롤" 참조).
실제 짧은 비디오(1분이면 충분)로 설치를 확인하십시오: derush.py analyser, monter, verifier. 설치가 완료된 것은 이 세 명령이 모두 실행되었을 때입니다.
파일 위치
비디오 편집에 사용되는 모든 것은 바탕화면의 비디오 이름을 딴 폴더에 저장됩니다:
~/Desktop/Fichiers de montage <비디오 이름> (à supprimer à la fin); 이 이름에서 아포스트로피는 '(인쇄상)로 작성되어야 하며, '(직선)은 허용되지 않습니다: 편집 엔진은 직선 아포스트로피가 포함된 폴더를 읽지 못하며, 스킬이 중지되고 이를 알립니다(전사, 컷 목록, 플랜, 버전, 교정 플레이어 프로젝트, Final Cut 프로젝트). 첫 번째 작업 시 생성되며, 위치를 묻지 않습니다. 원본 러시는 절대 이동되거나 수정되지 않습니다. 최종 내보내기도 바탕화면의 옆에, 읽기 쉬운 이름("<비디오 이름> monté.mp4")으로 저장됩니다.
아무것도 자동으로 삭제되지 않습니다: 사용자가 비디오가 마음에 들면 작업 폴더를 삭제합니다. 폴더가 있는 한, 수정을 재개하거나 파일을 가리키는 Final Cut 프로젝트를 다시 열 수 있습니다. 편집이 끝나면, 두 가지 위치를 사용자에게 알려줍니다: 최종 내보내기와, 수정할 것이 더 이상 없으면 휴지통에 버릴 수 있는 작업 폴더입니다. iCloud와 동기화된 바탕화면 폴더는 mv를 거부할 수 있습니다: 복사(cp -Rc)한 다음 원본을 휴지통에 넣습니다.
스킬 현황 (호출하는 사람에게 진실을 말하기)
| 구성 요소 | 2026년 11월 11일 상태 |
|---|---|
| 1. 디러시: 침묵, 머뭇거림, 재촬영, 지시 사항 | 서비스 중, CrisperWhisper 2.0 빠른 버전이 2026년 11월 11일부터 '어'를 감지, 4개의 실제 러시에서 테스트됨 |
| 2. 라이브러리 B-롤: 로컬 분류, 선택, 삽입, 제어 | 서비스 중, 12개 클립의 테스트 라이브러리에서 테스트됨 |
| 3. Pexels 및 Pixabay 무료 B-롤, 키나 계정 없음 | 2026년 11월 11일부터 서비스 중: Playwright 또는 에이전트의 브라우저(컴퓨터 사용)로 검색, 실제 편집에서 테스트됨(3개 클립 배치) |
| 4. 차트 애니메이션: 그래픽 디자이너 38개(2026년 11월 11일부터 기본 방식) 및 자체 24개, 해당 카탈로그 | 16:9에서 서비스 중, 실제 편집에서 테스트됨(그래픽 디자이너 애니메이션 3개); 세로 형식은 테스트되지 않음 |
| 5. 교정 플레이어(이미지 단위 주석, 주석당 바 막대 하나, 애니메이션에 연결된 주석, 범위, 그림, 버전, 비교) | 서비스 중, 실제 비디오에서 처음부터 끝까지 테스트됨(수정 3개, V1개); references/lecteur-facon-frame-io.md에서 연구 |
| 6. 음향 효과: 애니메이션 진입 시 숨소리, 체크박스당 클릭, 플랜당 스우시 | 2026년 11월 11일부터 서비스 중, 삽입 시에만 배치, 실제 편집에서 테스트됨(8개 음향 효과) |
| 6bis. 감정에 따른 음악 | 구축 예정(음악 라이브러리 없음) |
| 7. 세로 클립, 자막, 온라인 게시 | 이 스킬에 없음 |
| 8. 수정 기억 | 수동: 각 피드백 후 이 파일 하단에 날짜가 있는 규칙 |
| 9. Final Cut Pro 내보내기(플레이어 버튼, 별도 트랙) | 서비스 중: 프로젝트가 생성되고 Final Cut 형식에 맞음; 음향 효과는 자체 트랙에 있음; 그레이딩이나 음악 없음. Premiere 및 DaVinci: 구축 예정 |
'구축 예정' 구성 요소에 대한 요청은 전달 시 그대로 언급됩니다: 작동하는 것을 전달하고, 부족한 것을 명명합니다. 디러시만 된 비디오에 대해 '편집된 비디오'라고 발표하지 않습니다.
머신 설정 (첫 사용 시)
이 스킬에는 개인 설정이 기록되지 않습니다: 여러 사람이 사용합니다. B-롤 폴더, 캐시 및 일러스트레이션 차트는 머신 설정 파일인 ~/.config/montage-video/reglages.json에 저장되며, 스킬 외부에 있습니다.
python3 scripts/brolls.py reglage # 현재 상태를 보여줍니다
첫 B-롤 요청 시, 'bibliotheque' 값이 'aucune'이면 사용자에게 한 번 묻습니다: "자체 B-롤 폴더가 있습니까? 위치를 알려주세요." 그런 다음 brolls.py reglage --bibliotheque <폴더>. 사용자가 없으면: 강요하지 않고 은행만으로 계속합니다. 차트도 같은 논리: 설정이 없으면 일러스트레이션이 기본 스타일로 출력되고, 사용자에게 카탈로그를 보여줘서 자신의 스타일을 선택하도록 합니다.
디러시, 단계별
scripts/derush.py는 세 가지 작업을 수행합니다. 모든 것은 Mac에서 실행되며, 아무것도 온라인으로 전송되지 않습니다.
0. 머신당 한 번: 전사기 설치. CrisperWhisper 2.0 빠른 버전(turbo)이 '어'를 감지합니다. 이는 '어'를 기록하도록 재훈련된 Whisper입니다. 스킬 외부의 ~/.local/share/montage-video/crisper(또는 $MONTAGE_VIDEO_DONNEES)에 있습니다:
python3 scripts/derush.py installer # 2.2GB, 5GB 미만의 여유 공간에서는 거부됨
이것이 없으면 analyser가 중지되고 이를 알립니다: 다른 방법으로 조용히 넘어가지 않습니다.
1. 분석.
python3 scripts/derush.py analyser <비디오> --edit-dir <작업 폴더>/edit
스크립트는 CrisperWhisper로 단어 단위로 전사하고, 소리에서 침묵을 감지하며, edit/derush/<이름>.json(데이터) 및 edit/derush/<이름>.md(단어 단위 텍스트, 문장별, 타임스탬프 포함)를 작성합니다. 작업 폴더는 바탕화면의 비디오 폴더입니다("파일 위치" 참조).
CrisperWhisper를 사용하는 이유: 일반 전사기는 깔끔한 텍스트를 반환하므로 '어'가 없으며, 보이지 않는 것은 자를 수 없습니다. 2026년 11월 11일 4개의 실제 러시(296초 음성, 소리로 확인된 11개의 머뭇거림)에서 측정됨: CrisperWhisper 빠른 버전은 10개를 찾고, 이전 방법(머뭇거림이 가득한 문장으로 Whisper를 초기화하고 --moteur amorce로 유지)은 5개를 찾음; 양쪽 모두 실제 단어 손실 없음; 약 4배 느림(152초 대 35초). 이전 실제 단어와 이후 실제 단어 사이의 간격만 자릅니다: 발명된 머뭇거림은 아무것도 자르지 않습니다.
빠른 모델은 '어' 다음 단어의 날짜를 잘못 지정하는 경우가 있습니다(지속 시간 0, 머뭇거림 중간에 배치됨): 테스트 러시에서 두 개의 'que'와 0.2초의 '어'가 렌더링에 남았습니다. crisper.py는 소리로 다시 날짜를 지정합니다(목소리가 공백까지 유지, 0.4초 및 다음 단어로 제한된 검색)하고 각 수정 사항을 전사의 corrige_au_son에 기록합니다.
2. 텍스트를 읽고 재촬영 여부 결정. 이것은 에이전트의 작업이지 스크립트의 작업이 아닙니다: <이름>.md 전체를 읽고 retirer.json 파일, 즉 {"debut", "fin", "raison"} 목록을 작성합니다. 여기에 포함:
- 재촬영: 다시 시작된 문장. 마지막 완전한 버전을 유지하고, 첫 번째 시도 시작부터 올바른 시도 시작까지 이전 버전을 제거합니다.
- 큰 소리로 말한 지시: "다시 할게", "그거 잘라", "다시 찍자". 지시와 그것이 가리키는 것을 제거합니다.
- 도중에 포기한 문장, 잘못된 시작, 주제에서 벗어난 여담("잠깐", 소음, 누군가 들어옴).
경계는 텍스트의 타임스탬프에 설정되며, 유지된 첫 번째 단어 앞에 0.1초의 여유를 둡니다. 재촬영에 대해 의심스러운 경우(두 버전이 다른 내용을 말하는 경우), 둘 다 유지하고 표시합니다: 아이디어를 자르는 것은 반복을 남기는 것보다 더 심각합니다.
텍스트 상단에 나열된 "단어 없는 목소리" 는 자동으로 잘리지 않습니다: 어떤 단어도 다루지 않는 말소리입니다. 종종 전사기가 놓친 머뭇거림, 때로는 웃음, 잘못 들은 단어, 또는 의도적으로 말한 '어'(테스트 러시에 하나 포함됨: '꽤 긴 어였어'). 에이전트는 맥락을 보고 쓰레기인 경우에만 retirer.json에 추가합니다.
3. 편집.
python3 scripts/derush.py monter edit/derush/<이름>.json --retirer retirer.json -o <출력>.mp4
스크립트는 video-use 형식의 컷 목록을 작성하고 해당 엔진에서 렌더링합니다(클립, 각 컷에서 30ms 오디오 페이드, 재인코딩 없는 연결). --apercu는 720p로 더 빠르게 렌더링하여 첫 번째 검토를 위한 것입니다. 렌더링된 길이가 예상 길이와 다르면 중지됩니다.
4. 확인한 다음에만 전달.
python3 scripts/derush.py verifier <출력>.mp4
렌더링은 동일한 전사기로 다시 전사됩니다. hesitations_restantes가 0이고, 0.6초 이상의 침묵이 더 이상 없으며, 렌더링된 텍스트가 한 번에 읽히고, 잘린 문장이나 잘린 단어가 없을 때 전달합니다. 잘린 문장은 모든 항목에 대해 여백을 넓히는 것이 아니라 retirer.json에서 수정합니다. 또한 이미지에서 두세 컷을 확인합니다(video-use, helpers/timeline_view.py): 너무 눈에 띄는 프레임 점프는 구성 요소 3에서 줌을 요청하고, 그때까지는 말로 전달합니다.
B-롤, 단계별
B-롤은 사용자가 말하는 내용을 보여주는 클립이며, 계속해서 목소리를 들을 수 있습니다. scripts/brolls.py는 작업을 수행합니다; 렌더링은 여전히 video-use의 것입니다.
1. 라이브러리 분류, 한 번.
python3 scripts/brolls.py indexer
각 클립은 머신에서 작은 비전 모델(클립의 세 이미지, 두 문장)로 설명되고, 주제는 하위 폴더 이름입니다. 클립당 3초 소요; 새 파일이나 변경된 파일만 다시 처리되므로 각 편집 전에 안심하고 다시 실행할 수 있습니다. 40초를 초과하는 파일은 20초 클립으로 분할됩니다. 정지 이미지도 포함됩니다. 라이브러리는 절대 수정되지 않습니다: 인덱스는 설정과 함께 저장됩니다.
비전 모델은 주제를 잘 설명하지만 세부 사항은 잘 설명하지 못합니다: 동일한 클립의 세 이미지를 보고 "시계 세 개"를 세는 경우가 있습니다. 설명은 찾는 데 도움이 될 뿐 결정하는 데는 도움이 되지 않습니다: 전달하기 전에 제어 보드를 봅니다.
2. 디러시된 비디오를 문장별로 읽기.
python3 scripts/brolls.py phrases <디러시된 비디오>
3. 선택: 에이전트의 작업, 스크립트의 작업이 아님. 수십 개의 클립에 맞을 때는 전체 라이브러리를 읽습니다(brolls.py lister). 그 이상이면 brolls.py chercher "<단어>"를 사용하여 보고 싶은 것의 단어("키보드", "시계", "카메라")로 검색합니다. 말한 문장이 아닙니다: "45분 동안 돌려둬"는 시계의 단어를 포함하지 않으므로, 에이전트가 아이디어와 이미지 사이의 다리를 만드는 것이 필요합니다.
순서: 먼저 사용자의 라이브러리(사용자의 이미지는 사용자와 비슷하며, 다른 누구도 가지고 있지 않음), 아무것도 맞지 않을 때만 무료 은행:
무료 은행은 키나 계정 없이 두 가지 방법으로 사용됩니다. 에이전트가 선택합니다:
| 옵션 | 언제 취할지 | 명령 |
|---|---|---|
| Playwright(기본값) | 항상 먼저: 빠르고, 화면 없음, Claude와 ChatGPT에서 동일한 결과 | brolls.py banque "<단어>" |
| 컴퓨터 사용(에이전트의 브라우저: Chrome의 Claude, 컴퓨터 사용, ChatGPT의 에이전트) | Playwright가 머신에 없거나 적합한 것을 반환하지 않음; 또는 클립이 실제로 살펴볼 가치가 있는 경우(분위기, 정확한 동작) | 에이전트가 이미지에서 검색하고 선택한 다음 brolls.py banque --prendre <페이지 주소> |
python3 scripts/brolls.py banque "typing laptop" -n 3 # 영어 단어, 두세 개, 구체적
python3 scripts/brolls.py banque "film camera" -n 2 --chaque # 각 사이트에서 하나의 클립 이상
python3 scripts/brolls.py banque --prendre "https://pixabay.com/videos/keyboard-hands-writing-computer-1046/"
Playwright. 스크립트는 Playwright의 WebKit 브라우저에서 Pexels 검색 페이지를 연 다음 Pixabay를 엽니다. 창 없이, 소리 없이, 종료 시 폐기되는 일회용 프로필이 사용됩니다. 간단한 프로그램은 두 사이트에서 거부를 받고, Playwright의 Chromium은 확인 페이지에서 차단됩니다: WebKit은 통과합니다(2026년 11월 11일 측정). 누락된 경우: npm install -g playwright 후 npx playwright install webkit. Playwright 없이: 에이전트는 자체 브라우저를 사용합니다(컴퓨터 사용). Claude Code는 Playwright를 설치해야 합니다; Claude와 ChatGPT 데스크톱 에이전트 및 Cursor(컴퓨터 사용 지원 시)는 자체 브라우저를 사용할 수 있습니다.
단어는 영어로 입력해야 합니다: 사진 은행은 영어로 색인됩니다. 세 개 이상; 너무 구체적이면(예: "회전하는 시계 추"), 결과가 없습니다. 여러 요청을 보낼 수 있습니다. '--chaque'는 각 사이트에서 하나의 클립을 보장합니다.
'--prendre'는 브라우저에서 이미 선택한 페이지를 가져옵니다: 다운로드, FFmpeg로 변환, 자르지 않은 전체 클립 배치.
4. 배치: 스크립트, 에이전트에 문의.
python3 scripts/brolls.py placer <B-롤 파일> <디러시된 비디오> --debut <시작 시간> --duree <지속 시간> -o <출력>.mp4
B-롤은 음성이 아닌 이미지의 공백에 배치됩니다. 예, 음성이 있는 경우에도 가능합니다: 목소리는 유지되고 이미지만 변경됩니다. 스크립트는 video-use에 병합을 위임합니다(사용자 정의 필터). 사용자는 화면을 닫지 않거나(출연하지 않음) 사라집니다(아바타). 에이전트가 결정합니다. 기본값은 에이전트가 선택하는 동안 아바타로 하는 것입니다.
5. 제어. 컷 전에 B-롤 보드를 실행합니다. 작업이 번거롭습니다: 에이전트는 각 B-롤 전에 자동으로 확인하고, 모든 것이 괜찮으면 사용자에게 한 번에 확인을 요청합니다. 타임라인 보기(마크다운 이미지 보드, 동시에 문장)는 건너뛰어도 됩니다: 동시성을 유지하면서, 검토하는 동안 비디오가 이해하기 어려운 경우에만 보드를 권장합니다. 제어 보드:
python3 scripts/brolls.py controler <디러시된 비디오> <B-롤 구성 파일>
Playwright에서 이미지 보드를 엽니다. 스크립트는 위험한 B-롤을 감지합니다: 동일한 출연자를 다른 장면에서 사용, 겹치는 아바타, 규칙 위반. 에이전트는 보드에 표시된 대로 모든 것을 한 번에 수정합니다.
6. 따라서 B-롤 배치는 사용자가 제어 중에 요청한 경우에만 다시 실행됩니다.
애니메이션, 단계별
애니메이션은 hyperframes(npx hyperframes)에 의해 렌더링되며, 첫 번째 렌더링 시 자동으로 다운로드됩니다. 이 스킬은 모든 애니메이션 유형을 알고 있지만, 애니메이션 자체는 포함하지 않습니다: 카탈로그에서 애니메이션을 선택하고, 매개변수(텍스트, 이미지, 지속 시간) 및 동기화(파형의 마커)를 전달합니다. 설정에서 차트를 변경할 수 있습니다.
1. 인스턴스가 아직 없으면 카탈로그를 가져옵니다.
python3 scripts/animer.py catalogue # 차트의 애니메이션 및 자체 애니메이션의 전체 목록
에이전트는 각 유형의 애니메이션을 설명하는 마크다운 섹션을 읽습니다: 목적, 디자인 및 가장 일반적인 사용 사례. 세부 사항은 references/animer-<유형>.md에 있습니다.
2. 에이전트가 결정합니다: 어느 것, 언제, 얼마나 오래. 예, 추가 정보를 요청할 수 있습니다(예: "당신의 로고의 SVG를 보내 주시겠습니까?"). 결정이 내려지면:
python3 scripts/animer.py generer <구성 파일> -o <출력 폴더>/<이름>.mp4
각 애니메이션 유형에 대한 구성 파일은 scripts/에 있으며, 데이터를 채우고 필요한 경우 경로를 제공합니다. 구성 파일에는 사용자의 브랜드 차트의 색상 팔레트도 포함되어 있습니다.
애니메이션 구성 파일은 전체 애니메이션 프로젝트를 정의합니다. generer 명령은 HyperFrames에 JSON 구성을 전달하고, HyperFrames가 애니메이션을 렌더링하며, 출력 파일을 폴더에 씁니다.
3. 비디오에 통합합니다. video-use를 통하거나 나중에 수동으로 ffmpeg로 통합합니다. 애니메이션을 먼저 배치하는 것이 좋습니다.
음향 효과, 단계별
음향 효과는 scripts/bruitages.py에 의해 배치됩니다.
python3 scripts/bruitages.py placer <디러시된 비디오> <음향 효과 구성> -o <출력>.mp4
에이전트는 어떤 효과를 어디에 배치할지 결정합니다: 애니메이션 진입 시 숨소리, 체크박스당 클릭, 장면 전환 시 스우시. "B-롤에 숨소리를 추가해 줘" 또는 "여기에 클릭 효과를 넣어 줘"와 같은 명령을 이해합니다.
교정 플레이어, 단계별
교정 플레이어는 scripts/player.py에 의해 실행됩니다. lecteur-facon-frame-io.md(이 스킬의 references/ 폴더)에서 설명을 찾으십시오.
python3 scripts/player.py lancer <비디오 파일>
플레이어는 웹 페이지(FastAPI)를 열고 Playwright(또는 에이전트의 브라우저)에서 표시합니다. 사용자는:
- 이미지에 주석을 추가할 수 있습니다(핀, 마커)
- 타임라인 바에 주석 점을 볼 수 있습니다
- 특정 애니메이션에 주석을 연결할 수 있습니다
- 범위를 그릴 수 있습니다
- 비교를 위해 버전을 저장할 수 있습니다
- Final Cut Pro에서 프로젝트를 열 수 있습니다
플레이어는 수정 사항을 JSON 파일에 저장합니다. 에이전트는 이 파일을 읽고 피드백을 적용합니다.
Final Cut Pro로 내보내기, 단계별
python3 scripts/exporter.py fcp <편집된 비디오> -o <출력 폴더>
이 명령은 편집된 비디오에서 Final Cut Pro 프로젝트를 생성합니다: 별도 트랙(비디오, 음향 효과). 에이전트가 버튼을 누릅니다.
리소스
- 이 스킬은 모든 AI 코딩 에이전트에서 작동합니다: Claude Code(설치됨), Cursor(프로젝트에 복사), Codex(프로젝트 포함).
references/폴더에는 애니메이션, 교정 플레이어 및 기타 하위 시스템에 대한 추가 문서가 포함되어 있습니다.- 모든 것은 Mac에서 실행되며, 어떤 비디오도 온라인으로 전송되지 않습니다.
- 이 스킬은 사용자의 B-롤 라이브러리와 그래픽 차트를 존중하며, 사용할 수 없는 경우 기본값으로 대체됩니다.