mixvideo-v2/HOTFIX_TEST_GUIDE.md

4.7 KiB

Hotfix 测试指南:修复 FFmpeg 命令行闪现问题

🔧 问题描述

在之前的版本中,当 MixVideo Desktop 执行 FFmpeg 和 FFprobe 命令时,会在 Windows 上出现命令行窗口闪现的问题,影响用户体验。

🛠️ 修复方案

技术实现

  1. 添加 Windows 特定导入

    #[cfg(target_os = "windows")]
    use std::os::windows::process::CommandExt;
    
  2. 创建隐藏控制台的命令函数

    fn create_hidden_command(program: &str) -> Command {
        let mut cmd = Command::new(program);
    
        #[cfg(target_os = "windows")]
        {
            // 在 Windows 上隐藏控制台窗口
            // CREATE_NO_WINDOW = 0x08000000
            cmd.creation_flags(0x08000000);
        }
    
        cmd
    }
    
  3. 替换所有 FFmpeg/FFprobe 调用

    • 将所有 Command::new("ffmpeg") 替换为 Self::create_hidden_command("ffmpeg")
    • 将所有 Command::new("ffprobe") 替换为 Self::create_hidden_command("ffprobe")

修复范围

修复了以下方法中的命令行闪现问题:

  • is_available() - FFmpeg 可用性检查
  • get_status_info() - FFmpeg 状态信息获取
  • extract_metadata() - 视频/音频元数据提取
  • detect_scenes_with_ffmpeg() - 场景检测
  • detect_scenes_alternative() - 替代场景检测
  • split_video_with_mode() - 视频切分
  • get_keyframes() - 关键帧获取
  • generate_thumbnail() - 缩略图生成
  • get_version() - 版本信息获取

🧪 测试步骤

1. 启动应用测试

cd apps/desktop
pnpm tauri:dev

预期结果: 应用启动时不应出现任何命令行窗口闪现

2. FFmpeg 状态检查测试

  1. 打开应用
  2. 查看 FFmpeg 状态信息(如果有相关界面)

预期结果: 检查 FFmpeg 状态时不应出现命令行闪现

3. 视频文件导入测试

  1. 创建或打开一个项目
  2. 导入一个视频文件
  3. 观察元数据提取过程

预期结果:

  • 视频元数据正常提取
  • 过程中不出现命令行窗口闪现
  • 控制台日志正常显示处理信息

4. 场景检测测试

  1. 导入视频文件后
  2. 触发场景检测功能
  3. 观察场景检测过程

预期结果:

  • 场景检测正常工作
  • 不出现 FFmpeg 命令行窗口闪现
  • 场景检测结果正确显示

5. 视频切分测试

  1. 完成场景检测后
  2. 执行视频切分操作
  3. 观察切分过程

预期结果:

  • 视频切分正常执行
  • 切分过程中不出现命令行闪现
  • 切分后的视频文件正常生成

🔍 验证要点

Windows 特定验证

  • 确认 CREATE_NO_WINDOW 标志正确应用
  • 验证只在 Windows 平台应用此修复
  • 确认其他平台不受影响

功能完整性验证

  • 所有 FFmpeg 功能正常工作
  • 错误处理机制正常
  • 性能监控正常记录
  • 日志系统正常输出

用户体验验证

  • 无命令行窗口闪现
  • 应用响应速度正常
  • 操作流程顺畅

📊 测试结果记录

编译测试

  • Rust 编译: 通过 (cargo check)
  • 前端构建: 通过 (pnpm build)
  • 应用启动: 成功

功能测试

  • FFmpeg 状态检查: 待测试
  • 视频元数据提取: 待测试
  • 场景检测: 待测试
  • 视频切分: 待测试
  • 缩略图生成: 待测试

用户体验测试

  • 命令行闪现: 待验证修复
  • 操作流畅性: 待测试
  • 错误处理: 待测试

🚀 部署建议

测试通过后的步骤

  1. 提交修复代码

    git add .
    git commit -m "hotfix: 修复 FFmpeg 命令行闪现问题"
    
  2. 合并到主分支

    git checkout master
    git merge hotfix/fix-ffmpeg-console-flash
    
  3. 创建补丁版本

    • 更新版本号到 v0.1.3
    • 创建发布标签
    • 构建新的安装包

发布说明

## v0.1.3 Hotfix - 修复命令行闪现问题

### 🐛 Bug 修复
- 修复了 Windows 上 FFmpeg/FFprobe 执行时命令行窗口闪现的问题
- 改善了用户体验,操作过程更加流畅

### 🔧 技术改进
- 在 Windows 平台使用 CREATE_NO_WINDOW 标志隐藏控制台窗口
- 保持了所有 FFmpeg 功能的完整性和性能

📝 注意事项

  1. 平台兼容性: 此修复仅影响 Windows 平台,其他平台行为不变
  2. 功能完整性: 确保所有 FFmpeg 相关功能正常工作
  3. 性能影响: 修复不应影响 FFmpeg 执行性能
  4. 错误处理: 保持原有的错误处理逻辑

测试负责人: [测试人员姓名]
测试日期: 2025年1月13日
修复分支: hotfix/fix-ffmpeg-console-flash