Vibe 知識影片
將一個主題轉化為有來源依據的 Remotion 專案和可匯出的影片。最佳化目標是清晰、視覺化解釋和可重製性,而非模仿特定創作者的身份。
核心工作流程
- 確認或推斷主題、目標觀眾、長寬比、目標時長、語言,以及是否需要旁白。如果缺少細節,預設為中文、一般成人觀眾、16:9、60–120 秒、30 fps,包含旁白腳本和內嵌中文字幕。
- 在開始寫作前先研究主題。優先使用第一手來源、論文、標準、官方統計資料和信譽良好的機構。將每個事實性主張記錄在
research/sources.md中,包含 URL、標題、日期以及該主張支持的內容。 - 區分已驗證的事實、解讀和類比。移除未經支持的主張。不得虛構引述、研究、數字、日期或因果關係。
- 使用 references/brief-schema.md 建立
video-brief.json。在編寫場景程式碼前,執行node scripts/validate-brief.mjs video-brief.json。 - 建立場景計畫:在前 3 秒內提出一個強而有力的問題,每個場景一個想法,每 5–8 秒有一個視覺回報,並有一個簡潔的結尾。保留一條清晰的敘事主線。當歷史比較、旁支事實或額外時間線打斷而非推進所要求的解釋時,應予以移除。使用 references/storyboard-guide.md。
- 如果沒有 Remotion 專案,執行
bash scripts/bootstrap-remotion.sh <project-directory>。這會建構官方的空白模板,並安裝官方的 Remotion Agent Skills。切勿覆蓋現有的非空目錄。 - 在 Remotion 中實作影片。在編輯前,先閱讀專案中已安裝的官方 Remotion Skills。使用基於影格的動畫:
useCurrentFrame()、interpolate()、spring()、Sequence和Series;不要使用 CSS 動畫、隨機值或真實時間。 - 偏好使用原生的 HTML、SVG、Canvas、方程式、圖表、時間軸、地圖和有意義的插圖。對於可辨識的真實主體,如車輛、機器、動物、人物或產品,不要使用粗略的線條人物或通用的幾何輪廓作為最終視覺。應保留主體的輪廓、比例、關鍵組件和功能結構。當使用者提供參考圖片時,先檢查它們,然後創建原創的詳細視覺,而非複製來源。對於移動中的主體,請閱讀 references/motion-direction-prompt.md,並在實作前定義接觸幾何、比例、運動耦合、遮擋和場景連續性。僅在外部圖片或剪輯能實質提升理解度,且其授權/來源已被記錄時,才使用它們。
- 僅使用使用者提供的音訊或可用的授權 TTS 服務來加入旁白。不要將私人文字靜默上傳到外部語音服務。將媒體放在
public/中,並使用staticFile()載入。 - 當要求背景音樂時,應使用已授權的音樂並記錄來源,或生成原創的確定性曲目。從和弦、節奏、旋律和包絡線建立音樂;不要使用白噪音、粉紅噪音或布朗噪音作為可聽的音樂基底。音樂應保持在旁白下方,並在一般的手機或筆電喇叭上測試。使用
scripts/generate-light-science-music.py作為中性的原創起點。 - 根據最終的旁白時間點生成字幕。最多兩行,提供安全邊距,並保持可讀的對比度。對於逐字時間點,使用
@remotion/captions。 - 在完整渲染前,先審查代表性的靜止幀。檢查開場、每個場景的中點、轉場和最終幀,確認文字溢出、事實準確性、佈局、音樂使用和歸屬問題。除非使用者明確要求,否則不要渲染或上傳 10 秒預覽;避免重複渲染和儲存成本。
- 匯出完整的 MP4,然後使用
scripts/finalize-video.sh <input.mp4> <output.mp4>對其進行標準化處理。這會生成 H.264 High/yuv420p 影片、AAC-LC 立體聲音訊、avc1標籤和 fast-start MP4 索引。切勿發布未經檢查的串流複製結果。 - 交付專案目錄、最終影片、
video-brief.json和research/sources.md。僅在明確要求時才包含預覽。說明任何仍需要手動驗證的主張或媒體。
專案標準
- 註冊一個
FullVideo合成。僅在使用者明確要求預覽渲染或有助於實質簡化開發時,才添加單獨的預覽合成。 - 將可編輯的內容放在資料檔案中,而不是散落在各個元件中。
- 為標題、字幕、圖表、時間軸和場景轉場建立可複用的元件。將來源元資料保留在專案中,但預設不要將來源名稱、日期或參考標籤嵌入影片中。僅在使用者要求、引述需要標註出處,或該主張可能產生誤導時,才在螢幕上顯示來源。
- 在需要程式化圖形時,使用確定性動畫和穩定的種子。
- 使用安全的排版:優先使用系統中文字型,除非已捆綁了可重新分發的本地字型。
- 分別檢查直向輸出;不要僅僅裁剪一個橫向的合成。
- 偏好連續的解釋性動作而非靜態貼紙:在標籤、箭頭、圖表和旁白解釋的同時,保持主體移動。將平移、旋轉部件、懸吊或車身運動、噴灑物或灰塵、以及背景視差,耦合到相同的影格驅動速度訊號。
- 當解釋涉及旅程、過程、成長路徑或倒數時,建立一個從頭到尾的持續進度提示。主體應在接近開場時進入,在解釋概念時持續前進,並在結尾時明顯到達目的地或最終狀態。
- 從基礎動作衍生次要的物理效果:速度控制噴灑長度、車輪旋轉、尾跡、灰塵、模糊或震動;方向控制這些效果的傳播方向。不要添加忽略主體運動的通用裝飾。
- 在繪製前建立一個數值化的物理接觸錨點,並在每個場景中複用其公式:車輪、滑雪板、腳、船體、道路和水線必須合理接觸。不要手動為每個鏡頭目測不同的垂直位置。除非解釋明確要求,否則不要將整個主體置於表面之下或使其漂浮在空中。
- 將變換數學和放置數學保持在同一座標系統中。如果接觸位置是從主體的左上角計算的,則應從同一原點進行縮放和旋轉,或明確補償變換原點。測試最小和最大的主體比例,因為中心原點縮放可能會使主體悄悄地移動到其接觸線下方。
- 對於真實機器,在繪製前從參考圖片盤點不對稱的功能性零件。當真實的前後或左右零件不同時,不要複用一個通用的輪子、機翼、支撐或工具元件。保留哪個零件負責轉向、支撐、推進或接觸環境。
- 對於人物,在設計風格前從參考中提取姿勢骨架:頭、頸、肩、肘、手、髖、膝、踝和腳。確認手能觸及控制器、髖部貼合座椅、膝蓋能圍繞身體彎曲、腳能觸及踏板或地面。填充的軀幹加上直線肢體線條,不是一個完整的騎乘者。
- 預設關閉品牌標示。除非使用者明確要求或提供了核准的品牌資產,否則不要添加公眾帳號名稱、影片頻道名稱、創作者暱稱、標誌、浮水印或重複出現的帳號標籤。
- 當為中文使用者提交專案或技能變更時,請使用簡潔的中文 Git 提交訊息,除非使用者要求其他語言。
- 切勿模仿在世創作者的確切品牌風格、聲音、頭像、標誌或標誌性轉場。應將電影般的節奏或資料驅動的動作等高層次特質,轉化為原創的視覺系統。
預設視覺方向
使用深色編輯背景、一個明亮的強調色、克制的發光效果、大型中文字型、細網格線和有意義的動作。避免過多的粒子、卡片網格、隨機漸層、偽 3D 和持續的鏡頭移動。讓概念決定動畫。
指令
npm run dev
npx remotion render FullVideo out/review-frames --frames=0,450,900,1350,1800,2250,2699 --image-format=png
npx remotion render FullVideo out/final.mp4
python3 scripts/generate-light-science-music.py --duration 90 --output public/audio/light-science-music.wav
bash scripts/finalize-video.sh out/final.mp4 out/final-compatible.mp4
在 Windows 上,請使用 JSON 檔案而非內嵌 Shell JSON 來傳遞合成屬性。
完成檢查點
在以下條件全部滿足前,不得宣稱影片已完成:
- 每個事實性主張都有來源,或已明確標示為解讀;
- 簡報驗證器通過;
- 已審查來自開場、場景中點、轉場和結尾的代表性靜止幀;
- 每個包含主體的場景都至少被審查過一次;不要僅從最終幀批准主體幾何;
- 解釋性文字、標籤、箭頭和進度指示器,在任何審查過的影格中都不與主體或字幕重疊;
- 在 16:9 或所要求的格式下,沒有文字被裁切;
- 可辨識的真實主體視覺上可信,且未退化為佔位符等級的線條藝術;
- 人體比例沒有明顯壓縮或拉伸,關節部分自然連接,且主體比例在場景間保持一致;
- 物理接觸和遮擋可信:主體不會意外沉入水下、與地面相交或穿過其他物體;
- 最小比例和最大比例的外觀在變換後仍保留相同的接觸錨點;
- 不對稱的真實世界組件與參考相符,且不是從通用可複用形狀複製而來;
- 預期的機械運動是可見且同步的,例如車輪或螺旋槳旋轉與行進速度匹配,並伴有噴灑、懸吊或車身俯仰等次要運動;
- 主要的解說序列在主題涉及運動時使用連續動作,而非僅依賴靜態圖表;
- 任何旅程或過程都有連貫的視覺起點、持續進度和可見的完成;
- 影片中沒有未經請求的帳號名稱、頻道名稱、標誌或浮水印;
- 字幕與旁白匹配;
- 背景音訊聽起來是音樂性的,而非嘶嘶聲、隆隆聲或靜電聲;
- 媒體授權和歸屬已記錄;
- 完整渲染指令成功。
- 交付的 MP4 通過完整的 FFmpeg 解碼,且
ffprobe確認在有音訊時為 H.264/yuv420p 加 AAC-LC; - 如果檔案已上傳,請下載或具體化該上傳的成品,並驗證其大小、雜湊值和可解碼性,而非假設上傳成功即代表媒體完整性。