dsh-plugin-wwrs-ffmpeg
Verifieddsh-plugin-wwrs-ffmpeg · v0.1.1 · MIT
Local media processing DSH plugin (open source): probe/transcode/concat/slice/mux/burn-subtitles via local ffmpeg/ffprobe. Sole runtime dependency is @deepseek-ai/dsh-tools (defineTool DSL); binaries resolved config > env > package .bin > PATH.
Install
dsh plugin add dsh-plugin-wwrs-ffmpeg Confirm the layer applied with dsh --profile default --dump-config — see the install guide.
Source
- github/ksxh0524/dsh-plugin-wwrs-ffmpeg 0 0 archived
Tags
Readme
dsh-plugin-wwrs-ffmpeg
本地媒体处理 DSH 插件(开源):经本地 ffmpeg/ffprobe 做探测、转码、拼接、切片、配音混流与烧字幕。唯一运行时依赖是 @deepseek-ai/dsh-tools(defineTool DSL)。W1 完成:挂载层(src/cordis.ts)、写保护守卫与全部七个工具均已上线,经真实 ffmpeg/ffprobe 执行。
工具
所有路径只收工作区相对路径(绝对路径或越界即大声失败)。全部写工具带 overwrite?: boolean(缺省 false:false 且产物存在 → 成功返回 {skipped:true} 不执行,绝不静默覆盖)。
| 工具 | 参数 | 语义 |
|---|---|---|
media_probe |
path |
经 ffprobe 取时长毫秒 + 宽高;静图无时长 → durationMs: null,不报错 |
media_transcode |
src、out、videoCodec?、audioCodec?、crf?、preset?、extraArgs?、overwrite? |
重编码(缺省 libx264+aac faststart);extraArgs: string[] 原样拼入 argv(风险自负:可覆盖任意编码开关) |
media_concat |
clips[](≥1)、out、options?{reencode?=true, fps?, audioBitrate?}、overwrite? |
缺省 filter-complex 归一重编拼接(reencode: false = demuxer 直拷);单片段即转码归一 |
media_slice |
src、out、startMs、endMs(须 endMs>startMs>=0)、overwrite? |
切 [startMs,endMs),重编码 |
media_mux_voice |
video、voiceAudio、out、attenuationDb?、overwrite? |
配音按视频时长补齐/截断;缺省替换原音轨,给定分贝值则衰减后混入 |
media_burn_subtitles |
video、srt(须 .srt)、output、options?{forceStyle?, encoding?}、overwrite? |
烧字幕(视频重编,音频直拷) |
media_extract_audio |
src、out、overwrite? |
首个音频流提为 aac 128k(无视频);源无音频流即大声失败 |
超时:探测 60s,转码系 30min;调用方取消(exec.signal)直达子进程。
合同
无远端调用——执行面是本地 ffmpeg/ffprobe 子进程;二进制经配置节注入面解析(ffmpegBin/ffprobeBin 配置键或环境变量,再包内 .bin,再 PATH)。二进制缺失即大声失败并给出路;绝不静默降级。
配置
| 键 | 含义 | 缺省 |
|---|---|---|
workspace |
项目根(绝对路径) | WWRS_WORKSPACE 环境变量,再中性锚探测 |
ffmpegBin |
ffmpeg 可执行文件(注入面:配置键或环境变量) | WWRS_FFMPEG_BIN 环境变量,再包内 .bin,再 PATH |
ffprobeBin |
ffprobe 可执行文件(注入面:配置键或环境变量) | 同上三级 |
工作区解析:config.workspace > 环境变量 WWRS_WORKSPACE > 向上探测 .wwrs/workspace.json > 大声失败。缺失即大声失败并给出路;绝不静默降级。
安装
{
"dependencies": {
"dsh-plugin-wwrs-ffmpeg": "link:/path/to/plugin-wwrs-ffmpeg"
},
"dsh": { "profile": { "bundles": ["dsh-plugin-wwrs-ffmpeg"] } }
}
验证
跑 pnpm check(prettier 检查 + tsc --noEmit + node --test tests/*.test.ts)。
无浏览器半
纯服务端工具——pnpm check 即全部门,无 check:browser 链。
已知边界
- 只收工作区相对路径——绝对路径或越界即大声失败。
overwrite: false且产物存在 → 成功返回{skipped:true}不执行,绝不静默覆盖。extraArgs原样拼入 argv,可覆盖任意编码开关(风险自负)。- 超时:探测 60s,转码系 30min;调用方取消(
exec.signal)直达子进程。
许可
MIT.