perf: throttle tracker to every 2nd frame, sup interval 10, 720p output option

- detect_interval=2 on both pipelines; stabilizer 10-frame hold bridges
  skipped frames (GPU inference cut ~half during active batch)
- sup_det_interval 5 -> 10 (still <= stabilizer hold / synthetic max_age)
- preview_every_n default 2 -> 5
- AnnotatedVideoWriter: codec auto-chain gstreamer_nvenc -> avc1 -> mp4v,
  max_height downscale (even dims, INTER_AREA); backend logged
- output_max_height plumbed Job -> web checkbox (720p) -> CLI --output-height
- README: 720p option, CLI flag
- 153 tests pass (+13)
This commit is contained in:
jetson committed 2026-09-29 15:58:55 +07:00
1 parent ad41bf01e1
commit 07289a419a
10 files changed
+345 -19

No files matched your search

+4
View File
@@ -129,6 +129,7 @@ def upload():
n += 1
video.save(video_path)
output_height = request.form.get("output_height", "")
zone_mode = request.form.get("zone_mode", "dynamic")
fixed_zone = None
zone_preset = ""
@@ -151,6 +152,7 @@ def upload():
zone_mode=zone_mode,
fixed_zone=fixed_zone,
zone_preset=zone_preset,
output_max_height=(int(output_height) if output_height else None),
)
return redirect(url_for("status", job_id=job.job_id))
@@ -166,6 +168,7 @@ def upload_reuse():
if not model_configs:
return "No models selected", 400
output_height = request.form.get("output_height", "")
zone_mode = request.form.get("zone_mode", "dynamic")
fixed_zone = None
zone_preset = ""
@@ -188,6 +191,7 @@ def upload_reuse():
zone_mode=zone_mode,
fixed_zone=fixed_zone,
zone_preset=zone_preset,
output_max_height=(int(output_height) if output_height else None),
)
return redirect(url_for("status", job_id=job.job_id))