Files
mixvideo-v2/cargos/tvai-v2/USAGE_GUIDE.md
imeepos 704272001f feat: 集成内置FFmpeg配置系统和中文注释
主要功能:
- 将JSON配置文件内容内置到代码中,移除外部文件依赖
- 将ffmpeg.rs中所有英文注释改为中文注释
- 集成ffmpegOpts参数生成系统

 内置配置:
- 音频编解码器: AAC, AC3, PCM, Vorbis (4个)
- 视频编码器: H.264/H.265 NVENC, VideoToolbox, AMF, 软件编码器 (8个)
- 模型推荐规则: 基于分辨率的智能推荐

 新增功能:
- 智能编码器选择 (根据操作系统和GPU)
- 自动模型推荐 (基于视频分辨率)
- 动态参数生成 (支持占位符替换)
- 兼容性筛选 (按格式、平台、硬件)
- 批处理命令生成

 新增文件:
- examples/: 4个演示程序
- tests/: FFmpeg配置测试套件
- 文档: 使用指南、配置说明、功能总结

 测试验证:
- 21个单元测试全部通过
- 4个演示程序运行成功
- 支持Windows/macOS/Linux多平台
- 支持NVIDIA/AMD/Apple硬件加速

 优势:
- 无外部依赖,部署简单
- 启动速度快,内存占用小
- 向后兼容,不影响现有代码
- 完整中文注释,提升可读性
2025-08-18 13:01:03 +08:00

241 lines
5.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Topaz Video AI SDK 使用指南
## 快速开始
### 1. 基本设置
```rust
use tvai_v2::{TvaiSdk, TemplateBuilder};
// 创建 SDK 实例(自动加载内置配置)
let mut sdk = TvaiSdk::new();
```
### 2. 创建简单的增强模板
```rust
let template = TemplateBuilder::new("基本增强")
.description("使用 Proteus 模型进行基本视频增强")
.enable_enhancement("prob-4") // 使用 Proteus 4 模型
.enhancement_params(25, 30, 20) // 降噪25%, 细节30%, 锐化20%
.build()?;
```
### 3. 生成 FFmpeg 命令
```rust
let command = sdk.generate_ffmpeg_command(
&template,
"input.mp4",
"output.mp4"
)?;
println!("FFmpeg 命令: {}", command);
```
## 高级功能
### 1. 使用内置编解码器
```rust
// 查看可用的音频编解码器
for codec in sdk.ffmpeg_generator.get_available_audio_codecs() {
println!("音频编解码器: {} - {}", codec.name, codec.ffmpeg_opts);
}
// 查看可用的视频编码器
for encoder in sdk.ffmpeg_generator.get_available_video_encoders() {
println!("视频编码器: {} - {}", encoder.id, encoder.encoder);
}
```
### 2. 自动编码器选择
```rust
// 根据目标平台自动选择编码器
let auto_command = sdk.ffmpeg_generator.generate_with_auto_encoder(
&template,
"input.mp4",
"output.mp4",
"windows", // 目标操作系统
Some("nvidia") // GPU 类型
)?;
```
### 3. 模型推荐
```rust
// 根据分辨率获取推荐模型
let recommended = sdk.ffmpeg_generator.recommend_model_for_resolution(1080);
println!("1080p 推荐模型: {:?}", recommended);
// 使用推荐模型创建模板
let optimized_template = TemplateBuilder::new("优化模板")
.enable_enhancement(&recommended[0])
.build()?;
```
### 4. 平台特定的编码器筛选
```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");
```
## 常用模板示例
### 1. 4K 上采样
```rust
let upscale_4k = TemplateBuilder::new("4K 上采样")
.enable_enhancement("prob-4")
.resolution(3840, 2160)
.video_codec("hevc_nvenc", Some(18))
.audio_settings("AAC", 256, 2)
.build()?;
```
### 2. 60fps 插帧
```rust
let fps_60 = TemplateBuilder::new("60fps 插帧")
.enable_frame_interpolation("chr-2", 1.0)
.output_settings(0, 60.0) // 原始尺寸60fps
.build()?;
```
### 3. 降噪处理
```rust
let denoise = TemplateBuilder::new("降噪处理")
.enable_enhancement("nyx-3") // 使用 Nyx 降噪模型
.enhancement_params(60, 10, 5) // 高降噪,低细节增强
.build()?;
```
### 4. 稳定化处理
```rust
let stabilize = TemplateBuilder::new("视频稳定")
.enable_stabilization(70, 0) // 高平滑度,自动裁剪
.build()?;
```
### 5. 动画优化
```rust
let animation = TemplateBuilder::new("动画优化")
.enable_enhancement("art-2") // 使用 Artemis 动画模型
.ai_engine("artemis")
.enhancement_params(15, 40, 25)
.build()?;
```
### 6. HDR 处理
```rust
let hdr = TemplateBuilder::new("HDR 处理")
.enable_enhancement("hyp-1") // 使用 Hyperion HDR 模型
.video_codec("hevc_nvenc", Some(16))
.color_settings(
"bt2020nc",
"bt2020",
"smpte2084"
)
.build()?;
```
## 批处理
```rust
let input_files = vec![
"video1.mp4".to_string(),
"video2.mp4".to_string(),
"video3.mp4".to_string(),
];
let batch_commands = sdk.generate_batch_commands(
&template,
&input_files,
"output_directory"
)?;
for command in batch_commands {
println!("批处理命令: {}", command);
}
```
## 硬件加速
```rust
// 使用 GPU 加速
let gpu_command = sdk.generate_ffmpeg_command_with_gpu(
&template,
"input.mp4",
"output.mp4",
"0" // GPU 设备 ID
)?;
// 自定义编解码器
let custom_command = sdk.generate_ffmpeg_command_with_codec(
&template,
"input.mp4",
"output.mp4",
"hevc_nvenc",
Some(18)
)?;
```
## 模板验证
```rust
// 验证模板
sdk.validate_template_for_ffmpeg(&template)?;
// 验证并完善模板
let mut incomplete_template = TemplateBuilder::new("未完成")
.enable_enhancement("prob-4")
.build()?;
sdk.validate_and_complete_template(&mut incomplete_template)?;
```
## 错误处理
```rust
match sdk.generate_ffmpeg_command(&template, "input.mp4", "output.mp4") {
Ok(command) => println!("成功生成命令: {}", command),
Err(e) => eprintln!("生成命令失败: {}", e),
}
```
## 内置配置说明
SDK 内置了以下配置:
- **音频编解码器**: AAC、AC3、PCM、Vorbis
- **视频编码器**: H.264/H.265 的 NVENC、VideoToolbox、AMF、软件编码器
- **模型推荐规则**: 基于分辨率的智能模型推荐
所有配置都编译到代码中,无需外部文件依赖。
## 调试和诊断
```rust
// 生成编码器报告
let report = sdk.ffmpeg_generator.generate_encoder_report();
println!("{}", report);
// 获取模型映射
let mappings = sdk.get_model_mappings();
for (template_model, ffmpeg_model) in mappings {
println!("{} -> {}", template_model, ffmpeg_model);
}
```