video_template_gen/code/README_processor.md

196 lines
5.0 KiB
Markdown
Raw Permalink Normal View History

# 视频处理整合工具
这是一个整合的视频处理工具,可以自动完成以下流程:
1. 扫描输入目录中的所有视频文件
2. 将每个视频切割成指定时长的片段
3. 从每个视频片段中提取音频
## 功能特点
- **自动化流程**:一键完成视频切割和音频提取
- **智能组织**:按视频名称自动创建子目录
- **批量处理**:支持处理整个目录的视频文件
- **灵活配置**:可自定义片段时长和音频格式
- **详细日志**:提供完整的处理进度和统计信息
- **错误处理**:优雅处理各种异常情况
## 输出目录结构
```
video_processed/
├── 视频1名称/
│ ├── video_split/ # 视频片段目录
│ │ ├── 视频1名称_segment_001.mp4
│ │ ├── 视频1名称_segment_002.mp4
│ │ └── 视频1名称_segment_003.mp4
│ └── audio_split/ # 音频文件目录
│ ├── 视频1名称_segment_001.wav
│ ├── 视频1名称_segment_002.wav
│ └── 视频1名称_segment_003.wav
└── 视频2名称/
├── video_split/
│ ├── 视频2名称_segment_001.mp4
│ └── 视频2名称_segment_002.mp4
└── audio_split/
├── 视频2名称_segment_001.wav
└── 视频2名称_segment_002.wav
```
## 安装依赖
### 1. 安装Python依赖
```bash
pip install -r requirements.txt
```
### 2. 安装ffmpeg
**Ubuntu/Debian:**
```bash
sudo apt update
sudo apt install ffmpeg
```
**CentOS/RHEL:**
```bash
sudo yum install ffmpeg
# 或者
sudo dnf install ffmpeg
```
## 使用方法
### 基本用法
```bash
# 使用默认设置
python video_processor.py
# 指定输入和输出目录
python video_processor.py --input_dir /path/to/videos --output_dir /path/to/output
```
### 高级选项
```bash
# 自定义片段时长60秒
python video_processor.py --duration 60
# 指定音频格式flac
python video_processor.py --audio_format flac
# 显示详细日志
python video_processor.py --verbose
# 仅检查输出目录结构(不进行处理)
python video_processor.py --check_only
```
### 完整示例
```bash
# 完整处理示例
python video_processor.py \
--input_dir /root/autodl-tmp/video \
--output_dir /root/autodl-tmp/video_processed \
--duration 30 \
--audio_format wav \
--verbose
# 使用短参数形式
python video_processor.py -i /path/to/videos -o /path/to/output -d 60 -f flac -v
```
## 参数说明
| 参数 | 短参数 | 默认值 | 说明 |
|------|--------|--------|------|
| `--input_dir` | `-i` | `/root/autodl-tmp/video` | 输入视频目录 |
| `--output_dir` | `-o` | `/root/autodl-tmp/video_processed` | 输出目录 |
| `--duration` | `-d` | `30` | 每个片段的时长(秒) |
| `--audio_format` | `-f` | `wav` | 音频格式wav/flac/ogg |
| `--verbose` | `-v` | `False` | 显示详细日志 |
| `--check_only` | - | `False` | 仅检查输出结构,不处理 |
## 处理流程
1. **依赖检查**验证ffmpeg和Python依赖是否可用
2. **文件扫描**:递归扫描输入目录中的所有视频文件
3. **视频切割**:将每个视频切割成指定时长的片段
4. **音频提取**:从每个视频片段中提取音频
5. **结果统计**:输出处理统计信息
## 支持的格式
### 视频格式
- MP4 (.mp4)
- AVI (.avi)
- MOV (.mov)
- MKV (.mkv)
- FLV (.flv)
- WMV (.wmv)
- WebM (.webm)
- M4V (.m4v)
### 音频格式
- WAV (.wav) - 无损,文件较大
- FLAC (.flac) - 无损压缩,文件较小
- OGG (.ogg) - 有损压缩,文件最小
## 注意事项
1. **磁盘空间**:确保有足够的磁盘空间存储处理后的文件
2. **处理时间**:大量视频处理可能需要较长时间
3. **备份建议**:建议在处理前备份原始视频文件
4. **内存使用**:处理大视频文件时可能需要较多内存
## 错误处理
- 如果ffmpeg未安装程序会提示安装方法
- 处理失败的视频会记录在日志中
- 程序会继续处理其他视频,不会因单个文件失败而停止
- 最终会显示成功和失败的处理数量统计
## 性能优化建议
1. **使用SSD**将输入和输出目录放在SSD上以提高I/O性能
2. **调整片段时长**:较短的片段处理更快,但文件数量更多
3. **选择合适的音频格式**
- WAV音质最好文件最大
- FLAC音质好文件较小
- OGG音质可接受文件最小
## 故障排除
### 常见问题
1. **ffmpeg未找到**
```bash
sudo apt install ffmpeg
```
2. **Python依赖缺失**
```bash
pip install -r requirements.txt
```
3. **权限问题**
```bash
chmod +x video_processor.py
```
4. **内存不足**
- 减少同时处理的视频数量
- 使用较小的片段时长
- 增加系统内存
### 日志分析
程序会输出详细的日志信息,包括:
- 处理进度
- 错误信息
- 统计信息
- 文件路径
使用 `--verbose` 参数可以获得更详细的调试信息。