Commit Graph

7 Commits

Author SHA1 Message Date
a9e4f913ec fix: reconnexion continue au flux GStreamer au lieu d'un timeout fixe
L'ancienne sonde abandonnait définitivement après 15s et restait bloquée
en mode synthétique même quand le flux réel arrivait juste après (latence
Mycelium variable, attente du premier keyframe H.264). Remplacé par un
thread de fond (gstreamer_watcher) qui retente en continu et bascule la
source active dès qu'une frame valide est lue, y compris après une perte
de flux en cours de route. Démarrage MJPEG immédiat, plus d'attente bloquante.
2026-07-01 16:18:38 +02:00
1c945fc921 fix: augmenter le timeout de sonde GStreamer à 15s (4s insuffisant)
Le décodeur H.264 a besoin du temps d'attendre le premier keyframe/SPS-PPS,
surtout via Mycelium où la latence est plus élevée qu'en local. 4s faisait
parfois basculer en mode synthétique alors que le flux réel arrivait juste après.
2026-07-01 15:56:27 +02:00
4857adb8da fix: pipeline GStreamer dual-stack IPv4+IPv6 pour réception flux Pi Zero
Le flux RTP arrive maintenant via Mycelium en IPv6, mais udpsrc bindé
sur "::" seul ne reçoit pas les paquets IPv4 (pas de dual-stack sur ce
Jetson, IPV6_V6ONLY actif). Fusion de deux udpsrc (0.0.0.0 + ::) via
funnel pour accepter Freebox (dev, IPv4) et Mycelium (prod, IPv6).
2026-07-01 15:36:11 +02:00
09a789f20c fix: clés JSON sideband alignées sur payload Pi Zero
temp → temp_c, cpu → cpu_pct pour correspondre exactement
au format {ts, width, height, fps, encoder, bitrate_kbps,
temp_c, cpu_pct, throttled, uptime_s} émis par le Pi Zero.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-09 18:10:13 +02:00
74aa62b1cc feat: thread sideband UDP 5602 + overlay stats Pi Zero sur MJPEG
Reçoit JSON Pi Zero (width, height, fps, encoder, temp, cpu, throttled)
toutes les secondes via UDP 5602. Affiche un overlay cv2 semi-transparent
(fond noir 55%) en haut à gauche de chaque frame MJPEG :
  ligne 1 : "1280x720 | 15fps | hw | 56.2C"
  ligne 2 : "CPU 42% | ok / THROTTLED"
Variable globale _pi_stats protégée par _stats_lock (threading.Lock).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-09 17:47:40 +02:00
0d628d0431 feat: YOLOv8 + MJPEG dans receive_cam.py, fallback synthétique numpy
- Inférence yolov8n.pt sur chaque frame GStreamer
- Fallback frame noir numpy si Pi Zero absent (pas de download)
- Timeout 4s sur sonde GStreamer via thread dédié
- MJPEG annoté exposé sur port 5601

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-08 20:08:54 +02:00
2dda633412 feat: réception flux H.264 Pi Zero → MJPEG Jetson
- receive_cam.py : pipeline GStreamer UDP 5600 → MJPEG HTTP 5601
- CLAUDE.md : Pi Zero IP, ports 5600/5601, commandes de session caméra

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-08 18:50:59 +02:00