update README
1. update root README, pointer to all proj 2. create all README Powered by claude code, maybe mistake, checked and commit manually.
This commit is contained in:
174
VideoCompress/README.md
Normal file
174
VideoCompress/README.md
Normal file
@ -0,0 +1,174 @@
|
||||
# VideoCompress 🎬
|
||||
|
||||
一个功能强大的视频批量压缩工具,基于 FFmpeg 构建,支持硬件加速和多种压缩配置选项。
|
||||
|
||||
## ✨ 主要特性
|
||||
|
||||
- **批量处理**: 递归扫描目录,批量压缩多个视频文件
|
||||
- **硬件加速**: 支持 NVIDIA、AMD、Intel 显卡硬件加速
|
||||
- **灵活配置**: 支持 CRF 和固定码率两种压缩模式
|
||||
- **进度显示**: 实时显示压缩进度和预估时间
|
||||
- **多种界面**: 提供 Tkinter 和 PySide6 两种 GUI 配置界面
|
||||
- **智能跳过**: 自动跳过已存在的压缩文件
|
||||
- **格式支持**: 支持 MP4、MKV 等多种视频格式
|
||||
|
||||
## 🚀 快速开始
|
||||
|
||||
### 环境要求
|
||||
|
||||
- Python 3.7+
|
||||
- FFmpeg(已内置 ffmpeg.exe)
|
||||
|
||||
### 安装依赖
|
||||
|
||||
```bash
|
||||
pip install rich PySide6
|
||||
```
|
||||
|
||||
### 基本使用
|
||||
|
||||
1. **启动配置界面**:
|
||||
```bash
|
||||
python config_ui.py
|
||||
```
|
||||
|
||||
2. **直接压缩视频**:
|
||||
```bash
|
||||
python main.py <目标目录>
|
||||
```
|
||||
|
||||
3. **配置后压缩**:
|
||||
```bash
|
||||
python config.py <目标目录>
|
||||
```
|
||||
|
||||
## ⚙️ 配置选项
|
||||
|
||||
### 基础设置
|
||||
|
||||
- **输出方式**:
|
||||
- `single`: 所有压缩文件保存到统一的 Compress 文件夹
|
||||
- `multi`: 在每个视频文件旁创建独立的 compress 文件夹
|
||||
|
||||
- **编码器**:
|
||||
- `h264`: H.264 编码(兼容性好)
|
||||
- `hevc`: H.265 编码(文件更小)
|
||||
|
||||
### 质量设置
|
||||
|
||||
- **CRF 模式**(推荐):
|
||||
- 数值范围:0-51
|
||||
- 数值越小质量越高,文件越大
|
||||
- 推荐值:18-23
|
||||
|
||||
- **固定码率模式**:
|
||||
- 格式:数字+单位(如 2M、500k)
|
||||
- 可以精确控制文件大小
|
||||
|
||||
### 硬件加速
|
||||
|
||||
- **NVIDIA 显卡**:使用 `h264_nvenc` 或 `hevc_nvenc`
|
||||
- **AMD 显卡**:使用 `h264_amf` 或 `hevc_amf`
|
||||
- **Intel 核显**:使用 `h264_qsv` 或 `hevc_qsv`
|
||||
|
||||
## 📁 项目结构
|
||||
|
||||
```
|
||||
VideoCompress/
|
||||
├── main.py # 核心压缩引擎
|
||||
├── config.py # Tkinter 配置界面
|
||||
├── config_ui.py # PySide6 现代化配置界面
|
||||
├── config.json # 配置文件
|
||||
├── ffmpeg.exe # FFmpeg 可执行文件
|
||||
├── ffprobe.exe # FFprobe 可执行文件
|
||||
├── test.py # 测试文件
|
||||
├── pack.bat # 打包脚本
|
||||
└── logs/ # 日志文件夹
|
||||
```
|
||||
|
||||
## 🔧 高级用法
|
||||
|
||||
### 自定义 FFmpeg 参数
|
||||
|
||||
在配置界面的"高级设置"中,可以添加自定义 FFmpeg 参数:
|
||||
|
||||
```bash
|
||||
# 示例:设置线程数
|
||||
-threads 4
|
||||
|
||||
# 示例:自定义预设
|
||||
-preset slow
|
||||
|
||||
# 示例:音频编码设置
|
||||
-c:a aac -b:a 128k
|
||||
```
|
||||
|
||||
### 手动参数模式
|
||||
|
||||
如果需要完全自定义压缩命令,可以在配置文件中设置 `manual` 参数:
|
||||
|
||||
```json
|
||||
{
|
||||
"manual": ["-vf", "scale=1280:720", "-c:v", "libx264", "-crf", "20"]
|
||||
}
|
||||
```
|
||||
|
||||
### 训练模式(实验性)
|
||||
|
||||
启用训练模式可以让程序学习压缩时间,提供更准确的时间预估:
|
||||
|
||||
```json
|
||||
{
|
||||
"train": true
|
||||
}
|
||||
```
|
||||
|
||||
## 📊 输出示例
|
||||
|
||||
```
|
||||
2025-08-26 19:20:15 - INFO - Video Compress started at 2025/08/26 19:20
|
||||
2025-08-26 19:20:15 - INFO - 开始验证环境
|
||||
2025-08-26 19:20:16 - INFO - 正在获取视频信息 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100%
|
||||
2025-08-26 19:20:17 - INFO - 总进度 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 45%
|
||||
2025-08-26 19:20:17 - INFO - test.mp4 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 67%
|
||||
```
|
||||
|
||||
## 🎯 使用场景
|
||||
|
||||
- **批量压缩**: 处理大量视频文件,减小存储空间
|
||||
- **格式转换**: 将各种格式的视频统一转换为 MP4
|
||||
- **质量优化**: 在保持视觉质量的前提下减小文件体积
|
||||
- **硬件加速**: 利用显卡加速,提高压缩效率
|
||||
|
||||
## ⚠️ 注意事项
|
||||
|
||||
1. 确保有足够的磁盘空间存储压缩后的文件
|
||||
2. 硬件加速需要相应的显卡驱动支持
|
||||
3. 压缩过程中避免强制退出,可能导致文件损坏
|
||||
4. 建议先用小批量文件测试配置效果
|
||||
|
||||
## 🐛 常见问题
|
||||
|
||||
**Q: 压缩后文件变大了?**
|
||||
A: 降低 CRF 值或检查原文件是否已经是高压缩格式
|
||||
|
||||
**Q: 硬件加速不生效?**
|
||||
A: 检查显卡驱动是否支持对应的编码器
|
||||
|
||||
**Q: 程序卡在某个文件?**
|
||||
A: 检查该文件是否损坏或格式不被支持
|
||||
|
||||
## 📝 更新日志
|
||||
|
||||
- **v1.2.1**: 优化进度显示,修复时间预估
|
||||
- **v1.2**: 添加 PySide6 现代化界面
|
||||
- **v1.1**: 支持硬件加速和多种编码器
|
||||
- **v1.0**: 基础批量压缩功能
|
||||
|
||||
## 📄 许可证
|
||||
|
||||
本项目仅供学习和个人使用。
|
||||
|
||||
---
|
||||
|
||||
💡 **提示**: 如有问题或建议,欢迎提出 Issue 或 Pull Request。
|
Reference in New Issue
Block a user