Remove outdated documentation files for audio processing modules, including development guidelines, audio file aggregation, format conversion, deduplication, metadata conversion, organization, and library integration. This cleanup enhances project maintainability and clarity.
This commit is contained in:
103
开发文档/02-音频格式智能处理.md
Normal file
103
开发文档/02-音频格式智能处理.md
Normal file
@@ -0,0 +1,103 @@
|
||||
## 02 - 音频格式智能处理
|
||||
|
||||
### 1. 功能概述
|
||||
|
||||
- **功能名称**:音频格式智能处理
|
||||
- **后端服务**:`ConvertService`
|
||||
- **前端组件**:`ConvertTab.vue`
|
||||
|
||||
**主要用途**:
|
||||
|
||||
- 针对无损音频格式(如 WAV/APE 等)智能转换为 FLAC,提高兼容性和标签支持能力;
|
||||
- 对于有损格式和已为 FLAC 的文件自动跳过,避免无意义的二次压缩。
|
||||
|
||||
### 2. 智能分类策略
|
||||
|
||||
- **无损格式转 FLAC**:
|
||||
- 支持:`WAV`, `APE`, `AIFF`, `WV`, `TTA` 等
|
||||
- 统一转换为 `FLAC`,保证后续工具(如标签编辑器、Navidrome)有良好兼容性
|
||||
- **有损格式自动跳过**:
|
||||
- 包括:`MP3`, `M4A`, `AAC`, `OGG`, `OPUS`, `WMA` 等
|
||||
- 保持原样,不做任何处理
|
||||
- **已是 FLAC 的文件直接跳过**:
|
||||
- 避免重复转换和无意义的文件改动
|
||||
|
||||
### 3. FFmpeg 集成方案
|
||||
|
||||
- 使用 `ProcessBuilder` 调用系统中的 `ffmpeg` 命令行进行转码:
|
||||
- 典型命令示例(伪代码):
|
||||
- `ffmpeg -i input.wav -compression_level 5 output.flac`
|
||||
- **转码参数约定**:
|
||||
- 压缩级别:`5`(在压缩率与速度之间做平衡)
|
||||
- 保留原始采样率、声道数和位深度,确保音质无损
|
||||
- **错误处理**:
|
||||
- 转码失败时记录日志,并在进度信息中体现失败计数
|
||||
|
||||
### 4. 任务模式(移动 / 复制)
|
||||
|
||||
- **移动模式**:
|
||||
- 转换成功后删除源文件,仅保留 FLAC 文件
|
||||
- 适用于已经确认不再需要原始无损格式的场景
|
||||
- **复制模式**:
|
||||
- 保留源文件,在目标目录生成 FLAC 副本
|
||||
- 适合试运行或希望保留源文件做长期归档的场景
|
||||
|
||||
### 5. 前端交互流程
|
||||
|
||||
1. 用户在前端选择:
|
||||
- 输入目录(待扫描的音频文件目录)
|
||||
- 输出目录(FLAC 目标目录,可与输入目录相同或独立)
|
||||
- 模式(移动 / 复制)
|
||||
2. 点击开始任务后,前端调用后端 `/convert` 类接口
|
||||
3. 后端创建异步任务并开始遍历、分类、转码
|
||||
4. 通过 WebSocket 周期性推送进度:
|
||||
- 总文件数、已处理数量、成功/失败数
|
||||
- 当前处理文件路径
|
||||
5. 前端组件展示进度条与当前文件,并在任务完成时弹出结果摘要
|
||||
|
||||
### 6. 与其他模块的配合
|
||||
|
||||
- 常与 **01-音频文件汇聚** 搭配:先汇聚到一个扁平目录,再执行智能转码
|
||||
- 转码完成后通常交由 **05-音乐整理** 进行目录重组和标签检查
|
||||
- 在 **06-整理入库** 前确保所有无损源文件已经统一为 FLAC,减少后续维护成本
|
||||
|
||||
### 7. 测试用例需求
|
||||
|
||||
#### 7.1 后端测试
|
||||
|
||||
**单元测试**:
|
||||
- 测试音频格式分类逻辑(无损/有损/FLAC)
|
||||
- 测试 FFmpeg 命令构建的正确性
|
||||
- 测试转码参数配置(压缩级别、采样率保留等)
|
||||
- 测试转码失败时的错误处理与日志记录
|
||||
- 测试文件删除逻辑(移动模式下的源文件清理)
|
||||
|
||||
**集成测试**:
|
||||
- 准备各种格式的测试音频文件(WAV、APE、FLAC、MP3、M4A 等)
|
||||
- 测试完整的转码任务执行流程
|
||||
- 验证转码后的 FLAC 文件音质无损(采样率、位深度、声道数)
|
||||
- 测试混合格式目录的智能分类与跳过逻辑
|
||||
- 测试异常场景:FFmpeg 未安装、损坏的音频文件、磁盘空间不足
|
||||
|
||||
#### 7.2 前端测试
|
||||
|
||||
**单元测试**:
|
||||
- 测试输入/输出目录的路径校验
|
||||
- 测试模式选择的状态管理
|
||||
- 测试进度信息展示(成功/失败/跳过计数)
|
||||
|
||||
**集成测试**:
|
||||
- 测试完整的用户操作流程
|
||||
- 测试任务进度的实时更新
|
||||
- 测试结果摘要的准确性
|
||||
|
||||
**测试数据**:
|
||||
- 纯无损文件目录:WAV、APE、AIFF 混合
|
||||
- 纯有损文件目录:MP3、M4A、OGG 混合
|
||||
- 混合格式目录:包含无损、有损、FLAC
|
||||
- 边界场景:超大文件(>1GB)、损坏文件、无效文件扩展名
|
||||
|
||||
**性能测试**:
|
||||
- 测试批量转码任务的并发性能
|
||||
- 测试大文件转码的内存占用
|
||||
- 测试 WebSocket 进度推送的频率与性能影响
|
||||
Reference in New Issue
Block a user