SRT-Driven Video(SRT 驅動影片流水線)
把一篇口播稿變成一部程式碼生成視覺的講解影片。以 SRT 為唯一時間基準,分五階段推進,每階段結束暫停等用戶確認。
環境與依賴
- Windows:Playwright(
channel="msedge",用本機 Edge 免裝 Chromium)+ imageio-ffmpeg(提供 ffmpeg;不含 ffprobe,用ffmpeg -istderr 解析規格)。 - 依賴安裝:
pip install playwright imageio-ffmpeg(腳本內已處理 ffmpeg 定位)。 - 本 skill 的 scripts/ 全部為 Windows 實測適配版;Linux/macOS 需去掉
channel="msedge"並改用系統 ffmpeg。
五階段總覽
| 階段 | 產物 | 確認門 |
|---|---|---|
| 0 大綱 | outline.md + 決策表 | 用戶確認大綱與決策 |
| 1 文稿+SRT | script.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。
三條核心契約(不可省)
- SRT 時間基準:分鏡邊界落在字幕條邊界,總跨度誤差 ≤0.1s;
python scripts/check_timeline.py <project_dir>每階段複檢。 - WORKLOG 接力:專案根建
WORKLOG.md(模板見 references/worklog-template.md),跨會話唯一狀態載體;決策表鎖定後不可擅改;階段 3/4 起基線檔案(outline/script/SRT/講者備註/storyboard/assets/shared/scenes)凍結。 - 階段確認門:每階段彙報後暫停,等用戶明確確認再進下一階段。
場景渲染(階段 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 再彙報。