Metadata-Version: 2.4
Name: revideo
Version: 1.0.0
Summary: 视频伪原创工具 - 基于 ffmpeg 的视频去重处理
Requires-Python: >=3.12
Description-Content-Type: text/markdown
Requires-Dist: fastmcp>=0.4.0

# revideo — 视频伪原创工具

基于 ffmpeg 的视频去重处理工具，通过多种手段修改视频以应对平台原创检测。

## 安装

### 前置依赖

- **Python ≥ 3.12**
- **ffmpeg**（需在 PATH 中可用）

```bash
# 克隆项目
git clone https://git.des8.com/heibai2006/revideo.git
cd revideo

# 安装依赖（uv 自动处理）
uv sync
```

验证安装：
```bash
uv run revideo --help
```

## 快速开始

```bash
# 处理单个视频（输出到 output/ 目录）
uv run revideo video.mp4 -o output/

# 处理目录下所有 mp4
uv run revideo ./videos/ -o output/

# 多文件处理后拼合为一个视频
uv run revideo a.mp4 b.mp4 c.mp4 -o output/ --concat

# 添加片头片尾 + 背景音乐
uv run revideo video.mp4 --intro 片头.mp4 --outro 片尾.mp4 --bgm music.mp3

# MCP 模式（接入大模型）
uv run revideo --mcp
```

## 输出格式

处理完成后，单文件输出 `源文件_已处理.mp4`，合并输出 `源文件_合并.mp4`：

```
视频A.mp4→视频A_已处理.mp4
视频B.mp4→视频B_已处理.mp4
已合并到 视频A_合并.mp4
```

## 参数说明

| 参数 | 说明 |
|------|------|
| `input` | 输入视频文件或目录（可多个） |
| `-o, --output` | 输出目录，默认 `output` |
| `--preset {light\|standard\|heavy}` | 预设力度，默认 `standard` |
| `--no-video` | 禁用视频层面所有处理 |
| `--no-audio` | 禁用音频层面所有处理 |
| `--no-metadata` | 禁用元数据层面所有处理 |
| `--only-video` | 仅启用视频层面（可叠加 `--only-audio`） |
| `--only-audio` | 仅启用音频层面 |
| `--only-metadata` | 仅启用元数据层面 |
| `--concat` | 多文件处理完成后拼合为单个视频 |
| `--intro` | 片头文件 |
| `--outro` | 片尾文件 |
| `--bgm` | 背景音乐文件 |
| `--mcp` | 启动 MCP stdio 服务器 |
| `--keep-original` | 保留中间文件（调试用） |

## 预设说明

| 预设 | 启用组 | 说明 |
|------|--------|------|
| `light` | video | 仅画面处理，快速去重 |
| `standard` | video + audio + metadata | 全组启用（默认） |
| `heavy` | 全部 | 全组启用 + 更激进参数 |

## 伪原创手段详解

### 1. 视频层面 (video) — 影响画面像素

| 方法 | 说明 | 随机范围 |
|------|------|----------|
| 裁切 (crop) | 切除画面边缘像素 | 1%~3% 边缘 |
| 缩放 (scale) | 轻微放大缩小 | 1.01x~1.05x |
| 镜像翻转 (mirror) | 水平或垂直翻转 | 随机二选一 |
| 旋转 (rotate) | 小角度倾斜 | ±0.5°~2° |
| 色彩调整 (color) | 微调色相/饱和度/亮度 | 色相±10, 饱和度0.95~1.05 |
| 锐化/模糊 (sharpen) | 轻微锐化或高斯模糊 | — |
| 变速 (speed) | 微变速并补偿音频音调 | 0.95x~1.05x |
| 帧率修改 (framerate) | 修改输出帧率后平滑 | — |
| 场景分割重组 (scene-split) | 场景/静音检测→乱序→拼接 | 阈值可调 |
| 片段倒放 (reverse) | 随机短片段倒放 | — |
| 画中画 (pip) | 角落叠加缩小版画面 | 右下角 |
| 水印/蒙版 (watermark) | 半透明图层 | — |
| 边框特效 (border) | 装饰边框/模糊边框 | — |
| 字幕/贴图 | 硬编码文字或贴图 | — |
| 片头/片尾拼接 | 拼接指定素材到首尾 | — |
| 片段插入 | 插入无关素材片段 | — |
| 总时长修改 | 综合变速+抽帧 | — |

### 2. 音频层面 (audio) — 音频流处理

| 方法 | 说明 |
|------|------|
| 背景音乐 (bgm) | 叠加 BGM，自动降低原声音量 (ducking) |
| 音调调整 (pitch) | 轻微升降调而不改变速度 |
| 音量曲线 (volume) | 随机化音量变化包络 |
| 静音检测分割 | 在静音处分割视频片段 |
| 静音移除 | 去除静音段落，压缩节奏 |

### 3. 元数据层面 (metadata) — 容器/编码/文件

| 方法 | 说明 |
|------|------|
| 格式转换 | 更换容器格式 (mp4↔mkv↔avi↔mov) |
| 编码器变更 | 更换视频编码 (H.264↔H.265↔VP9) |
| 元数据擦除 | 清除旧元数据，写入随机新数据 |
| 文件哈希修改 | 末尾添加填充字节改变 MD5 |

## MCP 模式

启动 MCP 服务器后，大模型可通过 STDIO 调用：

```bash
uv run revideo --mcp
```

可用工具：
- `process_video` — 处理单个视频，支持所有参数
- `process_directory` — 批量处理目录，支持 concat 合并
