diff --git a/web/player.html b/web/player.html
index 8ae8c97..9940e5d 100644
--- a/web/player.html
+++ b/web/player.html
@@ -255,14 +255,14 @@
const hls = new Hls({
maxBufferLength: 120,
enableWorker: true,
- liveSyncDurationCount: 3, // Reduced for faster initial sync
- nudgeOffset: 0.4,
- nudgeMaxRetries: 15,
+ liveSyncDurationCount: 6, // Slightly more buffer for micro-cut protection
+ nudgeOffset: 0.6, // More aggressive jump over corrupted frames
+ nudgeMaxRetries: 25,
maxLiveSyncPlaybackRate: 1.15,
// Turbo-Start specific
- startLevel: 0, // Force lowest level for instant start
+ startLevel: 0,
initialLiveManifestSize: 1,
- abrEwmaDefaultEstimate: 500000,
+ abrEwmaDefaultEstimate: 700000,
manifestLoadingRetryDelay: 500,
levelLoadingRetryDelay: 500
});
diff --git a/web/player_lite.html b/web/player_lite.html
index 90987e1..55e74ae 100644
--- a/web/player_lite.html
+++ b/web/player_lite.html
@@ -248,17 +248,17 @@
maxBufferLength: 120, // Doubled for stability
maxMaxBufferLength: 240,
enableWorker: true,
- liveSyncDurationCount: 3, // Reduced for faster initial sync
+ liveSyncDurationCount: 6, // Slightly more buffer for micro-cut protection
liveMaxLatencyDurationCount: 40,
lowLatencyMode: false, // Disabled for better stability on laggy connections
// Robustness features
- nudgeOffset: 0.5, // Jump over discontinuities more aggressively
- nudgeMaxRetries: 20,
+ nudgeOffset: 0.6, // More aggressive jump over corrupted frames
+ nudgeMaxRetries: 25,
maxLiveSyncPlaybackRate: 1.2, // Smooth catch-up
// Turbo-Start specific
- startLevel: 0, // Force lowest level for instant start
+ startLevel: 0,
initialLiveManifestSize: 1,
- abrEwmaDefaultEstimate: 500000,
+ abrEwmaDefaultEstimate: 700000,
manifestLoadingRetryDelay: 500,
levelLoadingRetryDelay: 500
});