Skip to content
WebRTC
EntityQ1089715· pop 25· linked from 1,161 articles

Also known as Web Real-Time Communication

WebRTC (Web Real-Time Communication) is a free and open-source project providing web browsers and mobile applications with real-time communication (RTC) via application programming interfaces (APIs). It allows audio and video communication and streaming to work inside web pages by allowing direct peer-to-peer communication, eliminating the need to install plugins or download native apps.

Key facts

Software.name
WebRTC
Software.logo
250px
Software.latest release version
1.0
Software.programming language
C++, JavaScript
Software.author
Justin UbertiPeter Thatcher
Software.license
BSD license

via Wikipedia infobox

Described at

WebRTC: Real-Time Communication in Browsers

This document defines a set of ECMAScript APIs in WebIDL to allow media and generic application data to be sent to and received from another browser or device implementing the appropriate set of real-time protocols. This specification is being developed in conjunction with a protocol specification developed by the IETF RTCWEB group and an API specification to get access to local media devices.

w3.org

This section describes the status of this document at the time of its publication. A list of current W3C publications and the latest revision of this technical report can be found in the W3C technical reports index at Its associated test suite has been used to build an implementation report of the API at the time of its initial publication as a Recommendation. That test suite has been updated to integrate proposed and candidates amendments identified since then, and an updated implementation report focused on the implementation status of these amendments has been used to select features with double implementation as proposed amendments, now fully incorporated in this version of the Recommendation. This document was published by the Web Real-Time Communications Working Group as a Recommendation using the Recommendation track . It includes candidate amendments , introducing substantive changes and new features since the previous Recommendation. W3C recommends the wide deployment of this specification as a standard for the Web. A W3C Recommendation is a specification that, after extensive consensus-building, is endorsed by W3C and its Members, and has commitments from Working Group members to royalty-free licensing for implementations. Future updates to this Recommendation may incorporate new features . This document was produced by a group operating under the W3C Patent Policy . W3C maintains a public list of any patent disclosures made in connection with the deliverables of the group; that page also includes instructions for disclosing a patent. An individual who has actual knowledge of a patent which the individual believes contains Essential Claim(s) must disclose the information in accordance with section 6 of the W3C Patent Policy . Connecting to remote peers using NAT-traversal technologies such as ICE, STUN, and TURN. Sending the locally-produced tracks to remote peers and receiving tracks from remote peers. Sending arbitrary data directly to remote peers. As well as sections marked as non-normative, all authoring guidelines, diagrams, examples, and notes in this specification are non-normative. Everything else in this specification is normative. This specification defines conformance criteria that apply to a single product: the user agent that implements the interfaces that it contains. Implementations that use ECMAScript to implement the APIs defined in this specification MUST implement them in a manner consistent with the ECMAScript Bindings defined in the Web IDL specification [WEBIDL ], as this specification uses that specification and terminology. The concepts queue a task and networking task source are defined in [HTML ]. The terms event, event handlers and event handler event types are defined in [HTML ]. The terms serializable objects , serialization steps, and deserialization steps are defined in [HTML ]. The terms stats object and monitored object are defined in [WEBRTC-STATS ]. When referring to exceptions, the terms throw and created are defined in [WEBIDL ]. The terms fulfilled, rejected, resolved, and settled used in the context of Promises are defined in [ECMASCRIPT-6.0 ]. The general principles for Javascript APIs apply, including the principle of run-to-completion and no-data-races as defined in [API-DESIGN-PRINCIPLES ]. That is, while a task is running, external events do not influence what's visible to the Javascript application. For example, the amount of data buffered on a data channel will increase due to "send" calls while Javascript is executing, and the decrease due to packets being sent will be visible after a task checkpoint. It is the responsibility of the user agent to make sure the set of values presented to the application is consistent - for instance that getContributingSources() (which is synchronous) returns values for all sources measured at the same time. The RTCConfiguration defines a set of parameters to configure how the peer-to-peer communication established via RT

Excerpt from a page describing this subject · 40,000 chars · not written by Vinony

Source code

This document defines a set of ECMAScript APIs in WebIDL to allow media and generic application data to be sent to and received from another browser or device implementing the appropriate set of real-time protocols. This specification is being developed in conjunction with a protocol specification developed by the IETF RTCWEB group and an API specification to get access to local media devices developed by the Media Capture Task Force. While we have taken measures to reduce the frequency of build breakages (such as freezing respec-w3c-common at version 8.7.1), the tip-of-tree of this document may contain work in progress changes and other inconsistencies, including an incomplete change log. If you want to review something more coherent, review the latest editors' draft; these are published at intervals on the order of weeks. This repo is the currently accepted REC version of the webrtc-pc specification, plus bug fixes. New features are not accepted directly into this document. For how to propose extensions and new features, study the merge guide. The content of this document is discussed at the public-webrtc mailing list. Test coverage Parts of the specification that need or have tests are marked with the data-tests attribute. If one or several tests exist for the said part in the webrtc directory of WPT, fill the attribute with the comma-separated list of their filenames. If no test exists but tests are needed, keep the attribute with no value.

Excerpt from the source-code README · 2,443 chars · not written by Vinony

Wikidata facts

Official website
w3c.github.io/webrtc-pc
Show 3 more facts
Commons category
WebRTC
described at URL
www.w3.org/TR/webrtc
source code repository URL
github.com/w3c/webrtc-pc
Sources (5)

via Wikidata · CC0

~8 min read

Article

11 sections
Contents
  • History
  • Design
  • Applications
  • Support
  • Codec support across browsers
  • Vulnerability
  • Limitations
  • See also
  • References
  • Further reading
  • External links

WebRTC (Web Real-Time Communication) is a free and open-source project providing web browsers and mobile applications with real-time communication (RTC) via application programming interfaces (APIs). It allows audio and video communication and streaming to work inside web pages by allowing direct peer-to-peer communication, eliminating the need to install plugins or download native apps.

Supported by Apple, Google, Microsoft, Mozilla, and Opera, WebRTC specifications have been published by the World Wide Web Consortium (W3C) and the Internet Engineering Task Force (IETF).

Connections

Categories