Communitygithub.com

borjaperfra/launch-video-kit

Remotion으로 제작된 비디오에 내레이션, 음악, 자막 또는 카메라 움직임을 추가하는 키트입니다. TTS로 음성 해설을 생성하거나, 음악 트랙을 선택 및 연장하거나, 음성을 음악과 믹싱하거나, 인터페이스 위에 읽기 쉬운 자막을 넣거나, HTML로 재구성된 UI 위에서 가상 카메라를 움직여야 할 때 사용하세요.

launch-video-kit란 무엇인가요?

이 스킬은 Remotion 기반 비디오 제작에서 디자인 외적인 요소(오디오, 자막, 카메라 워크)를 체계적으로 처리하기 위한 6가지 도구 모음입니다. 작업 순서가 엄격하게 정해져 있어, 음성 녹음 → 음악 선택 및 루핑 → 편집 컷 → 자막 순서로 진행되며 각 단계가 이후 단계의 입력값을 결정합니다. `gen-voice.mjs`는 TTS 음성 파일의 실제 길이를 프레임 단위로 출력하여 편집 타임라인을 정확히 맞출 수 있게 해주고, `analyze-music.mjs`와 `loop-music.mjs`는 음악의 에너지 곡선과 조용한 구간을 분석해 매끄러운 루핑을 보장합니다. 자막은 화면에 이미 표시된 텍스트와 중복되지 않도록 하고, 각 자막의 지속 시간은 음성 길이가 아닌 읽기 시간을 기준으로 설정합니다. 카메라는 각 장면이 이전 장면의 프레임에서 자연스럽게 시작되도록 짧은 이동만 사용하며, 모든 오디오 레벨은 `ffmpeg`를 통해 객관적으로 검증됩니다(-1dB 이하 피크, 대화와 음악 믹스가 대화 단독과 동일한 레벨을 유지). Node 20+, ffmpeg/ffprobe가 필요하며 Windows Git Bash에서는 일부 제한사항(glob 패턴 미지원, fontconfig 부재)이 있으므로 주의해야 합니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/borjaperfra/launch-video-kit/tree/HEAD/.claude/skills/launch-video-kit

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

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

문서

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

디자인 외적인 비디오 부분(오디오, 자막, 카메라)을 위한 여섯 가지 도구입니다. README가 참고 자료입니다(각 결정의 이유와 이를 뒷받침하는 숫자들). 여기는 작업 순서와 놓치기 쉬운 규칙들입니다.

순서가 중요합니다

  1. 음성이 먼저, 편집은 나중에. gen-voice.mjs는 각 라인의 실제 길이를 프레임 단위로 출력합니다. 이 숫자들이 장면의 시간을 결정합니다. 먼저 편집하면 실제 녹음된 길이가 맞지 않아 다시 해야 합니다.
  2. 그다음 음악을 선택합니다. 에너지 곡선(analyze-music.mjs)에 따라 적절한 구간을 고르고, 필요하면 루프(loop-music.mjs)로 연장합니다.
  3. 그다음 컷을 분석 결과 출력된 마디 그리드에 맞춰 넣습니다.
  4. 자막은 마지막에 넣습니다. 어떤 문장에 화면 내 텍스트가 있고 없을지 이미 알고 있을 때 작업합니다.

자주 간과되는 규칙

  • 한 라인당 하나의 음성 파일. 긴 테이크는 절대 사용하지 마세요.
  • 화면에 이미 쓰인 내용은 자막 처리하지 마세요. 문장이 이미 라벨에 표시되어 있다면 자막을 넣으면 같은 위치에 텍스트가 중복됩니다.
  • 자막의 dur는 읽기 시간이지 음성 길이가 아닙니다. 수동으로 범위를 잘라서 다음 자막이나 뒤에 오는 라벨과 겹치지 않게 하세요.
  • DUCK.base는 ~0.85를 넘지 않습니다. 라이브러리 트랙은 0dB로 제공되며 위에 어떤 효과도 걸면 클리핑이 발생합니다.
  • 카메라: 정지 상태에서 짧은 이동만. 지속적인 흐름(산만함)이나 날카로운 컷(튀는 느낌)은 피하세요. 각 장면은 이전 장면이 끝난 프레임에서 시작합니다.
  • 이음매 양옆의 인터페이스는 동일한 컴포넌트를 사용하세요. 한 장면을 수동으로 그리면 세부 사항이 달라져 블록을 전환할 때 갑자기 나타납니다.
  • 내용이 아닌 시간을 기준으로 반복문을 작성하세요. 내용 배열을 루프하면서 더 짧은 시간 배열을 인덱싱하면 비트 하나를 제거했을 때 렌더가 중단됩니다.

주관 대신 검증

에이전트는 비디오를 보거나 들을 수 없습니다. 주관적으로 보이는 모든 것에는 숫자가 있습니다:

# 구간별 믹스: 음악 위의 음성은 음성 단독과 동일하게 측정되어야 함
ffmpeg -hide_banner -ss 27 -t 4 -i out.mp4 -af volumedetect -f null /dev/null

# 전체 피크는 -1dB 이하여야 함
ffmpeg -hide_banner -i out.mp4 -af volumedetect -f null /dev/null

# 프레임을 하나씩 검토하는 대신 컨택트 시트 사용
ffmpeg -v error -i f_%d.png -vf "scale=560:-1,tile=5x4" -frames:v 1 sheet.png

loop-music.mjs는 자체 이음매를 검증합니다. 어떤 이음매가 무음 구간에 걸리지 않으면 알려주고 다른 두 구간을 선택해야 합니다.

환경

  • PATH에 ffmpeg와 ffprobe가 필요하며 Node 20 이상이 필요합니다.
  • Windows의 Git Bash에서: ffmpeg는 glob 패턴을 지원하지 않고 drawtext는 fontconfig 부족으로 실패합니다. 숫자 시퀀스를 사용하세요. 또한 bc도 없습니다.
  • Remotion의 staticFile()은 공백과 악센트를 잘 처리하지 못합니다. 에셋을 ASCII로 이름을 바꾸세요.
  • <Sequence> 내부의 useVideoConfig().durationInFrames는 시퀀스의 길이이지 비디오의 길이가 아닙니다. 절대 프레임과 혼동하지 마세요.

할 수 없는 일

TTS는 말이지 호흡이 아닙니다. 한숨, 웃음, 효과음은 녹음해야 합니다. 합성 블립 소리는 ffmpeg로 만들 수 있으며 README에 예제가 있습니다.

관련 스킬