自动从直播录屏(.webm/.mp4/.mov)识别高光时刻并切割为短视频片段,支持音频能量、场景变化、音画混合、音画并集和ASR关键词五种分析方式,可输出独立片段与合并视频。适用于直播录屏自动剪高光、回放切情绪高点、声音峰值提取精彩片段等任务。
直播录屏高光切片是一项面向实际任务的技能,主要用于给定本地直播录屏文件路径,使用音频能量、场景变化、音画混合、音画并集或 ASR 关键词密集度识别高光时间段,并输出多个短视频片段;可选再合并为一个高光合集视频;
从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;
若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
给定本地直播录屏文件路径,使用音频能量、场景变化、音画混合、音画并集或 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 当前采用“音频高能段与场景变化段时间重叠”策略,不做更复杂的权重学习