mixvideo-v2/cargos/tvai-v2/BUILTIN_CONFIG_SUMMARY.md

172 lines
4.6 KiB
Markdown

# 内置配置功能总结
## 概述
Topaz Video AI SDK 现已集成内置的 FFmpeg 配置功能,所有编解码器和推荐规则都直接编译到代码中,无需外部配置文件依赖。
## 主要改进
### 1. 中文注释
-`ffmpeg.rs` 中的所有英文注释改为中文注释
- 提高了中文开发者的代码可读性
- 保持了代码功能的完整性
### 2. 内置配置系统
- **音频编解码器**: 内置 AAC、AC3、PCM、Vorbis 配置
- **视频编码器**: 内置 H.264/H.265 的各种硬件和软件编码器
- **模型推荐**: 基于分辨率的智能模型推荐规则
- **无外部依赖**: 所有配置编译到代码中
### 3. 智能编码器选择
- 根据操作系统自动筛选兼容编码器
- 根据 GPU 类型选择硬件加速编码器
- 根据文件格式筛选支持的编码器
- 自动选择最佳编码器组合
## 内置编码器支持
### 音频编解码器
```
AAC - 通用音频编码,支持 MP4/MOV/MKV/AVI
AC3 - 杜比数字音频,支持环绕声
PCM - 无损音频编码
Vorbis - 开源音频编码,用于 WebM
```
### 视频编码器
```
NVIDIA GPU:
- h264_nvenc - H.264 硬件编码
- hevc_nvenc - H.265 硬件编码
Apple 平台:
- h264_videotoolbox - H.264 硬件编码
- hevc_videotoolbox - H.265 硬件编码
AMD GPU:
- h264_amf - H.264 硬件编码
- hevc_amf - H.265 硬件编码
软件编码:
- libx264 - H.264 软件编码(跨平台)
- libx265 - H.265 软件编码(跨平台)
```
## 新增 API
### 编解码器查询
```rust
// 获取所有音频编解码器
let audio_codecs = sdk.ffmpeg_generator.get_available_audio_codecs();
// 根据名称查找编解码器
let aac = sdk.ffmpeg_generator.get_audio_codec("AAC");
// 获取所有视频编码器
let video_encoders = sdk.ffmpeg_generator.get_available_video_encoders();
// 根据名称查找编码器
let h264 = sdk.ffmpeg_generator.get_video_encoder_by_name("H264");
```
### 兼容性筛选
```rust
// 获取 Windows 兼容编码器
let windows_encoders = sdk.ffmpeg_generator.get_compatible_video_encoders("windows", None);
// 获取 NVIDIA GPU 编码器
let nvidia_encoders = sdk.ffmpeg_generator.get_compatible_video_encoders("windows", Some("nvidia"));
// 获取 MP4 格式编码器
let mp4_encoders = sdk.ffmpeg_generator.get_encoders_for_extension("mp4");
```
### 自动编码器选择
```rust
// 自动选择最佳编码器
let command = sdk.ffmpeg_generator.generate_with_auto_encoder(
&template,
"input.mp4",
"output.mp4",
"windows", // 目标操作系统
Some("nvidia") // GPU 类型
)?;
```
### 模型推荐
```rust
// 根据分辨率获取推荐模型
let models = sdk.ffmpeg_generator.recommend_model_for_resolution(1080);
```
### 参数生成
```rust
// 生成音频编解码器参数
let audio_params = sdk.ffmpeg_generator.generate_audio_codec_params("AAC", Some(192));
// 生成视频编码器参数
let video_params = sdk.ffmpeg_generator.generate_video_encoder_params("h264-high-win-nvidia", "vbr", Some(23));
```
## 使用示例
### 基本用法
```rust
use tvai_v2::{TvaiSdk, TemplateBuilder};
let sdk = TvaiSdk::new();
let template = TemplateBuilder::new("高质量编码")
.enable_enhancement("prob-4")
.video_codec("H264", Some(23))
.audio_settings("AAC", 192, 2)
.build()?;
let command = sdk.generate_ffmpeg_command(&template, "input.mp4", "output.mp4")?;
```
### 平台优化
```rust
// 自动选择适合当前平台的编码器
let optimized_command = sdk.ffmpeg_generator.generate_with_auto_encoder(
&template,
"input.mp4",
"output.mp4",
"windows",
Some("nvidia")
)?;
```
## 优势
1. **无外部依赖**: 所有配置内置,部署简单
2. **智能选择**: 自动根据平台和硬件选择最佳编码器
3. **易于扩展**: 通过修改内置配置可以添加新编码器
4. **向后兼容**: 不影响现有代码的使用
5. **性能优化**: 支持各种硬件加速编码器
6. **中文友好**: 完整的中文注释和文档
## 测试和验证
提供了完整的测试套件:
- `ffmpeg_config_tests.rs` - 单元测试
- `builtin_config_test.rs` - 功能验证
- `ffmpeg_config_demo.rs` - 完整演示
运行测试:
```bash
cargo test
cargo run --example builtin_config_test
cargo run --example ffmpeg_config_demo
```
## 文档
- `README_FFMPEG_CONFIG.md` - 详细功能说明
- `USAGE_GUIDE.md` - 使用指南和示例
- `BUILTIN_CONFIG_SUMMARY.md` - 本总结文档
## 结论
内置配置功能使 Topaz Video AI SDK 更加强大和易用,提供了智能的编码器选择和优化的 FFmpeg 命令生成,同时保持了简单的 API 和良好的性能。