Files
hmo 04db423416 Initial commit: skills library
- 70 skills with code and documentation
- Add .gitignore (ignore __pycache__, output/, temp/, venv/)
- Clean up test intermediates and caches
2026-04-26 19:27:40 +08:00

120 lines
4.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
name: video-text-clipper
description: 基于字幕文本特征的视频自动剪辑工具。通过语音转录识别视频字幕,根据关键词密度自动定位并剪辑出符合特征的片段,生成带字幕的精华视频。适用于任何通过字幕文本特征来截取拼接视频的场景。
---
# 基于文本特征的视频剪辑工具
## 功能说明
通过语音转录识别视频中的字幕文本,根据关键词密度自动定位并剪辑出符合特征的片段,生成带字幕的精华视频。
## 适用场景
- 根据关键词密度提取视频片段(如密集出现"大"字的打拍子片段)
- 长视频中特定内容片段的自动剪辑
- 任何通过字幕文本特征来截取视频的场景
## 环境要求
| 项 | 要求 | 说明 |
|------|--------|------|
| Python版本 | 3.12 | **必须使用 `D:\ProgramData\anaconda3\envs\py312_cuda\python.exe`** |
| CUDA版本 | 12.1 | RTX3080显卡,PyTorch 2.5.1+cu121 |
| 模型路径 | `D:/AI/LM-Models/faster-whisper/large-v3` | 本地预下载的faster-whisper large-v3模型 |
| ffmpeg版本 | 支持drawtext+subtitles滤镜 | 当前环境已满足 |
**⚠️ 环境路径**
- `D:\AI\Miniconda3\python.exe` → ❌ CPU 版本,不能用
- `D:\ProgramData\anaconda3\envs\py312_cuda\python.exe` → ✅ **用这个**
## 依赖安装
```bash
"D:/ProgramData/anaconda3/envs/py312_cuda/python.exe" -m pip install faster-whisper ffmpeg-python pyyaml zhconv pypinyin
```
## 调用方式
```bash
cd .opencode/skills/video-text-clipper
"D:/ProgramData/anaconda3/envs/py312_cuda/python.exe" scripts/extract_by_text_pattern.py --config 配置文件路径.yaml
```
## 配置文件格式(YAML
```yaml
video_src: "视频文件路径.mp4"
output_dir: "输出目录路径"
# 文本特征配置
text_pattern:
# 特征关键词
keyword: "大"
# 窗口大小(秒):在这个时间窗口内统计关键词出现次数
window_size: 10
# 阈值:窗口内关键词出现次数 >= 阈值 时,认为匹配
threshold: 3
# 片段最小时长(秒)
min_clip_duration: 5
# 片段最大时长(秒)
max_clip_duration: 30
# 相邻片段合并间隔(秒):间隔小于此值的片段合并为一个
merge_gap: 5
# 视频参数
video_params:
fade_duration: 1 # 淡入淡出时长(秒)
title_text: "精华片段" # 片头标题
title_duration: 3 # 标题显示时长(秒)
title_fontsize: 90 # 标题字号
title_color: FFFF00 # 标题颜色(黄色)
subtitle_fontsize: 24 # 字幕字号
subtitle_color: FFFFFF # 字幕颜色(白色)
whisper_model: large # Whisper模型
use_fast_whisper: true # 使用GPU加速
whisper_model_path: "D:/AI/LM-Models/faster-whisper/large-v3"
```
## 工作流程
### 1. 全视频转录
- 将视频分段(每5分钟一段)转录
- 输出带时间戳的JSON转录文件
### 2. 文本特征匹配
- 扫描所有转录文本,统计关键词出现频率
- 使用滑动窗口检测关键词密集区域
- 自动合并相邻的匹配区域
### 3. 片段提取
- 根据匹配的时间点提取视频片段
- 每个片段添加1秒淡入 + 1秒淡出
### 4. 视频合成
- **片头标题**:3秒90号黄色大字(带4px黑边),画面居中
- **字幕**:底部24号白字黑边
- **转场**:片段间1秒淡入淡出
- 输出:vN_final.mp4
## 输出文件结构
```
<项目目录>/
├── output/
│ ├── v1_final.mp4 # 最终视频
│ ├── subs/
│ │ └── v1_ai.srt # AI纠正后的字幕
│ └── intermediates/
│ ├── clip1.mp4 # 原始片段
│ ├── clip1_fade.mp4 # 带淡入淡出的片段
│ ├── full_transcript.json # 完整转录
│ └── concated.mp4 # 合并后的片段
└── config.yaml
```
## 已知限制
1. **Python版本限制**Python 3.13不支持CUDA版PyTorch,必须使用3.11/3.12
2. **GPU依赖**:必须使用GPU加速,CPU转录速度慢10倍以上
3. **转录精度**:Whisper对音乐术语可能有识别误差
4. **文本特征**:特征关键词需要根据实际转录结果调整阈值