AGE OF CAPRICORN  ·  build report製作報告
The finished cut — Boards of Canada, “Age of Capricorn.” Watch first, then read how it was made.成品 —— Boards of Canada〈Age of Capricorn〉。先看片,再看它是怎麼做出來的。
Transmission log · edited by prompt訊號紀錄 · 以對話剪輯

Cutting a music video by talking to an agent用對話,剪出一支 MV

A 3:52 music video for Boards of Canada's “Age of Capricorn” — assembled entirely inside Claude Code with ffmpeg and a little librosa. No Premiere. No DaVinci. The only brief: match and amplify the energy of the song. 一支長 3:52、為 Boards of Canada〈Age of Capricorn〉製作的 MV — 全程在 Claude Code 裡,用 ffmpeg 與少量 librosa 完成。沒有 Premiere,沒有 DaVinci。唯一的命題:貼合並放大歌曲的能量。

13 source clips  ·  156 beat-locked cuts  ·  8 iterations  ·  0 timelines dragged by hand 13 段素材  ·  156 個對拍剪點  ·  8 次迭代  ·  0 條手動拖曳的時間軸
117.5
BPM detected偵測到的 BPM
6
liturgical acts儀式樂章
156
cuts剪點
4:3
CRT frameCRT 畫幅
3
Paik walls白南準電視牆
~7min
render / pass每次算圖
CH.01
The short version先講結論

A montage that breathes with the music, written as code一支跟著音樂呼吸的剪輯,以程式寫成

Instead of scrubbing a timeline in an editor, the entire edit is a small program. The song is analysed for tempo, structure and “drops”; a director layer turns that analysis into a list of cuts, layouts and effects; ffmpeg renders it; and each round of feedback is a prompt, not a mouse.

The footage is deliberately meaningless — thirteen unrelated AI-generation test renders. The music supplies all the meaning. The system's job is to feel the track's rise and fall and cut to it: sparse and slow at the open, a relentless grid at the peak, a collapse at the end.

整支片子不是在剪輯軟體裡拖時間軸,而是一支小程式。先分析歌曲的速度、結構與「drop」;再由一層「導演」邏輯把分析轉成剪點、版面與特效清單;最後交給 ffmpeg 算圖。而每一輪修改,靠的是一句話,不是滑鼠。

素材刻意是「無意義」的 —— 十三段彼此無關的 AI 生成測試影片。意義全由音樂提供。系統的工作,是去感受歌曲的起伏並依此下刀:開場稀疏而緩慢,高潮處是密不透風的電視牆,結尾則歸於崩解。

A wall of many CRT monitors, the climax reveal
The climax — a ~24-monitor Nam June Paik wall the camera pulls back to reveal.高潮 —— 一面約 24 台螢幕的白南準電視牆,鏡頭拉遠揭示全貌。
CH.02
Background背景

Why edit by prompt at all為什麼要用對話來剪輯

The brief — the director's opening prompt, word for word原始命題 —— 導演的開場指令,一字不改

“planning on making a highly produced music video, want to discuss with you to start, (creatively)… the song music is already prepped age-of-capricorn.mp3, and all the footages in videos/.

Vibe of the music: Its age of capricorn by boards of canada from their new album inferno, the tone is dark, electronic and their theme often linked with occults and just cults in general. This piece has some notable samples, one is a chant from "Door of My Heart (Chant by Paramhansa Yogananda)" and a monologue from televangelist Jack Van Impe's 1990 video tape "A.D. 2000: The End?"

Keep those themes and material in mind… those are simply some testing footages from my work, no coherent theme nor visual consistency, the point is to use edit to make them fit together in a fragmented and mysterious way… The edit should focus on 2 parts: 1. Pacing — you need to actually analyse the music and break it down with music theory, into layers and beats composites. 2. Visually we need to adopt the aesthetic of 70s CRT TV signal artifacts, like chromatic aberation and those other ghostly artifacts and the gridded effect.”

— the kickoff message that set every constraint below.—— 這則開場訊息,定下了以下所有的限制條件。

The motivation was a workflow experiment: could a video edit be iterated as fast as code — describe a change in a sentence, see a render, refine — without opening an NLE? For a free-form, non-narrative piece where the goal is energy rather than story, that loop is appealing. There's no continuity to protect, so the machine is free to chop, mirror, stack and corrupt.

The track

Boards of Canada — “Age of Capricorn.” Dark, tape-saturated electronica with an occult undertow. It carries two found-audio samples that set the whole tone: a devotional chant (Paramhansa Yogananda's “Door of My Heart”) and a televangelist's apocalypse monologue (Jack Van Impe's 1990 “A.D. 2000: The End?”). Those two poles — prayer and doomsday broadcast — became the film's concept.

The footage

Thirteen clips, all byproducts of day-job design-technology work: test renders from AI video and generation tools (Veo, AnimateDiff, ReActor + ACE++, InfiniteTalk and others). No shared subject, no shared look — a knitted puppet, a woman on a giant chessboard, subway platforms, a segmentation-mapped figure, product UI. Treated purely as raw signal.

動機是一場工作流程實驗:一支影片能不能像寫程式一樣快速迭代 —— 用一句話描述修改、看算圖結果、再修 —— 而完全不打開剪輯軟體?對於一支自由、非敘事、追求「能量」而非「故事」的片子,這個循環格外吸引人。沒有連戲要顧,機器就能自由地切、鏡射、堆疊與破壞。

這首歌

Boards of Canada 的〈Age of Capricorn〉。陰暗、帶著磁帶飽和感的電子樂,暗藏神祕學的氣息。曲中有兩段取樣定調了全片:一段祈禱吟唱(Paramhansa Yogananda 的〈Door of My Heart〉),與一段電視佈道家的末日獨白(Jack Van Impe 1990 年的〈A.D. 2000: The End?〉)。祈禱與末日廣播這兩極,成了本片的概念核心。

這些素材

十三段影片,全是本職設計技術工作的副產品:來自 AI 影片與生成工具(Veo、AnimateDiff、ReActor + ACE++、InfiniteTalk 等)的測試輸出。沒有共同主題、沒有統一風格 —— 一隻針織玩偶、一位站在巨大棋盤上的女子、地鐵月台、被語意分割的人像、產品介面。它們純粹被當作「訊號」原料。

Contact sheet of the thirteen unrelated source clips
The raw material: 13 unrelated test renders, no shared theme.原料:13 段彼此無關的測試影片,毫無共同主題。
CH.03
Creative concept創作概念

A liturgy playing on a dying television一場在瀕死電視上播送的儀式

The chant and the sermon suggested a rite. The song's dynamics fall into six movements, so the edit is structured as a liturgy in six acts: Invocation → Procession → Litany → Ascent → Sermon → Benediction. Everything is framed as a corrupted 1970s CRT broadcast — a hijacked transmission where the images surface, repeat and decay like a signal losing hold. The recurring motifs (the knitted idol, the red priestess, chess pieces) behave as “signal ghosts” the broadcast can't stop replaying.

The CRT is not a filter laid on top — it is the narrator. Screens are physical monitors on black; the frame is 4:3; the picture bends over glass, blooms, and rolls when the signal slips.

吟唱與佈道暗示著一場儀式。歌曲的動態剛好落成六個段落,於是整支剪輯被結構成一場六幕儀式召喚 → 行進 → 連禱 → 上升 → 佈道 → 祝禱終場。一切都被框在一台被劫持的 1970 年代 CRT 廣播裡 —— 影像如同抓不住的訊號,浮現、重複、衰減。反覆出現的母題(針織偶像、紅衣祭司、西洋棋子)像是廣播停不下來、不斷重播的「訊號幽靈」。

CRT 不是疊在最上層的濾鏡 —— 它就是敘事者。畫面是黑底上的實體螢幕;畫幅為 4:3;影像在玻璃上彎曲、暈開,並在訊號失鎖時上下滾動。

A single tall screen centered in black
Invocation — one centered monolith, vast black.召喚 —— 置中的單一巨碑,大片黑。
Three equal screens in a centered row
Litany — three equal screens, altar-symmetric.連禱 —— 三等分螢幕,祭壇式對稱。
CH.04
Art direction & the reference藝術方向與參照

Nam June Paik, and the screen as an altar白南準,以及作為祭壇的螢幕

The look has one patron saint: Nam June Paik — the reference the director brought to the table, and the lens the whole aesthetic is built through.

Paik (1932–2006) is the father of video art — the first artist to treat the television set not as a window but as raw material. He stacked sets into walls, bent their pictures with magnets, buried them in gardens, and made the broadcast signal itself into something you could sculpt and corrupt.

Why this reference

Three things make him the right patron for this piece, and they fold neatly into the song's cultic undertow:

  • The video wall / the dying signal. Paik invented the massed monitor grid (Electronic Superhighway, Megatron) — exactly the shape the climax needed: a bank of screens the camera pulls back to reveal, a signal multiplying as it loses its hold.
  • The TV as a sacred object. TV Buddha sets a statue before its own live image; TV Cross puts the set on an altar. That is precisely the register this track wants — a devotional chant on one side, a doomsday sermon on the other: screens as idols, the broadcast as a rite.
  • Energy without narrative. Paik's monitor works carry pure image-as-signal with no story to tell — the same permission the brief gave the footage: fragmented, mysterious, meaningful only as texture.

Put together: Paik's TV-as-shrine, crossed with Boards of Canada's occult haze, gives the film its one governing image — the screen as an altar broadcasting a rite that is already breaking up.

整體視覺只有一位守護聖徒:白南準(Nam June Paik) —— 這是導演帶進來的參照,也是整套美學藉以成形的透鏡。

白南準(1932–2006)是錄像藝術之父 —— 第一位把電視機當成材料、而非「窗口」的藝術家。他把電視堆成牆、用磁鐵扭曲畫面、把它們埋進花園,並將廣播訊號本身變成可以雕塑、可以破壞的媒材。

為什麼選這個參照

有三點讓他成為這支片子最合適的守護者,而它們恰好都能收進歌曲的神祕學暗流裡:

  • 電視牆/失鎖的訊號。白南準發明了成排成陣的螢幕矩陣(《電子高速公路》、《Megatron》)—— 這正是高潮所需的形狀:一整面螢幕,鏡頭拉遠才揭示全貌,訊號在失去掌控的同時不斷增殖。
  • 電視作為聖物。《TV Buddha》讓佛像凝視自己的即時影像;《TV Cross》把電視擺上祭壇。這恰是這首歌想要的調性 —— 一邊是祈禱吟唱,一邊是末日佈道:螢幕即偶像,廣播即儀式。
  • 沒有敘事的能量。白南準的螢幕作品承載的是純粹的「影像即訊號」,不講故事 —— 這正是命題賦予素材的同一種自由:破碎、神祕,只作為質地而存在。

三者合一:白南準的「電視即神龕」,疊上 Boards of Canada 的神祕學迷霧,給了本片唯一的統御意象 —— 螢幕作為一座祭壇,播送著一場早已開始崩解的儀式。

The look, decision by decision — who called what逐項的創作決定 —— 各自出自誰

This was a back-and-forth, not a hand-off. To be honest about it: You = the director's calls; Me = what the agent proposed and built; Both = arrived at together.

這是一來一往,而非單向交付。誠實標註:You=導演的決定;Me=代理提出並實作的部分;Both=共同達成。

Theme主題

YouThe occult / cult tone, and the two found-audio samples — the Yogananda chant and the Van Impe sermon — as the thematic anchors to keep in mind.神祕/邪教的調性,以及兩段取樣 —— Yogananda 的吟唱與 Van Impe 的佈道 —— 作為必須謹記的主題錨點。

Footage logic素材邏輯

YouUse the unrelated test renders “in a fragmented and mysterious way,” as pure signal with no context significance.把彼此無關的測試影片「以破碎而神祕的方式」使用,作為沒有脈絡意義的純訊號。

Pacing method節奏方法

YouDrive the whole edit from a real music analysis — break the track down with music theory into beats and layers.讓整支剪輯由真正的音樂分析驅動 —— 用樂理把歌曲拆解成拍點與層次。

CRT lookCRT 質感

YouThe 70s CRT signal aesthetic itself — chromatic aberration, ghosting, the gridded scanline effect.70 年代 CRT 訊號美學本身 —— 色差、殘影、格狀掃描線效果。

Reference參照

BothNam June Paik was your pick; I mapped it onto the escalating monitor-wall climax and the “altar” framings.白南準是你選的參照;我把它對應到逐步升級的電視牆高潮與「祭壇」構圖上。

Six-act rite六幕儀式

MeReading the song's six sections as a liturgy: Invocation → Procession → Litany → Ascent → Sermon → Benediction.把歌曲的六個段落讀成一場儀式:召喚 → 行進 → 連禱 → 上升 → 佈道 → 祝禱終場。

Narrative敘事框架

MeFraming it all as a hijacked, decaying transmission, with the recurring motifs as “signal ghosts” the broadcast can't stop replaying.把整體框成一段被劫持、正在衰減的傳輸,反覆的母題則是廣播停不下來、不斷重播的「訊號幽靈」。

Energy devices能量手法

MeThe drop-triggered hero shots, the 1.0× phasing lull, the 10→16→24 wall escalation, and the act-by-act cadence ramp.由 drop 觸發的英雄鏡頭、原速的相位留白、10→16→24 的電視牆升級,以及逐幕遞增的剪接節奏。

Symmetry對稱系統

MeThe centered, bilaterally symmetric “projection of power” layout family.置中、左右對稱的「權力投射」版面家族。

The build實作

MeAll of the librosa analysis and the ffmpeg filtergraph code that turns the plan into pixels.所有 librosa 分析,以及把計畫變成畫面的 ffmpeg 濾鏡圖程式碼。

Look-dev loop試看迴圈

Bothv1→v8: your reviews — “too magenta,” “projection of power,” “brighter” — became my changes each round.v1→v8:你的檢視 ——「太洋紅」、「權力的投射」、「再亮一點」—— 每一輪都變成我的修改。

CH.05
How it works運作方式

The pipeline: analysis in, ffmpeg out流程:分析進,ffmpeg 出

No Remotion. No React. No After Effects, Premiere or DaVinci — no timeline at all. The whole film is a Python program that writes ffmpeg filtergraphs, steered by a one-time librosa analysis of the song. Six small modules turn the mp3 into a render: analysis and the “edit map” are data; the look and the compositing are ffmpeg; every output is versioned so nothing is overwritten.

沒有 Remotion,沒有 React,沒有 After Effects、Premiere 或 DaVinci —— 根本沒有時間軸。整支片子是一支會寫 ffmpeg 濾鏡圖的 Python 程式,由一次性的 librosa 歌曲分析所驅動。六個小模組把 mp3 變成成品:分析與「剪輯地圖」是資料,風格與合成交給 ffmpeg,每次輸出都有版本、不會被覆蓋。

age-of-capricorn.mp3
01_analyze.py
librosa · tempo · beats · sections · band energy · drops
edit_map.py
director · acts · cadence ramp · layouts · hero drops · walls
+ videos/ (13 clips) · layouts.py · crt.py · make_assets.py+ videos/(13 段)· layouts.py · crt.py · make_assets.py
03_compose.py
per-cut ffmpeg filtergraphs — monitor mask · curve · glass · roll逐刀 ffmpeg 濾鏡圖 — 螢幕遮罩 · 彎曲 · 玻璃 · 滾動
04_render.py
concat → room / halation pass → mux串接 → 房間/暈光層 → 混流
versions/vN
4:3 · 16:9 · review

1 · Listening to the song 01_analyze.py

The song is decoded once at 22 kHz and handed to librosa, which measures it four ways. Beat tracking from the onset-strength envelope gives the tempo (117.5 BPM) and the position of all 456 beats. A novelty curve — where the sound changes most — is peak-picked to find the six section boundaries. A single STFT is split into per-band energy envelopes — bass (20–200 Hz), mid (200–2 kHz), presence (2–8 kHz) and overall RMS loudness — the numbers that later drive both the cutting and the corruption. A spectral-flatness + formant-band heuristic flags likely speech regions (the chant, the sermon). It all lands in one analysis.json.

2 · The director edit_map.py

A deterministic pass turns that measurement into an edit. The six sections become the six acts, each with its own cadence and layout vocabulary. Every cut is then snapped to a quarter-beat grid and de-duplicated so the cuts tile the timeline exactly — the trick that keeps picture locked to sound with zero drift. Cut length ramps act by act (12 s holds → ~0.6 s at the peak), and three event tables place the big moments: the Paik walls, the drop-triggered hero shots, and the 1.0× phasing lull. The output is editmap.json — a list of ~156 cuts, each a small dict of layout, clips, speed, CRT settings and roll.

3 · Painting each cut 03_compose.py · layouts.py · crt.py

Each cut is composited as its own ffmpeg filtergraph and encoded as a length-locked segment. Every screen is treated as a real monitor: the feed is scaled and cropped into its cell, curved with a barrel warp, given scanlines and a shadow-mask grid, lit with a glass rim, then clipped to a rounded-rect mask floating on pure black. The composited frame gets a per-cut signal grade whose corruption is music-driven — chromatic aberration widens with the bass, video noise thickens as RMS falls (loud = clean, quiet = grainy). The Ascent adds an accelerating vertical-hold roll.

4 · Assembling the film 04_render.py

All the segments are concatenated by stream-copy (identical encode settings, so it's instant), run through a single global “room” pass — warm amber halation and a faint vignette, applied once so the whole tube reads as one physical object — and muxed against the untouched source mp3. It emits a 4:3 master, a 16:9 float, and a compressed review copy into versions/vN.

1 · 聆聽歌曲 —— 01_analyze.py

歌曲以 22 kHz 解碼一次,交給 librosa 以四種方式量測。從 onset 強度包絡做拍點追蹤,得到速度(117.5 BPM)與全部 456 個拍點的位置。以聲音變化最劇烈處構成的新奇度曲線(novelty)取峰值,找出六個段落邊界。一次 STFT 被拆成各頻段能量包絡 —— 低頻(20–200 Hz)、中頻(200–2 kHz)、臨場頻(2–8 kHz)與整體 RMS 響度 —— 這些數字之後同時驅動剪接與破壞效果。再以頻譜平坦度+共振峰頻段的啟發式方法標出可能的語音區段(吟唱、佈道)。全部寫進一個 analysis.json

2 · 導演層 —— edit_map.py

一個確定性的流程把量測轉成剪輯。六個段落成為六幕,各有自己的節奏與版面語彙。接著每個剪點被對齊到四分之一拍的格線並去重,使剪點剛好鋪滿整條時間軸 —— 這正是讓畫面與聲音零飄移鎖定的關鍵。剪點長度逐幕遞增(12 秒長鏡 → 高潮約 0.6 秒),並由三張事件表安排重頭戲:白南準電視牆由 drop 觸發的英雄鏡頭,以及原速(1.0×)的相位留白。輸出是 editmap.json —— 約 156 個剪點,每個都是一小組 dict:版面、素材、速度、CRT 設定與滾動。

3 · 逐刀繪製 —— 03_compose.py · layouts.py · crt.py

每一刀都以自己的 ffmpeg 濾鏡圖合成,並算成一段長度鎖定的片段。每個螢幕都被當作真實的顯示器:畫面被縮放、裁進它的格位,加上桶形彎曲、掃描線與陰罩格點,打上玻璃邊緣光,再裁進漂浮於純黑上的圓角遮罩。合成後的畫面再過一層逐刀的訊號分級,其破壞程度由音樂驅動 —— 色差隨低頻加寬,雜訊隨 RMS 下降而變厚(大聲=乾淨,安靜=顆粒)。上升段還會疊上一段加速的垂直滾動

4 · 組裝成片 —— 04_render.py

所有片段以串流複製(stream-copy,編碼設定相同,因此瞬間完成)串接,過一次全域的「房間」層 —— 暖琥珀暈光與淡淡暗角,只施加一次,讓整台映像管讀起來像同一個實體物件 —— 再與未經更動的原始 mp3 混流。最後輸出 4:3 母版、16:9 浮框版,以及一支壓縮的檢視版到 versions/vN

Spectrogram of the track
The song's spectrogram — the analysis reads structure straight off the audio.歌曲的頻譜圖 —— 分析直接從聲音讀出結構。
CH.06
Energy matching能量貼合

Cutting to the rise and fall依著起伏下刀

The whole edit is a machine for tracking the track's energy. Four devices do the work:

  • Cadence ramp. Cut length shrinks act by act — 12s holds in the Invocation down to ~0.6s at the Sermon — so the cutting itself accelerates with the music.
  • Drop-driven hero shots. A detector scores every beat by sub-bass impact, a preceding build/riser, and sustain. The most dramatic releases (1:55, 2:11, 3:21) each land on a single, big image — the red priestess or the idol — so the release breathes.
  • The phasing lull. In the phaser-synth passage right after the main drop, the walking-feet clip plays at its original speed — a real-time breath against the fast cutting.
  • The Paik walls. Three escalating monitor walls (≈10 → 16 → 24 screens) with a camera pull-back land on the biggest swells; the last unveils the full wall just before the collapse.

Underneath, the CRT corruption itself is music-driven: chromatic aberration and bloom widen with the bass, noise thickens in the quiet passages and clears at the peak.

整支剪輯就是一台追蹤歌曲能量的機器,由四個手法完成:

  • 節奏遞增。剪點長度逐幕縮短 —— 從召喚段的 12 秒長鏡,一路壓到佈道段約 0.6 秒 —— 讓剪輯本身隨音樂加速。
  • 由 drop 觸發的英雄鏡頭。偵測器以低頻衝擊、前導的鋪陳/riser、以及延續度為每個拍點評分。最戲劇性的釋放點(1:55、2:11、3:21)各自落在一個放大的單一畫面 —— 紅衣祭司或偶像 —— 讓釋放得以呼吸。
  • 相位段的留白。在主 drop 之後的 phaser 合成器段落,走路腳步那段素材以原速播放 —— 對比快速剪接的一次即時呼吸。
  • 白南準電視牆。三面逐步升級的螢幕牆(約 10 → 16 → 24 台)配上鏡頭拉遠,落在最大的能量湧動處;最後一面在崩解前揭示整牆。

更底層地,連 CRT 的訊號破壞本身也由音樂驅動:色差與暈光隨低頻加寬,雜訊在安靜段落變厚、在高潮處轉清。

A single large image on the drop — the red priestess on a chessboard
A hero drop at 1:55 — the release lands on one big image.1:55 的英雄 drop —— 釋放點落在單一放大的畫面上。
CH.07
Iteration log迭代紀錄

Eight rounds, each one a conversation八輪迭代,每輪都是一次對話

Every version was a prompt with notes, a render, and a review. Older renders are archived so any version can be compared side by side.

每個版本都是「一段帶註記的指令 → 一次算圖 → 一次檢視」。舊的算圖都被封存,任何版本都能並排比較。

v1SPINE

The spine. Music analysis, six-act structure, beat-locked cutting, first CRT look — proof the loop works.骨架。音樂分析、六幕結構、對拍剪接、第一版 CRT 風格 —— 驗證整個循環可行。

v2MONITORS

Physical monitors + Paik walls. Per-screen curvature and the escalating video-wall climax with camera pull-backs.實體螢幕 + 電視牆。每個螢幕的彎曲,以及配合鏡頭拉遠、逐步升級的電視牆高潮。

v3AMBER

Solid black, round corners, halation. Feeds clipped to rounded masks on true black; warm amber glow; fixed A/V drift.純黑、圓角、暈光。畫面裁進圓角遮罩、置於純黑上;暖琥珀輝光;修正影音飄移。

v4NEG-SPACE

Subtler look + negative space. Lighter halation, faint edge-light, floating compositions, ascent CRT roll, signal-tied noise; non-wall scenes locked static.更收斂的風格 + 留白。更淡的暈光、微弱邊緣光、漂浮構圖、上升段的 CRT 滾動、與訊號連動的雜訊;非電視牆場景固定為靜止。

v5SYMMETRY

Projection of power. Negative space redesigned to centered, bilaterally symmetric framings; 8px corners; ending locked to the AnimateDiff idol.權力的投射。留白重新設計為置中、左右對稱的構圖;8px 圓角;結尾固定為 AnimateDiff 偶像。

v6DROPS

Music-driven footage. Hero shots on the detected drops; the walking clip at original speed in the phasing passage; the row-of-three equalized.音樂驅動的選材。在偵測到的 drop 上放英雄鏡頭;相位段的走路素材以原速播放;三連格改為等分。

v7EXPOSURE

Lifted out of the murk. Exposure raised toward a brighter, over-driven CRT; vignette pulled back and halation nudged up — the tube glows instead of sulking.把畫面從陰暗中提起。曝光往更亮、更過載的 CRT 推;暗角收斂、暈光略增 —— 讓映像管是在發光,而不是悶著。

v8PHASING

The lull, re-cut. The phasing window (1:57–2:09) now intercuts the walking clip at 1.0× with other footage at pace — a breath that pulses, instead of one held shot. This is the cut on screen above.重剪留白段。相位段(1:57–2:09)現在把 1.0× 的走路素材與其他素材交叉剪接、跟著節奏跳動 —— 是一次會脈動的呼吸,而非一個定住的長鏡。上方播放的正是這一版。

CH.08
Reflections反思

What editing-by-prompt is good and bad at對話式剪輯的長處與短處

Where it wins

它的長處

  • Speed of iteration — a note becomes a render without touching a timeline.
  • Reproducible & versioned — the edit is code; any version rebuilds exactly.
  • Music-driven automation — 156 beat-accurate cuts placed by analysis, not by hand.
  • Systemic changes are cheap — “make all corners smaller” is one line, not 156 edits.
  • 迭代速度 —— 一句註記就能變成一次算圖,完全不碰時間軸。
  • 可重現、有版本 —— 剪輯即程式;任何版本都能精確重建。
  • 音樂驅動的自動化 —— 156 個對拍剪點由分析決定,而非手工擺放。
  • 系統性修改很便宜 —— 「把所有圓角改小」是一行程式,不是 156 次手動修改。

Where it hurts

它的短處

  • No real-time scrub — you review a render, not a live playhead.
  • Render waits — each full pass is minutes, not instant feedback.
  • Filtergraph complexity — the look lives in dense ffmpeg strings that must be de-risked in small tests.
  • Taste still human — “projection of power,” “too magenta” — the agent proposes, a human eye decides.
  • 無法即時刷播 —— 你檢視的是算圖結果,不是即時播放頭。
  • 算圖等待 —— 每次完整算圖是以分鐘計,非即時回饋。
  • 濾鏡圖的複雜度 —— 風格藏在密集的 ffmpeg 字串裡,得靠小規模測試逐一排除風險。
  • 品味仍靠人 —— 「權力的投射」、「太洋紅了」—— 代理提案,人眼定奪。

The honest conclusion: this suits energy-matched, generative, non-narrative montage extremely well — and would fight you on a dialogue scene that needs a human on a J-cut. Here, the constraints were a gift.

誠實的結論:這套方法非常適合能量導向、生成式、非敘事的剪輯 —— 但若是需要人工處理 J-cut 的對白場景,它會跟你作對。在這支片子裡,這些限制反而是禮物。

CH.09
Reproduce it如何重現

The whole render, four commands整支片子,四行指令

The pipeline lives in build/; music analysis runs in a pinned Python 3.12 venv (librosa needs it). One command chain rebuilds any version.

整條流程放在 build/;音樂分析跑在固定的 Python 3.12 虛擬環境(librosa 需要)。一串指令即可重建任何版本。

# analyse the song → cache/analysis.json (once)
build/.venv/bin/python build/01_analyze.py
# build the edit map → cache/editmap.json
build/.venv/bin/python build/edit_map.py
# compose every cut, then render + mux into versions/v6/
build/.venv/bin/python build/03_compose.py
build/.venv/bin/python build/04_render.py --version v6 --tag master

Dependencies: ffmpeg 7.1, and (in the venv) librosa · soundfile · scipy · numpy · Pillow. Look-dev is fast — render any slice with --cut A B and read a frame back before committing to a full pass.

相依套件:ffmpeg 7.1,以及(虛擬環境內)librosa · soundfile · scipy · numpy · Pillow。試看很快 —— 用 --cut A B 算任一小段、抓一格回看,確認無誤再跑完整算圖。