launch-video-kit은(는) 무엇을 하나요?
디자인 외적인 비디오 부분(오디오, 자막, 카메라)을 위한 여섯 가지 도구입니다. README가 참고 자료입니다(각 결정의 이유와 이를 뒷받침하는 숫자들). 여기는 작업 순서와 놓치기 쉬운 규칙들입니다.
순서가 중요합니다
- 음성이 먼저, 편집은 나중에.
gen-voice.mjs는 각 라인의 실제 길이를 프레임 단위로 출력합니다. 이 숫자들이 장면의 시간을 결정합니다. 먼저 편집하면 실제 녹음된 길이가 맞지 않아 다시 해야 합니다. - 그다음 음악을 선택합니다. 에너지 곡선(
analyze-music.mjs)에 따라 적절한 구간을 고르고, 필요하면 루프(loop-music.mjs)로 연장합니다. - 그다음 컷을 분석 결과 출력된 마디 그리드에 맞춰 넣습니다.
- 자막은 마지막에 넣습니다. 어떤 문장에 화면 내 텍스트가 있고 없을지 이미 알고 있을 때 작업합니다.
자주 간과되는 규칙
- 한 라인당 하나의 음성 파일. 긴 테이크는 절대 사용하지 마세요.
- 화면에 이미 쓰인 내용은 자막 처리하지 마세요. 문장이 이미 라벨에 표시되어 있다면 자막을 넣으면 같은 위치에 텍스트가 중복됩니다.
- 자막의
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에 예제가 있습니다.