Communitygithub.com

andyluu98/VideoMotion

Hintergrundmusik für Videoprojekte auswählen, erstellen, beat-mappen und mit Sprache mischen (Ducking, Ziel -14 LUFS). Für Schritt 6 von /videomotion oder bei Dateiupload, „Musik wechseln“ usw.

Was ist VideoMotion?

Dieses Skill ist der Audio-Part des /videomotion-Workflows. Es wählt die Musikquelle nach Priorität aus: explizite Benutzerdatei (wird nach bgm.wav konvertiert), dann (zukünftig) ACE-Step, und als Fallback eine KI-generierte Melodie via synth.py. Die Stimmung (calm, inspiring, upbeat, tech) wird anhand des Videostils und Inhalts ausgewählt, und ein Seed erlaubt Variationen. Bei benutzerbereitgestellter Musik wird das Beat-Gitter mit fit-beat-grid.py analysiert (BPM, Beat-Offset), sodass Schnitte und Höhepunkte mit Musik-Drops synchronisiert werden können. Der Mix erfolgt über mix.py mit Ducking: Die Musik wird während Sprache um –6 dB reduziert (anpassbar) und in Pausen um +5 dB angehoben. Das Endergebnis wird auf –14 ±0,5 LUFS und einen True-Peak unter -1,0 dBTP normalisiert. Der gesamte Audio-Workflow ist in Python implementiert und nutzt ffmpeg, ein lokales Vendor-Toolkit (bestagentkits) und das VV-Toolset.

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

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Hintergrundmusik

Die Variablen VV, PY sind wie im Skill videomotion.

Quellenauswahl (in dieser Reihenfolge)

  1. Benutzer stellt Musikdatei bereit: Kopiere nach <projekt>/music/bgm.<endung> und konvertiere nach bgm.wav: ffmpeg -y -i <datei> -ar 48000 -ac 2 <projekt>/music/bgm.wav. Falls die Musik kürzer als das Video ist, informiere den Benutzer (der Mixer füllt die Lücke mit Stille).
  2. ACE-Step (in dieser Version noch nicht enthalten; wird hier vermerkt, sobald installiert).
  3. Per Code generierte Musik (Standard, wenn 1 und 2 nicht zutreffen):
"$PY" "$VV/tools/music/synth.py" <projekt> --duration <gesamt in words.json> --mood <mood> [--bpm N] [--seed N]

Wähle mood basierend auf Stil und Inhalt:

moodStandard-BPMGeeignet für
calm84Whiteboard, langsame Erklärungen, ernste Themen
inspiring96Explainer, Schulung, positive Geschichten
upbeat112Werbung, Promo, Swiss-Motion
tech104Dark-Keynote, Technologieprodukte, Datenvisualisierung

Ändere --seed, um eine andere Melodie bei gleicher Stimmung zu erhalten. Lade niemals Musik aus dem Web herunter, um sie in das Repository oder Projekt einzubinden, es sei denn, der Benutzer stellt eine Datei bereit und bestätigt die Lizenz.

Beat-Erkennung (falls Szenen nach Beat geschnitten werden müssen)

Generierte Musik enthält bereits music/beats.json. Bei benutzerbereitgestellter Musik wird das Beat-Gitter mit einem aus bestagentkits übernommenen Skript analysiert:

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

Schreibe BPM und BEAT0 (ausgegeben) in music/beats.json ({"bpm":..,"beat0":..,"source":"fit-beat-grid"}). Die dB-Spalte jedes Taktes zeigt Aufbau (Build) und Drop (Höhepunkt) an: Platziere, wenn möglich, die Höhepunkte des Drehbuchs synchron zu den Drops.

Mix

"$PY" "$VV/tools/audio/mix.py" mix <projekt> [--music-db -6] [--duck-db 5]
  • --music-db: Lautstärke der Musik relativ zur Sprache während des Sprechens (Standard -6 dB). Sagt der Benutzer „Musik leiser“, dann senken (-9); sagt er „Musik nicht hörbar“, dann erhöhen (-4).
  • --duck-db: Um wie viel Dezibel die Musik lauter wird, wenn gerade nicht gesprochen wird (Standard 5 dB).
  • Ausgabe MIXDONE I=<LUFS> TP=<dBTP>. Das Ergebnis gilt als erreicht, wenn I zwischen -14 ± 0,5 und TP nicht über -1,0 liegt.

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".

Verwandte Skills