릴스 편집
기준 작업 = /rc 릴스 (템플릿의 KEEP·SUBS 값이 이 편 기준).
템플릿 = 이 폴더 template/ (transcribe.py · prep_remotion.py · Reel.tsx/Root.tsx/index.ts · 효과음 wav).
확정 규격 (사용자 피드백으로 고정된 것)
| 항목 | 규격 |
|---|---|
| 캔버스 | 1080×1920, 30fps, 메인 720×1280 등은 lanczos 업스케일 |
| 무음 컷 | 공격적: silencedetect -33dB d=0.2 → 0.2초 이상 쉼은 문장 안이라도 삭제, 앞뒤 여유 0.05초. 시작 전 잡음(클릭 등)도 제거 |
| 버벅임 | 같은 문장 2~3번 → 마지막 테이크만. "폰… 으… 폰으로"처럼 말 시작 더듬음도 앞부분 컷 |
| 속도 | 영상·음성 1.05배 (setpts=PTS/1.05, atempo=1.05) |
| 자막 | 조선굴림체(~/Library/Fonts/ChosunGu.TTF) 자간 -1, 흰 사각 박스+검정 글씨, 한 줄씩, 64px(긴 줄 자동 축소). 위치 = 입술이 보이게 턱 아래 y≈1300. 등장 애니메이션 없음 |
| 자막 교정 | Whisper 오인식 교정(예: "영상 편지"→"영상 편집", "알씨"→"/rc"). 실제 발화와 다른 대본 문구는 자막에 넣지 않음 |
| 상단 타이틀 | 넣지 않음 — 사용자가 따로 넣는다 |
| B롤 | 화면녹화는 자막 바로 아래 카드(둥근 모서리·그림자, 스프링으로 올라옴), 인물 가리지 않음. 가로 녹화 폭 760, 세로 폰 녹화 폭 480(앱 영역 크롭). 긴 녹화는 대사 길이에 맞춰 배속 |
| 예시 작업물 | "보고서/이미지/영상" 같은 나열 대사엔 상단(y≈120)에 예시를 하나씩 띄웠다 사라지게 + 각각 클릭 효과음. 보라 라벨 칩 |
| 키워드 강조 | 핵심 명령어(예 /rc)에 보라 그라데이션 큰 스티커 바운스 + 줌 펀치(1.08) |
| 마지막 CTA | "댓글에 ○○ 남기면 보내드려요" 구간에 자막 아래 정리본 미리보기 인포그래픽(헤더+단계 체크리스트) + "💬 키워드" 노란 말풍선(팝 효과음, 자막 안 가리게 카드 오른쪽 아래) |
| 효과음 | 모든 장면 X — 대사 주요 포인트에만: 첫마디 휙 / 핵심 키워드 띵 / 입력·클릭 대사 키클릭 / B롤 등장 휙 / "바로 이어집니다"류 팝 / 마지막 CTA 띵. 음악은 사용자가 따로 넣음 |
| 예시 소재 | 실제 거래처 자료 금지 → 가상 예시로(예: 가상 "용산 치과" 주간보고). 이미지 예시는 gen.sh로 생성 |
| 얼굴 | 모자이크된 사진·영상 쓰지 않기 |
절차
- 폰트: 처음 한 번
install_fonts.sh실행(조선굴림체 자동 설치, 부크크고딕은 https://bookk.co.kr/font 에서 받은 뒤 재실행). - 소스 복사: 작업폴더
reels/<주제>/에 main.mp4, broll_*.mp4 (임시폴더/var/folders/...녹화는 사라지므로 즉시 복사). - 전사:
template/transcribe.py(faster-whisper medium, word_timestamps, initial_prompt에 고유명사). → words.json - 컷 설계: words.json + silencedetect로
KEEP구간(원본 시각) 작성 — 반복 테이크 제외, 0.2초 쉼 분할.SUBS(원본 시각, 교정 표기)와 B롤 구간 지정. template/prep_remotion.py를 복사해 KEEP/SUBS/B롤 trim 값 수정 → 실행: 컷 이어붙이기 + 1.05배 + B롤 클립 +rm/public/data.json(1.05 반영 시각,to_out은 잘린 시각을 다음 구간 시작에 붙임).- 리모션:
rm/에 template의 Reel.tsx/Root.tsx/index.ts/package.json,npm i remotion @remotion/cli react react-dom, tsconfig에resolveJsonModule: true. 폰트(ChosunGu.ttf)·효과음·예시 소재를public/에.npx remotion render src/index.ts Reel out/<이름>.mp4 --concurrency=6 - 검수: 주요 시점 프레임 캡처 시트로 확인(자막이 입술·카드와 안 겹치는지, 팝업·말풍선이 자막 가리는지). ffmpeg에 libass/drawtext 없음 → 텍스트는 리모션(또는 PIL PNG).
- 결과:
~/Downloads/릴스_<주제>_편집본_vN.mp4로 복사 후open. 수정은 버전 올려서.