mirror of
https://github.com/zoriya/v10.git
synced 2026-08-16 02:45:09 +00:00
Assets whose A/V encode starts at a non-zero native PTS (Mux instant clips, Apple bipbop @10s) are relocated onto a 0-based presentation timeline via `SourceBuffer.timestampOffset`, so buffer / model / `currentTime` / `seekable` stay 0-based and the adapter is untouched. - `establishStartMediaTime` reactor establishes each track's media-timeline origin once per source (the DOM-free half), running an injected `deriveStartMediaTime` seam over discovered container data. - Default `deriveSharedMinStartMediaTime`: relocate every track by the `min` across selected A/V origins — preserves real A/V skew and keeps every DTS >= 0. Origins below NEAR_ZERO_ORIGIN_THRESHOLD (1s) are left native (ordinary ~0-PTS VOD isn't perturbed). - `relocation-steps` message pipelines discover the origin (mdhd/tfdt head-peek) and stamp `timestampOffset`; text cues rebase by X-TIMESTAMP-MAP − origin. - Wired into both the default and audio-only HLS engines. See internal/design/spf/presentation-timeline-model.md. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@videojs/spf
⚠️ Beta Experimental adoption in real projects.
Overview
@videojs/spf is a lightweight, bundle-size-optimized streaming engine for Video.js 10. It provides
HLS playback with adaptive bitrate switching, WebVTT captions, and MSE support.
Community
If you need help with anything related to Video.js 10, or if you'd like to casually chat with other members: