Communitygithub.com

andyluu98/VideoMotion

Chọn hoặc tạo nhạc nền cho dự án video, đo nhịp, rồi trộn với giọng (nhạc tự hạ khi có lời, chuẩn -14 LUFS). Dùng ở bước 6 của /videomotion, hoặc khi người dùng gửi file nhạc, nói "đổi nhạc", "nhạc sôi động hơn", "nhạc nhỏ lại".

What is VideoMotion?

VideoMotion is a Claude Code agent skill that chọn hoặc tạo nhạc nền cho dự án video, đo nhịp, rồi trộn với giọng (nhạc tự hạ khi có lời, chuẩn -14 LUFS). Dùng ở bước 6 của /videomotion, hoặc khi người dùng gửi file nhạc, nói "đổi nhạc", "nhạc sôi động hơn", "nhạc nhỏ lại".

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

Ask in your favorite AI

Open a new chat with this agent skill pre-loaded.

Documentation

Nhạc nền

Biến VV, PY như trong skill videomotion.

Chọn nguồn (theo thứ tự)

  1. Người dùng đưa file nhạc: chép vào <du-an>/music/bgm.<đuôi> rồi chuyển sang bgm.wav: ffmpeg -y -i <file> -ar 48000 -ac 2 <du-an>/music/bgm.wav. Nhạc ngắn hơn video thì báo người dùng (bộ trộn sẽ để lặng phần thiếu).
  2. ACE-Step (chưa có trong bản này; khi được cài sẽ ghi ở đây).
  3. Nhạc tổng hợp bằng code (mặc định khi không có 1 và 2):
"$PY" "$VV/tools/music/synth.py" <du-an> --duration <total trong words.json> --mood <mood> [--bpm N] [--seed N]

Chọn mood theo style và nội dung:

moodNhịp mặc địnhHợp với
calm84whiteboard, giải thích chậm, chủ đề nghiêm túc
inspiring96explainer, đào tạo, câu chuyện tích cực
upbeat112quảng cáo, promo, swiss-motion
tech104dark-keynote, sản phẩm công nghệ, dataviz

Đổi --seed để có giai điệu khác cùng mood. Không bao giờ tải nhạc từ web về đóng gói vào repo hay dự án nếu người dùng không đưa file và không xác nhận giấy phép.

Đo nhịp (khi cần cắt cảnh theo beat)

Nhạc tổng hợp đã có music/beats.json. Nhạc người dùng đưa thì đo bằng script chép từ bestagentkits:

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

Ghi BPM và BEAT0 in ra vào music/beats.json ({"bpm":..,"beat0":..,"source":"fit-beat-grid"}). Cột dB từng ô nhịp cho biết chỗ nhạc dâng (build) và bùng (drop): đặt cảnh cao trào của kịch bản trùng chỗ drop nếu được.

Trộn

"$PY" "$VV/tools/audio/mix.py" mix <du-an> [--music-db -6] [--duck-db 5]
  • --music-db: nhạc so với giọng khi đang nói (mặc định -6 dB). Người dùng nói "nhạc nhỏ lại" thì giảm (-9); "không nghe thấy nhạc" thì tăng (-4).
  • --duck-db: nhạc to thêm bao nhiêu lúc không có lời (mặc định 5 dB).
  • In MIXDONE I=<LUFS> TP=<dBTP>. Đạt khi I trong khoảng -14 ± 0,5 và TP không quá -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".

Related Skills