From legal-skills
Compresses videos using FFmpeg CRF mode and trims silent/static segments for screen recordings and lectures. Auto-detects hardware for optimal encoding like VideoToolbox on Apple Silicon.
npx claudepluginhub cat-xierluo/legal-skills --plugin minimax-image-understandThis skill uses the workspace's default tool permissions.
使用 FFmpeg 将视频文件压缩为低比特率 MP4,减小文件体积的同时保留清晰的音频。自动检测硬件并选择最优编码方案(Apple Silicon 默认使用 VideoToolbox 硬件加速)。
Compresses videos using FFmpeg: CRF mode for quality preservation or 2-pass for target size limits. Chooses H.264/H.265 codecs, probes input with ffprobe, calculates bitrates via Python, confirms with user.
Provides FFmpeg commands for video/audio post-production: conversion, scaling, compression, trimming, concatenation, AI post-processing. Excludes audio mixing and Remotion rendering.
Transcribes audio from video/audio recordings using Whisper and extracts frames with FFmpeg. Auto-detects hardware (GPU/CPU) for optimal model on macOS, Linux, Windows.
Share bugs, ideas, or general feedback.
使用 FFmpeg 将视频文件压缩为低比特率 MP4,减小文件体积的同时保留清晰的音频。自动检测硬件并选择最优编码方案(Apple Silicon 默认使用 VideoToolbox 硬件加速)。
本技能支持两种工作模式:
将视频压缩为低比特率 MP4,减小文件体积。
检测并去除视频中同时满足以下条件的片段:
适用于:课程录制中途休息、会议室无人时的静默等待等无效内容。
确认用户提供的文件路径或目录路径。支持以下视频格式:
.mp4 .mov .avi .mkv .webm .flv .wmv .ts
默认配置(大多数场景无需调整):
| 参数 | 默认值 | 说明 |
|---|---|---|
| CRF 质量值 | 23 | 自适应质量,越小质量越高(仅软件编码) |
| 最大码率 | 2500k | VBV 码率上限 |
| 音频比特率 | 96k | AAC 语音音质 |
| 编码预设 | veryfast | 速度与压缩比平衡(仅软件编码) |
| 编码器 | 自动检测 | Apple Silicon 默认 HEVC VT,其他 x264 |
| 并发线程 | 3 | 同时压缩的视频数 |
| 输出后缀 | _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 | 5-15x | HEVC/H.265 | 自动使用硬件编码 |
| Apple Silicon (备用) | h264_videotoolbox | 3-8x | H.264 | HEVC 不可用时的回退 |
| 其他平台 | libx264 | 1x | H.264 | 标准软件编码 |
启动时自动打印检测结果,如:
硬件检测: Apple Silicon (10 核 / 64 GB)
编码器: HEVC VideoToolbox (硬件加速) — 预计速度提升 5-15x
FFmpeg: 8.1 (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
| 依赖 | 版本要求 | 安装方式 |
|---|---|---|
ffmpeg | ≥ 5.0(推荐 ≥ 7.0 for VideoToolbox -q:v) | brew install ffmpeg |
Python | ≥ 3.10 | 系统自带或 brew install python |
universal-media-downloader 配合:下载视频后压缩节省空间funasr-transcribe / tingwu-asr 配合:压缩后再转录,减少文件传输时间