Standbild
This commit is contained in:
@@ -75,8 +75,12 @@ Separate Admin-Seite (kein Viewer-Umbau nötig). Pro Kamera eine Zeile mit Combo
|
||||
**ComboBox-Optionen pro Kamera** (zentral als Konstante, von Server + Client geteilt):
|
||||
`Aus`, `160×120`, `320×240`, `640×360`, `640×480`, `800×600`, `1280×720`
|
||||
|
||||
- `Aus` → `stream: false` (kein Live-Stream; Viewer zeigt Platzhalter nach Reload)
|
||||
- Auflösung → `stream: true` + `liveSize: "<W>x<H>"`
|
||||
- `Aus` → `stream: false` = **Snapshot-Modus**: kein Video. Der Viewer zeigt stattdessen
|
||||
alle 5 s ein Einzelbild (`GET /api/snapshot/<id>`) mit grossem Banner „Single Picture
|
||||
no Video". Server-seitig öffnet jeder Snapshot das Gerät kurz (one-shot via
|
||||
`grabSnapshot()`) und schliesst es wieder → Gerät meist geschlossen, minimale Mobil-
|
||||
Bandbreite (1 JPEG/5 s statt 30/s).
|
||||
- Auflösung → `stream: true` + `liveSize: "<W>x<H>"` (kontinuierlicher MJPEG-Stream)
|
||||
- Bei cam2 (C920) ein dezenter ⚠-Hinweis-Tooltip: „C920 braucht bei kleinen 4:3-Auflösungen
|
||||
überdurchschnittlich Bandbreite – siehe Doku."
|
||||
|
||||
@@ -126,11 +130,12 @@ async reconfigure({ liveSize, stream } = {}) {
|
||||
}
|
||||
```
|
||||
|
||||
> Hinweis: `stream:false`-Handling läuft primär über `camsMeta` (Viewer baut dann keinen
|
||||
> `<img>` → kein `acquire()` → On-Demand lässt FFmpeg aus). `reconfigure` muss für `Aus`
|
||||
> daher nichts hart killen; ein bereits laufender Stream stoppt nach Viewer-Reload via
|
||||
> Idle-Grace. Optional kann bei `stream:false` zusätzlich `_killCurrentAndWait()` gerufen
|
||||
> werden, falls sofortiges Stoppen gewünscht ist.
|
||||
> **Umgesetzt:** `CameraSwitch` hat ein `streamEnabled`-Flag, das NUR den kontinuierlichen
|
||||
> Live-Stream sperrt (`_spawnLive`/`acquire`/`_scheduleRestart` sind dadurch gegated).
|
||||
> Einzel-Snapshots umgehen das über `grabSnapshot()` (one-shot open/grab/close an
|
||||
> `liveSize`) – so liefert eine „Aus"-Kamera weiterhin Bilder, ohne dauerhaft zu streamen.
|
||||
> `reconfigure({stream:false})` killt einen evtl. laufenden Live-Prozess und startet ihn
|
||||
> nicht neu.
|
||||
|
||||
**Wichtig – laufende Browser-`<img>`-Streams:** Eine reine *Auflösungs*-Änderung ist für
|
||||
den Client nahtlos – der multipart-Stream läuft weiter, nur die Frame-Grösse ändert sich
|
||||
|
||||
Reference in New Issue
Block a user