Install
openclaw skills install @juzanxie-dev/douyinzhiboluzhi从一段直播录屏(.webm/.mp4/.mov)中自动识别高光时刻并切割为多个短视频片段,支持音频能量、场景变化、音画混合、音画并集和 ASR 关键词五种分析方式,可输出独立片段与合并版视频。适用于“直播录屏自动剪高光”“从回放里切出主播情绪高点”“按声音峰值提取精彩片段”这类任务。
openclaw skills install @juzanxie-dev/douyinzhiboluzhi给定本地直播录屏文件路径,使用音频能量、场景变化、音画混合、音画并集或 ASR 关键词密集度识别高光时间段,并输出多个短视频片段;可选再合并为一个高光合集视频。核心脚本为 scripts/highlight_slicer.py。
该 Skill 用于把“本地直播录屏 -> 自动检测高光 -> 输出多个短片段 -> 可选合并”封装成单条命令执行,替代手动听完整段录屏、手动记录时间点、再逐段裁剪的重复流程。
在用户已经有一段 .webm、.mp4 或 .mov 直播录屏,并希望:
时使用本 Skill。
ffmpeg 和 ffprobepydub、librosa、numpyasr 方法,需要准备已有转写结果文件(推荐 JSON).webm、.mp4、.mov| 参数 | 必填 | 默认值 | 说明 |
|---|---|---|---|
--input | 是 | 无 | 待分析直播录屏的绝对路径 |
--method | 否 | hybrid | 分析方法:audio / scene / hybrid / combined / asr |
--threshold | 否 | 1.5 | 音频能量阈值倍数,基于 均值 + threshold * 标准差 判断候选高光 |
--scene-threshold | 否 | 0.1 | 场景变化阈值,越低越容易把画面切换识别为候选高光 |
--min-clip-duration | 否 | 5 | 最小保留片段时长(秒) |
--padding | 否 | 2 | 检测到高光后,前后额外扩展的秒数 |
--output-dir | 否 | ./highlights | 输出目录 |
--merge | 否 | true | 是否额外输出一个合并版高光视频 |
--asr-file | 否 | 无 | ASR 转写文件路径;--method asr 时必填 |
--asr-window | 否 | 8 | ASR 关键词聚合窗口大小(秒) |
--top-n | 否 | 8 | ASR 法最多保留多少个高分时间窗口 |
hybrid)python3 skill-live-highlight-slicer/scripts/highlight_slicer.py \
--input "/absolute/path/live-recording.mp4"
.mov 输入同样支持,例如:
python3 skill-live-highlight-slicer/scripts/highlight_slicer.py \
--input "/absolute/path/live-recording.mov"
python3 skill-live-highlight-slicer/scripts/highlight_slicer.py \
--input "/absolute/path/live-recording.webm" \
--threshold 2.0 \
--min-clip-duration 6 \
--padding 2 \
--output-dir "./highlights"
python3 skill-live-highlight-slicer/scripts/highlight_slicer.py \
--input "/absolute/path/live-recording.mp4" \
--merge false
python3 skill-live-highlight-slicer/scripts/highlight_slicer.py \
--input "/absolute/path/live-recording.mp4" \
--method scene \
--scene-threshold 0.1
python3 skill-live-highlight-slicer/scripts/highlight_slicer.py \
--input "/absolute/path/live-recording.mp4" \
--method hybrid \
--threshold 1.5 \
--scene-threshold 0.1
python3 skill-live-highlight-slicer/scripts/highlight_slicer.py \
--input "/absolute/path/live-recording.mp4" \
--method asr \
--asr-file "/absolute/path/live_asr.json" \
--asr-window 8 \
--top-n 6
python3 skill-live-highlight-slicer/scripts/highlight_slicer.py \
--input "/path/to/video.mov" \
--method combined \
--threshold 1.5 \
--scene-threshold 0.15 \
--min-clip-duration 5 \
--padding 2 \
--output-dir "/path/to/output" \
--merge true
按以下顺序执行:
--input 必填,且必须为本地绝对路径--method 允许 audio / scene / hybrid / combined / asr--threshold、--min-clip-duration、--padding 必须为合法数值--merge 解析为布尔值--method 选择候选高光检测方式
audio:提取单声道 WAV,使用 librosa 计算 RMS 能量曲线scene:执行 ffmpeg -filter:v "select='gt(scene,阈值)',showinfo" 提取画面切换时刻hybrid:先跑 audio 和 scene,再取两者时间重叠区域作为优先高光combined:先跑 audio 和 scene,再取两者候选片段并集,尽量避免漏检asr:读取已有转写文本,按价格/行动/互动关键词密度聚合窗口分数--min-clip-duration 的片段--padding 秒扩展,并裁剪生成独立 .mp4 输出--merge=true,生成 concat 清单并调用 ffmpeg 合并为一个合集视频默认在 --output-dir 目录下输出:
clip_01_XXXX_YYYY.mp4 等独立高光片段segments.json:高光片段时间信息、来源方法、分数与分析元数据;combined 下会保留 audio / scene / audio+scene 等来源标记merged_highlights.mp4:合并版高光视频(当 --merge=true 时)| 退出码 | 含义 |
|---|---|
0 | 成功 |
1 | 参数错误 |
2 | 音频提取失败 |
3 | 未检测到高光 |
出现以下情况时,直接输出明确日志并按对应退出码停止:
ffmpeg / ffprobe 不可用method=asr 但缺少可解析的转写文件日志统一使用以下前缀:
STEP: 当前步骤OK: 步骤成功WARN: 可继续执行的异常或兼容性提示ERROR: 终止执行的错误asr 方法依赖输入转写文件结构中至少包含文本和起止时间(兼容字段如 text/start/end、sentence/start_time/end_time)hybrid 当前采用“音频高能段与场景变化段时间重叠”策略,不做更复杂的权重学习