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
This commit is contained in:
89
AUTO_SAVE_FEATURE.md
Normal file
89
AUTO_SAVE_FEATURE.md
Normal file
@@ -0,0 +1,89 @@
|
||||
# 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 优雅处理,不会强制退出
|
||||
|
||||
- **用户友好**: 清晰的提示和进度显示
|
||||
Reference in New Issue
Block a user