Communitygithub.com

andyluu98/VideoMotion

動画プロジェクトのBGMを選択・生成し、テンポを検出して、ナレーションに合わせて自動的に音量を調整(発声中はダッキング、-14 LUFS基準)します。/videomotionのステップ6、またはユーザーが音楽ファイルを送信したり、「BGMを変えて」「もっと盛り上がる曲」「音量を下げて」などと指示した際に使用します。

VideoMotion とは?

このスキルは、動画制作ワークフローにおいてBGMを管理するための包括的なツールです。ユーザーがアップロードした音楽ファイルを処理するか、指定されたムード(落ち着いた、感動的、アップビート、テクノ)に基づいてコード合成によりBGMを生成します。生成された音楽は自動的にテンポ解析され、ビートグリッドが作成されるため、動画編集でシーンのカットをビートに合わせることが可能です。最終的なオーディオミックスでは、ナレーション中にBGMを自動で下げるダッキング処理を適用し、統合ラウドネス(-14 LUFS)とピークレベル(-1.0 dBTP以下)が業界標準に準拠するよう調整します。このスキルは、/videomotionのステップ6として使用されるほか、ユーザーからの自然言語指示(「BGMを変えて」「もっと静かに」など)にも対応し、直感的な操作を実現します。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/andyluu98/VideoMotion/tree/HEAD/skills/vm-nhac

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

BGM(背景音楽)

VV、PY 変数は 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デフォルトBPM適した用途
calm84ホワイトボード、ゆっくりとした説明、真面目なテーマ
inspiring96解説動画、トレーニング、ポジティブなストーリー
upbeat112広告、プロモーション、スイスモーション
tech104ダークキーノート、テクノロジー製品、データビジュアライゼーション

--seed を変更すると、同じムードで異なるメロディーが生成されます。ユーザーがファイルを提供したり、ライセンスを確認していない限り、Webから音楽をダウンロードしてリポジトリやプロジェクトに同梱することは絶対に行わないでください。

テンポ検出(ビートに合わせてシーンをカットする場合に使用)

合成音楽の場合は 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 カラムは、音楽が盛り上がる(ビルド)部分と落ちる(ドロップ)部分を示します。可能であれば、スクリプトのクライマックスシーンをドロップ部分に合わせて配置してください。

ミキシング

"$PY" "$VV/tools/audio/mix.py" mix <プロジェクト> [--music-db -6] [--duck-db 5]
  • --music-db: ナレーション中の BGM 音量(デフォルト -6 dB)。ユーザーが「BGMを小さく」と言った場合は下げ(-9)、「BGMが聞こえない」と言った場合は上げます(-4)。
  • --duck-db: ナレーションがないときに BGM をどれだけ大きくするか(デフォルト 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".

関連スキル