Communitygithub.com

Bikash-Meher/antigravity

將任何原始螢幕錄影(桌面應用程式、網站、Web Portal、SaaS、ERP)轉換為附帶旁白與HUD註解的MP4使用者指南,並同步產生SRT字幕。使用者只需提供影片檔案路徑(可選編輯流程備註或語調偏好),無需提供JSON配方。

antigravity 是什麼?

這項技能可自動將原始螢幕錄影轉換為專業的影片使用者指南。它透過FFmpeg以每秒3幀的速率提取幀(例如,210秒的影片約提取630個幀),並在編輯前分析所有幀,讓AI代理能完整理解工作流程。代理會自動產生recipe JSON,透過`--plan_only`驗證時間,並在渲染最終MP4與SRT前,讓使用者確認旁白語音與語調。此技能支援Claude Code、Codex、Cursor與Antigravity shell等多種AI代理平台。它遵循「零JSON/零手動準備」的核心規則,讓使用者只需提供影片路徑即可。

相容平台~Claude Code✓Codex CLI✓Cursor✓Antigravity
npx skills add https://github.com/Bikash-Meher/video-guide-skill/tree/HEAD/antigravity

在你喜歡的 AI 中提問

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

說明文件

影片指南製作技能

將任何原始螢幕錄影轉換為精美、附帶旁白與動態註解的使用者指南影片(.mp4 + .srt)。

核心規則(務必遵循)

  1. 零JSON / 使用者無需手動準備: 使用者僅需提供錄影路徑(例如 C:\recordings\demo.mp4 或一個幀資料夾)以及可選的指南/流程備註。你負責提取幀、分析整個影片、撰寫recipe JSON、驗證時間並渲染。
  2. 在編輯前分析所有3-FPS幀: 例如,一段210秒的錄影可產生約630個幀 @ 3 fps。透過FFmpeg提取每個3-fps的幀,掃描所有630個幀,檢查每個產生的Storyboard Contact Sheet(storyboard_*.png),並檢查全解析度的0NNN_frame.png幀(或使用inspect_frame_slice),然後再撰寫任何recipe步驟。
  3. 語音、語調與編輯前計畫閘門: 在最終渲染前執行validate_recipe(--plan_only),顯示你的編輯計畫(步驟數量、時間長度、dock區域、旁白),並要求使用者確認或選擇語音與語調 — 除非使用者明確下達「auto proceed」(或「just render」)指令。
  4. 首次執行自動設定: 如果克隆後缺少.venv,請執行python bootstrap.py一次(或直接執行tool_executor.py,它會自動啟動引導程序)。

逐步代理工作流程

階段 1 — 提取3-FPS幀並分析所有幀

執行 create_guide(透過MCP或CLI tool_executor.py):

# 透過CLI / Codex / Cursor / Antigravity shell:
echo '{"tool":"create_guide","video_path":"<VIDEO_PATH>","user_flow_notes":"<OPTIONAL_NOTES>"}' | python tool_executor.py

這會自動:

  1. 透過內建的FFmpeg提取 3 fps 幀(0001_frame.png ... 0NNN_frame.png,例如210秒的影片約630個幀)(engine.py --extract_frames --fps_extracted 3)。
  2. 使用全域差異和 8×6 空間區塊檢測器掃描 100% 的提取幀(0 .. N-1)(因此下拉選單、按鈕點擊、核取方塊和彈出視窗都不會被遺漏)。
  3. 產出:
    • storyboard_01.png、storyboard_02.png、... — 帶有 #frame、時間戳記、事件標籤(PAGE_TRANSITION / UI_ACTION / IDLE_HOLD)和青色變更區域框的標籤式聯絡頁面,涵蓋整個影片。
    • analysis_3fps.json — 完整時間軸片段 + 變更的像素邊界框 [x1, y1, x2, y2] + trim_candidate 閒置暫停。
    • recipe_draft.json — 起始的 engine.py recipe結構。

階段 2 — 視覺檢查Storyboards與關鍵幀(強制)

  1. 打開並閱讀 storyboard_paths 中列出的每個 storyboard_*.png 圖片。
  2. 從頭到尾追蹤使用者的完整操作流程:注意頁面載入、表單填寫、彈出視窗/模態框、長時間停頓(trim_candidate: true),以及任何需要剪掉的誤點擊。
  3. 從 frames_dir 打開特定全解析度的 0NNN_frame.png 圖片,用於你計畫強調的步驟(如果一個動作在狹窄的幀範圍內快速發生,請調用 inspect_frame_slice),以便:
    • 讀取確切的UI按鈕/欄位/選單文字。
    • 為 boxes、arrows、spotlight 和 zoom 測量準確的 [x1, y1, x2, y2] 座標。

階段 3 — 編寫最終 recipe.json

儲存符合 schemas/recipe.schema.json 的乾淨 recipe.json(查看 examples/recipe_create_exam.json 中的實際範例):

  • 必需的頂層欄位: source_video、frames_dir、fps_extracted: 3.0、input_source: "auto"、branding_text、preset(tech_hud | clean_light | minimal | high_contrast)、tone(friendly | professional | energetic | calm | corporate)、default_voice、dock_mode: "auto"、total_duration: "auto"、audio_timing_mode: "auto_shift"、export_subtitles: true。
    • (切勿將 "theme" 設為字串 — 應使用 "preset"。)
  • timeline_mapping:將編輯後的輸出片段清晰地映射到3-FPS來源幀(start_sec、end_sec、source_frame_start_3fps、source_frame_end_3fps)— 跳過無聊的停頓,並加速處理重複的打字!
  • steps:同步的條目(id、start_time、active_start、active_end、step_num、step_title、narration、sub、boxes、arrows、可選的 spotlight / zoom)。
    • 避免將 boxes[].label 放在密集的表格標題上,以免藥丸覆蓋相鄰的欄標籤。
    • 確保 narration 能舒適地容納在每個步驟的 [active_start, active_end] 時間視窗內。

階段 4 — 驗證計畫並確認語音/語調

執行預飛航驗證(合成Edge-TTS片段,檢查 [AGENT:] 佔位符和重疊,列印動態dock區域):

python tool_executor.py --args '{"tool":"validate_recipe","recipe_path":"<PATH_TO_RECIPE_JSON>"}'

語音: en-IN-NeerjaNeural(印度女聲)、en-IN-PrabhatNeural(印度男聲)、en-US-JennyNeural(美國女聲)、en-US-GuyNeural(美國男聲)、en-GB-SoniaNeural(英國女聲)、en-GB-RyanNeural(英國男聲)。 語調: friendly、professional、energetic、calm、corporate。

  • 如果出現任何 [OVERLAP WARNING] 或 has_overlaps 為 true,請擴展步驟時間視窗 / 修剪旁白,並重新驗證直到重疊為0。
  • 除非使用者要求自動繼續,否則請分享簡短的編輯前計畫,並在渲染前確認語音與語調。

階段 5 — 渲染並視覺驗證輸出

python tool_executor.py --args '{"tool":"render_guide","recipe_path":"<PATH_TO_RECIPE_JSON>","output_path":"<OUTPUT_MP4>","export_srt":true}'

透過FFmpeg快照檢查檢查2–3個渲染幀,確認框、箭頭、品牌藥丸和HUD dock從未與UI文字碰撞,然後傳遞 .mp4 和 .srt 路徑。

相關技能