節拍同步蒙太奇建構器 是做什麼的?
概述
在歌曲已透過 $song-edit-analysis 分析完成,或已有等效的節拍/剪輯標記數據時使用此技能。目標不僅是將片段放在音樂下;剪輯應感覺是為歌曲精心設計,主題轉變、衝擊、人群反應和視覺重點都落在有意義的音樂標記上。
整合特效規則(不可協商,2026年7月實戰驗證)
特效和素材絕不能分離。不得在全畫面特效區段和全畫面真實片段之間交替切換節拍——這看起來像兩個影片拼接在一起。每個特效必須錨定在 (a) 主體的遮罩(逐幀人物遮罩——在macOS上使用Apple Vision VNGenerateForegroundInstanceMaskRequest 或等效方法),(b) 場景幾何(天空中的傳送門、角落固定的螢幕、水面反射、邊緣包裹的光暈),或 (c) 片段本身的像素(即時畫面的萬花筒/鏡像、高光拖尾、幀歷史的時間漣漪)。程序化渲染作為場景內元素進入片段——透過天空、螢幕、門道、反射——絕不能作為切斷的區段。未經追蹤的螢幕混合元素看起來像貼紙。相關法則:好看勝過遵循參數(寧可重構也不要交付不連貫的作品);每個剪輯使用一種特效語言,隨歌曲結構升級——每個片段使用一次性樣式會破壞連貫性;每個片段都要有豐富且投入的色彩分級(純粹的克制看起來沖淡且無聊;有效的公式是豐富濃郁的分級 + 每個片段一次紮實的現實扭曲)。對於情感分享類作品,偏好一個連續鏡頭搭配光測量轉換(由歌曲包絡驅動的分級漸變/光線到來/綻放)——建構上就不可能出現接縫。
合成陷阱:螢幕混合必須在 RGB 格式(format=gbrp)下進行——在 YUV 中,黑色的色度為 128,螢幕混合會使畫面充滿洋紅色。將不透明度作為 RGB lutrgb 乘法來處理。
剪輯引擎
兩個時鐘,每個軌道選擇一個:
- 起音鎖定(偏好用於能量/留存軌道):
librosa.onset.onset_detect(onset_envelope=onset_strength(...), hop_length=512, backtrack=False, delta=0.02, units="time");合併距離小於 0.13 秒的起音,保留較強者;量化int(round((t-t0)*FPS));強制第 0 幀;在每個倖存的起音上剪輯——稀疏時保持,密集時爆發;在四分位數以上強度的起音上做縮放強調。需要大量素材池(約 60 個以上已門控的片段)。優先於密度預設使用此方法。 - 標記/優先驅動(此套件的原始引擎): 根據下方的優先級表格在主要/次要標記上剪輯——仍適用於橫式遊戲精華剪輯和中等密度剪輯。
- 將任何估計的節拍網格對齊到實際偵測到的起音(當在 60 毫秒內時);對於風格轉換/變形時刻,使用無條件捨去而非四捨五入,使變化落在包含瞬態的幀上。
建構架構
- 區段渲染 → 拼接 → 後期圖形(僅 ffmpeg): 每個片段的 mp4 檔案,包含封面裁剪(
scale=W:H:force_original_aspect_ratio=increase:flags=lanczos,crop=W:H,HDR 來源先色調映射到 bt709,tpad=stop_mode=clone以凍結延長短片段——絕不縮短音樂網格),使用 concat demuxer-c copy,一個filter_complex內部調色(eq=contrast=1.05:saturation=1.08,暈影,透過noise=alls=5:allf=t+u產生底片顆粒),音訊最後混入並加上淡入淡出效果。 - 幀管線 numpy(逐像素整合特效): 解碼 ffmpeg→rawvideo rgb24→numpy 迴圈→在 CRF 17 下編碼 ffmpeg 標準輸入。經過驗證的遮罩管線:渲染一個乾淨分級的
base.mp4(鎖定的剪輯)→在基礎影片上生成人物遮罩→從逐幀特效表格驅動特效→混入原始音訊。同步性完美無瑕。 - 著色器內融合(moderngl GLSL): 素材解碼到紋理中,程序化世界在同一個片段著色器中渲染,剪輯點透過
--cuts傳入,使其作為著色器內的扭曲衝擊點落地。最深度的整合;參見$generated-media-sourcing獲取渲染器骨架。
輸入
偏好這些輸入:
- 音訊檔案或一個擷取視窗。
- 來自
$song-edit-analysis的*_cut_markers_30fps.csv。 - 素材來源或包含片段路徑、類別、權重和使用說明的來源清單。
- 當使用者要求生成的片段/圖像或原始素材不完整時,來自
$generated-media-sourcing的生成媒體清單或生成的資產資料夾。 - 所需格式:
9:16、16:9或兩者。 - 目標時長,通常是社交精華剪輯的
30-40s。
如果還沒有剪輯標記 CSV,請先執行 $song-edit-analysis。
工作流程
- 在渲染前選擇音樂視窗。使用歌曲分析選擇一個高能量或敘事連貫的
30-40s區間。 - 盤點素材。使用
scripts/scan_video_sources.py對候選影片進行運動、發光、亮度、飽和度和建議開始時間的評分。 - 如果缺少真實素材或使用者要求生成媒體,請在最終來源映射前使用
$generated-media-sourcing創建或規劃生成的片段和靜態圖板。 - 建立來源分類法。常見類型:
gameplay、crowd、real_laser、photos_festival、photos_nature、character_select、menu、reaction、product、broll、generated_video、generated_still。 - 從相鄰的剪輯標記建立區段計畫。跳過低於約
0.17s的微區段,除非曲目確實需要斷續剪輯。 - 將素材強度匹配到標記優先級:
- 優先級 1-2:設定、背景、維持、溫和運動。
- 優先級 3:中等動作、角度變化、節奏性 B-roll。
- 優先級 4:積極運動、快速剪輯、反應回答。
- 優先級 5:最佳衝擊、揭露、擊倒、人群高潮、雷射閃光。
- 使用重點作為標點,而非填充物。真實雷射、人群爆點、自然閃光、選單時刻、生成的圖板和抽象燈光應放大樂句轉折、小鼓、填充和 Drop。
- 渲染區段、拼接、附上乾淨的音訊擷取,然後輸出:
- 最終影片
- 時間軸 CSV
- 連絡表
- 包含來源混合、類型混合、尺寸、歌曲視窗和創作意圖的簡要 JSON
- 在宣稱剪輯完成前執行
$edit-delivery-qa。
渲染模式
對於包含橫式素材的直式剪輯,保持主要動作可讀:
- 使用來自同一片段的滿版模糊/增強背景。
- 將清晰的前景以穩定的比例和 Y 位置居中疊加。
- 僅在必要時添加微妙的頂部/底部分隔線。
- 避免會遺失舞台、發射方向、臉部或重要 UI 的緊湊直式裁剪。
對於滿版重點素材:
- 縮放/裁剪以填滿輸出格式。
- 提高對比度/飽和度,使其能快速被閱讀。
- 保持雷射/音樂節/反應重點的簡短:通常為
2-12幀或一個節拍。
對於橫式遊戲剪輯:
- 保持全畫面動作可見。
- 偏好
1920x1080,最低30fps。 - 在高能量部分使用快速的單拍剪輯,但保持來源的可讀性。
素材選擇規則
偏好明顯的畫面動作:衝擊、碰撞、尖峰、揭露、快速連擊串、富表現力的反應或高運動光效時刻。
將爆炸性的人物反應鏡頭保留用於重大衝擊後的呼應。不要自動拒絕僅有人群的素材;只拒絕薄弱、緩慢或視覺上平淡的反應。
盡可能使用真實素材進行最終的雷射/音樂節重點。生成的佔位符可用於探索,但如果存在真實來源,請在最終交付前替換它們。
拒絕或大幅降低以下素材的優先級:標題卡、訪談、無特定作用的選單、空白舞台、平淡的靜態畫面、過度裁剪的動作以及高峰部分的低運動設定。
生成的片段和靜態圖像必須在時間軸/簡要輸出中標記為 generated_video 或 generated_still,並包含使用的提示以及資產是 final_ok、replace_if_real_source_found 還是 placeholder_only。
時間安排啟發法
- 使用主要標記進行硬剪輯、主題轉變、衝擊、揭露和速度斜坡著陸。
- 使用次要標記進行連續剪輯、角度變化、小 B-roll 交換和速度斜坡開始。
- 在高能量段落,對於密集的社交蒙太奇,平均區段長度約
0.35-0.50s效果良好。 - 對於
35s的精華剪輯,當素材能夠支援時,70-90個區段是一個強目標。 - 將最強的素材保留給能量最高的部分;不要在設定階段就用完所有巔峰素材。
直式音樂影片模式(2026年7月)
對於 9:16 音樂推廣(與 Smash 模式並行的較新軌道):始終使用 1080×1920@30;無縫循環結尾(光測量狀態在最後約 22 幀內恢復到第 0 幀);鉤子文字採用第二行動態(第 1 行在第 0 幀靜止,第 2 行在 0.8–1.3 秒內於真實起音的 ±100 毫秒內節拍融合出現);使用 Sweeps 風格容器(黑色畫布、居中素材視窗、上方等寬鉤子文字、下方致謝)或滿版電影風格。在穩定的基礎設施上迭代為編號版本——僅在版本之間更改特效語言;當客戶喜歡一個 2 秒的瞬間時,讓那個瞬間成為下一個版本的整個語言。
來自 Conteto Machino 的專案模式
來自 Smash Mash 專案的可重用形狀:
- 歌曲視窗:約
52.98s-88.17s,一個35.19s的高能量摘錄。 - 密集的標記驅動剪輯:大約每個節拍或主要標記一個區段。
- 主要遊戲/動作占主導地位。
- 人群、真實雷射、自然和選單/來源背景時刻作為簡短的標點出現。
- 交付物包括最終 MP4、連絡表、時間軸 CSV 和簡要 JSON 檔案。
有關詳細標準,請閱讀 references/conteto-edit-standard.md。
可選參考資料:
references/example-prompts.md:未來編輯任務的可重用提示。references/file-schemas.md:靈活的時間軸 CSV 和簡要 JSON 格式。references/render-recipes.md:從此專案改編的 FFmpeg/佈局配方。references/gui-vision.md:未來圖形化工作流程的產品願景。
腳本
當你需要可重用的素材庫存時,使用 scripts/scan_video_sources.py:
python3 scripts/scan_video_sources.py /path/to/videos --out /path/to/source_inventory
它會輸出一個 CSV 和 JSON,包含媒體時長、粗略的運動/發光度分數以及建議的開始時間。使用輸出建立素材池,並防止反覆從相同的死氣沉沉時刻進行剪輯。