From c3ff9121f676be9a651a00bce3731eb19d0168b0 Mon Sep 17 00:00:00 2001 From: Luna Date: Sat, 13 Jun 2026 06:47:40 -0700 Subject: [PATCH] web player: seekable transcode playback + custom controls MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Transcoded videos stream through a live ffmpeg pipe with no byte ranges, so the browser couldn't seek/rewind them at all. Fix it end to end: - get_transcode accepts ?start= and passes -ss before -i (fast keyframe seek), rebasing timestamps to 0 from there. - The player gets a custom control bar for transcode sources: play/pause, a scrubber driven by the known duration, current/total time, ยฑ10s, mute + volume, and fullscreen, plus space / arrows / j / l / f keyboard shortcuts. Seeking re-requests the stream at the new offset; effective time is offset + element.currentTime. Every seek path (scrubber, chapters, transcript click, resume, save-position, chapter/transcript highlight) now routes through one offset-aware playerSeek()/effTime(). - Direct /files/ videos keep native