dsh-reel: 專爲 dsh Web 打造的現代化流媒體庫與沉浸式畫廊插件

前言

DSH (DeepSeek Harness) 採用了插件化的架構設計,Web 客戶端可以通過掛載插件來擴展功能。dsh-reel 是一個爲 dsh Web 專用的客戶端插件,它不需要啓動獨立的流媒體服務或佔用額外的端口,而是直接嵌入在 dsh Web 進程中運行。這個插件旨在解決本地媒體資源(視頻、圖片)在瀏覽器中聚合瀏覽、高清預覽以及沉浸式播放的問題。

核心功能

該插件主要提供以下能力:

  1. 輕量與安全

    • 零額外進程:作爲插件運行,不啓動新的守護進程,與 dsh Web 共享端口。
    • 嚴格安全沙箱:對本地媒體目錄實施只讀限制,所有文件枚舉與讀取均限制在白名單根路徑內,防止路徑穿越風險。
  2. 媒體聚合與瀏覽

    • 多目錄聚合:支持掛載多個本地磁盤目錄,並在頂部生成統一的“庫”視圖。
    • 多維視圖:提供“當前”、“全部”(遞歸平鋪)、“分組”(按目錄摺疊)三種瀏覽模式,以及網格和列表視圖切換。
  3. 高性能流媒體播放

    • HTTP Range 流式秒開:視頻支持 HTTP Range 請求,拖拽進度條可即時起播。
    • 服務端邊轉邊播:利用 FFmpeg 實時轉封裝老舊格式(如 AVI、WMV),避免瀏覽器原生解碼限制。
    • 懸停預覽與精準幀截取:進度條懸停時展示縮略圖與時間戳,支持高質量封面海報提取。
  4. 交互與體驗

    • 沉浸式全屏動態壁紙:支持將任意圖片或視頻設爲全站背景,視頻壁紙靜音循環,失焦自動暫停。
    • 觸控手勢連播:適配移動端,支持上下滑動切換上一條/下一條視頻,類似短視頻應用的交互。
    • 原生集成:設置項直接集成在 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 環境下快速瀏覽本地海量圖片和視頻文件。
  • 需要一個無需額外服務佔用的輕量級媒體中心。
  • 需要在移動端或觸控屏設備上通過手勢操作進行視頻連播。

插件由社區開發者 lsjspl 維護,遵循 MIT 協議。更多細節請訪問 插件目錄 或 GitHub 倉庫。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜