背景音樂
變數 VV、PY 與 skill videomotion 相同。
選擇來源(依序)
- 使用者上傳音樂檔案: 複製到
<專案>/music/bgm.<副檔名>然後轉換為bgm.wav:ffmpeg -y -i <檔案> -ar 48000 -ac 2 <專案>/music/bgm.wav。如果音樂比影片短,通知使用者(混音器會讓缺少的部分靜音)。 - ACE-Step(此版本尚未包含;安裝後會在此處記錄)。
- 程式合成音樂(當沒有 1 和 2 時的預設值):
"$PY" "$VV/tools/music/synth.py" <專案> --duration <words.json 中的 total> --mood <mood> [--bpm N] [--seed N]
根據風格和內容選擇 mood:
| mood | 預設節拍 | 適合用於 |
|---|---|---|
| calm | 84 | 白板、慢速解說、嚴肅主題 |
| inspiring | 96 | 解說影片、培訓、正向故事 |
| upbeat | 112 | 廣告、宣傳片、swiss-motion |
| tech | 104 | dark-keynote、科技產品、資料視覺化 |
更改 --seed 可以在相同 mood 下獲得不同的旋律。如果使用者沒有提供檔案且未確認授權,絕對不要從網路下載音樂並將其打包到儲存庫或專案中。
測量節拍(當需要根據節拍剪輯場景時)
合成音樂已經有 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 欄位顯示音樂的漸強(build)和爆發(drop)位置:如果可能,將腳本的高潮場景放在 drop 位置。
混合
"$PY" "$VV/tools/audio/mix.py" mix <專案> [--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 時視為達標。