Christian PillsburyandClaude Opus 4.8 05a0a6452d wip(spf): non-zero-PTS relocation as establishStartMediaTime reactor + relocation steps
Rebuild relocation from the config-bundle (createRelocation + self-discriminating
origin-discoverer) into a DOM-free per-source reactor plus DOM config-pipeline
steps, per the presentation-timeline design + review.

- behaviors/establish-start-media-time.ts (new, DOM-free): the reactor — 3 states
  (inactive clears the transient slot per source / monitoring runs the injected
  deriveStartMediaTime seam -> writes Track.startMediaTime / established disables it).
  Owns mediaContainerData on state; selection optional/defensive; never touches pipelines.
- behaviors/dom/relocation-steps.ts (new): relocationMessagePipelines — a plain
  config step array. discover writes state.mediaContainerData; stamp reads the
  track's own discovered origin (Tier 1) -> timestampOffset. Steps read composition
  state from call-time deps; coordinate with the reactor only through the slot.
- segment-loader: StepDeps widened with the composition {state,context,config}
  (opaque conduit; the loader never reads them).
- primitives/head-peek.ts (new): generic eager head-peek (replaces origin-discoverer).
- media/types: Track.startMediaTime + MediaContainerData.
- setup-buffer-actors: relocation pipelines from config; threads composition deps.
- engine: composes the reactor + bakes relocationMessagePipelines + mediaContainerData
  + deriveStartMediaTime config, comment-marked for easy removal.
- Deleted relocation.ts, origin-discoverer.ts. Doc + backlog updated.

Deferred (backlog): per-type keying; non-0th-segment origin (#4 — non-zero starts
currently mis-relocate); tier-agnostic apply; text-cue relocation; Tier 2 min;
audio-only wiring.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-09 14:05:36 -07:00
2026-05-19 12:48:40 -07:00
2026-04-15 15:28:38 -07:00

Video.js v10

package-badge discord-badge pnpm

Modern, modular, and composable media player framework for Web and React.

🚧 Beta - close to stable. Experimental adoption in real projects. 🚧

Video.js v10 is close to stable. Try it out in real projects and share your feedback 🙏.

Timeline

  • Technical Preview (Complete): Initial showcase for Demuxed.
  • Alpha (Complete): See milestone
  • Beta (Complete): See milestone
  • GA (Mid 2026): See milestone ← WIP
  • Video.js (End of 2026): Video.js core/contrib parity and supported plugins migrated.

Documentation

If you'd like to get started and learn more, you can find our documentation on our website:

Community

If you need help with anything related to Video.js 10, or if you'd like to casually chat with other members:

Contributing

We'd love for you to join our community channels above and give us feedback! Feedback on any of the following would help us:

  • Player skin designs
  • Component structures and APIs
  • Package structure and exports
  • Repo, workspace, contributor guides

Please see our contributing guide for getting set up locally and making code or docs changes.

Code of Conduct

Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.

S
Description
[Beta] Video.js v10 - open source media player framework for Web and React.
Readme
57 MiB
Languages
TypeScript 81.9%
MDX 10.9%
CSS 2.6%
Astro 2.5%
JavaScript 1.2%
Other 0.8%