Communitygithub.com

andyluu98/VideoMotion

為已擁有語音和分鏡的 VideoMotion 專案進行影像建置:載入樣式字型、設定色彩、將每個場景平行分配給 vm-canh 代理,進行合併、技術檢查、渲染、音訊和字幕合成。用於 /videomotion 的第 7 步,或當使用者說「重新建置場景」、「渲染」、「匯出影片」、「修改場景 X 的畫面」時。

VideoMotion 是什麼?

此技能專為 VideoMotion 專案流程中的影像建置階段而設計,特別是在已經產生語音和分鏡腳本之後。它會根據專案的樣式設定自動載入 Google Fonts 字型,並從主題標籤的調色板中生成一個 theme.css 文件,確保字幕顏色對比度達到 4.5:1。然後,它將每個場景的建置任務打包,並透過將每個場景分配給專用代理來平行執行,這些代理以最新版本的 Sonnet 模型運行,使用中等推理努力。之後,它會組裝所有場景,使用 Hyperframes 執行技術檢查,修復錯誤,並最終渲染影片,將音訊和字幕無縫合成。它支援主流的 AI 編碼工具,如 Claude Code、Cursor 和 Codex,並能同時處理多個場景以優化效率。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/andyluu98/VideoMotion/tree/HEAD/skills/vm-dung

在你喜歡的 AI 中提問

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

說明文件

建置與匯出影片

變數 VV、PY 與 videomotion 技能中相同。HF 為 npx -y [email protected]。輸入資料位於 <du-an> 目錄中:storyboard.json、words.json、timeline.json、mix.wav。

1. 根據樣式準備

  1. 載入樣式標籤中的字型(標籤內的 Google Fonts 行): "$PY" "$VV/tools/fonts.py" <du-an> "VT323" "Be Vietnam Pro:400,700" 會輸出至 fonts/ 和 fonts.css。
  2. theme.css:從標籤調色板定義 :root 變數:--bg、--ink、--accent、輔助顏色、--cap-bg、--cap-ink(字幕需達到 4.5:1 對比度)。
  3. 如果樣式具有貫穿整個影片的連續背景(地圖、紙張、黑板、網格):撰寫 compositions/_nen.html(id 為 _nen),所有場景的背景設為透明。
  4. "$PY" "$VV/tools/assemble.py" <du-an>:生成 index.html,複製字型,為尚未建立的場景建立暫存檔案。
  5. "$PY" "$VV/tools/packets.py" <du-an>:為每個場景打包工作指令至 checks/packets/<id>.md。

2. 平行分配場景

在同一則訊息中同時觸發所有場景,每個場景分配給一個代理,代理類型為 videomotion:vm-canh(已聲明 model: sonnet、effort: medium:始終使用最新的 Sonnet)。簡短的指令:

建置場景 <id>。工作指令包:<du-an>/checks/packets/<id>.md。模板:$VV/templates/scene.html。請正確寫入檔案 <du-an>/compositions/<id>.html。

如果工作階段沒有 vm-canh 代理(例如技能未透過外掛安裝,或使用其他工具):則使用通用代理,設定 model: "sonnet"、effort: "medium",並囑咐其先閱讀 $VV/agents/vm-canh.md。如果工具不支援子代理,則依該檔案內容依序自行建置。

如果少於 3 個場景,則自行建置,無需分配。

3. 合併與技術檢查

"$PY" "$VV/tools/assemble.py" <du-an>
cd <du-an> && npx -y [email protected] check

修正直到顯示 Check passed,且 0 個錯誤(錯誤發生在哪個場景檔案,就修正該檔案)。字幕的 timeline_track_too_dense 警告為正常現象。無需審批表或人工審核;使用者若想預覽,可執行 npx -y [email protected] preview --background。

4. 渲染與音訊合成

"$PY" "$VV/tools/assemble.py" <du-an> --no-audio
cd <du-an> && npx -y [email protected] render --output renders/raw.mp4 > renders/render.log 2>&1
"$PY" "$VV/tools/audio/mix.py" srt <du-an>
"$PY" "$VV/tools/audio/mix.py" final <du-an> --video <du-an>/renders/raw.mp4 --name <slug>-<ddmmyyyy>
"$PY" "$VV/tools/assemble.py" <du-an>

渲染在背景執行(每秒影片約需 2 秒電腦時間)。--no-audio 是必選的:mix.py final 會完整合成 mix.wav。最後的 assemble 命令會將 index.html 恢復為有音效的版本,以便預覽。

5. 最終檢查一次

執行 ffprobe renders/<ten>.mp4:確認尺寸正確、包含音訊串流、時長與 words.json 中的 total 相符。使用 ffmpeg 抽取影片中間的一幀進行視覺檢查。輸出 renders/<ten>.mp4 和 phude.srt。

Individual skills in this repo

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

相關技能