If you didn’t read the article The WebRTC Story: Part I, here is a short recap.
In 2010 all the technologies required to build WebRTC are there. But as for any new promising technologies, a lot of initiatives, ideas will confront each other driven by the browser vendors, the tech giants, newcomers and hopefully the specifications organisms…
In 3 years and a half, a large part of all actors we know today such as Zoom or Jitsi have released their products based on WebRTC or using part of this technology. This is the WebRTC startups’ race where each new company tries to attract the users with new services and interactions based on audio and video.
New events such as the WebRTC Conference and Expo are the “places to be” for these startups to exhibit and win awards and media attention.
At the same time, the IETF and the W3C are joining forces and trying to coordinate the standardization effort necessary to have a solid technology foundation.
Date | Event |
---|---|
Jan, 2010 | Google Chrome 4 releases the full support for the WebSocket, with WebSocket enabled by default |
Feb, 2010 | Google buys On2 for 124,6 M dollars (Vpx video codecs) |
May, 2010 | Chrome 5 adds the support of the HTML5 WebSocket API + Adobe Flash player integration |
Google buys Global IP Solutions for 68,2M dollars (GIPS has developed real-time voice and video processing software for IP networks and the narrowband iLBC and wideband iSAC speech codecs). Acquisition leaded by Serge Lachapelle. Lachapelle starts working on WebRTC. | |
Jun, 2010 | Apple FaceTime is introduced |
Sep, 2010 | Opus submitted to the IETF |
Oct, 2010 | Common meeting between IETF and W3C members on WebRTC to discuss the interest in implementing and standardizing infrastructure including protocols and APIs for a real time communication in Web browsers |
Nov, 2010 | First announcement of the OpenTok API |
Dec, 2010 | Viber launches video calling (5-person limit) |
Jan, 2011 | Chrome will no more support H264 for HTML5 <Video> element. Same for Firefox and Opera |
Jan, 2011 | Chrome announces the release of a plugin for Safari and IE that supports his new WebM format for the HTML5 <Video> element tag |
Feb, 2011 | Microsoft releases a Chrome plugin to support H264 again in the HTML5 <Video> element tag |
Feb, 2011 | TokBox announces that they will discontinuing the TokBox video chat and video conferencing service to focus solely on their API, OpenTok |
Mar, 2011 | First meeting at IETF to work on protocols for WebRTC |
Mar, 2011 | SIP Communicator was renamed to Jitsi |
Apr, 2011 | Chrome 11 adds the support of the HTML5 Speech Input API |
Apr, 2011 | Foundation of Plivo a cloud communication platform |
May, 2011 | Ericsson builds the first implementation of WebRTC using a modified WebKit library |
May, 2011 | Microsoft acquires Skype for 8.5 billion USD |
May, 2011 | Microsoft publishes a first draft for CU-RTC-Web at W3C |
May, 2011 | Harald Alvestrand from Google announces an open-source software package for real-time voice and video on the Web that will be integrated to Chrome |
May, 2011 | W3C and IETF approve the first charter of WebRTC and RTC Web |
Jul, 2011 | Chrome 12: First preview of WebRTC based on GIPS technology (VoiceEngine, VideoEngine, NetEQ, AEC). Chrome WebRTC stack is open sourced |
Jul, 2011 | Justin Uberti moves to a new team focused on building the next audio/video communication platform for Google and for the Web |
Sep, 2011 | Chrome 14 adds the support of the HTML5 Web Audio API |
Oct, 2011 | W3C releases the first draft of the WebRTC specifications |
Oct, 2011 | First release of Zoom by Eric Yuan |
Nov, 2011 | New release 0.7.0 of Kurento Media Server |
Jan, 2012 | Chrome 18 adds the support of WebRTC behind a flag |
Apr, 2012 | Firefox demonstrates the use of WebRTC. Not released yet |
May, 2012 | Foundation of Peer5 acquired by Microsoft in 2021 |
Jun, 2012 | Opera 12 adds support of WebRTC |
Jul, 2012 | Chrome 21 enables by default the GetUserMedia API |
Aug, 2012 | First version of the codec OPUS developed by Xiph, Octasic, Mozilla, Broadcom and Skype |
Aug, 2012 | Firefox adds the support of the Opus Audio codec |
Aug, 2012 | Microsoft presents an alternative to WebRTC called CU-RTC-Web coming from Skype |
Sep, 2012 | Chrome 22 adds the support of TLS 1.1 |
Sep, 2012 | IETF validates the OPUS codec |
Sep, 2012 | Radvision includes a scalable video coding in their Scopia Elite 5000 series |
Oct, 2012 | Polycom offered a royalty-free scalable license for an interoperable implementation of H264 Scalable Video Coding (SVC) software technology |
Oct, 2012 | Ericsson launched a new mobile browser with WebRTC support: Bower. Bower supports IOS and Android and use G711 and H264 |
Oct, 2012 | Foundation of Peer5 (acquired by Microsoft in 2021) |
Nov, 2012 | Chrome 23 formalize the support for WebRTC |
Nov, 2012 | First Conference and Expo in San Francisco with a lot of discussion around “WebRTC obsoleting SIP” and “Mapping SIP to WebRTC”. |
Jan, 2013 | Firefox 18 adds the support for a preliminary version of WebRTC |
Feb, 2013 | Chrome 25 adds the support for the audio codec Opus and the video codec VP9 |
Feb, 2013 | Chrome 25 adds the supports for the Web Speech API |
Feb, 2013 | “Hello Firefox nightly, this is Chrome beta calling”: First interop WebRTC using VP8/Opus |
Mar, 2013 | Ericsson, Mozilla and AT&T demonstrate WebRTC solution at Mobile Congress 2013 by enabling the Mozilla Firefox browser to sync with a user’s existing phone number and provide calling services without any plugins to download. |
Google added SVC to Hangouts | |
Jun, 2013 | Zoom introduced SVC in its product (25 persons per conference) |
Jun, 2013 | Lync (Microsoft) used an SFU architecture to leverage the conferencing |
Jun, 2013 | Firefox 22 enables WebRTC by default |
Jun, 2013 | OpenTok wins the best WebRTC tool award for its OpenTok platform at WebRTC Conference & Expo |
Sep, 2013 | Jitsi (open source multipoint videoconferencing project started by Emil Ivov) offered its first VideoBridge SFU in 2013 |
Microsoft is still isolated with its own implementation of WebRTC (ORTC).
For browsers vendors and VoIP providers, a battle is engaged to decide on the mandatory codecs to support on WebRTC end points.
At the end, this is a status-quo: H264 and VP8 are mandatory as the video codecs and G711 and Opus for the audio codecs. Browsers are free to propose additional ones.
Apple is still invisible… The implementation suffers from the lack of interoperability between browsers: Prefixed API everywhere…
Date | Event |
---|---|
Jul, 2013 | Chrome 28 adds the support for TURN TCP |
Aug, 2013 | Chrome 29 adds the final support for VP9 and the support of encoding the video in 1080p |
Aug, 2013 | Chrome 29 adds the support for TLS 1.2 |
Aug, 2013 | Chrome for android adds the support for WebRTC and the Web Audio API |
Firefox adds the support for the MediaRecorder API (only audio) | |
Aug, 2013 | First version of Appear.in |
Sep, 2013 | Varun Singh founded CallStats.io |
Sep, 2013 | Firefox 24 on Android/Desktop enables the WebRTC by default |
Sep, 2013 | Firefox shows how to share files using RTCDataChannel |
Sep, 2013 | First release of Amazon Mayday |
Sep, 2013 | New API emerges: MediaStream API: MediaStream.getFrame(): ImageData, MediaStream.takePhoto(): Blob |
Oct, 2013 | Proposal VP8 as RTCWeb mandatory codec to implement |
Oct, 2013 | Chrome 31 adds the support for SCTP DataChannels (without flag) |
Oct, 2013 | Chrome 31 adds DTLS/SRTP enabled by default |
Nov, 2013 | Cisco open-sourced its H264 codec implementation and announced the release of a royalty-free plugin. Mozilla announces to add this plugin to Firefox. |
Nov, 2013 | Chrome adds the Output device enumeration to GetUserMedia API: getSources() & getMediaDevices() |
Nov, 2013 | WebRTC Conference Expo III in Santa Clara |
Nov, 2013 | Bernard Aboba (Microsoft) demonstrated an early prototype built on the ORTC API at the IIT RTC Expo in Chicago |
Nov, 2013 | First version of Talky.io |
Dec, 2013 | Screen Sharing only accessible using a Chrome Extension (for security reason) |
Dec, 2013 | Support for the <Video`> element tag resize event |
Dec, 2013 | Opus 1.1 released by Xiph |
Jan, 2014 | HEVC (codec) for Twitter images |
Feb, 2014 | First release of Janus, an open-source WebRTC gateway created by Lorenzo Miniero |
Mar, 2014 | First video call between QT application and a Web application |
Mar, 2014 | Opera for Android officially supported WebRTC |
May, 2014 | Oleg Moskalenko announced the first release of the ‘spin-off project Coturn which is multi-tenant (several realms) compared to the previous project called rfc5766-turn-server |
Jun, 2014 | First version of Google Hangouts with WebRTC technology |
Jun, 2014 | Firefox 30 adds the support for VP9 decoding |
Jun, 2014 | WebRTC Conference Expo IV in Atlanta |
Jun, 2014 | First edition of the Kranky Geek event at San Francisco |
Oct, 2014 | Ericsson releases Bower (the only WebRTC existing browser at this time on IOS) and OpenWebRTC a flexible cross-platform WebRTC client framework as open source. |
Nov, 2014 | ORTCWeb Development in Internet Explorer (Microsoft) |
Nov, 2014 | Firefox 33 adds the support for H264 (OpenH264) for WebRTC |
Nov, 2014 | WebRTC Conference Expo V in San Jose |
Dec, 2014 | VP8 and H264 mandated for browsers |
Dec, 2014 | Chrome adds a first experimental support for VP9 in Canary (behind a flag) and a support for G722 |
Dec, 2014 | Nexus 5, 6, 9 support an hardware encoding and decoding using VP8 |
Dec, 2014 | Skype version 7 introduces support for H264 for both P2P and group calls |
Dec, 2014 | Consensus for adding ORTC API to WebRTC |
Jan, 2015 | Chromes 41 adds the support of the Opus FEC enabled by default |
Jan, 2015 | Timothy Terriberry of Mozilla talked at 2015 Linux.Conf. A conference about his work on the Daala video codec via Xiph.Org. |
Feb, 2015 | Dynamically adding text tracks to HTML5 video |
Feb, 2015 | WebRTC 1.0 becomes a W3C Working Draft |
Feb, 2015 | Screen Capture API becomes a W3C Working Draft |
Feb, 2015 | Firefox 35 adds the support for the stable version of Hello (integrated WebRTC application |
Feb, 2015 | Foundation of TestRTC by Tsahi Levent-levi (co-founder) to help vendors efficiently test, launch, and maintain their services based on WebRTC. Acquired by Spearline in 2022 |
Feb, 2015 | WebRTC leaks local IP addresses |
Mar, 2015 | Ericsson and some others creates an open initiative for implementing WebRTC in Webkit (Safari) |
May, 2015 | WebRTC Conference Expo VI in Miami |
Jun, 2015 | Firefox 42 supports IPV6 by default |
Jun, 2015 | First public version of Adapter.js v0.1 |
Sep, 2015 | Firefox 44 removes prefixes for the main WebRTC Apis (moz) |
Sep, 2015 | Foundation of CosMo Software by Dr Alex Gouillard |
Sep, 2015 | Microsoft Edge ships ORTC API preview with G711, G722, Opus and Silk support for audio and H264UC (skype) for Video. Stun/Turn and Ice was supported |
Oct, 2015 | Chromes 47 only allows getUserMedia requests from Secure Origins. Use of Boring SSL. |
Oct, 2015 | First partial support of Microsoft Edge using Adapter.js |
Dec, 2015 | Chrome 48 adds official support of VP9 and a first version of the MediaStream Recording API |
Dec, 2015 | Firefox 46 adds support for Simulcast |
Dec, 2015 | First tests of interoperability between Chrome and WebKitGTK+ |
Feb, 2016 | Chrome 49 adds official support of the MediaStream Recording API as well as the W3C Media Output Devices API |
Feb, 2016 | First version of HouseParty (social networking service that enabled group video chatting through mobile and desktop apps |
Mar, 2016 | Chrome 50 adds a first implementation of the H 264 video codec behind a flag |
Jul, 2016 | Skype introduces an early alpha version of a new Skype for Linux client, built with WebRTC technology |
Jul, 2016 | Chrome 52 adds official support of H264 (software encoder) |
Aug, 2016 | Firefox 51 adds support of VP9 |
Aug, 2016 | Google launches Duo based on WebRTC |
Nov, 2016 | OpenWebRTC initiative announces the official support of WebRTC in WebKit GTK+ |
Dec, 2016 | Chrome 56 on Windows uses hardware encoding/decoding of H264 when the device hardware supports it |
As for browsers at the origin with JavaScript and HTML, WebRTC developers want API and behavior that are homogenous against browsers and end users want to be free to use the browser they want to access the service.
Hopefully, browsers vendors have listened and little by little, the specifications are implemented in the same manner in all browsers… and interoperability seems to become day after day possible: WebRTC finally landed in Safari and then in all compatible browsers in iOS.
More and more WebRTC servers are available (SFU/MCU) as well as different stacks implementations: WebRTC goes beyond the browsers thanks to the different technology bricks used.
And finally, the Covid’19 pandemic has demonstrated that WebRTC is a fantastic technology that can gather people and transform the way they work.
Date | Event |
---|---|
Feb, 2017 | Chrome 57 on Mac uses hardware encoding/decoding of H264 when the device hardware supports it as well as encoding by default on Chrome for Android |
Feb, 2017 | First release of Medooze Media Server for Node by Sergio Garcia Murillo |
Feb, 2017 | Release 0.5 of MediaSoup by Iñaki Baz Castillo |
Mar, 2017 | First release of Google Meet |
Apr, 2017 | Chrome 58 enables the use of proxies that require explicit credentials. |
Apr, 2017 | Alcatel-Lucent unveiled Rainbow, its WebRTC cloud-based relationship management platform that connects business users, business contacts and systems |
Jul, 2017 | Safari 11 and IOS 11 finally support WebRTC |
Sep, 2017 | Google launches prebuilt libraries for both Android and IOS |
Nov, 2017 | WebRTC 1.0 is announced feature complete by W3C |
Dec, 2017 | Google delivers lot of changes to be compliant to the official WebRTC specifications regarding the API getUserMedia and the RTP Media API: addTrack(), removeTrack(), etc… |
May, 2018 | Chrome announces his plan to move from Plan B (his current implementation of the SDP) to unified plan which is compliant with Firefox. |
Jun, 2018 | Chrome 68 adds the support behind a flag for the Unified plan |
Jun, 2018 | First discussions on WebRTC NV (next version) are engaged |
Jul, 2018 | Polycom was acquired by Plantronics and the combined entity is now known as Poly |
Jul, 2018 | First public release of Pion-WebRTC by Sean DuBois |
Oct, 2018 | Chrome 70 adds the first implementations of the getDisplayMedia() API (behind a flag) to offer the screen sharing without using an extension. |
Dec, 2018 | Chrome 72 enables Unified plan by default and the Screen Capture API is now officially released |
Mar, 2019 | Chrome 74 adds official support of simulcast by using addTransceiver API (in replacement of SDP munging). Chrome reworks the ICEConnectionState and RTCIceCandidate to be spec-compliant. |
Apr, 2019 | Firefox contributes to the perfect negotiation by using the negotiationneeded event and the rollback option. These mechanisms abstract negotiation entirely to avoid races or signaling collisions). too. |
May, 2019 | Chrome 75 adds support of RTCIceTransport and RTCDtlsTransport APIs to give information about the sate of the underlying ICE transport and DTLS transport. |
Jul, 2019 | Chrome 76 continues to standardize the getStats API metrics and implements the setCodecPreferences. |
Sep, 2019 | First edition of the JanusCon, the conference dedicated to Janus at Naples |
Dec, 2019 | Justin Uberti announces to take the lead of the Stadia engineering team |
Jan, 2020 | Chrome 80 announces the deprecating binary mobile libraries and manages the rollback parameter for perfect negotiation. |
Feb, 2020 | Chrome 81 does not expose ID of devices when permissions were not granted and sent the onClosing event on Datachannel. |
Mar, 2020 | Due to Covid-19 situation, Chrome 82 is cancelled |
Mar, 2020 | Introduction of BigBlueButton 2.2, a full rewrite of the client and server to support HTML5 |
Apr, 2020 | Chrome 83 ships an experimental implementation of the insertable streams to allow an application to apply custom processing to the data. It aims to support adding end-to-end encryption hwn using an intermediate server. New attribute degradationPreference to control how quality degrades when constraints such as bandwith or CPU prevent encoding at the configured frame rate and resolution. |
Apr, 2020 | First release of Clubhouse which as originally designed for podcasts |
May, 2020 | Dolby launched its new platform Dolby.io for helping developers the improve the quality of the media and communications within their applications |
Jun, 2020 | Firefox 78 is the first ESR release that supports Service workers and the Push API. |
Jul, 2020 | Attempt to expose devices in enumerateDevices API only if a previous getUserMedia call has successfully completed has been postponed to avoid major breaks in a lot of use cases |
Jul, 2020 | Firefox introduced the remoteTimestamp on statistics remote-outbound-rtp. This allows to know the timestamp where the stats have been collected or generated. Not supported by other browsers |
Chrome 86 finishes the migration to new statistics compliant to the specifications (still missing remote-outbound-rtp) | |
Oct, 2020 | Chrome 87 is finally compliant with the perfect negotiation scheme by fixing the last issues on the onnegotiationneeded . |
Oct, 2020 | Firefox 82 enables the Media Session APi by default |
Oct, 2020 | 100ms has been founded by Kshitij Gupta in San Francisco |
WebRTC is now available in all browsers on iOS (WKWebView based browsers) | |
Jan, 2021 | The W3C and IETF announced that WebRTC is now an official standard |
Jan, 2021 | Firefox 85 deactivates Flash completely from the browser with no means to turn it back on |
Feb, 2021 | First public service announcement against Plan B SPD semantics in Chrome 89 |
Clubhouse hires Justin Uberti | |
Jul, 2021 | Chrome 92 makes an effort to document lot of C/C++ components into the LibWebRTC stack. Android API now exposes API to implement the perfect negotiation algorithm |
Aug, 2021 | Chrome 93 disables the camera capture 15s after a screen lock occurs for privacy reason |
Sep, 2021 | Google announces that AV1X payload name will be changed to AV1 in Chrome 96 |
Sep, 2021 | Chrome 94 releases the MediaTrack Insertable Streams API (stable) for accessing and modifying the audio/video streams. |
Sep, 2021 | Chrome announces a behavior change of getUserMedia API: The API will wait until the document calling it has focus. Same behavior has been implemented in Firefox whereas the specifications asks for rejecting the Promise with an InvalidStateError |
Sep, 2021 | Safari Technology preview 133 introduces major updates in the WebRTC stack to conform to the WebRTC specs. Same for the next version 134 and 135 |
Sep, 2021 | Epic Games announces the decision to discontinue Houseparty |
Oct, 2021 | Firefox 93 supports the AV1F image file format |
Nov, 2021 | Chrome 96 remove the support of Plan B. Still possible to enable it using time limited reverse origin trial. |
Jan, 2022 | Firefox 96 introduces a major update of the Libwebrtc stack as well as a deprecation of non standard statistics fields |
Feb, 2022 | Dolby acquired Millicast (which was founded in 2018) |
Mar, 2022 | Meetecho releases Janus v1.0.0 with the support of MultiStream in Peer Connections (big refactoring) |
Mar, 2022 | Announcement of the cross-browser initiative Interop 2022 to find and address the most important interoperability pain points on the web platform |
And here we are… Even if a lot of things have been done, we are still in the early days of WebRTC with a lot of new areas and challenges to address!
The Pandemic demonstrated that the technology is solid and when correctly used, could benefit to every one in the world by bringing people together.
Now it’s up to us to write the next chapter…