Communitygithub.com

字幕驅動講解片

把口播稿做成講解影片:大綱、字幕時間軸、分鏡,再渲染成程式畫面的成片。

字幕驅動講解片 是什麼?

五階段流水線,以字幕檔為時鐘。大綱、文稿和分鏡都先確認,再逐鏡渲染並拼成成片。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/zamchudo/srt-driven-video/tree/HEAD

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

SRT-Driven Video(SRT 驅動影片流水線)

把一篇口播稿變成一部程式碼生成視覺的講解影片。以 SRT 為唯一時間基準,分五階段推進,每階段結束暫停等用戶確認。

環境與依賴

  • Windows:Playwright(channel="msedge",用本機 Edge 免裝 Chromium)+ imageio-ffmpeg(提供 ffmpeg;不含 ffprobe,用 ffmpeg -i stderr 解析規格)。
  • 依賴安裝:pip install playwright imageio-ffmpeg(腳本內已處理 ffmpeg 定位)。
  • 本 skill 的 scripts/ 全部為 Windows 實測適配版;Linux/macOS 需去掉 channel="msedge" 並改用系統 ffmpeg。

五階段總覽

階段產物確認門
0 大綱outline.md + 決策表用戶確認大綱與決策
1 文稿+SRTscript.md / subtitles.srt / 講者備註.md用戶確認文稿
2 分鏡storyboard.json(check_timeline.py 必過)用戶確認分鏡
3a 首鏡+元件庫assets/shared/ + scene-001 低清樣片用戶拍板風格後才批量
3b 逐鏡批量scenes/scene-NNN/scene.mp4 × N用戶複核重點鏡頭
4 拼接交付output/final.mp4 + cover.png用戶確認終片

詳細流程、決策表欄位、常見坑(imageio-ffmpeg 無 filter_complex_script、alimiter 的 level 陷阱等)見 references/pipeline.md。

三條核心契約(不可省)

  1. SRT 時間基準:分鏡邊界落在字幕條邊界,總跨度誤差 ≤0.1s;python scripts/check_timeline.py <project_dir> 每階段複檢。
  2. WORKLOG 接力:專案根建 WORKLOG.md(模板見 references/worklog-template.md),跨會話唯一狀態載體;決策表鎖定後不可擅改;階段 3/4 起基線檔案(outline/script/SRT/講者備註/storyboard/assets/shared/scenes)凍結。
  3. 階段確認門:每階段彙報後暫停,等用戶明確確認再進下一階段。

場景渲染(階段 3)

每鏡是獨立 HTML 頁面,實作 window.setTime(t) 確定性渲染(一切動畫是 t 的純函數);字幕燒錄用統一契約元素 div#subtitle。完整開發契約、質檢流程(check_frames.py 關鍵幀拼圖)、設計紅線見 references/visual-authoring.md。

起步模板:assets/neon-theme/(已拍板的科技霓虹風 theme.css + components.js,含粒子/逐字飛入/資料卡片/對比條形/風險色標/轉場/字幕元件)——使用者要同款風格直接複製到專案 assets/shared/,其他風格以其為結構藍本。

python scripts/render_scene.py scenes/scene-001 --duration 10.5 --fps 30 --size 960x540   # 低清樣片
python scripts/check_frames.py scenes/scene-NNN --times 0.5,3,6,9.2                        # 渲染前質檢
python scripts/render_all.py .                                                             # 批量全清
python scripts/render_all.py . --no-subtitle --outdir output/nosub                         # 無字幕變體
python scripts/concat_final.py .                                                           # 拼接 + 封面

可選音效模組(預設關閉)

僅當用戶明確要卡點音效時啟用,且階段 0 決策表就鎖定。素材走 Freesound CC0(逐條核驗許可),時間線落 assets/sfx/mix_timeline.json 並先給用戶預審;交付兩條路徑二選一:FFmpeg 自動混音(mix_sfx.py),或匯出剪映對點清單(make_cue_sheet.py)由用戶手動添加——後者實測更穩。完整流程見 references/sound.md。

參考的外部 skill / 工具

  • vibe-motion/sound(GitHub,克隆到專案 tools/sound/):Freesound 搜尋/下載 CLI。倉庫無 LICENSE,僅作內部下載工具;許可以 Freesound 單條音效 CC0 聲明為準。

交付規格

final.mp4:1920×1080 / 30fps / h264 / yuv420p,時長精確匹配 SRT 總跨度;cover.png 取高潮定格幀(抽幀實測定位);核驗時長、幀數、規格、音軌電平後更新 WORKLOG 再彙報。

相關技能