Enable Media Source Extensions (MSE) API usage from DedicatedWorker contexts to enable improved performance of buffering media for playback by an HTMLMediaElement on the main Window context. By creating a MediaSource object on a DedicatedWorker context, an application may then create an ObjectURL for it and postMessage that URL to the main thread for use in attaching to an HTMLMediaElement. The context that created the MediaSource object may then use it to buffer media.
Web authors have consistently requested that MSE be available from Worker contexts. In the absence of such mechanisms, web authors are forced to perform all operations on the MSE API on the main Window context. Especially when the main context is busy servicing other application logic, these restrictions can significantly impair the user experience. For example, even if an app uses Worker contexts to fetch media to feed to MSE, such feeding must still occur on the main context, resulting in delayed media playback start and recurring playback stalls in extreme cases when the playback reaches points in the presentation timeline for which the app has been unable to buffer enough media. The original proposal included text to support "early open" using a new MediaSourceHandle object. The subsequent discussion, simplification and experimental implementation drop "early open" and MediaSourceHandle from this initial work since those are both significant complexities that can be decoupled and incubated in follow-on features.
Specification currently under development in a Working Group
Status in Chromium
Consensus & Standardization
Intent to Prototype urlIntent to Prototype thread
Search tagsMSE, MediaSource, MediaSourceExtensions,
Last updated on 2021-11-14