video_template_gen/code/README_processor.md

196 lines
5.0 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.

# 视频处理整合工具
这是一个整合的视频处理工具,可以自动完成以下流程:
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` 参数可以获得更详细的调试信息。