Metadata-Version: 2.4
Name: video-toolkit-litouge
Version: 0.1.1
Summary: 批量压缩视频素材的 CLI 工具
Author: Long
Classifier: Programming Language :: Python :: 3
Classifier: Operating System :: OS Independent
Classifier: License :: OSI Approved :: MIT License
Classifier: Environment :: Console
Classifier: Topic :: Multimedia :: Video
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Requires-Dist: tqdm



# 🎬 Video Toolkit Litouge

一个用于批量压缩视频素材的 Python 工具，支持 `.mov` 转码、`.mp4` 压缩、智能分辨率控制、输出目录指定、GPU 加速、快速压缩模式、原始视频处理策略等功能。适用于素材库清理、自动化预处理、视频体积优化等场景。

---

## 🚀 安装

确保你已安装 [ffmpeg](https://ffmpeg.org/) 并将其加入系统 PATH。

然后在项目根目录执行：

```bash
pip install .
```

或开发模式安装（推荐调试时使用）：

```bash
pip install -e .
```

---

## 🧪 使用示例

```bash
video-toolkit-litouge -d ./videos -s 100 -c 26 -r 1920x1080 -o ./output -f -g -w --handle-original rename
```

---

## ⚙️ 参数说明

| 参数 | 简写 | 说明 |
|------|------|------|
| `--directory` | `-d` | 要处理的根目录（必填） |
| `--size` | `-s` | 文件大小阈值（单位 MB，默认 100） |
| `--crf` | `-c` | 压缩质量（默认 26，范围 18–35） |
| `--resolution` | `-r` | 目标分辨率（如 `1920x1080`，仅对高于此分辨率的视频生效） |
| `--output-dir` | `-o` | 压缩文件输出目录（默认保存在源目录） |
| `--verbose` | `-v` | 显示 ffmpeg 输出信息（调试用） |
| `--fast` | `-f` | 使用快速压缩模式（preset=fast） |
| `--gpu` | `-g` | 使用 GPU 编码（h264_nvenc） |
| `--dry-run` | `-n` | 仅打印将处理的文件，不执行压缩 |
| `--overwrite` | `-w` | 强制覆盖已存在的压缩文件 |
| `--handle-original` | 无 | 压缩后如何处理原始文件：`move_local`（默认）、`rename`、`none`、`move_to` |
| `--original-target` | 无 | 原始文件移动目标目录（仅在 `move_to` 模式下使用） |

> ⚠️ `--prefix` 参数已废弃，压缩后文件将保留原始文件名。

---

## 📦 依赖

- [ffmpeg](https://ffmpeg.org/)（必须安装并加入系统 PATH）
- [tqdm](https://pypi.org/project/tqdm/)

安装依赖：

```bash
pip install tqdm
```

---

## 🧠 示例用途

- 批量压缩 `.mov` 素材为 `.mp4`
- 自动统一分辨率为 1920x1080
- 清理素材库中超过 100MB 的视频
- 使用 GPU 加速压缩过程
- 快速预览将要处理的文件（dry-run）
- 压缩后将原始视频移动到 `compressed/` 子目录或指定目录

---

## 📁 项目结构建议

```
video_toolkit/
├── video_toolkit/
│   ├── __init__.py
│   ├── cli.py
│   ├── compressor.py
│   ├── utils.py
├── pyproject.toml
├── README.md
├── requirements.txt
```

---

## 🧼 后续规划

- ✅ 支持多线程并发处理
- ✅ 支持 YAML 配置文件
- ✅ 支持更多格式（如 `.avi`, `.mkv`）
- ✅ 支持压缩统计与日志输出


