From ddfc3223b247fd18ca753b5debb95711726e1388 Mon Sep 17 00:00:00 2001 From: metamuffin Date: Mon, 21 Apr 2025 10:28:13 +0200 Subject: buffering slow start --- remuxer/src/fragment.rs | 2 +- web/script/player/track/mse.ts | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/remuxer/src/fragment.rs b/remuxer/src/fragment.rs index a567657..439c700 100644 --- a/remuxer/src/fragment.rs +++ b/remuxer/src/fragment.rs @@ -20,7 +20,7 @@ use std::{ path::Path, }; -const FRAGMENT_LENGTH: f64 = 5.; +const FRAGMENT_LENGTH: f64 = 2.; pub fn fragment_index(path: &Path, track: u64) -> Result>> { let meta = matroska_metadata(path)?; diff --git a/web/script/player/track/mse.ts b/web/script/player/track/mse.ts index 343799e..af252a4 100644 --- a/web/script/player/track/mse.ts +++ b/web/script/player/track/mse.ts @@ -133,11 +133,15 @@ export class MSEPlayerTrack extends PlayerTrack { if (!this.index) return; this.update_buf_ranges(); // TODO required? + let buffer_to = target + TARGET_BUFFER_DURATION + if (target < 1) buffer_to = 1 + if (target < 3) buffer_to = 5 + const blocking = []; for (let i = 0; i < this.index.length; i++) { const frag = this.index[i]; if (frag.end < target) continue; - if (frag.start >= target + TARGET_BUFFER_DURATION) break; + if (frag.start >= buffer_to) break; if (!this.check_buf_collision(frag.start, frag.end)) continue; if (frag.start <= target + MIN_BUFFER_DURATION) blocking.push(this.load(i)); -- cgit v1.2.3-70-g09d2