This commit is contained in:
team3
2026-09-08 23:39:04 +02:00
parent 13df86e9fc
commit 08c2e8f885

View File

@@ -2,9 +2,9 @@
import { onMounted, onUnmounted, ref } from 'vue'
import Hls from 'hls.js'
// Alle Zuschauer regeln auf dieselbe Distanz zur Live-Kante. Damit laufen
// sie synchron, ohne dass ein Server sie taktet. hls.js passt dafür die
// Abspielgeschwindigkeit an (maxLiveSyncPlaybackRate).
// Alle Zuschauer halten dieselbe Distanz zur Live-Kante. Damit laufen sie
// synchron, ohne dass ein Server sie taktet. Ausgeglichen wird nur über
// Sprünge, nicht über die Geschwindigkeit — siehe maxLiveSyncPlaybackRate.
const ZIEL_LATENZ = 4
const video = ref(null)
@@ -108,11 +108,13 @@ function verbinden() {
// ewig mit 1,5-fachem Tempo aufzuholen. Zu dicht an ZIEL_LATENZ
// führt laut Doku zu Stockern.
liveMaxLatencyDuration: ZIEL_LATENZ + 3,
// Über 1 erlaubt hls.js, die Geschwindigkeit anzuheben, um die
// Ziel-Latenz zu halten. 1,5 wäre deutlich hörbar, wenn der Player sie
// ausreizt; 1,1 reicht für normale Schwankungen und fällt nicht auf.
// Bleibt der Rückstand größer, springt liveMaxLatencyDuration ohnehin.
maxLiveSyncPlaybackRate: 1.1,
// Kein Aufholen über die Geschwindigkeit. Mit 1,1 wechselte der Player
// gemessene 112-mal in 104 Sekunden das Tempo und lief 37 % der Zeit
// schneller als normal — jeder Wechsel ist ein Übergang im Zeitdehner
// und knackst hörbar. Der Puffer lief dabei nie leer (nie unter 2 s),
// die Regelung war also gar nicht nötig. Bleibt der Rückstand doch
// einmal groß, springt liveMaxLatencyDuration.
maxLiveSyncPlaybackRate: 1,
backBufferLength: 30,
})