Communitygithub.com

visalnaqvi/video-generator-skill

完成影片製作——為分鏡腳本選取或生成音樂(在揭示鏡頭處加入情緒提升、壓低於語音之下)、從音效庫放置每個分鏡音效、根據語音時間軸添加品牌逐字字幕、混合至社群平台音量標準(-14 LUFS)、渲染高畫質 MP4 與封面圖片,並執行自動品質檢查。預設使用免費工具;付費音樂僅在使用者要求或批准時使用。當語音已通過核准且使用者想要最終影片、音樂、音效、字幕、混音或「渲染它」時使用。為工作室管線的階段 5(撰寫→分鏡→語音→渲染);絕不改變視覺或文字。

video-generator-skill 是什麼?

此技能為 AI 代理人提供完整的影片後期製作流程,專為已核准語音的分鏡腳本設計。它會根據分鏡腳本的情緒標籤與影片長度,從音樂庫或程式碼生成配樂,並在揭示鏡頭處加入情緒提升(drops),同時自動將語音與背景音樂側鏈壓縮(sidechain),讓語音清晰。音效部分會根據每個鏡頭的關鍵字從音效庫中配對,若配對失敗則生成自訂音效,並能處理重複播放與同步結束等需求。整個混音會將語音、音樂與音效整合,限制並正規化至 -14 LUFS / -1.5 dBTP 社群平台音量標準。最後,它會渲染 1080x1920 的 30fps H.264+AAC MP4 影片與封面圖片,並執行 QC 品質檢查(解析度、影格率、音量等),產出報告供使用者審核。此技能適用於 Claude Code、Cline 等 AI 編碼工具,預設僅使用免費素材,付費選項需使用者明確同意。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/visalnaqvi/video-generator-skill/tree/HEAD/.claude/skills/render

在你喜歡的 AI 中提問

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

說明文件

渲染——音樂、音效、字幕、最終匯出

輸入:videos/<video>/,內含已核准的 storyboard.json(已配合語音:包含 audio 與 timing)以及已核准的 audio/voice-script.json。輸出:

audio/music.wav        選取或生成的音樂
audio/mix.wav          最終聲軌(語音 + 壓低的音樂 + 音效),-14 LUFS
audio/mix.json         每個聲音事件(鏡頭、提示、檔案、時間)供檢查
render/final.mp4        1080x1920(依格式設定),30 fps,H.264 + AAC
render/cover.png       全解析度封面 / 縮圖
render/qc.json         品質檢查報告

此階段不改變視覺或文字。錯誤的動畫或時間 → 分鏡 / 語音技能。預設免費: 圖書館或程式碼生成的音樂、程式碼生成的音效。付費音樂(AI 生成)僅在使用者要求或批准估價時使用。

步驟 1 — 音樂

  1. 讀取分鏡腳本的 music.mood / notes 與影片長度。
  2. 在 studio/library/music/ 中尋找(index.json 列出帶有情緒標籤、bpm、授權的曲目)。選取最佳配對;若無配對則告知。
  3. 無配對 → 生成免費備用方案,並在揭示鏡頭的開始處加入情緒提升(「drop」)(場景開始時間 — 根據持續時間/轉場計算): node studio/scripts/make-music.mjs --out videos/<video>/audio/music.wav --duration <s> --mood upbeat|calm|cinematic|tense --bpm <n> --drop <s> [--silence <from>-<to>] (tense:小調、心跳脈搏、未解決的結尾;--silence 在揭示音效之前靜音一段視窗 — 在緊張情緒中,滴答時鐘會跟隨其後)。宇宙影片:遵循 universe.json → music / sfx。 圖書館曲目:複製/轉換為 audio/music.wav;修剪、淡出與壓低將在混音中處理。
  4. 記錄到 storyboard.json → music.file、music.source(曲目 + 授權,或「code-generated」)、可選 music.db(預設壓低前 -16 dB)。

步驟 2 — 音效

提示已存在於每個鏡頭的 sfx(純文字,由語音階段錨定到影格或口說詞彙)。混音器透過 studio/library/sfx/index.json 將詞彙對應到聲音(由 node studio/scripts/make-sfx.mjs 生成;自訂聲音放在 custom,優先檢查)。repeat + every 讓提示重複播放;syncEnd: true 將其放置在鏡頭結尾;升高音效在它們的提示處結束。轉場呼聲為選擇性(--auto-whoosh)——使用者偏好克制音效:僅在標誌性時刻(最多約每 2 秒 1 個提示,大多數轉場無提示)。若分鏡腳本有遠多於此的提示,則在混音前將其削減為關鍵時刻並告知。修正混音器輸出的任何「No sound matched」行,方法是加入關鍵字或自訂聲音——絕不改變分鏡腳本的設計。

步驟 3 — 混音

node studio/scripts/mix.mjs videos/<video>(--dry 可預覽事件數量)

語音保持在頂層;音樂被語音壓低(側鏈壓縮)並在結尾淡出;音效在 -12 dB(--sfx-db,或 storyboard.sfxDb);母帶限制器與正規化至 -14 LUFS / -1.5 dBTP。設定 storyboard.finalAudio。更改任何音訊後重新執行。

步驟 4 — 字幕

社群格式預設開啟。在 storyboard.json 中: "captions": { "enabled": true, "y": 83, "size": 50, "skipLines": ["L11"] }

  • 短語(≤ 4 個詞彙,平衡,在停頓處分割)來自語音時間軸;口說詞彙以品牌的強調色高亮顯示。
  • skipLines:語音行數,其詞彙已顯示在畫面上(電話號碼、URL)。
  • 每個鏡頭:captionY(畫面百分比)可移動字幕位置、captions: false 可在畫面上已有相同詞彙時隱藏字幕(例如名字下方三分之ㄧ處)。
  • 保持在安全區域內(預設 83%)且不遮擋重要設計元素。

透過一張連絡板檢查(字幕會在有人說話的影格顯示): node studio/scripts/render.mjs videos/<video>/storyboard.json --sheet --scale 0.25 --out <scratchpad>/captions-sheet.png 查看一次;使用 captionY / captions: false 修正衝突。

步驟 5 — 最終渲染、封面、品質檢查

node studio/scripts/render.mjs videos/<video>/storyboard.json --final
node studio/scripts/render.mjs videos/<video>/storyboard.json --cover
node studio/scripts/qc.mjs videos/<video>

品質檢查必須通過:解析度、影格率、編碼格式、長度 = 分鏡腳本、音量 -14 ±1.5 LUFS。警告(真實峰值、靜音間隔、黑影格)→ 解釋或修正。不要觀看 MP4;將 render/final.mp4(與封面)連同品質檢查摘要與混音內容(音樂來源、音效事件數量、字幕開關)發送給使用者。

步驟 6 — 核准

使用者滿意 → 在 storyboard.json 中設定 "status": "final" → render,完成。更改:音樂/音效/字幕調整 → 此處的步驟 1–5;視覺或時間軸更改 → 分鏡 / 語音技能,然後重新執行此階段。

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

相關技能