Claude: WebSocket
This commit is contained in:
@@ -1,7 +1,13 @@
|
||||
'use strict';
|
||||
|
||||
// go2rtc Player-Modi – Fallback-Reihenfolge: WebRTC → MSE → MJPEG
|
||||
const MODE = 'webrtc,mse,mjpeg';
|
||||
// go2rtc Player-Modi.
|
||||
// 'mjpeg' → Passthrough: go2rtc reicht Kamera-MJPEG 1:1 durch.
|
||||
// KEIN Transcode → ~0% CPU, keine Freezes, ~200ms Latenz.
|
||||
// 'webrtc,mse,mjpeg' → WebRTC bevorzugt. ABER: WebRTC/MSE können kein MJPEG →
|
||||
// go2rtc transcodiert MJPEG→H.264 in Software (libx264) →
|
||||
// ~55% CPU pro Kamera + Keyframe-Freezes. ~130ms Latenz.
|
||||
const MODE = 'mjpeg';
|
||||
const IS_MJPEG = !MODE.includes('webrtc'); // MJPEG-Modus: kein WebRTC/getStats/Health
|
||||
|
||||
// ── Überwachungs-Parameter ───────────────────────────────────────────────────
|
||||
const MONITOR_INTERVAL = 2500; // ms zwischen Health-Checks (getStats)
|
||||
@@ -88,6 +94,14 @@ async function monitor() {
|
||||
for (const cam of cameras) {
|
||||
if (!cam.active) continue;
|
||||
|
||||
// MJPEG-Passthrough: kein PeerConnection, kein getStats, keine Decoder-Überlast.
|
||||
// Das Bild läuft, sobald das Element da ist – nur simple Status-Anzeige.
|
||||
if (IS_MJPEG) {
|
||||
const live = !!cam.box.querySelector('video-stream');
|
||||
setInfo(cam, live ? 'MJPEG · live' : 'aus', live ? 'ok' : '');
|
||||
continue;
|
||||
}
|
||||
|
||||
const el = cam.box.querySelector('video-stream');
|
||||
const pc = el && el.pc;
|
||||
// Noch nicht verbunden oder 'playing' noch nicht gefeuert → Aufbauphase
|
||||
|
||||
Reference in New Issue
Block a user