dsh-video-tools

by PiedPiper911

工具与能力github收录于 08-21

基于 FFmpeg.wasm 的浏览器端音视频工具集,支持抽帧、截图、图片压缩与视频转 GIF。

Browser-local audio/video toolkit for DSH — extract frames, capture thumbnails, compress images, and convert clips to GIF with FFmpeg.wasm.

安装

dsh plugin --profile web add github:PiedPiper911/dsh-video-tools

GitHub 源码安装:首次需按提示配置 allowBuilds 构建授权后重试

安装与环境配置指引、插件开发教程见 DSH 中文社区文档 ↗

安装即在你的机器上以你的权限运行第三方代码——它可读写文件、使用凭据、访问网络,DSH 的工具审批不会为插件代码加沙箱。「检测到 manifest」仅代表发现 dsh.bundle / dsh.plugin 清单,不构成兼容性或安全审查;安装前请审阅源码,不熟悉的插件先在不含密钥的环境试用。

README

目录

Browser-local audio/video tools for DeepSeek Harness (DSH), powered by FFmpeg.wasm.

No uploads, no servers — every operation runs in your browser via WebAssembly.

Install

dsh plugin add @piedpiper911/dsh-video-tools

Tools

Tool What it does
video_info Probe a video's duration, resolution, and codecs without transcoding.
video_frames Extract evenly-spaced frames as JPEGs, or a single frame at a timestamp.
image_compress Recompress an image to JPEG at a target width to shrink it for vision models.
video_to_gif Convert a video clip to an animated GIF (two-pass palette optimization).

Example: give a vision model frames from a local video

1. upload the video → workspace
2. video_frames { input: "demo.mp4", count: 4 }
3. describe what you see in each frame

How it works

  • One shared FFmpeg instance is lazily loaded on first use and reused for the whole session — the ~30 MB core downloads exactly once.
  • All I/O happens in FFmpeg's in-memory virtual filesystem; nothing touches disk.
  • Tool arguments are validated with the DSH schema DSL (defineTool), so the model only ever sees well-formed inputs.

Development

npm ci
npm run build      # tsc → lib/
npm test           # vitest

License

MIT

原始 README: https://github.com/PiedPiper911/dsh-video-tools/blob/main/README.md ↗