reel-kit으로 릴 만들기
사용자의 컴퓨터에 있는 실제 영상을 편집합니다. 쉘 명령어를 실행하고 파일을 읽을 수 있는 도구(예: Claude Desktop의 Desktop Commander 확장 또는 Claude Code)가 필요합니다. 그러한 도구가 없으면 그렇게 말하고 사용자에게 docs/guia-windows.md를 안내하세요. 채팅 샌드박스에 업로드된 파일로 이 작업을 시도하지 마세요.
설정
reel-kit폴더를 찾습니다(찾을 수 없으면 사용자에게 한 번 물어보세요). 모든 명령은 그 폴더에서 실행하세요.- 처음 한 번:
npm install및pip install numpy를 실행하세요.ffmpeg -version과node -v가 작동하는지 확인하세요. - 이 스킬의
styles/폴더에서 주제와 일치하는 스타일 파일(yoga.md,aikido.md)을 선택하세요. 맞는 것이 없으면yoga.md에서 시작하여 사용자와 차이점을 조정하세요. 릴에 표시될 사실(이름, 날짜, 장소, URL)을 사용자에게 물어보세요. 절대 만들어내지 마세요.
작업 흐름
- 영상을 살펴보세요. 각 긴 동영상에 대해:
python tools/reel.py sheet <video> --every 10을 실행하세요.out/sheets/의 시트 이미지를 읽어 좋은 순간을 찾으세요. 정확한 시간을 선택하기 전에 유망한 부분에서 더 세밀하게(--every 2) 살펴보세요. - 클립을 선택하세요.
out/<name>-clips.tsv를 작성하세요. 탭으로 구분하며, 한 줄에 하나의 클립:id<TAB>소스 경로<TAB>시작<TAB>끝(초 또는 mm:ss). 스타일 파일에 따라 클립 길이와 각 클립이 포함해야 할 내용을 따르세요. - 자르기.
python tools/reel.py cut out/<name>-clips.tsv를 실행하세요. 각 클립은public/clips/에 세로 1080x1920이 됩니다. 가로 영상은 움직임을 따라 크롭됩니다(--frame center는 고정 중앙 크롭,--frame keep은 트래킹 없이 크기 조정). PC에 NVIDIA 카드가 있는 경우에만--gpu를 추가하세요. 명령은 각 클립당 정확한 길이와 함께 JSON 한 줄을 출력합니다. - 릴을 설명하세요.
reels/<name>.json을 만드세요(아래 형식 참조). 3단계의 클립 줄을 붙여넣으세요. - 렌더링.
python tools/reel.py render <name>을 실행하면out/<name>.mp4가 만들어집니다. 소셜 미디어에 맞게 음량이 정규화됩니다. - 확인. 3-4 프레임을 추출하여(
ffmpeg -i out/<name>.mp4 -vf "fps=1/4,scale=360:-2,tile=4x1" -frames:v 1 out/<name>-check.jpg) 확인한 후 사용자에게 완료되었다고 알리세요. 사용자에게 파일 경로와 길이를 알려주세요.
이후 사용자가 변경을 요청하면("느린 부분 제거", "음악 없음") TSV나 JSON을 편집하고 그 이후 단계만 실행하세요. 이전 버전은 새 이름(<name>-v2)을 사용하여 보관해 사용자가 되돌릴 수 있게 하세요.
reels/.json
{
"clips": [{ "file": "clips/a1.mp4", "seconds": 6.5 }],
"transition": "fade",
"fadeSeconds": 0.5,
"clipVolume": 0,
"music": { "file": "music/calm.mp3", "volume": 0.5 },
"accent": "#7FA88B",
"intro": [{ "kicker": "Yoga · Murcia", "title": "Clase abierta", "sub": "Sábado 10:00" }],
"outro": { "text": "Reserva tu plaza", "url": "example.com", "image": "poster.jpg", "seconds": 3.5 }
}
clips만 필수입니다. 경로는public/을 기준으로 합니다. 음악은public/music/에, 이미지는public/에 넣으세요.transition:"cut"(하드 컷, 기본값) 또는"fade".clipVolume: 1은 원래 소리를 유지하고, 0은 음소거합니다. 음악은 끝에서 자동으로 사라집니다.intro: 텍스트 카드, 각 2.5초, 첫 번째 클립 위에 표시됩니다.outro: 텍스트, URL 및/또는 이미지(포스터, 로고)가 포함된 종료 화면.- 사용자가 제공하거나 사용 권한을 확인한 음악만 사용하세요.
규칙
- 동영상 작업은 무겁습니다. 한 번에 하나의 ffmpeg 또는 렌더 작업만 실행하세요. 도구는 이미 낮은 우선순위로 실행됩니다.
- 사용자가 미리 보고 직접 조정하려는 경우에만
npm run studio를 사용하세요. - 외형(글꼴, 레이아웃) 자체를 변경하려면
src/Reel.tsx를 편집하세요. Remotion의 공식 스킬(npx skills add remotion-dev/skills)이 도움이 됩니다.