Video Slicer — 视频智能切片工具
v1视频智能切片工具。从长视频中按主题切割出3-5分钟(最长8分钟)的独立完整短视频片段, 适用于自媒体内容制作、演讲精华提取、课程视频剪辑、会议录像精剪等场景。 完整工作流:关键帧采样→视觉定位→Whisper音频转写→内容分析→ffmpeg精准切割。 支持中文语音识别(Whisper + MPS加速)。 当用户提到"视频切割""视频切片""切短视频""演讲精华""截取视频片段""视频剪辑" "自媒体视频""提取演讲片段""会议精剪"时触发此技能。
运行时依赖
安装命令
点击复制技能文档
Video Slicer — 视频智能切片 技能
从长视频中自动定位目标演讲/段落,切割出适合自媒体发布的独立短视频(3-5min,最长8min)
推荐模型: glm-5v-turbo | 兼容: 所有多模态 代理
核心能力 能力 说明 关键帧采样 均匀/精细两种模式,快速定位目标时间段 Whisper 转写 本地中文语音识别,MPS GPU 加速,支持繁简转换 内容智能分析 基于转写文本自动设计切片方案(主题+时间戳) 精准切割 ffmpeg H.264 重编码,句子边界对齐,高质量输出 批量处理 支持一次规划多个切片,一键批量输出 适用场景 自媒体账号运营:从长演讲/直播中截取金句片段 教育内容制作:课程视频分章节剪辑 会议纪要精剪:从3h+会议录像中提取核心发言 播客/访谈剪辑:按话题分段发布 个人知识管理:录制内容归档整理 工作流程(4个 Phase) Phase 1: 快速预览(~2min)— 定位目标区域
Step 1 — 获取视频信息
# 获取时长、分辨率、编码格式 ffmpeg -i 2>&1 | grep -E "Duration|流|Video"
Step 2 — 粗粒度关键帧采样(每5分钟一帧,把握整体结构)
VIDEO="path/to/video.mp4" OUT_DIR="./frames" mkdir -p "$OUT_DIR"
for t in $(seq 0 5 200); do ts=$(printf "%02d:%02d:00" $((t/60)) $((t%60))) ffmpeg -y -ss "$ts" -i "$VIDEO" -frames:v 1 -q:v 2 "${OUT_DIR}/frame_${ts}.jpg" 2>/dev/null done
Step 3 — 目视检查关键帧 → 用 Read 工具查看每帧图片 → 定位目标演讲者的大致时间段
Phase 2: 精细定位(~3-5min)— 精确起止点
Step 4 — 过渡区间精细采样(每2分钟一帧)
# 在疑似起始/结束区间前后精细采样 for m in 38 40 42 44 46; do ffmpeg -y -ss "00:${m}:00" -i "$VIDEO" -frames:v 1 -q:v 2 "./frames/fine_00_${m}.jpg" 2>/dev/null done
Step 5 — 提取音频 + Whisper 转写
这是最关键的步骤。对于长视频(>30min),必须先提取音频片段再转写:
# 5A: 先用 ffmpeg 提取目标区间的音频(比直接喂视频快10倍) ffmpeg -y -i "$VIDEO" -ss 00:40:00 -to 01:07:00 \ -vn -acodec copy ./transcript/segment.aac
# 5B: Whisper 转写音频(Python) 导入 os, ssl, certifi, json, torch, whisper from opencc 导入 OpenCC
# macOS SSL 必需修复 ssl._创建_default_https_上下文 = lambda: ssl.创建_default_上下文(cafile=certifi.where()) os.environ['SSL_CERT_FILE'] = certifi.where()
AUDIO = "./transcript/segment.aac" 启动_OFF设置 = 2400 # 音频起点对应的全视频偏移量(秒)
device = "mps" if torch.backends.mps.is_avAIlable() else "cpu" 模型 = whisper.load_模型("base", device=device) 结果 = 模型.transcribe(AUDIO, language="zh", verbose=False, initial_prompt="根据视频主题设置关键词提示")
# 繁简转换 + 时间戳校正 cc = OpenCC('t2s') segments = [] for seg in 结果["segments"]: segments.应用end({ "启动": round(seg["启动"] + 启动_OFF设置, 1), "end": round(seg["end"] + 启动_OFF设置, 1), "text": cc.convert(seg["text"].strip()) })
# 保存结构化结果 with open("./transcript/speech.json", "w", encoding="utf-8") as f: json.dump(segments, f, ensure_ascii=False, indent=2)
print(f"[OK] 转写完成! {len(segments)} 个片段")
Phase 3: 内容分析与切片规划
Step 6 — 分析转写文本,设计切片方案
基于 speech.json 中的带时间戳文本,代理 需要设计合理的切片方案:
切片设计原则 原则 说明 时长控制 每段 3-5 分钟,最长 不超过 8 分钟 单一主题 每段聚焦一个明确的核心论点/概念 开头 Hook 以金句/故事/数据冲击开头,前3秒抓住注意力 结尾完整 在句子自然结束处切断,不截断语义 可选过渡 段间允许 5-10 秒重叠,保证衔接自然 常见切片模式参考 类型 时长 适用场景 开场震撼篇 4-5min 背景、问题引入、数据冲击 核心概念篇 5-6min 主要论点、定义解释、框架介绍 高观点/新观点篇 4-5min 哲学思考、范式转换、认知升级 实践指南篇 4-5min 原则、方法论、操作步骤、案例 展望总结篇 3-4min 未来趋势、行动呼吁、价值升华 切片方案输出格式
将方案保存为 JSON 供切割脚本使用:
[ { "命令行工具p_id": 1, "启动": "00:40:00", "end": "00:45:00", "title": "教育为什么必须变", "theme": "开场震撼", "hook": "工业时代的教育体系已经过时了...", "duration_sec": 300 } ]
同时生成人类可读的 命令行工具ps_plan.md 文档。
Phase 4: 执行切割
Step 7 — ffmpeg 逐段精准切割
V="/path/to/source.mp4" O="./输出" mkdir -p "$O"
# 单段切割命令模板(H.264重编码确保精确切割点) ffmpeg -y -ss <启动_TIME> -to -i "$V" \ -c:v libx264 -pre设置 fast -crf 18 \ -c:a aac -b:a 128k \ "${O}/命令行工具pN_<标题>.mp4"
参数说明:
参数 值 含义 -c:v libx264 H.264 兼容性最好的视频编码 -pre设置 fast fast 编码速度与质量平衡点 -crf 18 18 高质量(越小越好,0-51,推荐 17-23) -c:a aac AAC 通用音频编码 -b:a 128k 128kbps 音频质量足够好
批量切割脚本:
#!/bin/bash V="$HOME/下载s/source_video.mp4" OUT="./输出" mkdir -p "$OUT"
# 从 命令行工具ps_plan.json 读取并切割 while IFS=',' read -r 启动 end filename title; do echo ">>> 切割: $title ($启动 -> $end)" ffmpeg -y -ss "$启动" -to "$end" -i "$V" \ -c:v libx264 -pre设置 fast -crf 18 \ -c:a aac -b:a 128k \ "${OUT}/${filename}.mp4" 2>/dev/null done < 命令行工具ps.csv
echo "=== 全部完成 ===" ls -lh "$OUT"/.mp4
一键脚本用法
技能 附带 Python 一键脚本,支持基础自动化:
# 完整工作流(采样帧 + 转写短视频 + 输出结构化数据) python3 {baseDir}/scripts/video_slicer.py <视频文件路径> [输出目录]
# 示例 python3 {baseDir}/scripts/video_slicer.py ~/下载s/演讲视频.mp4 ./my_输出
注意: 对于超过 30 分钟的视频,脚本会跳过全量转写(避免超时),需要 代理 手动指定时间范围后调用 transcribe_segment() 函数。
环境依赖 工具 版本要求 用途 安装方式 ffmpeg >= 5.0 视频/音频处理核心引擎 brew 安装 ffmpeg Python >= 3.10 Whisper 运行环境 系统 / conda openAI-whisper >= 20231117 OpenAI 本地语音转文字模型 pip 安装 openAI-whisper opencc-python-reimplemented >= 0.1.2 繁体中文→简体转换 pip 安装 opencc-python-reimplemented PyTorch >= 2.0 Whisper 底层依赖(含 MPS 支持) pip 安装 torch 一键安装依赖 pip 安装 openAI-whisper opencc-python-reimplemented torch brew 安装 ffmpeg # macOS
Whisper 模型选择指南 模型 大小 MPS速度 中文质量 推荐场景 tiny 39MB 最快 (~5x) 差 仅用于粗略定位,不推荐生产使用 base 139MB 快 (~1x) 中等良好 日常使用推荐 ✅ 默认选择 small 461M 中等 (~0.5x) 较好 需要高精度转写时 medium 1.5GB 慢 (~0.15x) 好 专业级(慎用,非常慢)
* MPS 速度为相对于 base 模型在 应用le M 系列芯片上的大致倍率
文件输出规范
完成后的标准输出目录结构:
project_输出/ ├── 输出/ # ✅ 最终切片视频(交付物) │ ├── 命令行工具p1_<主题>.mp4 # 每个 3-8 min,H.264 编码 │ ├── 命令行工具p2_<主题>.mp4 │ └── 命令行工具pN_<主题>.mp4 ├── frames/ # 采样关键帧(调试/定位用) │ ├── frame_00:00:00.jpg │ ├── frame_00:05:00.jpg │ └── fine_00_40.jpg # 精细采样帧 ├── transcript/