logLevel: info # Low-Latency-HLS: 1s-Segmente aus 200ms-Teilen. Der Player hält damit # zuverlässig 4 Sekunden Abstand zur Live-Kante. hls: yes hlsAddress: :8890 hlsVariant: lowLatency hlsSegmentCount: 7 hlsSegmentDuration: 1s hlsPartDuration: 200ms # Die Seite reicht den Stream unter eigenem Ursprung durch hlsAllowOrigins: ['*'] # Ohne das baut MediaMTX den Muxer erst auf, wenn der erste Zuschauer # fragt — und reißt ihn 60s nach dem letzten wieder ab. Jeder Neuaufbau # setzt die Zeitbasis zurück; wer dazukommt, während gerade keiner schaut, # wartet auf den Aufbau. Durchlaufend sehen alle dieselbe Stelle. hlsAlwaysRemux: yes rtmp: yes rtmpAddress: :1935 # Liefert Zeitbereiche der Aufnahme als MP4 — daraus schneidet die App # die Clips. Nur intern erreichbar, nicht nach außen geöffnet. playback: yes playbackAddress: :9996 # Über die API löscht der Host alte Aufnahmen — Segment für Segment. # Auch nur intern erreichbar; Zugang hat nur der Sender-Nutzer unten. api: yes apiAddress: :9997 # Nicht gebraucht, also zu webrtc: no rtsp: no srt: no # Senden nur mit Passwort — sonst könnte jeder auf den Server streamen, # der Port 1935 erreicht. Das Passwort kommt aus der Umgebung: # MTX_AUTHINTERNALUSERS_0_PASS, gesetzt über die .env. authInternalUsers: - user: sender pass: bitte-ueberschreiben ips: [] permissions: - action: publish - action: api - user: any pass: ips: [] permissions: - action: read # Ausschnitte der Aufnahme holen — der Port ist nur intern erreichbar - action: playback paths: filmabend: # Der Abend wird mitgeschnitten, ohne Neukodierung, in 30-Sekunden- # Segmenten. Kurze Segmente, damit ein Clip kurz nach der Marke schon # geschnitten werden kann. Gelöscht wird nichts von selbst. record: yes recordPath: /recordings/%path/%Y-%m-%d_%H-%M-%S-%f recordFormat: fmp4 recordSegmentDuration: 30s recordDeleteAfter: 0s