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 仓库。

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

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

小夜