Communitygithub.com

andyluu98/VideoMotion

Seleciona ou cria música de fundo para projetos de vídeo, mede o ritmo e mistura com a narração (música abaixa automaticamente quando há fala, normalizada para -14 LUFS). Usado na etapa 6 do /videomotion, ou quando o usuário envia um arquivo de música, diz "trocar música", "música mais animada", "música mais baixa".

O que é VideoMotion?

Este skill gerencia a trilha sonora de projetos de vídeo criados com o fluxo /videomotion. Ele permite selecionar ou gerar música de fundo, medir o BPM para sincronizar cortes e mixar o áudio final com a narração, garantindo que a música abaixe automaticamente durante a fala (ducking) e que o nível geral atinja -14 LUFS. O skill suporta três fontes de música, na ordem: arquivo enviado pelo usuário, música gerada sinteticamente por código (padrão) e, futuramente, integração com ACE-Step. Para música gerada, o usuário pode escolher entre diferentes humores (calmo, inspirador, animado, tech) que influenciam o andamento e o estilo. O skill também inclui ferramentas para detectar batidas em arquivos de áudio fornecidos pelo usuário, gerando um arquivo `beats.json` que pode ser usado para alinhar cenas do vídeo com a batida da música. O processo de mixagem final combina narração e música com parâmetros ajustáveis de volume relativo e ducking, e valida se o resultado atende aos padrões de loudness (LUFS) e pico verdadeiro (True Peak). O skill é executado como parte do pipeline do /videomotion, mas também pode ser acionado diretamente por comandos do usuário para ajustar ou trocar a música.

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

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Música de Fundo

As variáveis VV e PY são as mesmas do skill videomotion.

Selecionar fonte (em ordem)

  1. Usuário envia um arquivo de música: copie para <projeto>/music/bgm.<extensão> e converta para bgm.wav: ffmpeg -y -i <arquivo> -ar 48000 -ac 2 <projeto>/music/bgm.wav. Se a música for mais curta que o vídeo, avise o usuário (o mixer deixará silêncio na parte que falta).
  2. ACE-Step (ainda não implementado nesta versão; quando instalado, será listado aqui).
  3. Música sintetizada por código (padrão se 1 e 2 não estiverem disponíveis):
"$PY" "$VV/tools/music/synth.py" <projeto> --duration <total em words.json> --mood <humor> [--bpm N] [--seed N]

Escolha o humor de acordo com o estilo e o conteúdo:

humorAndamento padrãoAdequado para
calm84whiteboard, explicações lentas, temas sérios
inspiring96explainer, treinamento, histórias positivas
upbeat112anúncios, promos, swiss-motion
tech104dark-keynote, produtos de tecnologia, dataviz

Altere --seed para obter uma melodia diferente com o mesmo humor. Nunca baixe música da web para empacotar no repositório ou projeto, a menos que o usuário forneça o arquivo e confirme a licença.

Medir ritmo (quando for necessário cortar cenas no beat)

Música sintetizada já possui music/beats.json. Para música fornecida pelo usuário, meça usando o script copiado do bestagentkits:

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

Isso grava BPM e BEAT0 em music/beats.json ({"bpm":..,"beat0":..,"source":"fit-beat-grid"}). A coluna dB de cada batida indica onde a música sobe (build) e explode (drop): coloque a cena de clímax do roteiro coincidindo com o drop, se possível.

Mixar

"$PY" "$VV/tools/audio/mix.py" mix <projeto> [--music-db -6] [--duck-db 5]
  • --music-db: volume da música em relação à narração quando há fala (padrão -6 dB). Se o usuário disser "música mais baixa", reduza para -9; se disser "não ouço a música", aumente para -4.
  • --duck-db: quanto a música aumenta durante os silêncios da narração (padrão 5 dB).
  • Imprime MIXDONE I=<LUFS> TP=<dBTP>. É considerado bem-sucedido quando I está entre -14 ± 0,5 e TP não ultrapassa -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".

Habilidades Relacionadas