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