Files
video_probe/AUTO_SAVE_FEATURE.md
accusys f3e2d2dca7 Initial implementation of video_probe (Rust)
Core modules:
- probe.rs: ffprobe execution logic
- parser.rs: JSON parsing logic
- output.rs: Output formatting
- lib.rs: Library interface
- main.rs: CLI entry point

Features:
- Extract video metadata using ffprobe
- Parse video/audio/subtitle streams
- Save to JSON file
- Console summary output

Documentation:
- Added QUICKSTART.md
- Added ENVIRONMENT_SETUP_REPORT.md
2026-03-07 10:10:19 +08:00

2.5 KiB
Raw Blame History

Video YOLO Object Prescan - 更新日志

v2.0.1 (2026-03-06) - Auto-Save Feature Added

🆕 新增功能

1. 可配置的自动存档间隔

  • 默认: 30 秒
  • 命令行: --save-interval SECONDS
  • 范围: 5-300 秒
  • 示例:
    # 默认 30 秒
    python3 video_yolo_object_prescan.py video.mp4 yolov8n.pt
    
    # 每 60 秒
    python3 video_yolo_object_prescan.py video.mp4 yolov8n.pt --save-interval 60
    
    # 每 15 秒(长时间视频)
    python3 video_yolo_object_prescan.py video.mp4 yolov8n.pt --save-interval 15
    

2. 自动保存机制

  • 每 N 秒自动保存当前进度到- 显示自动保存计数和文件大小

  • 静默模式: 不显示详细进度,仅显示关键信息

  • 防止干扰: 不影响正常输出

  • 数据保护: 鄲止意外断电丢失进度

3. 断点续传

  • 保持原有功能

  • 自动检测现有 .yolo.json 文件

  • 询问是否继续

  • 无缝从上次中断处继续

  • 从上次保存处恢复处理

4. 完善的元数据

JSON 文件中新增字段:

  • auto_save_interval: 记录自动保存间隔
  • auto_save_count: 记录自动保存次数
  • status: in_progress / interrupted / completed
  • last_saved_at: 最后保存时间
  • 其他原有字段保持不变

5. 改进的显示

  • 自动保存时显示进度百分比和文件大小
  • 完成时显示完整统计(包括自动保存次数)
  • 更友好的提示信息

💡 使用建议

推荐配置

  • 短视频 (< 5 分钟): 15 秒
  • 中等视频 (5-15 分钟): 30 秒(默认)
  • 长视频 (15-30 分钟): 60 秒
  • 超长视频 (> 30 分钟): 120 秒

实际效果

进度: 1000/3615 frames (27.8%)
  💾 Auto-saved (#1): 1000/3615 frames (27.8%) - Size: 1024.5 KB - Elapsed: 75.2s

进度: 2000/3615 frames (55.2%)
  💾 Auto-saved (#2): 2000/3615 frames (55.2%) - Size: 2049.0 KB - Elapsed: 150.4s

进度: 3000/3615 frames (82.9%)
  💾 Auto-saved (#3): 3000/3615 frames (82.9%) - Size: 3073.5 KB - Elapsed: 225.6s

✓ 完成! 夔大小: 3073.5 KB
  自动保存次数: 3 次
  总对象: 5430 个

🔍 安全特性

  • 最小间隔: 5 秒(防止过于频繁)

  • 最大间隔: 300 秒5 分钟,防止间隔太长)

  • 静默保存: 保存时不尽量减少 I/O 操作

  • 内存友好: 仅保存元数据,不保存帧数据

  • 状态跟踪: 通过 status 字段可区分不同状态

  • 信号处理: Ctrl+C 优雅处理,不会强制退出

  • 用户友好: 清晰的提示和进度显示