Feature Request: Add support for Managed Media Source API
Opened this issue · 3 comments
Is there an existing issue for this?
- I have searched the existing issues
Which Mux Elements/Packages does this apply to? Select all that apply
mux-video, mux-video-react, playback-core
Description
Hi!
Last year, Apple introduced the Managed Media Source API, which is supposed to have the capabilities of MSE, without any of the drawbacks, and also works on iOS!
Could this be implemented into elements
, and added to prefer-playback
in mux-video?
Related issues/resources:
Dash-Industry-Forum/dash.js#4202
https://webkit.org/blog/14735/webkit-features-in-safari-17-1/
https://developer.apple.com/videos/play/wwdc2023/10122/
Expected Behavior
MMS support would be implemented throughout the package, and prefer-playback='mms'
would be an option in mux-video.
Hey @jakubslambor this is definitely on our radar! Since we rely on hls.js
"under the hood" for our "playback engine," which already supports ManagedMediaSource
in the latest version (https://github.com/video-dev/hls.js/blob/master/docs/API.md#prefermanagedmediasource), we're hoping this will be fairly straightforward to support once we get the bandwidth to do the relevant upgrades and tweaks. From a "devex"/"developer ergonomics" perspective, do you foresee any issues with treating this as just a variation on "mse"
for preferred playback? aka, would you foresee any issues if prefer-playback="mse"
would simply use ManagedMediaSource
in environments like iOS, or do you think that level of granularity/specificity will be fine?
That's great to hear!
From a "devex"/"developer ergonomics" perspective, do you foresee any issues with treating this as just a variation on "mse" for preferred playback?
I can't speak for everyone, but for us no, if prefer-playback="mse"
would simply use ManagedMediaSource
where available that would definitely work!
Just to keep you in the loop: Step 1 of getting support for this just occurred and should be released soon (upgrading to the latest version of hls.js). I'll keep you posted on our progress for step 2 (updating our codebase to take advantage of this).