Firefox's implementation of Media Source Extensions took a step forward recently. With last week's landing of the patch sets from bug 881512 and bug 1000608, along with a handful of minor follow-ups, videos are now playable in YouTube's HTML5 DASH player. The functionality in these patches extends Firefox's general Media Source Extensions implementation for all users, but the current focus for this iteration of development has been playback with YouTube's player.
It's now at a point that wider testing and technical feedback would be useful, so if you're feeling brave and need a good excuse to watch cats on treadmills and file bugs, please try it out. For now, MSE is hidden behind a preference, so first you'll need to set the preference to true:
Next, make sure YouTube detects MSE support by visiting YouTube's HTML5 feature test page, which should look like this:
Now your Firefox is ready to test MSE. To verify that you're using MSE on a YouTube video, right-click on the video area and select "Stats for nerds" from the pop-up menu, which will indicate "DASH: yes" if MSE being used with the current video. Note any unusual behaviour that you haven't seen with the HTML5 player, bearing in mind the caveats listed below.
Not all videos have DASH versions, so here's a video I've been testing:
Before filing new bugs, please be aware of the following known bugs and limitations:
Seeking in adaptive videos is limited to buffered ranges. Support for seeking in unbuffered ranges is happening in bug 1002297,
Quality isn't automatically adapted to the player size or available bandwidth, and MSE videos always use the lowest quality available. You can seamlessly switch resolutions manually using the video settings button (with the gear icon). Automatic quality adaptation will start working when bug 238041 is fixed. The same bug also causes the bandwidth estimation and graph in "Stats for nerds" to read low.
Firefox's MSE support (via MediaSource
isTypeSupported(DOMString type)) is intentionally restricted to WebM. MP4 will be added in the near future.
Not all content on YouTube is available with adaptive streaming and/or in WebM/VP9 format yet.
Once the first two of the issues listed above have been fixed, along with any other blocking bugs that may be found during testing, MSE will be enabled by default (for WebM only) in Nightly builds for further testing. That change is tracked by bug 1000686.