Communitygithub.com

andyluu98/VideoMotion - 배경 음악

비디오 프로젝트의 배경 음악을 선택하거나 생성하고, 비트를 감지한 후 내레이션과 믹싱합니다(음성이 있을 때 음악이 작아지고, -14 LUFS 표준 준수). /videomotion의 6단계에서 사용하거나, 사용자가 음악 파일을 보내거나 "음악 변경", "더 신나는 음악", "음악 볼륨 낮춰"라고 말할 때 사용됩니다.

VideoMotion - 배경 음악란 무엇인가요?

이 기술은 AI 비디오 제작 워크플로우의 일부로, 프로젝트에 적합한 배경 음악을 선택, 합성 및 믹싱합니다. 사용자가 제공한 오디오 파일, 스크립트 기반 음악 합성 등 우선순위에 따라 소스를 처리합니다. 또한 합성된 음악 또는 사용자 제공 음악에서 BPM과 비트 그리드를 감지하여 비디오 편집이 비트에 맞춰지도록 합니다. 마지막 단계는 음악과 내레이션을 믹싱하며, 음성이 있는 동안 음악을 자동으로 낮추고(ducking) 전체 출력이 전문 방송 표준(-14 LUFS, 최대 피크 -1.0 dBTP)을 충족하도록 합니다. 이는 Claude Code, Cursor, Codex와 같은 AI 코딩 에이전트와 작동하도록 설계되었으며, Python 스크립트와 ffmpeg를 활용하여 오디오 처리를 수행합니다.

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

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

배경 음악

videomotion 기술에서 사용되는 VV, PY 변수를 따릅니다.

소스 선택 (우선순위)

  1. 사용자가 음악 파일 제공: 파일을 <project>/music/bgm.<extension>에 복사한 후 bgm.wav로 변환합니다: ffmpeg -y -i <file> -ar 48000 -ac 2 <project>/music/bgm.wav. 음악이 비디오보다 짧으면 사용자에게 알립니다(믹서는 부족한 부분을 무음으로 처리).
  2. ACE-Step (이 버전에는 없음, 설치 시 여기에 기록됨).
  3. 코드로 합성된 음악 (1번과 2번이 없을 때 기본값):
"$PY" "$VV/tools/music/synth.py" <project> --duration <words.json의 총 재생 시간> --mood <mood> [--bpm N] [--seed N]

스타일과 콘텐츠에 따라 mood를 선택합니다:

mood기본 BPM적합한 용도
calm84화이트보드, 느린 설명, 진지한 주제
inspiring96설명 영상, 교육, 긍정적인 이야기
upbeat112광고, 프로모션, 스위스 모션
tech104다크 키노트, 기술 제품, 데이터 시각화

--seed를 변경하여 동일한 분위기에서 다른 멜로디를 얻습니다. 사용자가 파일을 제공하지 않고 라이선스를 확인하지 않는 한 웹에서 음악을 다운로드하여 저장소나 프로젝트에 패키징하지 마십시오.

비트 감지 (비트에 맞춰 장면을 편집해야 할 때)

합성된 음악에는 이미 music/beats.json이 있습니다. 사용자가 제공한 음악은 bestagentkits에서 가져온 스크립트로 감지합니다:

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

BPM과 BEAT0을 출력하여 music/beats.json에 기록합니다 ({"bpm":..,"beat0":..,"source":"fit-beat-grid"}). 각 마디의 dB 열은 음악이 올라가는(build) 부분과 떨어지는(drop) 부분을 나타냅니다: 가능하면 스크립트의 클라이맥스 장면을 드롭 부분에 맞춥니다.

믹싱

"$PY" "$VV/tools/audio/mix.py" mix <project> [--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".

관련 스킬