Communitygithub.com

paxon-yang/talking-video-skills

用戶提供自己的數字人影片(或先拿 Claude 寫的口播稿去數字人工具生成),和 Claude 多輪溝通、逐輪打磨,按 combo 風格(博主A × 博主B 合併後的「暗底固定框架 + 數字人口播 + 少而準的動效」)做出 1–3 分鐘橫屏精品講解影片,目標是成片和原片一樣精美。

talking-video-skills 是什麼?

此技能是一個高度協作化的影片製作流程,專注於生成 1-3 分鐘的橫屏「精品講解影片」,核心視覺風格來源於兩位知名博主的混合(博主A 的暗底網格教程框架與博主B 的動態數據呈現手法)。使用者提供數位人影片或先讓 Claude 撰寫口播稿再生成,Claude 則負責腳本、分鏡、動效設計及最終渲染。流程被嚴格劃分為 10 個階段(S1-S10),每階段均設有「閘門(Gate)」,Claude 必須在此處暫停,將階段性成果(如關鍵影格樣張、低清預覽)展示給使用者確認,並根據反饋進行迭代修改,絕非一次性自動生成。整個協作可隨時回退到任一先前的輪次。該技能支持兩種執行路徑:路徑 A(剪映手工操作)適用於快速、不需要程式碼的場景;路徑 B(Remotion 自動化)則用於追求像素級一致性和批次處理。技能內建了詳盡的檢查清單與規則庫(如舒適度規則、動效目錄、英文版專用規則),確保品質接近原始參考影片。已知的限制包括缺乏精準的詞級時間軸對齊工具、某些進階動效元件尚未在 Remotion 中實現,以及部分視覺元素為推測而非原創,這些限制都會在協作開始時如實告知使用者,以管理期望。

相容平台✓Claude Code✓Codex CLI~Cursor✓Gemini CLI
npx skills add https://github.com/paxon-yang/talking-video-skills/tree/HEAD/skills/talking-video-oneshot/references

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

combo 風格(博主A × 博主B)

定位與工作方式

暗底固定框架,數位人口播當「邏輯節點」、少而準的動效當「證據」,每一刀都跟著嘴走。 質感關鍵詞:釘死的框架 / 跟著嘴走 / 少而準。 預設以博主A的教學框架為骨架(暗底網格、字幕條、左下圓形 PIP、錄屏推拉、關鍵詞卡、章節卡、螢光綠 HUD),藉博主B 六點:大景每 15–20s 回歸;所有靜態素材線性慢推;數據選題用圖表當證據;PIP 疊在圖表/B-roll 上可「喊話放大」;3 分鐘數據型可加章節角標;大數字卡。 目標成片 1–3 分鐘、16:9、1920×1080、30fps(原片是 20 分鐘長影片,只遷移可遷移的部分)。

這是協作,不是一次性生成。 數位人影片由用戶提供(或用戶拿我們寫的稿子去數位人工具生成),素材(錄屏、截圖、數據)由用戶提供;Claude 負責稿子、分鏡、動效和渲染,每一輪把東西交給用戶看,按回饋改,直到成片和原片一樣精美。

  • 品質標準是「像原片」:對照原片證據幀逐項比(字型、陰影、間距、緩動、節奏),不是 lint 通過。lint 只是底線檢查。
  • 每輪只交一小份東西,請用戶做具體選擇(見 references/collaboration.md),不要把整條流程悶頭跑完再交。
  • 用戶的每個確認和偏好記進該項目的 notes.md;跨項目通用的偏好回寫 references。
  • 沒有的素材、沒有的工具如實說「缺/待搭建」,不編造、不假裝已有。

全流程階段與閘門(細節見 references/production-playbook.md)

S1 稿子(Notion 原稿→壓縮口播→鉤子改寫→英文改編,按實測語速回算詞數)→ S2 聲音(使用者 Fish 克隆聲音,絕不用 HeyGen TTS;本機 silenceremove 封頂停頓 + atempo;G2 使用者選最終時長)→ S2.5 素材提示詞包(使用者用 Gemini 生成全部影片/圖片,Claude 給每條提示詞+秒數;入庫質檢;G2.5,見 references/gemini-asset-prompts.md) → S3 HeyGen(瀏覽器驅動;形象/背景/13s 樣片 G3;整條渲染 ≈0.8 積分/秒;身份驗證/付款/刪除只由使用者做)→ S4 樣張 G4 → S5 B-roll(Pexels,記 LICENSES,30fps,航拍才插值)→ S6 timeline(字幕/關鍵詞時間必須來自詞級強制對齊,不得估算;預覽前過 G5.5 字幕同步檢查,見 references/subtitle-sync.md)→ S7 低清預覽輪 v1..vN G5 → S8 動效精修+SFX+創意圖形(references/motion-polish-and-sfx.md)→ S9 終版 crf18 + loudnorm -16 LUFS(-c:v copy)→ S10 自檢 + 拷到桌面 G6(130MB 不進雲盤)。 預設不做 BGM:交付「人聲+SFX」版,使用者自己在剪映加音樂;assets.bgm 不寫,SFX 保持安靜。

用戶在意什麼(每條影片動手前過一遍)

  • 畫面要豐富的真實 B-roll,不是只有關鍵詞卡;缺素材就去免費商用庫找,別降級成字。
  • 動效絲滑精緻:彈簧/緩動、遮罩+模糊出現、運動模糊、精確退場;逐幀自查。
  • 有退場也有音效(SFX 輕、密度 ≤0.8/s);結構點用創意圖形(鏈/階梯/閘門/圖標)而不是字,圖形用粗 Anton 數字、粗線。
  • 英文影片螢幕零漢字(含 B-roll 裡的牌子,OCR 抽檢)。
  • 原片是參考不是照抄:撞 PIP/字幕就按實際改,小設計自己定,只把改變觀感的大選擇交給用戶。
  • 協作不是一鍵:每個閘門停下給用戶看,確認後寫 notes.md。

為什麼看著舒服(核心原理,數值見 references/comfort-rules.md)

  1. 剪輯跟著嘴走:約七成切點落在字幕換句處(博主A中位 69%、博主B 70–88%);每 2–3 句一個主畫面(4–7s);貼字在說到那個詞時出現(−2~+4 幀,寧晚勿早)。
  2. 固定框架裡只換內容:字幕全片一個樣式、y 抖動 ≤1% 畫高;只用兩種底(#010101 網格 / 壓暗 B-roll);強調色 ≤3;一屏 ≤1 主標題 + 3–4 要素。
  3. 運鏡少而有目的:錄屏推近只到 1.12 倍、約 28 幀 ease-in-out;主播 punch-in 1.08 倍、≤2 次/分;B-roll 線性慢推 1→1.08;運鏡只作用於內容層,PIP/字幕/HUD 不動。
  4. 主播 = 判斷,動效 = 證明:提問、轉折、總結給主播大景;事實、數字、流程、界面、比喻給動效。大景每 15–20s 回來一次,無臉段 ≤10s。
  5. 動效時長有檔位:硬切 0 / 快 6 幀 / 標準 12 幀(慢 18 幀);停留 ≥40 幀。

語言開關(中文版 / 英文版)

  • 預設中文版:本文件與其他 references 的數值都是中文版參數,不變。
  • 英文版(使用者說「英文版/純英文影片」,或 notes.md 記 lang=en):先讀 references/english.md,它給出英文替換值(詞/秒、字幕詞數、拉丁字體與字號、lint 英文閾值、TTS 讀法、英文鉤子、HeyGen/Fish Audio 注意點);與中文參數衝突時英文版以 english.md 為準,其餘(節奏、運鏡、色值、字幕位置 y 0.905H 與字號 46px)沿用。
  • 英文版硬規則:螢幕上零漢字(字幕、關鍵詞、夾頭詞、章節卡、HUD、單位、標註、佔位、片頭片尾、錄屏界面、數位人燒入字幕全部英文/數字/符號)。清單與檢查命令見 english.md §4。
  • 英文版的字體/字號/lint 已在工程裡實現:timeline 寫 meta.lang:'en' 即切換(缺省 zh,中文不受影響);只有 english.md §3 末行列的少數變體(gold_card 等)未適配。英文版佔位素材用 public/placeholder/en/(舊佔位含漢字)。第 0 輪先問清:HeyGen 是否關字幕、導出分辨率/幀率、Fish 音頻格式。

文件地圖(按需讀取,不要一次全讀)

文件何時讀
references/collaboration.md每輪都用:交付物清單、怎麼提問、用戶反饋→參數對照表、notes.md 寫法、偏好回寫
references/digital-human.md第 0 輪:數位人構圖/背景/語速/導出文件、時間戳獲取、各工具注意點
references/thinking.md第 1 輪:選題 5 問、開頭/結構/心理節奏、信息密度、句子角色→誰出鏡、20 分鐘壓成 1–3 分鐘
references/templates.md第 1 輪:模板 A/B/C 的 60/120/180s 分段時間表與字數預算
references/hooks-and-copy.md第 1 輪:開頭手法庫(填空模板)、文案規則、口播標記、結尾 CTA
references/visual-mapping.md第 2 輪:內容類型→畫面→組件映射;四拍/演示序列;主播回歸;PIP 預設與切換;禁入區
references/packaging.md第 2–5 輪:字幕、色值、字體、關鍵詞卡、夾頭詞、HUD、章節卡、標註框、寬銀幕等版式參數;兩種主題差異
references/motion-and-camera.md第 2–5 輪:全部動效目錄(含博主B N23–N30)與虛擬運鏡參數表
references/comfort-rules.md第 2、5 輪:11 條舒適度規律(量化)與檢查方法;lint 15 條;必須/應當/可選
references/remotion-pipeline.md路徑 B(第 3–5 輪):timeline.json 字段、組件 props、P2 未實現與替代、數位人接入、lint、渲染命令、常見坑
references/jianying-guide.md路徑 A:剪映逐項操作(字幕、關鍵幀推鏡、圓形 PIP、文字動畫時長、轉場、音效、配樂)
references/production-playbook.md從零做一條完整影片(HeyGen+Fish+英文):S1–S10 階段/閘門/成本/坑,示例項目 實跑記錄
references/gemini-asset-prompts.md素材一律由使用者用 Gemini 生成(S2.5):shotlist→提示詞包、style bible、影片/圖片提示詞結構、秒數、命名、入庫質檢、重出模板;腳本 make_prompt_pack.py / ingest_gen_assets.py
references/motion-polish-and-sfx.md退場編排、新轉場、SFX 庫與 cue 規則、無 BGM 預設、mg 圖形套件與何時用圖形
references/english.md英文版:詞/秒換算、拉丁字體與字號、零漢字清單與 OCR 檢查、lint 英文閾值與待改代碼、英文口播/鉤子、HeyGen+Fish Audio
references/forbidden.md第 1 輪與交付前:不能複製的標誌性元素與替換
templates/output-template.md最終交付匯總模板(各輪產物拼起來即是;見該文件頂部說明)
templates/timeline.example.json組件渲染樣例(佔位素材,模板 A 90s,lint 15/15)——只用來看組件長什麼樣、複製 JSON 結構,不是示例選題
templates/build_demo_timeline.py用工程裡的 builder 從「beat 列表」生成 timeline 的寫法參考
templates/grid_bg_1920x1080.png網格底圖(#010101 + #1A1A1A、72px),剪映路徑直接用
scripts/README.md可複用腳本清單(SFX 合成/cue、混音檢查、聯繫表、轉場模式、出圖)及 TS 元件如何帶進新工程
scripts/stills_timeline.mjs對任意 timeline 一次打包出多張關鍵幀 PNG(第 3 輪用,已驗證)
examples/demo-script.md一次協作過程示例:第 0–4 輪每輪交什麼、用戶可能怎麼回饋、怎麼改
video-asset-prep/SKILL.md進階動效:口播片裡加 fx 動效積木、做純動效宣傳片、拆新的參考動效影片(規律 / 積木目錄 / 拆解方法)

Remotion 工程:<工程目錄>/(本機,不在雲盤)。src/tokens.ts 與組件是參數唯一事實來源;與 references 衝突以工程代碼為準。src/ 不是唯讀:按需求需要就改(新增/擴展積木、改共享文件都可以,使用者 2026-10-19 明確認可);改完建議跑 ae-motion-craft 的回歸檢查確認沒弄壞舊流程;不要 git commit,除非使用者要求。

每個影片專案的目錄約定

Remotion 的 staticFile 只能讀 public/,而 public/ 會被整個打包進每次渲染/出圖——大體積原始素材不要放進 public/。所以每個項目分兩處,slug 用英文小寫短橫線(如 meeting-notes):

<工程目錄>/projects/<slug>/          # 工作區(不被打包)
  input/        用戶交來的原始文件:數位人原影片、錄屏、截圖、數據(唯讀,不覆蓋)
  script.md     口播稿 + 句子角色表(第 1 輪)
  storyboard.md 分鏡表 + 素材清單(第 2 輪)
  words.json    句級/詞級時間戳(第 0 輪取得;工具見下)
  notes.md      決定與偏好日誌(格式見 references/collaboration.md)
  review/       每輪給用戶看的圖/影片(stills、compare、preview,帶輪次與版本號)
<工程目錄>/public/projects/<slug>/   # 渲染用(會被打包,只放處理後的成品素材)
  host_full.mp4  host_pip_480.mp4  host.wav         # 由 input/ 轉碼得到,規格見 digital-human.md §8
  assets/…                                          # 渲染要用的錄屏/圖/B-roll/Logo
  timeline.json                                     # timelineSrc = "projects/<slug>/timeline.json"
  • timeline 裡所有路徑相對 public/,如 assets.hostVideo = "projects/<slug>/host_full.mp4"、assets.files 指向 projects/<slug>/assets/…(其餘字段見 remotion-pipeline.md §1)。
  • 渲染輸出放 out/<slug>/(工程已 .gitignore 掉 out/)。lint:timeline 接受任意路徑:npm run lint:timeline -- public/projects/<slug>/timeline.json。
  • 本約定沒有改工程 src/;projects/ 目錄需要時由 Claude 新建。

協作工作流(第 0–5 輪;任何時候都可以回到前面任一律)

每輪格式:交給用戶看什麼 → 請用戶確認什麼 → 用戶回饋後怎麼改。具體提問句式、回饋翻譯表見 references/collaboration.md。用戶確認後寫進 notes.md,再進下一輪。使用者回頭改前面的輪次時,只重做受影響的部分(改稿 → 分鏡/時間戳/timeline 要重對;改分鏡 → 樣張要重出;改視覺參數 → 不動稿子)。

第 0 輪 素材接收(使用者給數位人影片,或先寫稿再生成)

兩種起點:

  • A. 使用者已有數位人影片 → 按下面驗收;通過後取音頻和文字。
  • B. 使用者還沒有影片 → 先做第 1 輪的稿子,使用者確認後拿 digital-human.md §6 的粘貼版去數位人工具生成(構圖/背景要求先告訴使用者,生成後無法在後期改),再交回影片,回到本輪驗收。

數位人影片驗收(先 ffprobe -v error -show_entries stream=codec_name,width,height,r_frame_rate,avg_frame_rate,duration,pix_fmt -of default=nw=1 in.mp4 取客觀數據,再抽 3–5 幀用 Read 看圖;標準全文見 digital-human.md §1–§4、§8):

檢查項合格不合格時請使用者怎麼辦
分辨率1920×1080,橫屏 16:9重新導出 1080p 橫版;720p 以下或豎屏需重做,不要拉伸
幀率30fps 恆定(avg=r)可由我們轉碼(-r 30);若是變幀率先告知轉碼有口型漂移風險
時長與目標 60/90/120/180s 相符,一次生成整條(不是多段拼接)分段生成的膚色/光線會跳變,請合併成一次生成,或說明要接受拼縫
構圖半身正面、雙手入鏡;臉高約 0.30H、臉中心約 (0.48W, 0.38H);頭頂留白約 0.07H;臉兩側 x 0.03–0.305、0.667–0.97、y 0.07–0.35 乾淨;手勢不壓 y 0.86–0.93 字幕帶讓使用者在工具裡調景別/縮放/位置重新導出;小偏差由我們在 PIP 取景處補償,大偏差必須重導
背景暗色單色或乾淨場景(亮度 Y 約 42–62),不是原博主的房間;不閃換暗色背景重導;若是綠幕/透明底,告知目前渲染器沒有換背景實現,需在工具裡燒入暗色背景
口型與表情抽 3 個說話幀,嘴型清晰、無糊臉/掉幀/手變形指出具體時間點,請使用者換形象/換工具設置重生成該條
服裝燈光純色深色上衣,無細條紋;臉亮背景暗同上,重導
音頻影片自帶音軌;最好另導出無 BGM 的 wav沒有 wav 我們從影片裡提取(見下);有 BGM 燒在裡面要請使用者導出無配樂版
字幕/文字最好附 SRT 或口播稿原文沒有則走下面的轉寫
驗收結論用 ✓/✗ 表交給使用者,不合格項逐條寫「重導時怎麼設」。

取音頻與文字(哪些已有、哪些待搭建)

  • ✓ 已有(本機 ffmpeg/ffprobe):轉碼 30fps、提取音頻 ffmpeg -i in.mp4 -vn -ar 48000 -ac 1 host.wav、做 480p PIP 代理——命令全在 digital-human.md §8。
  • ✓ 已有 · 使用者有口播稿(方案 B 或使用者自己提供):句級文字直接用稿子;時間用 wav 時長 + 字數比例估算,confidence=0.5,貼字偏移 +4 幀(digital-human.md §9-3)。
  • ✗ 待搭建 · 語音轉寫 + 中文詞級強制對齊:本機未安裝 whisper / WhisperX / stable-ts / FunASR(已查),Python 裡也沒有;工程裡的 @remotion/openai-whisper 只是解析 OpenAI Whisper API 返回結果的工具包,需要使用者的 API Key,我們沒有接入。在搭建並在樣例上驗證中文對齊誤差之前,不能聲稱已有詞級時間戳。可選替代:(1) 數位人工具導出的 SRT(句級);(2) 使用者在剪映裡「識別字幕」導出 SRT;(3) 使用者同意後由 Claude 搭建本地 ASR(需先徵得同意,裝依賴要說明);(4) 先用句級估算做樣張,終版前再補對齊。
  • 無論哪種,把結果存成 projects/<slug>/words.json 並在 notes.md 記明來源與置信度;中文讀錯字要對比稿子(digital-human.md §10)。 交給使用者:驗收表 + 時間戳來源說明 + 需要重導的清單。請使用者確認:影片是否就用這一條;時間戳走哪種方案。

第 1 輪 稿子(選題 → 口播稿 → 句子角色表)

做:選題 5 問(thinking.md §2)、模板類型、一句主張 + ≤3 條證據 + 一個反差(thinking.md §4–§7)、鉤子(hooks-and-copy.md §1–§2)、段落時間表(templates.md;字數 = 時長 × 4.8 左右,教學型 N = round((T−42)/25))、逐句口播並打 role/intent/marks(hooks-and-copy.md §3–§5;每句 ≤20 字、數字單獨成句、CTA 只在結尾一次、不寫原博主句子,forbidden.md)。若使用者已有影片,則以影片裡的實際台詞為準,只做「角色表 + 修改建議」,不擅自改稿。 交給使用者:2–3 個標題/鉤子備選 + 口播稿全文(可粘貼版)+ 句子角色表(精簡列:句號|原句|role|誰出鏡)。 請使用者確認:鉤子選哪個;哪些句子要刪改;數字/事實是否屬實;字數與時長是否合適。 回饋後:改稿 → 重算字數/語速 → 如已有影片需重新對齊時間。

第 2 輪 分鏡(分鏡表 + 素材清單)

做:判斷句→主播、證明句→動效,連續 2–3 句合一個主畫面,選 PIP 預設(visual-mapping.md、motion-and-camera.md、comfort-rules.md);開頭 20–30s 最密,之後「15s 緊 + 15–20s 鬆」,大景每 15–20s 回歸,無臉段 ≤10s,punch ≤2/分,錄屏每 3–5s 一次推拉或標註。證據素材不夠就降級為關鍵詞卡 + 主播,不硬湊。 交給使用者:分鏡表(時間|口播|畫面|PIP|字幕與強調詞|動效/運鏡)+ 素材清單(每項:id、用在第幾鏡、要什麼內容、怎麼錄/怎麼導、沒有的話的降級方案,如「screen_render:渲染命令運行的錄屏,≥1080p,5–10s,光標可見;沒有則改關鍵詞卡」)。 請使用者確認:分鏡節奏;每個素材能不能提供;缺的素材是補還是降級。 回饋後:改分鏡、更新素材清單;素材到了放 input/,檢查分辨率/內容/隱私信息(帳號、Key、人臉)後轉進 public/projects/<slug>/assets/。

第 3 輪 關鍵幀樣張(與原片證據幀並排)

做:寫 timeline.json(remotion-pipeline.md;可參考組件渲染樣例 templates/timeline.example.json,但內容換成本項目),npm run lint:timeline,然後出 6–10 張關鍵幀——鉤子幀、夾頭詞、關鍵詞卡/章節卡、錄屏推鏡中點、大數字/對比卡、PIP 畫面、字幕幀、片尾幀各選代表:

cd <工程目錄>
# 用法: node <腳本> <timelineSrc> <outDir> <幀號,幀號,…>;打包一次出多張,約 10 秒,輸出 f<幀號5位>.png
node talking-video-oneshot/scripts/stills_timeline.mjs projects/<slug>/timeline.json out/<slug>/stills 45,300,620
# 單張也可:npx remotion still Main out/<slug>/x.png --props='{"timelineSrc":"projects/<slug>/timeline.json"}' --frame=300
# 並排(左原片 右我們,均縮到 960×540)
scripts/compare.sh projects/<slug>/review/r3_cmp_01.png <原片證據幀> out/<slug>/stills/f00045.png   # 左原片 右我們,均縮到 960×540
  • 原片證據幀在 <素材目錄> 的 v03|v04|ex04–ex06/evidence/、ex01–ex03/ev/、v01|v08|v09|ex07|ex08/frames|bursts|scenes/;對應 analysis.md/motion_catalog.md/transcript.md 可查某鏡頭在原片裡的做法。工程 compare/ 下還有各組件的既有對照圖。唯讀,不要改動原片目錄。
  • 找不到同類證據幀時,如實標「無對應原片幀」,改用 packaging.md 的參數核對。
  • 每張並排圖下寫一行:這是哪一鏡、對標原片哪一幀、我看到的差距(字型/陰影/間距/位置/色值)。 交給使用者:6–10 張並排圖(一次最多發 4 張,分批)+ 我自己看出的差距清單。 請使用者確認:每張「像 / 不像 / 哪裡不像」;哪幾處優先修。 回饋後:按 collaboration.md 對照表改 timeline 或(若是組件級缺陷)記錄為「工程問題」告訴使用者,需要時可以直接改 src/(改完建議跑回歸);改完只重出被點名的那幾張。

第 4 輪 低清整片預覽

做:整片低清渲染,供看節奏和時間點(高 CRF、可半分辨率;首次渲染前告訴使用者預計耗時,60s 約 4 分鐘量級):

cd <工程目錄>
npx remotion render Main out/<slug>/preview_v1.mp4 --props='{"timelineSrc":"projects/<slug>/timeline.json"}' --crf=32 --scale=0.5 --codec=h264

(只改局部時先用 --frames=a-b 渲染區間。)預覽若用佔位素材/時間戳是估算的,必須告訴使用者。 交給使用者:preview_vN.mp4 + 我標出的 5–8 個「請重點看」的時間點(mm:ss)。 請使用者確認:逐時間點回饋(格式:「0:23 貼字晚了」「1:05 錄屏推太猛」);整體節奏是否像原片。 回饋後:把每條回饋翻譯成參數改動(對照表),改完說明「改了哪些鏡頭的那個參數」,再出 v2(盡量只重渲受影響區間)。可多次循環。

第 5 輪 精修與終版渲染 + 自檢

做:處理預覽遺留項;時間戳升級為真實對齊(若第 0 輪用的是估算);lint 15/15;終版渲染:

npx remotion render Main out/<slug>/final.mp4 --props='{"timelineSrc":"projects/<slug>/timeline.json"}' --crf=18 --codec=h264

再抽 5–8 幀核對(無紅底 「P2 scene not implemented」、字幕不跳、貼字不早於口播、運鏡不過猛、hostAudio 有聲)。按下方「交付前自檢清單」逐條寫 ✓/✗/數值,不確定的列入「待使用者確認」,整理成 templates/output-template.md 交付。 交給使用者:final.mp4 + 自檢表 + 與原片的最後一輪並排幀。使用者不滿意 → 回到對應輪次,不要硬交。

路徑 A(剪映手工)

使用者要在剪映裡自己剪時,第 3–5 輪改為:按分鏡寫 references/jianying-guide.md 的逐項操作說明(字幕樣式、關鍵幀推鏡、圓形 PIP、動畫時長、轉場、音效、配樂),使用者剪出一版後截圖/導出片段交回,Claude 對照原片和 comfort-rules 手查後給修改意見。

兩條執行路徑對照

項路徑 A:剪映手工路徑 B:Remotion 自動
適合不寫代碼、素材少、要快要批量、要像素級一致、要自動檢查
輸入數位人影片 + 分鏡表 + 剪輯說明數位人影片 + host.wav + 時間戳 + timeline.json
字幕識別字幕 → 一個樣式批量套用,y≈0.90Hsubtitles[],box 46px,y 0.905H(stroke 56px,y 0.885H)
推鏡縮放關鍵幀 100→112%,28 幀,緩入緩出camera:[{kind:'push',dur:28,scale:[1,1.12],ease:'inOutCubic'}]
PIP畫中畫 + 圓形蒙版,直徑 0.14W,圓心 (0.08,0.85)pip:{preset:'bl_circle'},連續鏡頭自動合併
檢查手查(comfort-rules.md 的「手查」項)lint 15 條 + 抽幀
局限剪映菜單/數值需按版本確認;標註隨推鏡需複合片段圖表/成片全屏/片尾卡/毛筆字/音效未實現(有替代方案)

最終交付格式(templates/output-template.md;各輪產物拼成)

  1. 基本信息 1. 標題與封面 2. 口播稿 + 角色表 3. 數位人設置 4. 分鏡表 5. 剪輯說明(5A 剪映 / 5B Remotion) 6. timeline 摘要 7. 自檢 + 待確認項。協作過程示例見 examples/demo-script.md。

交付前自檢清單

  • 3 秒內出現鉤子(問句/反差/承諾)且有第一次畫面變化;開頭沒有寒暄、自我介紹、Logo
  • 語速 4.5–5.5 字/秒(總字數 ÷ 時長);每句 ≤20 字;字幕行 ≤14 字(8–10 最佳)
  • 英文版:語速 2.2–2.6 詞/秒;每句 ≤16 詞;字幕 ≤7 詞/38 字符;全片抽幀無漢字(english.md §4:timeline 靜態 grep + tools/ocr 對抽幀 OCR,結果 NO_CJK)
  • 每句都有 role 與 intent;論點在主播、證據在動效;證據不足已降級為關鍵詞卡
  • 切點落在句首(±3 幀)≥60%;2–3 句一個主畫面;刀/分 12–20(數據型 ≤24)
  • 鏡頭時長:主播 3–6s;B-roll 1.5–3s;卡片 1.5–4s;錄屏 5–10s(中間有運鏡/標註)
  • 大景每 15–20s 回歸;最長無臉段 ≤10s;punch-in ≤2/分;疊化 ≤2/分
  • 貼字在關鍵詞開始 −2~+4 幀出現、停留 ≥40 幀;同屏文字塊 ≤4
  • 動效時長落在 0/6/12(18)幀;運鏡幅度 ≤1.12,只作用於內容層;靜態素材全部慢推
  • 字幕全片一種樣式、位置不變;強調色 ≤3;只用兩種底
  • 沒有原博主的原句、口頭禪、口號、Logo、形象、標誌性標題與片尾(forbidden.md)
  • 內容是使用者自己的主題與素材;示例數據已標「示例」;素材缺口已列出
  • 路徑 B:lint 15/15 PASS;抽幀無紅底佔位;hostAudio 已設置(否則無聲)
  • 終版:響度 -16 LUFS(人聲+SFX,peak < -1 dBFS);影片/音頻時長一致(±0.05s);OCR 每 1.5s 抽幀嚴格檔零漢字;assets.bgm 未設置;成片已拷到桌面,大小與時長寫進交付說明

禁區(詳見 references/forbidden.md)

帳號片尾卡與吉祥物、原博主的口號/問候/口頭禪/固定標題與過場句、原博主形象與演播室(服裝、霓虹房間、燈牌、書房沙發)、他們的 3D 卡通角色、國旗紋理角標、火焰轉場、口播廣告、綜藝化梗(VHS、惡搞卡、梗圖)、原片的素材與數據。可以沿用的只有視覺母題(黑底網格、螢光綠標籤、圓角藥丸、圓形 PIP 等),主色可換成自己的。

已知限制(如實告訴使用者)

  • 樣本:13 集(博主A 9、博主B 4),均為 540P、2 倍速錄屏;<0.13s 的入場記為硬切;緩動/spring 多為估計;原片錄屏無聲,配樂與音效全部是推測。
  • Remotion 未實現(P2):圖表(餅/條形/折線/氣泡/3D 時間軸/翻牌)、clip_full 成片全屏、ClosingCard、BrushWord 毛筆字、TitleCard、Badge 章節角標、sticker_words/name_tag/checklist 貼字、換背景、主題切換(meta.theme 不被讀取,PIP 紫環不隨主題關閉)。用了會出紅底佔位或被靜默忽略——替代方案見 remotion-pipeline.md §4。
  • 沒有語音轉寫/詞級對齊工具:本機未裝 whisper 類工具,第 0 輪的詞級時間戳目前只能用數位人工具的 SRT / 使用者剪映識別字幕 / 字數估算(待搭建,見第 0 輪)。
  • 沒有自動 planner:timeline 目前由 Claude 手寫或用工程裡的 builder(按字數均分時間)生成;接入真實數位人後需用真實詞級時間戳重排(數位人工具未定,第 2 步流水線未驗證)。中文強制對齊誤差未驗證。
  • 字體差距:窄體(ZCOOL QingKe HuangYou)偏重、數字(Barlow Condensed)偏寬;毛筆體需自查授權。字體經 google-fonts 線上加載。
  • 剪映路徑:菜單名、字號

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

相關技能