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
90 lines
2.5 KiB
Markdown
90 lines
2.5 KiB
Markdown
# Video YOLO Object Prescan - 更新日志
|
||
|
||
## v2.0.1 (2026-03-06) - Auto-Save Feature Added
|
||
|
||
### 🆕 新增功能
|
||
|
||
#### 1. **可配置的自动存档间隔**
|
||
- **默认**: 30 秒
|
||
- **命令行**: `--save-interval SECONDS`
|
||
- **范围**: 5-300 秒
|
||
- **示例**:
|
||
```bash
|
||
# 默认 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 优雅处理,不会强制退出
|
||
|
||
- **用户友好**: 清晰的提示和进度显示
|