with one click
video-screenshot
// 视频截图提取工具。从录屏视频(微信聊天录屏、会议录屏等)中自动抽取关键帧、去重并保存为图片文件,可用作法律证据。支持场景变化检测、关键帧提取、固定间隔、智能去重四种策略,配合内容区 dHash、像素差异、SSIM、滚动帧合并和 OCR 文本去重。触发词:视频截图、录屏截图、聊天记录截图、抽帧去重、视频截帧、视频关键帧提取。不要用于:视频压缩、视频剪辑、音频提取。
// 视频截图提取工具。从录屏视频(微信聊天录屏、会议录屏等)中自动抽取关键帧、去重并保存为图片文件,可用作法律证据。支持场景变化检测、关键帧提取、固定间隔、智能去重四种策略,配合内容区 dHash、像素差异、SSIM、滚动帧合并和 OCR 文本去重。触发词:视频截图、录屏截图、聊天记录截图、抽帧去重、视频截帧、视频关键帧提取。不要用于:视频压缩、视频剪辑、音频提取。
将本地开发的 Skills 批量同步到 ClawHub 平台。支持智能 .gitignore 过滤、白名单控制、增量同步、单个 skill 同步。本技能应在用户需要将本地 skills 发布到 ClawHub、批量同步技能、检查发布状态时使用。
元典法条与案例检索。本技能应在需要查询中国法律法规条文、检索相关案例、为法律分析提供数据支撑时使用。
从已开发代码项目中提取技术实现证据,围绕候选专利方案生成算法/软件类说明书式技术交底书,并以“权利要求布局卡 → 发明专利初稿”两步法继续生成接近可申报版的中国发明专利起草材料。触发场景包括:读取代码仓库后撰写技术交底书、将人工总结的专利方案映射到具体实现、从代码中挖掘可专利技术方案、为专利代理师准备权利要求布局和发明专利初稿。
管理 Claude Code、Codex 和 OpenClaw Skills 的安装、版本追踪和更新检查。支持从本地路径或 GitHub 仓库安装,自动识别 .codex/.claude/.openclaw 目标目录,记录每个 Skill 的安装时间、来源 URL 和版本号,并检查 GitHub 更新。
本技能应在 GitHub 项目发布新版本时使用,覆盖版本号管理、CHANGELOG 同步、Release Notes 撰写、tag 创建、CI 构建监控、发布验证和历史清理全流程。适用于桌面应用、CLI 工具、Web 应用、库/SDK 等任何基于 GitHub 的软件项目。当用户提到"发布"、"release"、"打 tag"、"新版本"、"更新版本号"、"写 release notes"、"发布失败了"、"CI 挂了"时触发。不要用于非 GitHub 项目(如纯 GitLab / Gitea 项目)或无需 CI 的手动发布场景。
将案件/咨询材料整理成标准化目录结构。支持诉讼案件(12目录)和潜在项目/咨询(3目录)两种预设。本技能应在用户需要创建新案件、初始化案件目录结构、整理咨询材料、或通过参数和自然语言指定案件编号、委托人、案件类型等信息快速创建案件时使用。不要用于:单独生成法律文书、进行法律研究、证据分析等非案件初始化任务。
| name | video-screenshot |
| description | 视频截图提取工具。从录屏视频(微信聊天录屏、会议录屏等)中自动抽取关键帧、去重并保存为图片文件,可用作法律证据。支持场景变化检测、关键帧提取、固定间隔、智能去重四种策略,配合内容区 dHash、像素差异、SSIM、滚动帧合并和 OCR 文本去重。触发词:视频截图、录屏截图、聊天记录截图、抽帧去重、视频截帧、视频关键帧提取。不要用于:视频压缩、视频剪辑、音频提取。 |
| version | 0.3.1 |
| author | 杨卫薪律师(微信ywxlaw) |
| homepage | https://github.com/cat-xierluo/legal-skills |
| license | MIT |
从录屏视频(微信聊天录屏、会议录屏等)中自动抽取关键帧、去重并保存为可用作法律证据的图片文件。独立 Python CLI,无 Django 依赖。
确认用户提供的视频文件路径。支持常见视频格式:.mp4 .mov .avi .mkv .webm .flv .wmv .ts
默认配置(大多数场景无需调整):
| 参数 | 默认值 | 说明 |
|---|---|---|
| 抽帧策略 | scene | 场景变化检测 |
| 场景阈值 | 0.10 | 变化幅度阈值(越小越敏感) |
| 定期采样间隔 | 5.0s | 静态画面保底采样(0=禁用) |
| 内容区裁剪 | 上 12% / 下 12% / 左右 4% | 排除状态栏、导航栏和边缘黑边后再比较 |
| dHash 去重阈值 | 4 | 对内容区计算汉明距离(0=禁用) |
| SSIM 阈值 | 0.85 | 结构相似度补充去重(0=禁用) |
| 滚动帧合并 | 关闭 | 需显式 --scroll-merge 开启 |
| OCR 去重 | 关闭 | 需显式开启 |
| 最长边像素 | 0 | 保持原始分辨率(可设如 1920 限制尺寸) |
| JPEG 质量 | 2 | 最高质量(范围 1-31,越小越清晰) |
详细参数说明见 references/strategy-and-params.md,安装指南见 references/setup.md。
# 默认:场景检测 + 图像去重
uv run scripts/extract.py -i <视频文件路径>
# 场景检测 + OCR 去重(推荐用于聊天录屏)
uv run scripts/extract.py -i <视频文件路径> --ocr-dedup
# 固定间隔,每 0.5 秒一帧
uv run scripts/extract.py -i <视频文件路径> -s interval --interval 0.5
# 关键帧提取,不去重
uv run scripts/extract.py -i <视频文件路径> -s keyframe -d 0
# 自定义输出目录
uv run scripts/extract.py -i <视频文件路径> -o /evidence/case_001/
# 更严格的场景检测(更多帧)
uv run scripts/extract.py -i <视频文件路径> --scene-threshold 0.15
# 禁用滚动帧合并(需要逐步滚动全过程时)
uv run scripts/extract.py -i <视频文件路径> --no-scroll-merge
输出目录包含:
| 文件 | 说明 |
|---|---|
frame_001_00m00s.jpg | 保留帧(序号 + 时间戳命名) |
frame_002_00m03s.jpg | 下一帧 |
_report.json | 元数据报告(输入信息、去重统计、每帧 SHA256) |
_report.json 可用于证据链追溯,记录了每帧的 SHA256 哈希、捕获时间戳和去重统计。
归档目录中的 frames/ 只保留 _report.json 清单内的本次有效帧。每次运行前会清理输出目录中旧的 frame_*.jpg 和本工具报告文件,避免旧帧混入新结果;不会删除其他用户文件。
| 策略 | 说明 | 推荐场景 |
|---|---|---|
scene | 场景变化检测,画面有显著变化时提取 | 聊天录屏、操作录屏(默认推荐) |
keyframe | 仅提取视频关键帧(I 帧) | 压缩视频、快速浏览 |
interval | 固定时间间隔提取 | 需要均匀时间采样 |
smart | ffmpeg 智能去重 | 不确定时尝试 |
八级级联去重 + 可选过滤,每一级通过后才进入下一级:
--filter-blur 开启--ocr-dedup 开启| 依赖 | 版本要求 | 安装方式 |
|---|---|---|
ffmpeg | ≥ 5.0 | brew install ffmpeg |
Python | ≥ 3.10 | 系统自带或 brew install python |
uv | 最新 | brew install uv |
Pillow | ≥ 10.0 | 自动安装(PEP 723 内联依赖) |
rapidocr-onnxruntime | ≥ 1.0 | pip install rapidocr-onnxruntime(仅 OCR 去重需要) |
pdf:输出帧可组装为 PDF 证据包paddle-ocr:需要更高质量的 OCR 内容识别时,用输出帧作为输入legal-text-format:帧内容 OCR 后格式化video-compressor:抽帧前先压缩视频,减小 I/O 时间--max-size 参数_report.json 始终生成,确保证据可追溯