DSH 插件 video-studio:代码驱动的中文成片工作流

前言

在 DeepSeek Harness(DSH)里做内容,常见需求是把报告、讲解稿变成可交付的视频,而不是每次在会话外手工拼 TTS、时间轴、画面和混音。通用剪辑工具可以出片,但难以和智能体会话里的剧本迭代、断点续跑和自动化验收绑在一起。下面介绍维护者 znlgis 发布的技能插件 @dsh-gis/dsh-video-studio-skill(GitHub 仓库 znlgis/dsh-video-studio-skill,分类:工作流):把「写剧本 → 配音 → 排轴 → 渲染 → 编码 → 混音 → 质检」收成一条可脚本化、可复现的链路,装成插件后技能随会话加载。

这是什么

插件当前版本为 0.9.1(package.json / README 徽章),许可证 MIT。npm 包名 @dsh-gis/dsh-video-studio-skill,技能目录名为 video-studio。定位是:用代码从零生成中文视频,零素材依赖仓库内程序化资源;旁白用 edge-tts,时间轴按 实测时长 编排,画面可走 PIL 或浏览器逐帧引擎,成片经 ffmpeg 编码,音频做采样级混音,并带多层自动质检与机读交付报告。

技能溯源 README 记载的 dsh-v 资产包 02-技能包-video-studio;后续版本 changelog 在仓库 CHANGELOG.md 与 skills/video-studio/SKILL.md 中维护。

核心功能

端到端流水线

README 概括的主路径为:

写剧本 → edge-tts 旁白 → 实测时长排时间轴 → 提示点驱动配乐与音效 → PIL 或浏览器逐帧渲染 → ffmpeg 编码 → 采样级混音 → 质检。

支持分阶段执行(如 --stage style、--stage layout、--stage accept 等,详见技能文档),以及 --resume 断点续跑、--run-id 将产物落到 work/runs/<runId>/。

风格与画面

  • v0.5 起风格包:一个 style id 同时影响画风(8 套主题 × 3 种版式)、配乐结构、旁白声线与节奏;"style": "auto" 按内容自动选择。不写 style 字段时保持 legacy 行为(README 写明与 v0.4 一致)。
  • v0.9 起场景语法:按内容选 10 类构图(hero / statement / list / stat / compare / process / quote / chapter / chart / outro),落 work/storyboard.json;配套视觉语言包与片内编排,减少「只换配色」的观感。新门禁 G13 剪影可区分(tools/silhouette_qa.py)。
  • 画幅:README 写明当前只做 16:9 横屏,内部恒 1080p,编码时可下采样;720p 已实测全部门禁通过。

声音

  • 程序化配乐与物理建模音效库,提示点与段落边界驱动 duck、whoosh 等细节(v0.7+ 内容指纹参与配乐结构;v0.7.1 强化旁白优先与 guard_snr_db)。
  • v0.8.0:edge-tts WordBoundary 落 work/words.json,字幕可按词折行,cue 支持词锚点(如 "l03:w2+0.1")。

质检与交付

  • 四层质检(容器 / 信号 / 时间 / 页面),v0.8 起增 G0(渲前资源预检)、G10(词级时间戳)、G11(全片 VMAF/SSIM)、G12(ASR 回读)。
  • v0.6 起机读 out/QC-REPORT.md,门禁账本区分 pass / fail / skipped;film.json 契约校验(filmcheck.py)、开渲前 tools/estimate.py 成本预演。
  • 仓库自带 tools/ci_check.py、selfcheck(v0.9.1 为 55 条回归断言,README 记载)。

批量与预览

README(v0.8.0)记载:--batch(≤100 条,开跑前全量预检、单条失败不阻断)、--preview N(前 N 秒出 mp4+gif)。

插件形态

package.json 要求 Node >= 20;插件通过 cordis.patch.yml 捆绑 skills/video-studio 及相关 tools/、schemas/。安装后在新会话的技能目录出现 video-studio。

安装与启用

命令行(README 原文)

dsh plugin --profile desktop add "@dsh-gis/dsh-video-studio-skill"

本地调试(不发布也能装,路径按本机修改):

dsh plugin --profile desktop add "D:/self/code/dsh-video-studio-skill"

桌面版

插件管理器中填写 @dsh-gis/dsh-video-studio-skill(或上述本地目录)。

安装后在 DSH「插件」页启用 video-studio 这一行,新开会话即可在技能目录看到该技能。

与手工技能目录冲突

技能按 rank 解析:~/.dsh/skills(rank 400)优先于插件 bundled 技能根(rank 600)。若曾手工安装 ~/.dsh/skills/video-studio,会遮住插件版。README 建议移出旧目录:

mkdir -p ~/.dsh/backup
mv ~/.dsh/skills/video-studio ~/.dsh/backup/video-studio.bak-$(date +%Y%m%d)

回滚时将目录移回 ~/.dsh/skills/video-studio 即可。注意:仅改目录名不够,.bak 后缀目录仍可能被扫描。

典型用法

会话内触发

README 列出的触发词包括:做一个视频、生成宣传片、把报告变成视频、做动画、配音配字幕、出成片,或提到 ffmpeg、edge-tts、逐帧渲染、字幕、分镜、配乐、混音等。

本机最短复现(模板片)

README「用法」与「效果」节:按 skills/video-studio/SKILL.md 第 1 节,在空目录拷贝模板资源后跑渲染。核心步骤形态如下(<SKILL_DIR> 为安装后的技能路径):

mkdir -p myfilm && cd myfilm
cp <SKILL_DIR>/assets/film.json .
cp <SKILL_DIR>/assets/scenes.py .
cp <SKILL_DIR>/scripts/*.py .
python render.py

默认模板跑通后,联系表等产物在 work/ 下;README 展示的是 work/qa/sheet.png 一类真实抽帧,非宣传修图。不同机器上 TTS 实测时长、AAC 编码会导致时长与响度在小范围内浮动,应以本机 SKILL.md §14 口径复测为准。

观察风格与分镜

同一份 film.json 只改 "style" 可对比 8 套气质(见仓库 docs/styles/sheet-8-styles.png)。调试时可执行:

  • --stage style:打印视觉语言(母题、转场、字距等)
  • --stage layout:打印分镜并写 work/storyboard.json

依赖与环境

成片链路依赖 Python 侧渲染脚本、ffmpeg、edge-tts 等(具体版本与可选组件以 SKILL.md 与 requirements.txt 为准)。浏览器路线涉及 README 关键词中的 playwright;未装 Node 时部分 CI/自检项可能被跳过(v0.8.1 changelog 对「跳过记为 PASS」等问题有过修正,升级前宜读 CHANGELOG.md)。

适用场景与注意

适合谁:需要在 DSH 会话里 repeatable 地生产中文讲解类、卡片式横屏短片;希望剧本、风格 id、门禁结论和产物路径都可审计、可脚本验收的开发者。

时间与成本:README 如实记载 v0.8 后全链耗时中 qa 可超过渲染本身(含 VMAF、ASR 等);开跑前可用 tools/estimate.py 预演。批量生产用 --batch,先接受单条预检逻辑。

权限与安全:插件随当前 dsh 进程权限运行,会执行本机 Python/ffmpeg 及读写工作目录。安装前应阅读仓库源码与 MIT 许可证(THIRD_PARTY_NOTICES.md 含第三方声明);社区目录 SkillHub 插件页 与 GitHub 无 DeepSeek / 幻方官方从属关系,属 DSH「一切皆插件」生态中的第三方工作流。

版本差异:legacy(不写 style)行为 README 承诺与旧版逐字节一致;web 引擎在 v0.9 场景语法上 README 写明不跟随,选用路线前应对照 SKILL.md。

结尾

@dsh-gis/dsh-video-studio-skill 把中文视频从「会话外的一次性工程」收成插件内技能:实测 TTS 时间轴、程序化视听、ffmpeg 交付与多层门禁写在同一条流水线里。若要查安装说明、changelog 与模板实测数据,请以仓库 README 与 SKILL.md 为准。

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

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

小夜