Video A'Roll Auto Editor v4.7

基于AI与规则的视频自动粗剪工具,支持单视频最佳片段提取与批量去重拼接。

已扫描
适合谁
自媒体创作者、知识类内容生产者
不适合谁
多人口语对谈内容制作者、音乐或B-roll为主的视频制作者
国内可用性
需网络配置。可能需要网络配置或第三方服务可访问。
安装难度
新手友好(★☆☆)。基于终端操作、依赖、API Key 和本地环境要求的初步判断。

安装与下载

openclaw skills install @gilbertwuu/video-aroll-auto-editor

Skill 说明

命令、参数、文件名以原文为准

Video A'Roll 自动剪辑工具 v4.7

基于规则与 AI 的自动化视频粗剪工具,可自动从原始素材中识别最佳片段并完成剪辑拼接。

适用场景单人出镜(A'Roll)内容 —— 个人日志、教程、播客、知识分享独白。不适用于多人对话、采访或以音乐/B-roll 为主的视频内容。


功能特性

  • 场景 A - 单视频处理:从单个视频中自动选择最佳片段
  • 场景 B - 批量处理:处理多个视频,执行跨视频去重,并合并为一个最终视频
  • 智能评分系统:四维评分(清晰起止、流畅度、自然节奏) + 流畅性分析
  • 内容去重:基于转录文本的相似度检测,支持视频内及跨视频去重
  • 自动生成报告:每次处理后生成详细的 Markdown 格式报告

适用与不适用场景

✅ 适用场景❌ 不适用场景
单人面对镜头讲话(A'Roll)多人对话、访谈类内容
日常视频、教学视频、播客、独白音乐密集、B-roll 内容繁多的视频
同一内容的多个拍摄版本(批量去重)需要保留多个片段的复杂内容
中文语音(已针对中文流畅模式优化)非中文语音(未适配相关模式)
原始长时段素材(粗剪阶段)已经经过精细剪辑的内容

系统要求

  • Python 3.8+
  • FFmpeg(含 ffprobe)
  • openai-whisper

安装方法

# macOS
brew install ffmpeg
pip install openai-whisper

# Ubuntu / Debian
sudo apt install ffmpeg
pip install openai-whisper

快速上手

场景 A:单个视频处理

传入一个视频文件路径

python3 video_editor_auto_v4.6.py ./video.MTS ./output

输出结果:

output/
├── video_粗剪.mp4    # 最佳片段(裁剪后)
└── video_报告.md     # 处理报告

场景 B:批量处理 + 去重 + 拼接

传入一个文件夹路径(自动识别为批量模式):

python3 video_editor_auto_v4.6.py ./Video ./output

输出结果(仅保留两个文件,中间文件将被清理):

output/
├── 最终拼接_20260311_1905.mp4  # 去重后拼接的视频
└── 批量处理报告.md              # 批量处理报告(包含各片段详情与去重决策)

命令格式

python3 video_editor_auto_v4.6.py <input> [output_dir] [work_dir]
参数说明默认值
<input>视频文件路径(场景 A)或文件夹路径(场景 B)必填
[output_dir]输出目录,用于存放剪辑片段和报告./output
[work_dir]临时目录,用于存放中间文件./video_work

支持格式:.MTS, .mp4, .mov


处理流程

场景 A(单视频)

输入视频 → 静音检测 → 片段识别 → 四维评分
→ 候选片段筛选 → Whisper 转录 → 流畅性分析
→ 视频内去重 → 分层选择 → 输出剪辑片段

场景 B(批量处理)

输入文件夹 → 对每个视频执行场景 A 处理(不生成单个报告)
→ 跨视频去重 → 按文件名顺序拼接
→ 清理中间文件 → 生成单一批量报告

配置参数

所有参数均位于脚本顶部的 CONFIG 字典中:

CONFIG = {
    # 静音检测
    "silence_noise": -30,           # dB,数值越低越严格
    "silence_duration": 0.8,        # 秒,静音最小持续时间

    # 过滤条件
    "min_score": 90,                # 最低基础分(满分 100)
    "min_duration": 15,             # 最短片段时长(秒)

    # 剪辑缓冲区
    "buffer_start": 1,              # 开始前缓冲时间(秒)
    "buffer_end": 3,                # 结束后缓冲时间(秒)

    # 编码设置
    "crf": 18,                      # 视频质量(18=视觉无损,23=默认)
    "preset": "fast",               # 编码速度
    "audio_bitrate": "192k",        # 音频码率

    # 调整分数权重
    "penalty_repeat": 5,            # 每次重复惩罚
    "penalty_stutter": 3,           # 每次结巴惩罚
    "penalty_interrupt": 10,        # 突然中断惩罚
    "bonus_natural_end": 5,         # 自然结尾加分
    "bonus_completeness_max": 3,    # 完整性加分上限

    # 去重设置
    "duplicate_threshold": 0.7,     # 内容相似度阈值(0-1)
}

参数调优建议

使用场景参数推荐值
噪音环境silence_noise-35
片段过于零碎silence_duration1.0
希望获得更多候选片段min_score85
希望片段更短min_duration10
更高画质crf15(文件体积更大)

评分体系

基础分(四维度 × 25 分 = 100 分)

维度满分判定标准
清晰起始25片段前有足够静音
清晰结束25片段后有足够静音
中段流畅度25内部中断次数少
自然节奏25停顿比例低 + 无过长停顿 + 不过短

调整后得分(0-100)

在基础分基础上,根据转录文本分析进行加减分:

项目分数说明
重复惩罚-5 每次“重复说”类结巴(按每 30 秒归一化)
结巴惩罚-3 每次填充词(如“嗯”“啊”等)
中断惩罚-10以连接词结尾(如“然后”“但是”等)
自然结尾加分+5以完整句子、问题或总结结尾
完整性加分+0~3自然结尾 + 时长接近 60 秒

分层选择机制(选取最优片段)

并非单纯取最高分;采用优先级过滤策略:

# Video A'Roll Auto Editor v4.7

## 优先级规则

### 第一层:优先选择自然结束的片段
### 第二层:按流畅度排序(每30秒容忍度为1.5)
### 第三层:按调整后得分排序
### 第四层:平局处理 → 不完整片段选最后的;完整片段选最长的

---

## 去重规则

视频内去重与跨视频去重采用相同选择规则:

自然结束 > 调整后得分 > 索引/文件名顺序(靠后的优先)

---

## 常见问题解答

### Q:未检测到静音段落?

背景噪音可能导致误检。可尝试将 `silence_noise` 从 `-30` 降低至 `-35`。

### Q:片段切分过细?

静音时长阈值可能设置过短。可将 `silence_duration` 从 `0.8` 提高至 `1.0` 或 `1.5`。

### Q:为何未选择得分最高的片段?

系统采用**分层选择机制**,而非单纯比较原始得分。优先级顺序为:自然结束 > 流畅度 > 调整后得分 > 持续时间。一个95分但突然中断的片段,可能排名低于一个90分且自然收尾的片段。

### Q:Whisper语音转写不准确?

默认使用 `small` 模型以平衡速度与准确率。如需提升精度:
- 在 `transcribe_segment` 中,将 `--model small` 改为 `--model medium` 或 `--model large`
- `medium` 模型对中文识别准确率约为85%,若资源允许,推荐使用

### Q:跨视频去重如何决定保留哪个片段?

选择规则:自然结束 > 调整后得分 > 较晚的文件名(通常为最后录制版本,状态最佳)

### Q:详细报告保存在哪里?

- 场景 A:`output/<video_name>_报告.md`
- 场景 B:`output/批量处理报告.md`(包含片段详情、转写摘要、去重决策记录)
  - 场景 B 不保留中间报告或剪辑片段;合并完成后会自动清理

---

## 项目结构

video_editor_v4.6_release/

├── video_editor_auto_v4.6.py # 主脚本

├── README.md # 当前文档

├── CODE_DOCUMENTATION.md # 技术文档(架构、模块、API说明)

├── requirements.txt # Python 依赖项

├── LICENSE # GPL v3 许可证

└── .gitignore # Git 忽略规则

---

## 技术文档

关于模块实现细节、数据结构、算法逻辑及扩展指南,请参阅 `CODE_DOCUMENTATION.md`。

---

## 许可证

本项目采用 **GPL v3** 许可证。若将本软件或其衍生作品用于商业用途,必须将其产品以相同许可证(GPL v3)开源发布(符合 GPL v3 的版权要求)。

详情请见 [LICENSE](LICENSE) 文件。

---

**版本**:v4.7 | **最后更新**:2026-03-11
G
@gilbertwuu

已收录 1 个 Skill

相关推荐