1. Consistency across varied platform
Nowadays, broadcasting can be on desktop, android, STB (Set-Top-Box), PS4, iOS and more. Resulting in marking video delivery across various platform as the major challenge. Earlier, it was a overhead to support the “native” implementation of each platform. And on top of that, developers need to perform the best experience for every browser version and platform. Now things got simpler with JS. Example: Video.js they built the player functionality in JS even when Flash is responsible for the decoding.
2. Robust, updatable, Adaptive Bit Rate algorithm
By a push hard, JS API was built and minimally required layer were implemented in the browser. And now, ABR:Adaptive BitRate has become standard for premium content delivery. THe MSE API are made flexible to the most. To have inspiring experience over mobile it is advised to have a different and latest JS for mobile. To test, implement A/B test on ABR algorithm.
3. Multiple slots, multiple servers
It is interesting to know that multiple servers and CDNs can be used. Unlike now, usually from the source server, the video is loaded by the native implementations. With the help of JS and MSE, multiple connections can be established to the server. This can be done by the developer which sometimes results in improvements in the download speed.
4. Buffer management
Take complete operations of the buffer with the help of JS and MSE. You get the rights to decide on which video, when and how much video to buffer. As per your bandwidth policies, you have privilege to set the durations of the buffer. As per the user’s need and network speed, one can even dynamically change the buffer size or even based on whether a user is a premium subscriber or not. These are pure applicative decisions that a browser can’t make. With JS you can relatively easily build logic that prefetches these video segments so the user can play them instantly.
5. Use of other protocols - WebRTC, WebSockets or a combination
You just name it, and there you get it. By using JS, not only HTTP; WebSockets, WebRTC, Filesystem API, can use multiple sources at the same time.