Communitygithub.com

andyluu98/VideoMotion

為影片專案選擇或建立背景音樂,測量節拍,然後與人聲混合(有對話時自動降低音樂音量,符合 -14 LUFS 標準)。用於 /videomotion 的第 6 步,或當使用者上傳音樂檔案、說「換音樂」、「音樂更活潑」、「音樂小聲點」時。

VideoMotion 是什麼?

這個技能可自動化影片的背景音樂工作流程,包括音樂選擇、節拍偵測和專業音訊混合。它支援三種音樂來源:使用者上傳的檔案、ACE-Step(未來版本)和由 mood 參數驅動的程式合成音樂(平靜、鼓舞、歡快、科技)。技能透過 fit-beat-grid 腳本(用於使用者上傳的音樂)測量 BPM 和節拍網格,或直接使用合成音樂的 beats.json 數據,以幫助將場景剪輯與音樂高潮和低谷對齊。混合階段使用 ducking 技術,在沒有人聲時將音樂音量提高 5 dB,有人聲時降低 6 dB,並確保最終輸出符合 -14 LUFS 整合響度和 -1.0 dBTP 真峰值限制。該技能與 Claude Code 和 Cursor 等代理平台相容,可將混合後的音訊儲存在專案目錄中,並在技能日誌中顯示響度數據以供驗證。

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

在你喜歡的 AI 中提問

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

說明文件

背景音樂

變數 VV、PY 與 skill videomotion 相同。

選擇來源(依序)

  1. 使用者上傳音樂檔案: 複製到 <專案>/music/bgm.<副檔名> 然後轉換為 bgm.wav: ffmpeg -y -i <檔案> -ar 48000 -ac 2 <專案>/music/bgm.wav。如果音樂比影片短,通知使用者(混音器會讓缺少的部分靜音)。
  2. ACE-Step(此版本尚未包含;安裝後會在此處記錄)。
  3. 程式合成音樂(當沒有 1 和 2 時的預設值):
"$PY" "$VV/tools/music/synth.py" <專案> --duration <words.json 中的 total> --mood <mood> [--bpm N] [--seed N]

根據風格和內容選擇 mood:

mood預設節拍適合用於
calm84白板、慢速解說、嚴肅主題
inspiring96解說影片、培訓、正向故事
upbeat112廣告、宣傳片、swiss-motion
tech104dark-keynote、科技產品、資料視覺化

更改 --seed 可以在相同 mood 下獲得不同的旋律。如果使用者沒有提供檔案且未確認授權,絕對不要從網路下載音樂並將其打包到儲存庫或專案中。

測量節拍(當需要根據節拍剪輯場景時)

合成音樂已經有 music/beats.json。使用者上傳的音樂則使用從 bestagentkits 複製的腳本進行測量:

"$PY" "$VV/vendor/bestagentkits/fit-beat-grid.py" <專案>/music/bgm.wav --min-bpm 70 --max-bpm 140

將輸出的 BPM 和 BEAT0 寫入 music/beats.json({"bpm":..,"beat0":..,"source":"fit-beat-grid"})。每個小節的 dB 欄位顯示音樂的漸強(build)和爆發(drop)位置:如果可能,將腳本的高潮場景放在 drop 位置。

混合

"$PY" "$VV/tools/audio/mix.py" mix <專案> [--music-db -6] [--duck-db 5]
  • --music-db:說話時音樂相對於人聲的音量(預設 -6 dB)。使用者說「音樂小聲點」時降低(-9);「聽不到音樂」時提高(-4)。
  • --duck-db:沒有人聲時音樂音量增加的幅度(預設 5 dB)。
  • 輸出 MIXDONE I=<LUFS> TP=<dBTP>。當 I 在 -14 ± 0.5 範圍內且 TP 不超過 -1.0 時視為達標。

Individual skills in this repo

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

andyluu98/VideoMotion

Làm video tiếng Việt từ một yêu cầu, AI làm đạo diễn, không khung dựng sẵn: ý tưởng lớn, kịch bản, giọng VieNeu, phân cảnh theo lời, nhạc nền, dựng từng cảnh bằng agent Sonnet chạy song song (HyperFrames + GSAP), phụ đề, xuất MP4. Dùng khi người dùng gõ "/videomotion", "làm video", "video giải thích", "clip ngắn về X", "biến bài này thành video".

andyluu98/VideoMotion

Kiểm tra và cài đặt mọi thứ VideoMotion cần (Node.js, ffmpeg, HyperFrames, môi trường Python, giọng VieNeu, Whisper). Dùng khi người dùng mới cài plugin, gõ "/vm-cai-dat", "cài đặt video", "kiểm tra máy làm video", hoặc khi một bước làm video báo thiếu công cụ.

andyluu98/VideoMotion

Dựng hình cho dự án VideoMotion đã có giọng và phân cảnh: tải phông của style, viết màu, giao từng cảnh cho agent vm-canh chạy song song, ghép, kiểm tra kỹ thuật, render, ghép âm thanh và phụ đề. Dùng ở bước 7 của /videomotion, hoặc khi người dùng nói "dựng lại cảnh", "render", "xuất video", "sửa hình cảnh X".

andyluu98/VideoMotion

Sinh giọng đọc tiếng Việt bằng VieNeu-TTS từ script.json của một dự án video, tự chấm phát âm bằng Whisper, giữ bản đọc tốt nhất, lấy mốc thời gian từng từ (voice.wav, words.json). Dùng ở bước 4 của /videomotion, hoặc khi người dùng nói "sinh giọng", "đọc lại câu", "đổi giọng", "sửa phát âm".

相關技能