242 lines
6.8 KiB
Markdown
242 lines
6.8 KiB
Markdown
# 火炬格式转换器 2.0.0
|
||
|
||
<div align="center">
|
||
|
||
**基于 FFmpeg 和 Tauri 2.0 的跨平台媒体格式转换工具**
|
||
|
||
[](https://v2.tauri.app/)
|
||
[](https://www.rust-lang.org/)
|
||
[](LICENSE)
|
||
|
||
</div>
|
||
|
||
## ✨ 特性
|
||
|
||
- 🎬 **多格式支持** - 支持视频、音频、图片等多种格式转换
|
||
- ⚙️ **丰富参数** - 自定义编码器、分辨率、帧率、比特率等
|
||
- 🚀 **高性能** - 基于 Rust + Tauri 2.0,原生性能
|
||
- 🎨 **现代化 UI** - 使用 Tailwind CSS + Lucide 图标
|
||
- 📊 **实时进度** - 转换进度实时显示
|
||
- 🖥️ **跨平台** - 支持 Windows、macOS、Linux
|
||
- 🔄 **批量转换** - 支持多文件批量处理
|
||
- 💾 **智能输出** - 自动检测或自定义输出路径
|
||
|
||
## 🚀 快速开始
|
||
|
||
### 系统要求
|
||
|
||
#### 必需依赖
|
||
|
||
1. **FFmpeg** - 核心转换引擎
|
||
- Windows: 从 [ffmpeg.org](https://ffmpeg.org/download.html) 下载并添加到 PATH
|
||
- macOS: `brew install ffmpeg`
|
||
- Linux: `sudo apt install ffmpeg`
|
||
|
||
2. **Rust** - 编译 Tauri 后端
|
||
- 安装:`curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh`
|
||
- 或访问 [rustup.rs](https://rustup.rs/)
|
||
|
||
3. **Node.js** - 前端构建工具
|
||
- 推荐版本:v18 或更高
|
||
- 下载:[nodejs.org](https://nodejs.org/)
|
||
|
||
#### Tauri 系统依赖
|
||
|
||
请参考 [Tauri 2.0 官方文档](https://v2.tauri.app/start/prerequisites/) 安装对应平台的系统依赖。
|
||
|
||
### 安装步骤
|
||
|
||
1. **克隆项目**
|
||
```bash
|
||
git clone <your-repo>
|
||
cd format-converter
|
||
```
|
||
|
||
2. **安装依赖**
|
||
```bash
|
||
npm install
|
||
```
|
||
> 这会自动下载并安装所有 Node.js 依赖到 `node_modules` 文件夹
|
||
|
||
3. **开发模式运行**
|
||
```bash
|
||
npm run dev
|
||
```
|
||
|
||
4. **构建发布版本**
|
||
```bash
|
||
npm run build
|
||
```
|
||
> 构建完成后,安装包位于 `src-tauri/target/release/bundle/` 目录
|
||
|
||
## 📖 使用说明
|
||
|
||
### 基本流程
|
||
|
||
1. **添加文件**
|
||
- 点击拖放区域选择文件
|
||
- 或直接拖放文件到窗口
|
||
|
||
2. **配置转换参数**
|
||
- 选择目标格式(MP4、MP3、JPG 等)
|
||
- 设置编码参数(可选)
|
||
- 选择输出位置
|
||
|
||
3. **开始转换**
|
||
- 点击"开始转换"按钮
|
||
- 查看实时进度
|
||
|
||
4. **完成**
|
||
- 转换完成后自动打开输出文件夹(可选)
|
||
|
||
### 支持的格式
|
||
|
||
#### 视频格式
|
||
- **输入**: MP4, AVI, MKV, MOV, WebM, FLV, WMV, MPEG 等
|
||
- **输出**: MP4, MKV, MOV, AVI, WebM, FLV, WMV
|
||
|
||
#### 音频格式
|
||
- **输入**: MP3, WAV, AAC, FLAC, OGG, WMA, M4A 等
|
||
- **输出**: MP3, AAC, FLAC, WAV, OGG, Opus, WMA
|
||
|
||
#### 图片格式
|
||
- **输入**: JPG, PNG, WebP, GIF, BMP, TIFF, ICO 等
|
||
- **输出**: JPG, PNG, WebP, GIF, BMP, TIFF, ICO
|
||
|
||
## 🏗️ 项目结构
|
||
|
||
```
|
||
format-converter/
|
||
├── src/ # 前端源代码
|
||
│ ├── index.html # 主页面(使用 Tailwind CSS)
|
||
│ ├── style.css # 自定义样式(动画和特效)
|
||
│ ├── main.js # 前端逻辑(ES6 模块)
|
||
│ └── thumbnail-helper.js # 缩略图辅助工具
|
||
├── src-tauri/ # Tauri 后端
|
||
│ ├── src/
|
||
│ │ ├── main.rs # Rust 后端主程序
|
||
│ │ └── ffmpeg_installer.rs # FFmpeg 自动安装器
|
||
│ ├── icons/ # 应用图标
|
||
│ ├── Cargo.toml # Rust 依赖配置
|
||
│ └── tauri.conf.json # Tauri 配置
|
||
├── node_modules/ # Node.js 依赖(自动生成,不要提交到 Git)
|
||
├── package.json # Node.js 项目配置
|
||
├── package-lock.json # 依赖版本锁定文件
|
||
├── README.md # 项目说明文档
|
||
└── TESTING_FFMPEG.md # FFmpeg 测试指南
|
||
```
|
||
|
||
### 关键文件说明
|
||
|
||
- **`node_modules/`** - Node.js 依赖包文件夹,由 `npm install` 自动生成,包含所有前端依赖(Tailwind CSS、Lucide 等)。不要手动修改,也不要提交到 Git。
|
||
- **`package.json`** - 定义项目依赖和脚本命令
|
||
- **`package-lock.json`** - 锁定依赖版本,确保团队成员使用相同版本
|
||
- **`src/index.html`** - 主页面,使用 Tailwind CSS CDN 和 Lucide 图标
|
||
- **`src/style.css`** - 精简的自定义样式,只包含动画和特殊效果(199 行)
|
||
- **`src/main.js`** - 前端业务逻辑,使用 ES6 模块
|
||
- **`src-tauri/src/main.rs`** - Rust 后端,处理文件分析、格式转换等
|
||
|
||
## 🛠️ 技术栈
|
||
|
||
### 前端
|
||
- **HTML5** - 页面结构
|
||
- **Tailwind CSS** - 现代化 CSS 框架(utility-first)
|
||
- **Lucide Icons** - 轻量级图标库
|
||
- **Vanilla JavaScript** - ES6+ 模块化
|
||
|
||
### 后端
|
||
- **Rust** - 系统编程语言
|
||
- **Tauri 2.0** - 桌面应用框架
|
||
- **FFmpeg** - 多媒体处理引擎
|
||
|
||
### 开发工具
|
||
- **npm** - 包管理器
|
||
- **Cargo** - Rust 包管理器
|
||
|
||
## 🔧 开发指南
|
||
|
||
### 开发模式
|
||
|
||
```bash
|
||
npm run dev
|
||
```
|
||
|
||
这会启动 Tauri 开发服务器,支持热重载。
|
||
|
||
### 调试
|
||
|
||
- **后端日志**: 在终端中查看 Rust 输出
|
||
- **前端调试**: 按 F12 打开 DevTools
|
||
- **Tauri API**: 使用 `console.log` 调试前端逻辑
|
||
|
||
### 构建
|
||
|
||
```bash
|
||
npm run build
|
||
```
|
||
|
||
构建产物位于 `src-tauri/target/release/bundle/`:
|
||
- **Windows**: `.msi` 或 `.exe`
|
||
- **macOS**: `.dmg` 或 `.app`
|
||
- **Linux**: `.deb`, `.AppImage` 等
|
||
|
||
## 📝 脚本命令
|
||
|
||
```bash
|
||
# 开发模式(热重载)
|
||
npm run dev
|
||
|
||
# 构建发布版本
|
||
npm run build
|
||
|
||
# 运行 Tauri CLI
|
||
npm run tauri
|
||
```
|
||
|
||
## 🐛 常见问题
|
||
|
||
### Q: FFmpeg 未安装怎么办?
|
||
A: 应用会自动检测 FFmpeg,如果未安装会显示安装引导。您也可以手动安装:
|
||
- macOS: `brew install ffmpeg`
|
||
- Windows: 下载并添加到 PATH
|
||
- Linux: `sudo apt install ffmpeg`
|
||
|
||
### Q: 图标不显示?
|
||
A: 确保网络连接正常,Lucide CDN 需要联网加载。或检查浏览器控制台是否有错误。
|
||
|
||
### Q: 转换失败?
|
||
A: 检查:
|
||
1. FFmpeg 是否正确安装
|
||
2. 输入文件是否损坏
|
||
3. 输出路径是否有写入权限
|
||
4. 查看终端日志获取详细错误信息
|
||
|
||
### Q: node_modules 文件夹很大?
|
||
A: 这是正常的,`node_modules` 包含所有前端依赖。不要提交到 Git(已在 `.gitignore` 中)。
|
||
|
||
## 📄 许可证
|
||
|
||
MIT License - 详见 [LICENSE](LICENSE) 文件
|
||
|
||
## 🙏 致谢
|
||
|
||
- [FFmpeg](https://ffmpeg.org/) - 强大的多媒体处理框架
|
||
- [Tauri](https://tauri.app/) - 现代化桌面应用框架
|
||
- [Tailwind CSS](https://tailwindcss.com/) - 实用优先的 CSS 框架
|
||
- [Lucide](https://lucide.dev/) - 精美的开源图标库
|
||
|
||
## 📮 联系方式
|
||
|
||
- 官网: [meshel.cn](https://www.meshel.cn)
|
||
- 问题反馈: [GitHub Issues](https://github.com/your-repo/issues)
|
||
|
||
---
|
||
|
||
<div align="center">
|
||
|
||
**火炬格式转换器** - 让格式转换更简单
|
||
|
||
Made with ❤️ by Meshel
|
||
|
||
</div>
|