bgmusic
為影片尋找真正的音樂背景音軌,來自公有領域目錄,無需下載程式庫或歸功於任何人。
當內建音軌足夠時
public/sfx/ 已提供兩條背景音軌,且都不需要請求:
music-bed.mp3,一段 60 秒的環境嗡鳴聲。適合簡短的技術解說。pulse-bed.mp3,112bpm,並附有精確的提示網格pulse-bed.cues.json。這是唯一一首節拍鎖定剪輯精確而非估算的音軌,因為它是合成而非分析的。
當影片很短、以旁白為主,或音樂只需要不是靜音時,請使用它們。當影片是發布或宣傳片,且背景音軌承載情緒時,再去尋找。
兩個目錄
| 來源 | 內容 | 大小 |
|---|---|---|
lofi | btahir/open-lofi,166 首 lo-fi 音軌,分為 10 個類別 | 每條音軌約 3MB |
cc0 | SoundSafari/CC0-1.0-Music,約 9200 首音軌,來自 freepd、chosic、Free Music Archive、freesound 和 Pixabay | 每條音軌 2-15MB |
兩者均為 CC0-1.0。公有領域,商業使用沒問題,無需標註出處,影片說明中也無需任何內容。這就是為什麼這兩者被整合進來,而 plan_sound_effects 仍然引導使用者手動前往 Pixabay 尋找音效的原因。
有一個值得明確說明的注意事項:這個語料庫是社群彙整的,並依賴下架請求運作,因此每首音軌的 CC0 聲明是維護者的說法,而不是你親自閱讀過的授權。對於產品影片來說,這沒問題,且來源檔案會記錄來源。如果錯誤的授權會造成昂貴代價,請停留在 lofi,它只有一位作者、一個發行版、一份授權聲明。
流程
find_music_bed -> [使用者試聽] -> import_music_bed -> plan_music_cues -> stitch_composition
1. find_music_bed
使用純情緒或場景詞彙查詢:"calm focus coding"、"late night neon"、"warm upbeat"。標題和類別是比對的對象。
第一次呼叫會建立索引,大約七次 GitHub API 呼叫,快取在 output/music-index.json。後續搜尋是本機讀取。僅在目錄發布新版本後才傳遞 refresh: true。
lofi 類別是真實的中繼資料,因此 category: "ambient-lofi" 有效。語料庫音軌則沒有:那裡的音軌只是以來源網站命名的資料夾中的檔案名稱。當沒有任何匹配時,工具會回傳一個簡單的範例,並設定 matchedQuery: false。這是一個提示,表示要嘗試作曲家會實際放在標題中的詞彙,而不是放棄。
讓使用者挑選。 回傳三到五個候選音軌及其標題和類別。音樂關乎品味,錯誤的背景音軌比錯誤的字體更明顯。
2. import_music_bed
import_music_bed(id: "lofi:terminal-rain", out: "public/audio/music-bed.mp3", seconds: 45, start: 12)
除了下載之外的功能:從 start 開始裁剪 seconds 長度,淡入淡出,並正規化至 -20 LUFS,讓背景音軌位於旁白之下而非與之對抗。傳遞 raw: true 以跳過所有這些處理,保留音軌的原始發布狀態。
放置位置:
public/audio/music-bed.mp3用於合成的背景音軌。stitch_composition會自動附加該路徑,因此無需更改其他內容。public/imported_audios/(預設)用於其他任何內容,這是存放非來自內建套件的素材的資料夾。
它會在音軌旁寫入 <file>.source.json 和 MUSIC-SOURCES.md 行:id、標題、來源儲存庫、授權、日期。CC0 不需要這些。之所以存在,是為了讓一年後背景音軌的來源可以透過讀取檔案得知,而非猜測。
使用 start 跳過音軌的中間部分。開頭通常是最不實用的部分,而從強拍開始的背景音軌不需要編輯就能感覺有目的性。
3. plan_music_cues
在匯入的檔案上呼叫它。對於任何非 pulse-bed.mp3 的音軌,網格是從起音包絡估算的,因此請將其視為規劃指南:將少數主要揭露點對齊 strongCues,而不是每個剪輯點。docs/STYLE.md 中有容差說明。
成本與限制
- 沒有 vendored 任何內容。open-lofi 僅在其 554MB 的發行版 zip 檔案中發布音軌,因此匯入時會透過 HTTP 範圍請求讀取該 zip 檔案的中央目錄,並僅拉取所選成員的位元組。永遠不會下載完整的 554MB。
- 塑造背景音軌需要在 PATH 中有
ffmpeg。raw: true則不需要。 - GitHub 未經認證的 API 限制為每小時 60 個請求。建立索引大約需要七個。在經常重建索引的機器上設定
GITHUB_TOKEN。 - 索引快取位於
output/下,這是支架建立的專案已經 gitignore 的目錄。
不該做的事
- 不要將整個目錄提交到專案中。每個影片一條背景音軌是這裡的單位。
- 不要將音軌放入
public/sfx/。該資料夾是隨套件提供的包裝,而public/sfx/CREDITS.md說明了其中的內容以及為何不附帶條款。 - 不要將此用於音效。
plan_sound_effects會先檢查內建套件,然後才去尋找,這是音效的正確順序。