agent-email
Agent 专用邮箱统一管理:让 Claude Code、Codex 等平台的 Agent 用一套命令收发邮件、整理收件箱、分发任务。支持网易 ClawEmail(claw.163.com)和腾讯 Agent Mail(QQ…
视频压缩与静默片段剪切工具。使用 FFmpeg CRF 模式压缩视频,适配屏幕录制/课件场景;支持检测并去除静默静止片段。自动检测硬件与源码率并选择最优编码方案(高码率源走 VideoToolbox 硬件加速,低码率录屏自动改用 x264 CRF 自适应编码)。本技能应在用户需要压缩视频、减小视频大小、去除视频空档时使用。不要用于:视频剪辑、音频提取、格式转换。
$ npx -y skills add cat-xierluo/legal-skills --skill video-compressor --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/video-compressorContext preview
The summary Claude sees to decide when to auto-load this skill.
视频压缩与静默片段剪切工具。使用 FFmpeg CRF 模式压缩视频,适配屏幕录制/课件场景;支持检测并去除静默静止片段。自动检测硬件与源码率并选择最优编码方案(高码率源走 VideoToolbox 硬件加速,低码率录屏自动改用 x264 CRF 自适应编码)。本技能应在用户需要压缩视频、减小视频大小、去除视频空档时使用。不要用于:视频剪辑、音频提取、格式转换。
name: video-compressor description: 视频压缩与静默片段剪切工具。使用 FFmpeg CRF 模式压缩视频,适配屏幕录制/课件场景;支持检测并去除静默静止片段。自动检测硬件与源码率并选择最优编码方案(高码率源走 VideoToolbox 硬件加速,低码率录屏自动改用 x264 CRF 自适应编码)。本技能应在用户需要压缩视频、减小视频大小、去除视频空档时使用。不要用于:视频剪辑、音频提取、格式转换。 author: 杨卫薪律师(微信ywxlaw) homepage: https://github.com/cat-xierluo/legal-skills version: "1.5.2" license: MIT
使用 FFmpeg 将视频文件压缩为低比特率 MP4,减小文件体积的同时保留清晰的音频。自动检测硬件并选择最优编码方案(Apple Silicon 默认使用 VideoToolbox 硬件加速)。
本技能支持两种工作模式:
将视频压缩为低比特率 MP4,减小文件体积。
检测并去除视频中**同时满足**以下条件的片段: 1. **音频静默**(无声) 2. **画面静止**(连续帧几乎无变化,如休息时无操作、黑屏)
适用于:课程录制中途休息、会议室无人时的静默等待等无效内容。
确认用户提供的文件路径或目录路径。支持以下视频格式:
`.mp4` `.mov` `.avi` `.mkv` `.webm` `.flv` `.wmv` `.ts`
默认配置(大多数场景无需调整):
| 参数 | 默认值 | 说明 | |------|--------|------| | CRF 质量值 | 23 | 自适应质量,越小质量越高(仅软件编码) | | 最大码率 | 2500k | VBV 码率上限 | | 音频比特率 | 96k | AAC 语音音质 | | 编码预设 | veryfast | 速度与压缩比平衡(仅软件编码) | | 编码器 | 自动检测 | Apple Silicon 默认 HEVC VT,其他 x264 | | 并发线程 | 自动 | VideoToolbox 默认 1(共享硬件编码器,多并发反而慢),软件编码默认 ≤8 | | 输出后缀 | `_compressed` | 输出文件名后缀 |
详细配置说明见 `references/config.md`。
# 单个文件 python3 scripts/compress.py -i <文件路径> # 多个文件(并发压缩) python3 scripts/compress.py -i <文件1> <文件2> <文件3> # 整个目录 python3 scripts/compress.py -i <目录路径> # 混合:文件 + 目录 python3 scripts/compress.py -i <文件1> <目录路径> <文件2>
指定自定义参数:
python3 scripts/compress.py -i <文件1> <文件2> --crf 28 -a 64k --preset medium -j 2
压缩完成后输出每个文件的结果:
文件名 原始大小 压缩后大小 压缩比 video1.mp4 120.5 MB 28.3 MB 76.5% ───────────────────────────────────────────────── 合计 205.7 MB 47.4 MB 77.0%
当用户提到以下场景时使用此模式:
python3 scripts/trim_silences.py -i <视频文件路径>
使用默认参数(同时检测静音+静止,最短3秒才计入)。
指定自定义参数:
# 仅检测静音片段(不考虑画面是否静止) python3 scripts/trim_silences.py -i <路径> --mode silence # 仅检测画面静止片段(不考虑是否有声音) python3 scripts/trim_silences.py -i <路径> --mode static # 自定义阈值:更严格的静默检测 python3 scripts/trim_silences.py -i <路径> --noise-db -40 --min-duration 5
| 视频类型 | 推荐模式 | 说明 | |----------|---------|------| | 课程录制休息时 | `both` | 同时满足静音+静止,不误剪 | | 会议无人时段 | `both` 或 `static` | 若全程有空调白噪声用 `both` | | 比赛/电影解说(全程有声音) | `static` | 仅剪画面静止部分 | | 监控录像(画面固定) | `static` | 几乎不需要音频 |
剪切完成后,输出:
| 文件 | 说明 | |------|------| | `原文件名_trimmed.mp4` | 精剪版(去除了目标片段) | | `原文件名_cuts/` | 存放被剪片段的目录 | | `原文件名_cuts/_report.json` | 被剪片段的时间戳报告 |
被剪片段目录中,每个片段保存为一个独立的 MP4 文件,文件名包含起止时间,方便复查。
| 参数 | 默认值 | 说明 | |------|--------|------| | `--noise-db` | -30 | 静默检测分贝阈值,越小越严格 | | `--scene-threshold` | 0.05 | 画面静止阈值 0~1,越小越严格(轻微页面变化可接受) | | `--min-duration` | 120 | 最短片段时长(秒),默认2分钟,仅剪掉长片段 | | `--mode` | both | 检测模式:both=同时静音+静止,silence=仅静音,static=仅画面静止 | | `--crf` | 23 | CRF 质量值 | | `--maxrate` | 2500k | 最大码率限制 | | `--bufsize` | 2500k | VBV 缓冲区大小 | | `--audio-bitrate` | 96k | 输出音频比特率 | | `--preset` | veryfast | 编码预设 | | `--codec` | 自动检测 | 编码器选择(hevc_vt / h264_vt / x264 / x265 / x264_fast) |
本工具自动检测系统硬件并选择最优编码方案:
| 平台 | 编码器 | 速度提升(实测) | 输出格式 | 说明 | |------|--------|------------------|----------|------| | Apple Silicon (M1/M2/M3/M4) | hevc_videotoolbox | 因机型散热条件差异极大,**须以实际探测为准**(见下方实测备注) | HEVC/H.265 | 自动使用硬件编码 | | Apple Silicon (备用) | h264_videotoolbox | 同上 | H.264 | HEVC 不可用时的回退 | | 其他平台 | libx264 | 1x 实时 | H.264 | 标准软件编码 |
> **实测参考(MacBook Air M1 无风扇,8GB):** > - x264 veryfast CRF28 软编:约 **5–7× 实时**(单进程);4–6 并发时约 **10× 实时**(已达该机型热降频天花板),更多并发反而下降 > - HandBrake `vt_h264`:比 x264 快约 **15%**,但输出体积大 **60%**,收益不高 > - **brew ffmpeg 内置 VideoToolbox 硬解链路不可用**(`hwaccel_output_format=videotoolbox` 报 `Unrecognised hwaccel output format`,brew 构建未含 VT 硬件帧输出) > - `preset` 升降档(ultrafast ↔ veryfast)对 x264 速度影响可忽略,不值得为提速降 preset
> 速度提示:上述数值为实际测试参考范围,实际速度受分辨率、帧率、画质参数、系统负载影响。**并发吞吐测试必须校验每个子进程的 rc**(return code);进程秒退会留下"高速"的假象,必须在运行时检查实际输出文件大小和编码耗时。录屏/课件源码率特征为 ≤3Mbps,压缩前先 `ffprobe -v error -show_entries format=bit_rate -of csv=p=0 <file>` 确认。
> 录屏/课件源码率陷阱(v1.5.0 已自动化):压缩前先 `ffprobe` 查源文件 `bit_rate`。硬件路径(hevc_vt/h264_vt)在 `hw_detect.py` 中写死目标码率 2000k 且忽略 `--crf/--maxrate` 参数;源总码率 ≤3 Mbps(录屏/课件特征)时脚本自动选用 x264 CRF 自适应编码并打印提示,高码率源仍走硬件路径,`--codec` 显式指定可覆盖自动选择。CRF 自适应对静止画面几乎不耗码率,实测录屏压缩比 80-88%、速度 12-20x 实时。手动估算可用 60 秒采样:`ffmpeg -ss <中段> -t 60 -i 输入 -c:v libx264 -crf 23 ...` 看采样大小推算全片。
启动时自动打印检测结果,如:
硬件检测: Apple Silicon (10 核 / 64 GB) 编码器: HEVC VideoToolbox (硬件加速) — 实际 1080p60 约 2-5x 实时 FFmpeg: 9.0 (VideoToolbox 支持: H.264 + HEVC)
手动指定编码器:
python3 scripts/compress.py -i <路径> --codec hevc_vt # 强制 HEVC 硬件编码 python3 scripts/compress.py -i <路径> --codec h264_vt # 强制 H.264 硬件编码 python3 scripts/compress.py -i <路径> --codec x264 # 强制软件编码 python3 scripts/compress.py -i <路径> --codec x265 # 软件 HEVC 编码(高压缩)
可选编码器:`hevc_vt` `h264_vt` `x264` `x265` `x264_fast`
对超过 30 分钟的视频,建议加 `--detach` 启动:
python3 scripts/compress.py -i <长视频.mp4> --codec hevc_vt --detach
`--detach` 行为:
**症状**:脚本启动后立即报"dyld Symbol not found"或"Library not loaded"。
**原因**:典型场景是 `brew upgrade` 升级某个依赖库(如 x265)后,ffmpeg 未重新链接;ffmpeg 二进制仍在引用旧版本符号。
**修复**:
brew upgrade ffmpeg # 让 ffmpeg 重新链接到新依赖 # 或 brew reinstall ffmpeg # 完全重装
新版脚本会在启动时主动检测 ffmpeg 健全性,崩溃时立即输出诊断和修复命令,不再静默 fallback。
失败时完整 ffmpeg 日志保存在 `/tmp/ffmpeg_<视频名>_<时间戳>.log`,不再被截断丢失关键诊断信息。
Agent 专用邮箱统一管理:让 Claude Code、Codex 等平台的 Agent 用一套命令收发邮件、整理收件箱、分发任务。支持网易 ClawEmail(claw.163.com)和腾讯 Agent Mail(QQ…
把一句自然语言(机票/高铁/开庭/会议/截止日期/聚会/看病等)或一张票据截图,自动变成苹果「日历」事件 + 一串按事件类型智能提前的「提醒事项」。在 macOS 上运行、经 iCloud 同步到 iPhone/iPad。当用户说「帮我加个日程/提醒」「机票…
律师案件看板。本地零依赖看板服务(案件总览、任务三态看板、期限预警、进度写回)+周研判分析。当用户说"打开看板/dashboard/案件面板/看下案件进度/给我案件周报研判"时使用。案件状态写入与上下文管理用 case-progress(/progress…
案件进度与状态台账管理。案件 case.yaml 的唯一写入引擎(新增任务、推进任务、登记期限、更新案件阶段、校验、存量迁移),Agent 会话的进度加载与写回契约,以及案件进度监控对账。当用户或 Agent…