DocumentationAbout MeContact

The WebRTC Story - Part II

By Olivier Anguenot
Published in others
September 26, 2022
2 min read

Table Of Contents

1
2010-2013 - IETF and W3C join their forces
2
2013-2016 - The codecs and APIs war
3
2017-Today - The road to homogeneity
The WebRTC Story - Part II

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…

2010-2013 - IETF and W3C join their forces

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.

DateEvent
Jan, 2010Google Chrome 4 releases the full support for the WebSocket, with WebSocket enabled by default
Feb, 2010Google buys On2 for 124,6 M dollars (Vpx video codecs)
May, 2010Chrome 5 adds the support of the HTML5 WebSocket API + Adobe Flash player integration
May, 2010Google 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, 2010Apple FaceTime is introduced
Sep, 2010Opus submitted to the IETF
Oct, 2010Common 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, 2010First announcement of the OpenTok API
Dec, 2010Viber launches video calling (5-person limit)
Jan, 2011Chrome will no more support H264 for HTML5 <Video> element. Same for Firefox and Opera
Jan, 2011Chrome announces the release of a plugin for Safari and IE that supports his new WebM format for the HTML5 <Video> element tag
Feb, 2011Microsoft releases a Chrome plugin to support H264 again in the HTML5 <Video> element tag
Feb, 2011TokBox announces that they will discontinuing the TokBox video chat and video conferencing service to focus solely on their API, OpenTok
Mar, 2011First meeting at IETF to work on protocols for WebRTC
Mar, 2011SIP Communicator was renamed to Jitsi
Apr, 2011Chrome 11 adds the support of the HTML5 Speech Input API
Apr, 2011Foundation of Plivo a cloud communication platform
May, 2011Ericsson builds the first implementation of WebRTC using a modified WebKit library
May, 2011Microsoft acquires Skype for 8.5 billion USD
May, 2011Microsoft publishes a first draft for CU-RTC-Web at W3C
May, 2011Harald 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, 2011W3C and IETF approve the first charter of WebRTC and RTC Web
Jul, 2011Chrome 12: First preview of WebRTC based on GIPS technology (VoiceEngine, VideoEngine, NetEQ, AEC). Chrome WebRTC stack is open sourced
Jul, 2011Justin Uberti moves to a new team focused on building the next audio/video communication platform for Google and for the Web
Sep, 2011Chrome 14 adds the support of the HTML5 Web Audio API
Oct, 2011W3C releases the first draft of the WebRTC specifications
Oct, 2011First release of Zoom by Eric Yuan
Nov, 2011New release 0.7.0 of Kurento Media Server
Jan, 2012Chrome 18 adds the support of WebRTC behind a flag
Apr, 2012Firefox demonstrates the use of WebRTC. Not released yet
May, 2012Foundation of Peer5 acquired by Microsoft in 2021
Jun, 2012Opera 12 adds support of WebRTC
Jul, 2012Chrome 21 enables by default the GetUserMedia API
Aug, 2012First version of the codec OPUS developed by Xiph, Octasic, Mozilla, Broadcom and Skype
Aug, 2012Firefox adds the support of the Opus Audio codec
Aug, 2012Microsoft presents an alternative to WebRTC called CU-RTC-Web coming from Skype
Sep, 2012Chrome 22 adds the support of TLS 1.1
Sep, 2012IETF validates the OPUS codec
Sep, 2012Radvision includes a scalable video coding in their Scopia Elite 5000 series
Oct, 2012Polycom offered a royalty-free scalable license for an interoperable implementation of H264 Scalable Video Coding (SVC) software technology
Oct, 2012Ericsson launched a new mobile browser with WebRTC support: Bower. Bower supports IOS and Android and use G711 and H264
Oct, 2012Foundation of Peer5 (acquired by Microsoft in 2021)
Nov, 2012Chrome 23 formalize the support for WebRTC
Nov, 2012First Conference and Expo in San Francisco with a lot of discussion around “WebRTC obsoleting SIP” and “Mapping SIP to WebRTC”.
Jan, 2013Firefox 18 adds the support for a preliminary version of WebRTC
Feb, 2013Chrome 25 adds the support for the audio codec Opus and the video codec VP9
Feb, 2013Chrome 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, 2013Ericsson, 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.
May, 2013Google added SVC to Hangouts
Jun, 2013Zoom introduced SVC in its product (25 persons per conference)
Jun, 2013Lync (Microsoft) used an SFU architecture to leverage the conferencing
Jun, 2013Firefox 22 enables WebRTC by default
Jun, 2013OpenTok wins the best WebRTC tool award for its OpenTok platform at WebRTC Conference & Expo
Sep, 2013Jitsi (open source multipoint videoconferencing project started by Emil Ivov) offered its first VideoBridge SFU in 2013

Image: W3C and IETF
Image: W3C and IETF


2013-2016 - The codecs and APIs war

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…

DateEvent
Jul, 2013Chrome 28 adds the support for TURN TCP
Aug, 2013Chrome 29 adds the final support for VP9 and the support of encoding the video in 1080p
Aug, 2013Chrome 29 adds the support for TLS 1.2
Aug, 2013Chrome for android adds the support for WebRTC and the Web Audio API
Aug, 2013Firefox adds the support for the MediaRecorder API (only audio)
Aug, 2013First version of Appear.in
Sep, 2013Varun Singh founded CallStats.io
Sep, 2013Firefox 24 on Android/Desktop enables the WebRTC by default
Sep, 2013Firefox shows how to share files using RTCDataChannel
Sep, 2013First release of Amazon Mayday
Sep, 2013New API emerges: MediaStream API: MediaStream.getFrame(): ImageData, MediaStream.takePhoto(): Blob
Oct, 2013Proposal VP8 as RTCWeb mandatory codec to implement
Oct, 2013Chrome 31 adds the support for SCTP DataChannels (without flag)
Oct, 2013Chrome 31 adds DTLS/SRTP enabled by default
Nov, 2013Cisco open-sourced its H264 codec implementation and announced the release of a royalty-free plugin. Mozilla announces to add this plugin to Firefox.
Nov, 2013Chrome adds the Output device enumeration to GetUserMedia API: getSources() & getMediaDevices()
Nov, 2013WebRTC Conference Expo III in Santa Clara
Nov, 2013Bernard Aboba (Microsoft) demonstrated an early prototype built on the ORTC API at the IIT RTC Expo in Chicago
Nov, 2013First version of Talky.io
Dec, 2013Screen Sharing only accessible using a Chrome Extension (for security reason)
Dec, 2013Support for the <Video`> element tag resize event
Dec, 2013Opus 1.1 released by Xiph
Jan, 2014HEVC (codec) for Twitter images
Feb, 2014First release of Janus, an open-source WebRTC gateway created by Lorenzo Miniero
Mar, 2014First video call between QT application and a Web application
Mar, 2014Opera for Android officially supported WebRTC
May, 2014Oleg 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, 2014First version of Google Hangouts with WebRTC technology
Jun, 2014Firefox 30 adds the support for VP9 decoding
Jun, 2014WebRTC Conference Expo IV in Atlanta
Jun, 2014First edition of the Kranky Geek event at San Francisco
Oct, 2014Ericsson 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, 2014ORTCWeb Development in Internet Explorer (Microsoft)
Nov, 2014Firefox 33 adds the support for H264 (OpenH264) for WebRTC
Nov, 2014WebRTC Conference Expo V in San Jose
Dec, 2014VP8 and H264 mandated for browsers
Dec, 2014Chrome adds a first experimental support for VP9 in Canary (behind a flag) and a support for G722
Dec, 2014Nexus 5, 6, 9 support an hardware encoding and decoding using VP8
Dec, 2014Skype version 7 introduces support for H264 for both P2P and group calls
Dec, 2014Consensus for adding ORTC API to WebRTC
Jan, 2015Chromes 41 adds the support of the Opus FEC enabled by default
Jan, 2015Timothy Terriberry of Mozilla talked at 2015 Linux.Conf. A conference about his work on the Daala video codec via Xiph.Org.
Feb, 2015Dynamically adding text tracks to HTML5 video
Feb, 2015WebRTC 1.0 becomes a W3C Working Draft
Feb, 2015Screen Capture API becomes a W3C Working Draft
Feb, 2015Firefox 35 adds the support for the stable version of Hello (integrated WebRTC application
Feb, 2015Foundation 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, 2015WebRTC leaks local IP addresses
Mar, 2015Ericsson and some others creates an open initiative for implementing WebRTC in Webkit (Safari)
May, 2015WebRTC Conference Expo VI in Miami
Jun, 2015Firefox 42 supports IPV6 by default
Jun, 2015First public version of Adapter.js v0.1
Sep, 2015Firefox 44 removes prefixes for the main WebRTC Apis (moz)
Sep, 2015Foundation of CosMo Software by Dr Alex Gouillard
Sep, 2015Microsoft 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, 2015Chromes 47 only allows getUserMedia requests from Secure Origins. Use of Boring SSL.
Oct, 2015First partial support of Microsoft Edge using Adapter.js
Dec, 2015Chrome 48 adds official support of VP9 and a first version of the MediaStream Recording API
Dec, 2015Firefox 46 adds support for Simulcast
Dec, 2015First tests of interoperability between Chrome and WebKitGTK+
Feb, 2016Chrome 49 adds official support of the MediaStream Recording API as well as the W3C Media Output Devices API
Feb, 2016First version of HouseParty (social networking service that enabled group video chatting through mobile and desktop apps
Mar, 2016Chrome 50 adds a first implementation of the H 264 video codec behind a flag
Jul, 2016Skype introduces an early alpha version of a new Skype for Linux client, built with WebRTC technology
Jul, 2016Chrome 52 adds official support of H264 (software encoder)
Aug, 2016Firefox 51 adds support of VP9
Aug, 2016Google launches Duo based on WebRTC
Nov, 2016OpenWebRTC initiative announces the official support of WebRTC in WebKit GTK+
Dec, 2016Chrome 56 on Windows uses hardware encoding/decoding of H264 when the device hardware supports it

Image: Google Duo
Image: Google Duo


2017-Today - The road to homogeneity

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.

DateEvent
Feb, 2017Chrome 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, 2017First release of Medooze Media Server for Node by Sergio Garcia Murillo
Feb, 2017Release 0.5 of MediaSoup by Iñaki Baz Castillo
Mar, 2017First release of Google Meet
Apr, 2017Chrome 58 enables the use of proxies that require explicit credentials.
Apr, 2017Alcatel-Lucent unveiled Rainbow, its WebRTC cloud-based relationship management platform that connects business users, business contacts and systems
Jul, 2017Safari 11 and IOS 11 finally support WebRTC
Sep, 2017Google launches prebuilt libraries for both Android and IOS
Nov, 2017WebRTC 1.0 is announced feature complete by W3C
Dec, 2017Google 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, 2018Chrome announces his plan to move from Plan B (his current implementation of the SDP) to unified plan which is compliant with Firefox.
Jun, 2018Chrome 68 adds the support behind a flag for the Unified plan
Jun, 2018First discussions on WebRTC NV (next version) are engaged
Jul, 2018Polycom was acquired by Plantronics and the combined entity is now known as Poly
Jul, 2018First public release of Pion-WebRTC by Sean DuBois
Oct, 2018Chrome 70 adds the first implementations of the getDisplayMedia() API (behind a flag) to offer the screen sharing without using an extension.
Dec, 2018Chrome 72 enables Unified plan by default and the Screen Capture API is now officially released
Mar, 2019Chrome 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, 2019Firefox 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, 2019Chrome 75 adds support of RTCIceTransport and RTCDtlsTransport APIs to give information about the sate of the underlying ICE transport and DTLS transport.
Jul, 2019Chrome 76 continues to standardize the getStats API metrics and implements the setCodecPreferences.
Sep, 2019First edition of the JanusCon, the conference dedicated to Janus at Naples
Dec, 2019Justin Uberti announces to take the lead of the Stadia engineering team
Jan, 2020Chrome 80 announces the deprecating binary mobile libraries and manages the rollback parameter for perfect negotiation.
Feb, 2020Chrome 81 does not expose ID of devices when permissions were not granted and sent the onClosing event on Datachannel.
Mar, 2020Due to Covid-19 situation, Chrome 82 is cancelled
Mar, 2020Introduction of BigBlueButton 2.2, a full rewrite of the client and server to support HTML5
Apr, 2020Chrome 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, 2020First release of Clubhouse which as originally designed for podcasts
May, 2020Dolby launched its new platform Dolby.io for helping developers the improve the quality of the media and communications within their applications
Jun, 2020Firefox 78 is the first ESR release that supports Service workers and the Push API.
Jul, 2020Attempt 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, 2020Firefox 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
Sep, 2020Chrome 86 finishes the migration to new statistics compliant to the specifications (still missing remote-outbound-rtp)
Oct, 2020Chrome 87 is finally compliant with the perfect negotiation scheme by fixing the last issues on the onnegotiationneeded.
Oct, 2020Firefox 82 enables the Media Session APi by default
Oct, 2020100ms has been founded by Kshitij Gupta in San Francisco
Nov, 2020WebRTC is now available in all browsers on iOS (WKWebView based browsers)
Jan, 2021The W3C and IETF announced that WebRTC is now an official standard
Jan, 2021Firefox 85 deactivates Flash completely from the browser with no means to turn it back on
Feb, 2021First public service announcement against Plan B SPD semantics in Chrome 89
May, 2021Clubhouse hires Justin Uberti
Jul, 2021Chrome 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, 2021Chrome 93 disables the camera capture 15s after a screen lock occurs for privacy reason
Sep, 2021Google announces that AV1X payload name will be changed to AV1 in Chrome 96
Sep, 2021Chrome 94 releases the MediaTrack Insertable Streams API (stable) for accessing and modifying the audio/video streams.
Sep, 2021Chrome 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, 2021Safari 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, 2021Epic Games announces the decision to discontinue Houseparty
Oct, 2021Firefox 93 supports the AV1F image file format
Nov, 2021Chrome 96 remove the support of Plan B. Still possible to enable it using time limited reverse origin trial.
Jan, 2022Firefox 96 introduces a major update of the Libwebrtc stack as well as a deprecation of non standard statistics fields
Feb, 2022Dolby acquired Millicast (which was founded in 2018)
Mar, 2022Meetecho releases Janus v1.0.0 with the support of MultiStream in Peer Connections (big refactoring)
Mar, 2022Announcement of the cross-browser initiative Interop 2022 to find and address the most important interoperability pain points on the web platform

Image: Zoom call
Image: Zoom call


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…


Tags

#webrtc

Share


Previous Article
The WebRTC Story - Part I
Olivier Anguenot

Olivier Anguenot

Your WebRTC copilot

Topics

api
dev
others

Related Posts

The WebRTC Story - Part I
September 25, 2022
1 min
© 2024, All Rights Reserved.
Powered By

Quick Links

HomeAbout MeContact Me

Social Media