슬라이드로 강좌/교육 비디오 만들기
먼저 video-studio를 읽으세요. PDF 자료로 만든 22분짜리 마케팅 강좌(요구사항: "무거운 모션 그래픽 없이 일반 편집", 인도 영어 남성 음성)에서 검증되었습니다. 아래 구조로 다시 빌드하세요: edit/course.py, render.py, mix.py.
파이프라인
- 슬라이드 → 이미지:
pdftoppm -r 200 -png raw/deck.pdf work/slides/p(또는 PPTX/Keynote를 먼저 PDF로 내보내기). 모든 페이지를 확인하세요. 빌드업을 위해 각 부분(제목, 글머리 기호 1..n, 차트, 이미지)의 박스를 이미지에서 직접 확인하거나, PIL의 행/열 투영으로 배경이 아닌 픽셀을 분석하여 슬라이드별로 저장합니다. - 대본 (
edit/course.py): 슬라이드별:vo문단 +reveals[{box:[x,y,w,h], cue:"말할 단어"}] + 선택적zoom박스. 슬라이드를 그대로 읽지 말고 가르치듯이 작성: 강의의 핵심(왜 중요한지), 문단당 하나의 아이디어, 예시, 각 모듈 마지막에 요약, 분당 약 140~150단어. 청중이 원한다면 힌글리시 사용 가능. VO 생성 전에 반드시 대본을 보여주고 승인을 받으세요. (크레딧이 소모됩니다) - 예산 확인:
eleven.py credits; 22분 강좌 ≈ 18,000자 — Starter 요금제는 월 40,000자이므로 같은 달에 전체 재녹음이 어려울 수 있습니다. 사용자에게 비용을 알리세요. 타이밍 테스트용으로만 macOSsay의 무료 스크래치 VO를 사용하세요. - VO: 문단별로
eleven.py tts "<텍스트>" work/vo/<슬라이드>_<n>.mp3 --voice 05QRrdNgiglhuYOaTQvw --speed 1.05 --words work/vo/<슬라이드>_<n>.json(프리미엄, 승인됨). 텍스트별 캐시되므로 한 문단만 수정하면 해당 문단만 다시 결제됩니다. 발음 수정은 텍스트에서 철자를 바꿔서 처리하세요. 문단 간 0.35초, 슬라이드 간 0.8초 간격으로 연결; 타임라인 JSON(슬라이드 시작/끝, 큐 단어 시간)을 빌드합니다. - 렌더 (
edit/render.py): 각 슬라이드는 처음에 제목만 깔끔하게 시작하며, 각 부분은 큐 단어에 맞춰 페이드/슬라이드 인됩니다; 느린 이징 카메라 푸시(1.00 → 1.04)와 밀집된 슬라이드의 경우 설명 중인 부분으로 줌인; 슬라이드 간 푸시/슬라이드 전환(0.4초), 왼쪽 상단 챕터 레이블, 얇은 진행률 표시줄, 슬라이드 번호. 선명하게: 200dpi PNG에서 1920x1080으로 렌더링, 블러 없음. 우선순위 낮음, 모듈별로 청크로 나누어 렌더링 중단 시 재개 가능. - 믹스 (
edit/mix.py): 음성 체인(하이패스 80, 라이트 압축), 배경 음악 −20 dB, 사이드체인 덕킹(assets/music/*underscore*), 나타내기 효과음 소프트(팝/스위시 −14 dB), 전환 효과음(우쉬 −12 dB) — 릴스보다 가볍게. 마스터 −14 LUFS,--tp -2.0. - 미리보기 → 승인 → 전체: 첫 번째 모듈을
--scale 0.5로 미리보기, 피드백 후 전체 진행.qc.py --platform youtube. - 패키징: YouTube 챕터(슬라이드 그룹/모듈당 하나), 강의 개요가 포함된 설명, 강좌 플랫폼용 모듈별 파일(
exports/vN_module_<n>_<slug>.mp4), 썸네일(thumbnail-designer), 선택적 SRT(captions_ass.py --style clean또는 VO 단어에서 추출).
규칙
- 시각적 요소는 음성을 따라갑니다: 언급되기 전에 아무것도 나타나지 않으며, 언급된 중요한 것은 반드시 나타나야 합니다.
- 자료 자체의 디자인을 유지하세요(클라이언트의 브랜드입니다). 카메라, 나타내기 효과, 챕터 레이블, 진행률 표시줄만 추가하세요.
- 숫자와 주장은 오직 자료/사용자에게서만 가져오세요. 화면에 브랜드 이름을 정확히 표시하세요(음성에서 철자를 바꾸더라도).
- 사용자가 잠들어서 승인을 포기하더라도 미리보기와 노트는 남겨두어 아침에 검토할 수 있도록 하세요.