feat: 完成 tvai 库基础架构搭建 (阶段一)

项目初始化完成
- 创建 cargos/tvai 项目结构
- 配置 Cargo.toml 依赖和工作空间
- 实现基础错误类型 TvaiError

 FFmpeg 管理模块
- 实现 FfmpegManager 结构体
- FFmpeg 路径检测和验证 (系统 vs Topaz)
- 基础命令执行框架
- 支持 Windows/Linux/macOS 平台

 核心处理引擎框架
- TvaiProcessor 主结构体
- TvaiConfig 配置管理和 Builder 模式
- 临时文件管理和自动清理
- GPU 检测和配置

 模型和参数定义
- 16种超分辨率模型枚举 (Iris3, Nyx3, Thf4 等)
- 4种插值模型枚举 (Apo8, Chr2 等)
- 质量预设和编码设置
- 完整的参数结构体和验证

 模块结构完整
- video/ 视频处理模块框架
- image/ 图片处理模块框架
- config/ 配置管理模块
- utils/ 工具函数模块

 系统检测功能
- Topaz Video AI 安装检测
- GPU 支持检测
- FFmpeg 可用性检测

 文档和示例
- 完整的 README 文档
- 基础使用示例
- API 文档注释

 测试结果
-  编译通过 (cargo check)
-  示例运行成功
-  检测到 Topaz Video AI 安装
-  所有模块结构就绪

下一步: 开始阶段二 - 核心处理引擎实现
This commit is contained in:
imeepos
2025-08-11 15:12:44 +08:00
parent d77a3b244c
commit e4dbb57b68
23 changed files with 1365 additions and 0 deletions

View File

@@ -0,0 +1,44 @@
//! Basic usage example for the tvai library
use tvai::*;
#[tokio::main]
async fn main() -> std::result::Result<(), Box<dyn std::error::Error>> {
println!("Topaz Video AI Library - Basic Usage Example");
// Detect Topaz installation
if let Some(topaz_path) = detect_topaz_installation() {
println!("Found Topaz Video AI at: {}", topaz_path.display());
// Create configuration
let config = TvaiConfig::builder()
.topaz_path(topaz_path)
.use_gpu(true)
.build()?;
// Create processor
let _processor = TvaiProcessor::new(config)?;
println!("Processor created successfully");
// Check GPU support
let gpu_info = detect_gpu_support();
println!("GPU available: {}", gpu_info.available);
// Example: Quick video upscaling (commented out as it requires actual files)
/*
let result = quick_upscale_video(
Path::new("input.mp4"),
Path::new("output.mp4"),
2.0,
).await?;
println!("Processing completed in {:?}", result.processing_time);
*/
println!("Example completed successfully!");
} else {
println!("Topaz Video AI not found. Please install it first.");
}
Ok(())
}