前言¶
DSH (DeepSeek Harness) 採用了插件化的架構設計,Web 客戶端可以通過掛載插件來擴展功能。dsh-reel 是一個爲 dsh Web 專用的客戶端插件,它不需要啓動獨立的流媒體服務或佔用額外的端口,而是直接嵌入在 dsh Web 進程中運行。這個插件旨在解決本地媒體資源(視頻、圖片)在瀏覽器中聚合瀏覽、高清預覽以及沉浸式播放的問題。
核心功能¶
該插件主要提供以下能力:
-
輕量與安全
- 零額外進程:作爲插件運行,不啓動新的守護進程,與 dsh Web 共享端口。
- 嚴格安全沙箱:對本地媒體目錄實施只讀限制,所有文件枚舉與讀取均限制在白名單根路徑內,防止路徑穿越風險。
-
媒體聚合與瀏覽
- 多目錄聚合:支持掛載多個本地磁盤目錄,並在頂部生成統一的“庫”視圖。
- 多維視圖:提供“當前”、“全部”(遞歸平鋪)、“分組”(按目錄摺疊)三種瀏覽模式,以及網格和列表視圖切換。
-
高性能流媒體播放
- HTTP Range 流式秒開:視頻支持 HTTP Range 請求,拖拽進度條可即時起播。
- 服務端邊轉邊播:利用 FFmpeg 實時轉封裝老舊格式(如 AVI、WMV),避免瀏覽器原生解碼限制。
- 懸停預覽與精準幀截取:進度條懸停時展示縮略圖與時間戳,支持高質量封面海報提取。
-
交互與體驗
- 沉浸式全屏動態壁紙:支持將任意圖片或視頻設爲全站背景,視頻壁紙靜音循環,失焦自動暫停。
- 觸控手勢連播:適配移動端,支持上下滑動切換上一條/下一條視頻,類似短視頻應用的交互。
- 原生集成:設置項直接集成在 dsh 原生設置面板中,增刪目錄或修改壁紙即刻生效。
安裝與啓用¶
在安裝前,請確保你的環境滿足以下條件:
- dsh 版本:
>= v0.2.0-rc.1 - Node.js 版本:
>= 20
執行以下命令進行安裝:
dsh plugin --profile web add dsh-reel
安裝完成後,重啓 dsh web,在瀏覽器中訪問以下地址即可使用:
http://127.0.0.1:3080/reel
如需安裝開發版或進行源碼調試,可以使用 GitHub 引用:
dsh plugin --profile web add "github:lsjspl/dsh-reel"
如需卸載,執行:
dsh plugin --profile web remove dsh-reel
配置說明¶
插件的配置存儲在 profile 的 cordis.patch.yml 文件中,具體爲 reel 配置段。
基礎配置項¶
在 cordis.patch.yml 中添加如下配置:
- id: reel
config:
roots:
- /path/to/media1
- /path/to/media2
# cacheDir: 'D:/dsh-cache' # 縮略圖緩存目錄,留空使用系統臨時目錄
# wallpaper: 'D:/wallpaper.jpg' # 全局壁紙路徑
目錄回退機制¶
如果 roots 爲空,系統將按照以下順序自動查找媒體目錄:
1. 環境變量 REEL_ROOTS(多路徑請使用系統分隔符)。
2. $DSH_HOME/media。
FFmpeg 依賴¶
插件默認內置了 FFmpeg 和 FFprobe 作爲兜底依賴,無需手動安裝任何外部依賴即可使用封面抓取和視頻轉封裝功能。
適用場景¶
- 需要在 dsh Web 環境下快速瀏覽本地海量圖片和視頻文件。
- 需要一個無需額外服務佔用的輕量級媒體中心。
- 需要在移動端或觸控屏設備上通過手勢操作進行視頻連播。