dsh-boot-video:给 DSH 加一段可跳过的视频开机片头

前言

DeepSeek Harness(DSH)启动时默认会走自己的加载与开机卡片。若你希望每次打开客户端先播一段全屏 mp4,播完再淡入主界面,并且可以随时跳过,就需要在插件层做「开机动画」而不是改核心代码。社区里已有通过宿主注入盖住开机 UI 的做法;dsh-boot-video 把这条路线做成独立插件:自带素材、可导入本地视频、设置集中在一页,并对不支持的编码提供自动转码。

下面介绍它是什么、怎么装、日常怎么用,以及网页版与桌面版在声音、刷新上的差异。

这是什么

dsh-boot-video 由 xufu5438-netizen 维护,在 SkillHub 上归类为「趣味换装」。一句话定位:给 DSH 加一段视频开机片头——启动时全屏播放 mp4,播完淡出进入界面;点击画面或按 Esc 可随时跳过。

插件分宿主半边与浏览器半边:宿主负责路由流式返回视频(支持 Range / 206 / 304)、在文档解析阶段注入首帧以盖住 DSH 自带的 HARNESS / Loading plugins…;浏览器半边用一条 <video> 播放,零额外运行时依赖(宿主只用 node: 内建模块)。要求 DSH >= 0.2.0-rc.1(见 package.json 中 dsh.engines)。

核心功能

播放与跳过

  • 一段 mp4 对应一次开机片头:全屏播放,播完淡出,不是「加载完成就切走」。
  • 点击画面或按 Esc 跳过;跳过后仍走同一段淡出,不会硬切。
  • 每次客户端加载都会播(刷新页面也算);播放期不等待 DSH 加载状态,播完就淡出。
  • 画面按完整比例居中显示(object-fit: contain),不裁切;窗口比例与片源不一致时会出现黑边。

声音与平台

  • 桌面版(Electron):默认带声音自动播放。
  • 网页版:浏览器会拦截未静音自动播放,插件自动降级为静音,并在左下角显示「打开声音」(点它只开声、不跳过)。若希望网页版也自动带声,需在浏览器站点设置里允许该 DSH 地址播放声音(例如 http://127.0.0.1:3080),然后硬刷新;插件本身无法绕过浏览器策略。

设置页

设置 → 侧边栏「开机动画」(0.3.0 起独立一页):

控件 说明
启动时播放 「我的视频」(默认)全屏片头;「不播放」直通界面
片头素材 默认 assets/hdd.mp4(HDD);可选「月读世界」assets/yuedu.mp4(仅本地,未进发布包)
导入视频 选 mp4(上限 512 MB),存入插件 assets/user/,可改名、删除、预览
预览 「▶ 播放一遍」不重启即可看效果

换素材会立刻用新素材重播,无需重启确认。设置页底部有自检行:客户端半边何时加载、上次开机是否播成功,便于排查「改了没生效 / 视频打不开」。

导入与转码

  • 只收 .mp4;H.264 常见形态可直接导入。
  • HEVC / H.265:导入时会询问是否自动转换;确认后插件下载 ffmpeg(约 28 MB,国内镜像),转成 H.264(libx264 -crf 20,保持分辨率与帧率,音频 AAC 192k,+faststart),转完自验可播再收下。
  • 其它容器(.mkv / .webm / .mov)会被拒绝,需先导出为 mp4 + H.264。
  • 不想允许写盘导入时,启动 DSH 前设环境变量 DSHBV_IMPORT=0(客户端侧对应 IMPORT_ENABLED)。
  • 注意:用户导入的文件在插件目录内,重装或升级插件可能覆盖 assets/user/,重装前请先备份。

与其它插件、存储

  • 各插件使用自己的 localStorage 键,与其它片头插件同时安装不会互相干扰。
  • 卸载后开机恢复 DSH 默认启动画面;彻底清理可在控制台删除 dsh-boot-video:source、dsh-boot-video:asset、dsh-boot-video:last-boot。

安装与启用

官方推荐从 npm 安装(--profile web 与 README 一致):

# 从 npm 安装(推荐)
dsh plugin --profile web add dsh-boot-video

# 从 GitHub 安装(仓库带构建产物,没有安装期脚本,不触发构建授权)
dsh plugin --profile web add github:xufu5438-netizen/dsh-boot-video

# 或从本地目录安装(把路径换成你解压出来的目录)
dsh plugin --profile web add <本目录绝对路径>

装完后必须重启一次 DSH(bundle 在启动时装配),再 Ctrl+Shift+R 硬刷新——DSH 客户端 bundle 带长期缓存,普通 F5 可能仍用旧副本。

桌面版:也可在「设置 → 插件 → 添加插件」填写本地路径 / registry / git / tarball;装完后需完全退出并重新打开应用,仅刷新页面不够。

卸载(命令行安装时):

dsh plugin --profile web remove dsh-boot-video

桌面版在「设置 → 插件」中卸载即可。

典型用法

在界面里换片头、导入自己的 mp4

  1. 打开 设置 → 开机动画。
  2. 「启动时播放」选「我的视频」。
  3. 在片头素材中选内置 HDD,或点「⬆ 导入视频」选择本地 mp4;导入后自动选中并播放一遍,并弹出起名窗口。
  4. 需要确认效果时点「▶ 播放一遍」;正在播时再点会从头重播。

用脚本从母带生成随包素材(维护者 / 进阶)

若你要替换默认随包视频(需 H.264 + AAC,建议 ≤ 15 MB、≤ 20 秒),可用仓库脚本:

node scripts/make-asset.mjs <你的母带.mp4> --height 1440 --crf 22

黑边应在压制阶段裁掉;可先探测再传入 --crop:

ffmpeg -vf cropdetect=24:16:0 -f null -
node scripts/make-asset.mjs <你的母带.mp4> --crop 2560:1086:0:177 --crf 22

HEVC 导入的 CLI 等价(不想走界面时):

node scripts/import-hevc.mjs "D:\视频素材\你的母带.mkv"

(注:导入路径示例来自 README;仅 .mp4 走界面导入,mkv 需先自行转成 mp4 或使用项目提供的转码脚本流程。)

适用场景与注意

适合谁:希望在 DSH Web UI 或 Electron 桌面版启动时增加品牌化或趣味片头、且能接受「每次加载/刷新都会播一次」的开发者或个人用户。

许可与素材:代码 MIT。内置 assets/hdd.mp4 来自 B 站 UP 主 @露霁luki_yo 的《Hollow Deep Dive System》(HDD),已获授权可随包分发;assets/yuedu.mp4 未获授权,仅本机自用,不进 npm 发布包(对外发布用 npm run pack:release 核对包内容)。

安全与权限:插件以当前 DSH 进程权限运行,导入功能会向插件目录写文件并可能下载 ffmpeg。安装前建议阅读 GitHub 仓库 源码与 LICENSE,再决定是否在生产或共享环境启用。

已知限制(README「兼容与限制」):

  • 只能在 Web UI 加载之后全屏覆盖,做不到早于 Electron 窗口首帧。
  • 首帧为纯色 #000000,不是视频第一帧。
  • 网页版无法由插件单方面实现「未交互自动带声播放」。

DSH 社区插件目录(如 SkillHub)是独立生态站点,与 DeepSeek / 幻方无官方从属关系;安装方式以各插件 README 为准。

结尾

dsh-boot-video 把「全屏 mp4 开机 → 淡出进界面 → 点击或 Esc 跳过」做成可配置的 DSH 插件,并覆盖素材选择、用户导入、HEVC 自动转 H.264 与设置页自检。当前 npm 包版本为 1.0.1。

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

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

小夜