Choosing the Right Live Streaming Solution: From Flash to MPEG‑DASH and WebRTC
This article compares various live streaming approaches—plugin-based (Flash, WMP, Silverlight) versus plugin-free HTML5 solutions like MPEG‑DASH, HLS, and WebRTC—detailing their standards, history, supporting technologies such as MSE, CMAF, and offering resources for implementation with JavaScript frameworks.
What Options Are Available? A Quick Overview
Note: The article does not contain any specific code for the technologies discussed.
Besides Flash, there are many alternatives; MPEG‑DASH appears to be a good choice.
Classification by Independence and Exhaustiveness
Live streaming solutions can be divided into plugin-based and plugin-free approaches.
Plugin-based: Common options include Flash, Windows Media Player, and Silverlight, and some developers also create custom streaming plugins.
Plugin-free: HTML5 solutions such as WebRTC, MPEG‑DASH, and HLS.
MPEG‑DASH (Dynamic Adaptive Streaming over HTTP)
MPEG‑DASH is an international standard for HTTP‑based adaptive streaming.
The MPEG‑DASH technology is led by the MPEG organization:
Work on DASH began in 2010; it became an International Standard Draft in January 2011, an International Standard in November 2011, and was published as ISO/IEC 23009‑1:2012 in April 2012.
HLS/HDS/MSS
Apple, Adobe, and Microsoft each implement their own HTTP‑based adaptive streaming solutions (HLS, HDS, MSS); HLS is relatively more widely adopted.
WebRTC (Web Real‑Time Communication)
WebRTC is an API enabling browsers to conduct real‑time voice or video communication; it was open‑sourced on June 1, 2011 and, with support from Google, Mozilla, and Opera, became a W3C Recommendation.
simpleWebRTC: https://simplewebrtc.com/
WebSocket + Canvas + AudioContext
For details, see Jerry Qu’s article “HTML5 Video Live Streaming (Part 2)”.
Audio support issues mentioned can be addressed using AudioContext, AudioBuffer, and related APIs.
Other Related Information
MSE (Media Source Extensions)
This specification extends HTMLMediaElement to allow playback of media streams generated by JavaScript, enabling adaptive streaming and time‑shifted playback for various use cases.
CMAF (Common Media Application Format)
In February 2016 at the 114th MPEG meeting in San Diego, major companies endorsed the Common Media Application Format (CMAF) proposal, which defines a segmented media delivery based on the ISO Base Media File Format (ISOBMFF) and other MPEG standards, becoming a universal MPEG media format.
Related CMAF article: “MPEG‑CMAF: Threat or Opportunity?”
Comparison article: “MPEG‑DASH vs. Apple HLS vs. Microsoft Smooth Streaming vs. Adobe HDS”.
Reference DASH client: http://dashif.org/reference/players/javascript/1.4.0/samples/dash-if-reference-player/
Available JavaScript framework: https://github.com/Dash-Industry-Forum/dash.js/
Tencent IMWeb Frontend Team
IMWeb Frontend Community gathering frontend development enthusiasts. Follow us for refined live courses by top experts, cutting‑edge technical posts, and to sharpen your frontend skills.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.