Communitygithub.com

Ablation-Lab/video-review

將影片檔案或 Remotion 專案轉換為可閱讀的審查包,包含擷取的影格、音訊分析、OCR 文字及變更紀錄,讓您無需實際觀看影片即可進行審查。

video-review 是什麼?

此技能專為開發者與 AI 代理設計,能自動將影片(MP4、MOV 等)或 Remotion 專案轉換為結構化的文字審查報告 (`report.md`) 與 PDF。其核心功能是透過 `review-video.ps1` PowerShell 指令碼,提取場景變換處及每 2 秒的關鍵影格,並對音訊進行 LUFS、峰值、削波、靜音與點擊聲等檢測。同時,它會使用 Windows OCR 讀取畫面上的文字,進行拼寫、閱讀時間、數字比對與 YouTube Shorts 安全區域檢查。此外,它會比較與上一次審查的差異,生成變更清單,並可輸出包含關鍵影格的輕量 `key-frames.pdf`,方便附加於對話中。此工具支援 Windows 與 ffmpeg,並能與 Cursor、Claude Code、Codex 等平台整合,適用於腳本審查、校對、品質檢查與版本比較等場景。開發者可以透過命令列參數靈活控制影格間隔、旁白來源、輸出目錄及 OCR 開關,以適應不同長度與類型的影片。

相容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Ablation-Lab/video-review-tool/tree/main/skills/video-review

在你喜歡的 AI 中提問

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

說明文件

影片審查

此工具能將一個影片檔案或 Remotion 專案轉換成可供閱讀的審查包:包含 PNG 格式的影格、音訊發現、每個影格對應的旁白行與 OCR 辨識出的螢幕文字、自動檢查結果,以及與上一次審查的差異,全部收錄在 report.md 中。您的工作是執行它,然後根據這些素材審查影片。

1. 執行工具

使用以下精確命令執行(可同時在 Bash 與 PowerShell 工具中使用),請將使用者的路徑放在引號內:

powershell -NoProfile -ExecutionPolicy Bypass -File "${CLAUDE_SKILL_DIR}/review-video.ps1" "<影片檔案或 Remotion 專案資料夾>" [選項]
  • 影片檔案(MP4、MOV 等):每 2 秒、每個場景變換附近以及結尾處擷取影格。
  • Remotion 專案資料夾:使用 npx remotion still 渲染靜止畫面(無需完整渲染),並單獨渲染音訊。除非指定 -Composition <id>,否則它會使用第一個 composition;輸出會列出其他 composition。專案中需要已執行過 npm install。

實用選項(皆為可選):

選項用途
-Composition <id>Remotion:指定要渲染哪個 composition。
-Frames 0,90,450Remotion:僅渲染這些影格編號。
-Interval <s>常規影格之間的秒數(預設為 2)。對於長影片,請使用 4 或更大值。
-Narration <file>如果無法自動找到旁白來源:.srt、.vtt、.csv、.md 錄製表格或 voiceover.json。
-Project <folder>當影片位於其專案資料夾之外時,用於搜尋旁白的資料夾。
-OutDir <folder>指定審查包的輸出位置。
-CompareWith <folder>與一個較舊的審查資料夾(例如先前檔案名稱的)進行比較。預設情況下,每次執行都會與同一影片的上次執行結果進行比較。
-ChangesPdf當使用者只需要變更內容時,同時製作僅包含變更影格的 PDF。
-KeyFramesPdf在審查資料夾中製作 key-frames.pdf:約 15 到 20 個影格,每個場景一個完整建構的影格加上被標記的影格,標註時間戳記、場景名稱和發現問題,大小低於 10 MB。如果審查資料夾中已存在完整的審查結果,則直接使用這些影格建構,不會有其他變更;否則會先執行完整審查。加上 -NoPdf 可跳過完整的聯絡表 PDF。
-KeyFramesMaxMB <n>key-frames.pdf 的大小限制(預設為 10)。
-WordsPerSecond <n>閱讀時間檢查的閱讀速度(預設為 3)。
-NumberWordsFrom <n>從此數值以上開始檢查口語數字詞彙(預設為 10)。
-SafeMargins t,r,b,lShorts 安全區域邊距,以 1080x1920 為基準(預設為 288,192,672,48,採用 Google 謹慎的數值)。
-WordList <file>拼寫檢查可接受的額外詞彙列表檔案。
-SceneThreshold 0.3適用於攝影鏡頭畫面(預設值 0.02 適合含有淡入淡出效果的投影片)。
-NoOcr跳過螢幕文字檢查。
-NoPdf當使用者只需要您的審查意見時,跳過 PDF 生成。
-NoAudioRemotion:跳過音訊渲染。

長影片需要一些時間:8 分鐘的影片大約需要 2 分鐘,每個 Remotion 靜止畫面約需 4 秒。請設定 10 分鐘的超時時間。輸出的最後幾行會給出 report.md、影格資料夾和 PDF 的路徑,以及音訊、文字檢查和變更的簡要統計。審查包會存放在影片旁的 <video name>-review\ 資料夾中,或在 Remotion 專案內的 out\<composition>-review\ 資料夾中,除非指定了 -OutDir。每次執行都會將上一次的結果保留在 previous\ 資料夾中。

如果輸出以 FAILED: 結尾,請停止並告知使用者原因。如果缺少 ffmpeg,解決方法是執行 winget install --id Gyan.FFmpeg -e,然後開啟新的終端機。以 WARNING: 開頭的行也會同時出現在報告頂部,請將它們轉達給使用者。

2. 快速瀏覽或完整審查

執行工具本身成本很低;開啟影格才會消耗使用者的配額,因為您每開啟一個影格,就需要讀取一張圖片。對一個 15 分鐘的影片進行完整審查,若使用六個 Opus 子代理開啟每個影格,曾耗費掉一整次使用對話。因此:

  • 預設進行快速瀏覽,除非使用者明確要求完整審查(例如使用「完整審查」、「每個影格」、「全部檢查」等詞彙)。進行快速瀏覽時,請依據 report.md 作業:包括摘要、檢查結果、旁白時間軸以及每個影格的 OCR 文字和標記。透過報告中的列來查看場景變換影格(場景結束 和 場景變更),僅在出現問題時才開啟該影格圖片:例如檢查結果被標記、旁白行與螢幕文字不符、影格有變更、該時間點有音訊問題、或者預期有投影片但 OCR 文字為空白或亂碼。最後請說明這是快速瀏覽以及您開啟了多少影格。
  • 務必開啟一些真實影格,無論是快速瀏覽、純文字審查還是僅基於時間軸的判斷:每個場景大約一個完整建構的投影片(場景結束 影格,即所有元素都出現之後),如果沒有明確的場景,則在影片中均勻分佈 15 到 20 個影格。這些影格能顯示文字無法呈現的視覺風格(佈局、重疊、溢出框、對比度、空白影格)。對於長影片,請讓負責快速瀏覽的 Sonnet 子代理開啟這些影格。最後務必說明開啟了多少影格。
  • 僅在被要求時才進行完整審查。 如果影片長度超過 5 分鐘(請查看 report.md 摘要中的 長度 和 影格數),請在開啟任何影格之前停下來:告知使用者總共有多少影格以及您計劃開啟多少個,說明完整審查會消耗大量配額,並詢問他們是否要繼續、改為快速瀏覽、或者使用更大的 -Interval 參數重新執行以減少影格數量(-Interval 4 可將常規影格數減半)。等待使用者回應。
  • 進行完整審查時:一次最多執行兩個子代理,總共最多開啟 100 個影格,除非使用者指定了其他數量或說了「每個影格,無上限」。除非使用者要求 Opus,否則子代理使用 Sonnet;如果他們要求 Opus,可以使用,但要提醒一次這會消耗更多配額。為每個子代理分配各自的影格範圍和 report.md 中對應的行,並讓它們僅回報發現的問題。

大致的影格數量:-Interval 2(預設值)每分鐘影片產生 30 個常規影格,-Interval 4 產生 15 個,-Interval 10 產生 6 個,再加上每個場景變換最多 2 個影格。

使用者如何提出要求

使用者說您該做
"Review C:\path\to\video.mp4"進行快速瀏覽。
"Do a full review of C:\path\to\video.mp4"進行完整審查,最多 100 個影格(若超過 5 分鐘則先詢問)。
"...full review..., every frame, no cap"對每個影格進行完整審查。若超過 5 分鐘則先詢問,並告知這可能會耗費一整次使用配額。
"...use Sonnet subagents" / "...use Opus"使用該模型作為子代理(Sonnet 已是預設值)。
"Skim it with Sonnet and write a timeline file, then give me your overall opinion from the timeline"執行工具,然後讓一個 Sonnet 子代理快速瀏覽審查包,開啟關鍵影格的樣本(每個場景一個完整建構的投影片),並在審查資料夾中撰寫 timeline.md:每個場景一個條目,包含其時間範圍、旁白摘要、螢幕文字摘要、視覺外觀描述以及任何問題。僅閱讀該檔案(不要自行開啟任何影格),然後提供整體意見:結構、節奏、清晰度、視覺風格,以及投影片是否支援旁白。說明開啟了多少影格。
"Make the review PDF for C:\path\to\video.mp4 so I can attach it to a chat"執行工具,然後提供 PDF 的完整路徑。除非被要求,否則不要審查或開啟影格。
"Make a timeline file and a key-frames PDF ... so I can attach both to a chat"使用 -KeyFramesPdf 參數執行工具(請參閱下方「與聊天 AI 分享」),並按上述方式撰寫時間軸。

與聊天 AI 分享

對於長影片,請不要附加完整的聯絡表 PDF(可能包含數百個影格)。提供使用者兩項東西:一個文字時間軸檔案(timeline.md,如上所述)和關鍵影格 PDF,使用 -KeyFramesPdf 參數生成(如果不需要完整 PDF 則加上 -NoPdf;如果資料夾中已有審查結果,它會重用影格並在數秒內完成)。此 PDF 包含約 15 到 20 個影格:每個場景一個完整建構的影格加上被審查標記的影格,每個影格都標註了時間戳記、場景名稱和發現的問題,大小低於 10 MB,儲存在審查資料夾中名為 key-frames.pdf。請提供其完整路徑。如果工具無法找到明確的場景(沒有編號的頁尾徽章),它會均勻分佈影格並在標籤中說明。它無法自行發現視覺問題,因此如果您發現了任何問題(例如重疊、空白影格),請在交接時指出要查看的時間戳記。完整 PDF 最適合用於較短的影片(例如 Shorts),或者使用 -ChangesPdf 僅包含變更的影格。

3. 審查影片

  1. 讀取 report.md。順序如下:警告;與上次審查的差異(僅當有上次執行記錄時:變更的影格,附帶舊影格的連結以及新增和移除的文字);摘要;音訊發現;旁白時間軸(每行附帶開始、結束時間和匹配分數);螢幕文字檢查(拼寫、閱讀時間、數字、Shorts 安全區域);最後是一個表格,包含每個影格的時間、擷取原因、其在 frames/ 中的檔案、該時刻的旁白、其 OCR 文字及其標記。(暫停;最後一行) 表示沒有人說話,而顯示的那一行是最後被說出的。
  2. 如果使用者詢問變更了什麼,或者出現了「變更」章節,則從變更的影格開始:將每個變更的影格與其前一個影格並排開啟,並說明變更了什麼。
  3. 將每個投影片與其旁白行進行比較。在快速瀏覽中,根據報告中的 OCR 文字進行比較,僅開啟看起來有問題的影格(請參閱第 2 節)。在完整審查中,使用讀取工具開啟影格,在約定的上限內:先開啟標記為 場景結束 的影格(每個都是在即將改變之前的完整投影片)和 場景變更 的影格(每個都是穩定下來後的下一個投影片),然後是每個被標記的影格,最後是旁白行改變或螢幕上有內容在建構的常規影格。
  4. 將自動檢查視為線索,而非結論,並在影格圖片中逐一確認:
    • 拼寫:OCR 可能會誤讀小字體、模糊或等寬字體的文字,而且有些被標記的詞彙是刻意為之(如人名、刻意顯示的聽錯詞彙)。僅報告圖片確認有問題的項目。
    • 閱讀時間:被標記的投影片包含的新詞彙數量超出其在給定閱讀速度(每秒字數)下可容納的時間。帶有旁白的圖表很容易觸發此標記;請指出哪些投影片確實需要更多時間。
    • 數字:螢幕上找不到的口語數字可能是真實的不匹配(投影片顯示了不同的數字),也可能是 OCR 遺漏的數字(通常是大的標題數字)。請檢查影格。
    • 安全區域:垂直影片中,文字位於 YouTube 疊加層邊距內。預設邊距是已公佈的最謹慎數值,因此請優先檢查靠近底部和右邊緣的文字。
  5. 在您開啟的影格中,也請用眼睛檢查:與旁白不符的螢幕文字、數字、名稱或標籤;被截斷或重疊的文字;低對比度;空白或黑色影格;佔位符或遺留的內容;標記為「未找到」的旁白行;以及報告中的音訊問題(削波、真實峰值高於 -1 dBTP、滴答聲或爆音、影片中段出現靜音、響度遠離約 -14 LUFS)。
  6. 簡要回報:先列出問題,每個問題附帶影格編號和時間戳記(例如 #14 00:22.00)以及問題說明,然後是音訊發現,最後是工具無法檢查的項目。如果一切相符,請直接說明。除非使用者要求,否則不要變更專案;如果被標記的詞彙是正確的,可以建議將其新增到專案資料夾中的 review-words.txt 檔案中。

PDF 檔案

<name>-review.pdf 位於同一資料夾中:包含一個封面頁(列出音訊發現、檢查結果和任何變更),然後每頁 6 到 9 個影格,每個影格標註其時間戳記、發現的任何問題(紅色)、旁白行和 OCR 文字(藍色,拼寫錯誤加底線)。檔案大小控制在 20 MB 以下。使用 -ChangesPdf 時,還會有一個僅包含變更影格的 <name>-changes.pdf。當使用者想要將內容附加到 Claude 聊天或發送給某人時,請提供完整路徑。使用 -MaxPdfMB <n> 可設定更小的限制。key-frames.pdf(使用 -KeyFramesPdf 參數)是附加到長影片聊天中的最佳選擇。

相關技能