前言¶
在 DSH 裏讓智能體「看懂」本地視頻,常見做法是走媒體類插件:抽幀或整段交給視覺模型,或再走轉寫鏈路。若插件把「取素材」和「選模型路由」綁在一起,在沒有合適全模態能力時,可能出現整條鏈失敗、只得到一句模糊結論的情況。排查時往往既要去確認 ffmpeg,又要去查 provider 配置,成本偏高。
dsh-media-kit 的做法相反:插件只負責用 ffmpeg 從本地音視頻取出幀或音軌,把生成文件的路徑交回會話;看圖、轉寫、判斷內容交給開發者已有的能力與工具。不接入模型、不上傳、不做路由選擇,抽幀成功或失敗都能在 ffmpeg 這一層說清楚。
這是什麼¶
dsh-media-kit 是 DeepSeek Harness 社區插件,維護者爲 Daphne999(package 作者署名爲沈藍),分類爲工作流。當前 package 版本爲 0.1.1,許可證 MIT。
一句話定位:從本地視頻或音頻用 ffmpeg 抽均勻幀、定點幀、場景變化幀或音軌文件,返回值是磁盤上的路徑列表,不調用視覺或語音模型,不把文件上傳到外網。
核心功能¶
插件通過五個工具暴露能力,名稱與行爲以倉庫 README 爲準:
| 工具 | 作用 |
|---|---|
media_probe { path } |
查詢時長、分辨率、編碼、是否含音軌 |
video_frames { path, count } |
在時長上均勻抽 N 張 PNG(count 1–24,默認 6),返回路徑 |
video_frame_at { path, at } |
在指定秒數取一張幀 |
media_audio { path, format } |
抽出音軌爲 m4a 或 mp3,返回路徑 |
video_scene_frames { path, threshold, maxFrames } |
按場景檢測抽幀,僅在畫面實質變化時取樣 |
README 中的典型鏈路是:先 media_probe,再 video_frames(count=9),由會話裏已有的視覺能力逐張查看;需要字幕或畫面細節時,由開發者自行讀圖,而不是插件代寫結論。
與同類媒體插件的差異,README 概括爲:多款插件定位爲「分析器」(取素材、路由模型、給出文字結論);本插件定位爲「取景器」(把畫面或音軌文件擺出來)。因此不必爲插件單獨配置 API key 或 provider;視覺調用次數與抽幀數量直接相關,可用 video_frame_at 或 video_scene_frames 控制成本。video_scene_frames 用於避免均勻抽幀漏掉短促但重要的畫面變化。
實現上有三處刻意設計:
- 工作目錄默認使用
~/.dsh/media-kit/work/,可通過配置項workDir修改;避免在某些環境下向%TEMP%寫入時觸發 ffmpeg 的 Permission denied。 - 查找 ffmpeg 的順序爲:配置
ffmpegDir→ 環境變量FFMPEG_DIR→ 已知目錄 → PATH;全部失敗時報錯並提示應配置哪個字段,不假設 ffmpeg 一定在 PATH 中。 - 抽音軌前先通過探測確認存在音軌,避免對無音軌文件(例如部分 DASH 拆條)直接跑 ffmpeg 得到難以理解的 stream 報錯。
插件明確不做:音頻轉寫(只提供音軌路徑)、文件上傳、內容判斷與摘要。
安裝與啓用¶
在已安裝 DSH CLI 的環境中,README 給出的安裝方式爲:
dsh plugin --profile web add <本倉庫地址>
將 <本倉庫地址> 換爲插件 Git 倉庫地址即可,例如:
dsh plugin --profile web add https://github.com/Daphne999/dsh-media-kit
首次使用前本機需要可用的 ffmpeg。若未安裝,可下載官方構建並解壓,在插件配置中將 ffmpegDir 指向包含 ffmpeg / ffprobe(Windows 下爲 ffmpeg.exe / ffprobe.exe)的 bin 目錄。
插件在 DSH 進程權限下讀寫本地路徑與調用 ffmpeg,安裝前應自行審閱源碼與 MIT 許可證,確認路徑與二進制來源可信。
典型用法¶
下面流程摘自 README,可在支持該插件的 DSH 會話中按序調用工具名與參數:
- 對目標本地文件執行
media_probe,確認時長、分辨率、是否有音軌。 - 需要概覽畫面時,調用
video_frames,例如count=9,得到多張 PNG 路徑後,用當前會話已有的視覺能力逐張查看。 - 只需某一時刻畫面時,用
video_frame_at指定秒數。 - 長片且關心情節切換點時,用
video_scene_frames配合threshold、maxFrames,減少均勻抽幀帶來的遺漏。 - 需要後續 ASR 時,用
media_audio指定format(m4a 或 mp3),將返回的音軌路徑交給已有轉寫工具;插件本身不執行轉寫。
僅要元數據、不需畫面時,停在 media_probe 即可。
適用場景與注意¶
適合需要在智能體工作流裏處理任意本地 mp4 等文件、又希望視覺與轉寫能力與 DSH 外既有棧保持一致的場景。也適合希望抽幀失敗時直接看到 ffmpeg 層錯誤、而不是被模型路由「兜底」成空結論的情況。
不適合期望插件直接輸出視頻摘要、彈幕分析或平臺綁定能力(如 B 站專鏈)的需求;那些能力 README 中指向其他專用插件。
注意:輸出文件落在配置的 workDir(默認 ~/.dsh/media-kit/work/),長期使用需自行清理或指定目錄。星標與社區目錄信息以 SkillHub 與 GitHub 頁面爲準;DSH 插件生態由社區目錄聚合,與 DeepSeek / 幻方無官方從屬關係。
結尾¶
dsh-media-kit 把本地音視頻處理收斂爲「探測 → 抽幀或抽音軌 → 返回路徑」,把模型與業務判斷留在會話既有能力一側。更多說明見社區目錄頁與 GitHub 倉庫:
- 目錄頁:https://www.skillhub.cn/plugins/Daphne999/dsh-media-kit
- 倉庫:https://github.com/Daphne999/dsh-media-kit