Sweep: crop the timecode band off published streams (re-encode after decode); vgdeband.sh catch-up

The published recording is the game picture + audio + tmcd track, nothing else. Streams without the
band are still remuxed losslessly. vgstrip plan exports TC_BAND and marks the sidecar band_removed.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
2026-11-01 13:05:35 -06:00
parent bb09565388
commit 2cd936beaf
8 changed files with 91 additions and 18 deletions

View File

@@ -306,9 +306,10 @@ permanent reference is needed for long sessions, not just a start burst.
frame-0 capture time = median(decoded − pts) at the start (frame-accurate) → QuickTime `tmcd` track
(time of day, Eastern, file fps) + `creation_time` (UTC) in the existing lossless remux; a `.tc.json`
sidecar with the samples records drift over the file. No strip → server arrival time (coarse), logged.
Never re-encode, never crop.
- **Viewing**: live portal crops the band with CSS; Jellyfin shows a thin strip at the bottom edge (VHS-style).
Editors export at the game resolution (2560×1440), which drops the band.
Strip present → the band is cropped off in a re-encode (decided 2026-11-01: finals = picture + audio + tmcd,
nothing else); no strip → lossless remux, never crop.
- **Viewing**: live portal crops the band on the live picture (canvas/overflow fix pending); recordings are
already at game resolution.
- MediaMTX `recordPath` with `%f` (microseconds) for the fallback; plugin `ItemTimestamp` prefers `creation_time`.
- [x] `/clock/` page: offset measurement, strip encoder, readable clock, band layout
- [x] dock: overscan band setup + browser source via obs-websocket; opt-out