前言¶
在 DeepSeek Harness (DSH) 中,當詢問視頻內容時,Agent 需要的是畫面。
現有的方案基本只有兩類:使用視覺橋插件(把幀發給雲端 VLM,只返回文字結論,需要 API key 且結論是二手的),或者讓 Agent 自己拼 ffmpeg 命令(需要處理時間戳和邊界,容易出錯)。
dsh-video-see 提供了第三條路:不調用外部 VLM,不需要任何 API key,畫面不離開機器。它使用 ffmpeg 抽取幀,作爲真實圖像返回給 Agent,並附帶時間戳。
這是什麼¶
dsh-video-see 是 DeepSeek Harness 的一個插件。它使用 ffmpeg 對視頻進行抽幀,返回真實的圖像內容塊,並標記時間戳。作者是 HongtaoWang75,許可證爲 MIT。
核心功能¶
- 使用 ffmpeg 抽取視頻幀。
- 將真實圖像返回給 Agent。
- 爲每幀標記時間戳。
- 不需要視覺 API 或 API key。
- 所有處理都在本地完成,不離開機器。
- 支持多種參數:input, times, every, count, start, end, width, mode。
- 可通過 cordis.patch.yml 配置:ffmpegPath, ffprobePath, maxFrames, maxWidth, maxPixels, quality, timeoutMs, toolTimeoutMs, graceMs。
- 包含單元測試和契約驗證腳本。
安裝與啓用¶
- 執行安裝命令:
dsh plugin --profile web add dsh-video-see
- 重啓
dsh web(插件樹在進程啓動時組合)。
前置條件:必須安裝 ffmpeg / ffprobe(或在配置中指定絕對路徑)。插件零運行時依賴,沒有構建步驟,也不聯網。
典型用法¶
安裝後,直接提問即可。Agent 會調用 video_see。
示例:
- “D:\videos\demo.mp4 裏發生了什麼?”
- “第 14 秒畫面上那行小字寫的是什麼?”
- “這條片子剪了幾個鏡頭?”
主要參數:
- input:視頻路徑(必填)。
- times:定點抽取秒數或時鐘串,優先級最高。
- every:每 N 秒一幀。
- count:等分抽取幀數(1-64,默認 8)。
- start / end:指定時間窗。
- width:單幀寬度上限。
- mode:frames(每幀一張圖)或 sheet(拼成一張圖版)。
適用場景與注意¶
- 無音頻轉錄:不轉寫音頻,
hasAudio僅報告音軌存在。 - 不經過 ctx.fs:
input路徑直接交給 ffmpeg,文件沙箱對此讀取不生效。 - 離散快照:幀是離散的,運動或一閃而過的細節可能被漏掉。
- 依賴 ffmpeg:必須安裝 ffmpeg。
- 邊界處理:自動處理幀邊界、旋轉檢測、豎屏按面積縮放、僅在必要時縮放。
- 臨時文件:臨時幀會立即刪除。
- 錯誤提示:提供用戶友好的失敗信息。
短結尾¶
該插件將視頻幀以真實圖像形式交還給 DSH Agent,配合本地模型的原生視覺能力,避免了二次翻譯和 API 成本。如需瞭解詳情,可查看目錄頁或 GitHub 倉庫。