WebRTC Project Research

Source: Internet
Author: User

??WebRTC

directory (?) [+]

1. Official website:

Http://sites.google.com.sixxs.org/site/webrtc/home

Http://sites.google.com.sixxs.org/site/webrtc/reference/webrtc-components

Http://sites.google.com.sixxs.org/site/webrtc/reference

Http://code.google.com.sixxs.org/p/webrtc/source/checkout

http://sites.google.com.sixxs.org/site/webrtc/reference/getting-started


+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++

"Introductory"

WEBRTC should be based on the Gips technology that Google acquired last year , in fact gips the Android, Windows Mobile and iOS versions of Videoengine prior to the acquisition, enabling real-time chat standards across devices.

The future of Chrome, Firefox and Opera will support WEBRTC

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++

Http://www.infoq.com.sixxs.org/cn/news/2011/06/google-webrtc
Google Open source real-time communication project WEBRTC

Author ben Linders released on June 3, 2011

Field
Architecture & Design,
Operations & Infrastructure,
Language & Development,
Enterprise Architecture
Theme
. NET,
Web 2.0,
Open source code,
Platform,
Internet,
tools that
RIA,
Java,
Ruby,
JavaScript
Label
Opera,
Technology Trends,
Open Source project release,
Publish,
Google,
. NET Framework 3.5,
Open source software,
Firefox,
Chrome
Share|

Recently, Google officially opened the WEBRTC real-time communication project, hoping that browser vendors can build the technology in the browser, so that Web application developers can use HTML tags and JavaScript API to achieve web audio, video communication capabilities.

WebRTC (Web Real time communication) is not Google's original technology. In 2010, Google acquired the VoIP software developer Global IP Solutions company for about $68.2 million, and thus gained the company's WEBRTC technology. Today, the Internet's audio and video communication Service technology is generally private technology, such as Skype, need to install plug-ins or desktop clients to achieve communication capabilities. Google wants web developers to create video or voice chat apps directly in the browser, and Global IP Solutions has previously made WEBRTC-based mobile clients for Android, Windows Mobile, and iphone. Google will webrtc open source, it is hoped that browser vendors can embed the technology directly into the browser, so as to facilitate web developers.

WEBRTC's blog explains the strengths and direction of WEBRTC's development:

Until now, real-time communications still require proprietary signal processing techniques, most of which are installed using plugins and clients. Through WEBRTC, we have developed the audio and video engine technology acquired through the acquisition of Gips, allowing developers to understand signal processing technology and use BSD-style authorization. This enables developers to create audio and video chat apps with simple HTML and JavaScript APIs.

We are working closely with other browser developers such as Mozilla and Opera to implement this technology in the browser as soon as possible for use in the web community. In addition, we are actively involved in the activities of the IETF and the group, defining and implementing a set of real-time communication standards.

Its official web site lists four reasons to use WEBRTC technology:

    1. A key factor in Internet success is that some core technologies such as HTML, HTTP, and TCP/IP are open and free to implement. At present, there is no free, high quality, complete solution in the field of browser communication. WEBRTC is such a technology.
    2. The technology has been integrated with the best audio and video engines and deployed to several millions terminals, after more than 8 years of discipline. Google does not charge for this technology.
    3. Includes key NAT and firewall traversal techniques using stun, ICE, TURN, RTP-OVER-TCP, and support for proxies.
    4. Built in the browser, WEBRTC abstracts the signal processing by providing a signal state machine that maps directly to the peerconnection. The web developer can therefore choose the protocol that is appropriate for the scenario (for example, SIP, Xmpp/jingle, and so on).

The architecture diagram for the WEBRTC is as follows:

Figure 1 WEBRTC architecture diagram (Image source: WEBRTC official website)

About the components of the architecture diagram, including:

Web api--Third-party developers are used to develop web-based applications, such as video chat.
WebRTC Native C + + api--browser vendors are used to implement a set of functions for the web API.
Session management--abstract Session layer, support calls to build and management layer, by the application developer to decide how to implement the protocol.
voiceengine--the frame of the audio media chain, from the sound card to the network.
The isac--is a wideband and ultra-wideband audio codec for VoIP and streaming audio, ISAC with a sampling frequency of up to khz or + khz and a variable bit rate of 12-52 Kbps.
The ilbc--is a narrowband speech codec for VoIP and streaming audio, with a sampling frequency of 8 khz, a 20 millisecond frame bitrate of 15.2 kbps,30 mm frames with a bit rate of 13.33 Kbps, and the standard defined by IETF RFC 3951 and 3952.
Neteq for voice--dynamic jitter Caching and error concealment algorithms to mitigate the negative effects of network jitter and packet drops. Minimize latency while maintaining high audio quality.
videoengine--Video Media chain frame, from camera head to network, from network to screen.
vp8--is a video codec from the WEBM project and is ideally suited for RTC because it is designed for low latency.
Image enhancements--eliminates the video noise of images acquired through the camera.
Other more detailed schema analysis can be viewed here for documentation.

Peerconnection is located at the top of the WEBRTC Native C + + API, and its code implementation is derived from Libjingle (a peer-to development kit) that is currently being applied to WEBRTC. The key two class definitions are:

Class Peerconnectionobserver {
Public
virtual void OnError ();
virtual void Onsignalingmessage (const std::string& msg);
virtual void Onaddstream (const std::string& stream_id,
int channel_id,
BOOL video);
virtual void Onremovestream (const std::string& stream_id,
int channel_id,
BOOL video);
};

This class defines an abstract observer. Developers should inherit to implement their own observer classes.

Class Peerconnection {
Public
Explicit peerconnection (const std::string& config);
BOOL Initialize ();
VOID Registerobserver (peerconnectionobserver* observer);
BOOL Signalingmessage (const std::string& msg);
BOOL Addstream (const std::string& stream_id, BOOL video);
BOOL Removestream (const std::string& stream_id);
BOOL Connect ();
void Close ();
BOOL Setaudiodevice (const std::string& Wave_in_device,
Const std::string& Wave_out_device);
BOOL Setlocalvideorenderer (cricket::videorenderer* renderer);
BOOL Setvideorenderer (const std::string& stream_id,
cricket::videorenderer* renderer);
BOOL Setvideocapture (const std::string& cam_device);
};

Specific function descriptions can be seen in the corresponding API description.

As Google has said, it has been involved in the development and implementation of the video conferencing and peer communication sections of the HTML 5 standard, although it is not yet a formal standard, but we can see the future use of Web developers from the example of the draft:

The first argument describes the Stun/turn server configuration
var local = new Peerconnection (' TURNS example.net ', sendsignalingchannel);
Local.signalingchannel (...); If we have a message from the other side, pass it along here
(Alocalstream is some Generatedstream object)
Local.addstream (Alocalstream); Start sending video
function Sendsignalingchannel (message) {
...//Send message to the other side via the signaling channel
}
function Receivesignalingchannel (message) {
Call this whenever we get a message on the signaling channel
Local.signalingchannel (message);
}
Local.onaddstream = function (event) {
(Videoelement is some <video> element)
VIDEOELEMENT.SRC = Url.getobjecturl (Event.stream);
};

The current technical standards for Web real-time communication are being worked out, and the Web real-time communication Working group was formally established in May this year and plans to release its first open draft in the third quarter of this year, as can be seen from its Working Group's roadmap. Formal recommendations are expected to be released in the first quarter of 2013, and whether the standards will have an impact on the development of the WEBRTC project, and the specifics of the bill in the future.

Google wants open-source WEBRTC technology to be supported by more and more browser vendors, and WEBRTC's website has announced that it will implement API interfaces on Chrome, Firefox and Opera. H?kon Wium Lie, chief technology officer of Opera, told the media that Google was able to contribute a lot to the valuable code, and opera has always wanted to be able to implement real-time communication technology in the browser.

The mention of real-time communication technology has had to remind people of the industry giant Skype. Coincidentally, just before recently, Microsoft had just spent $8.5 billion in cash to buy Skype for VoIP services, and many analysts pointed out that Microsoft's takeover would face Google's competition:

...... The takeover also frustrated rival Google's plans to use Skype technology to improve its call service.

MSN Instant Messaging, Bing search, and online advertising have become Microsoft's three major positions in the Internet arena for Google. However, Microsoft's Internet strategy has not really shown itself to be the core advantage of Google's ability to challenge Google, relative to its internet industry.

Both Google and Apple have spent years on internet telephony. Apple has been pushing ichat and FaceTime, and Google is also spreading its web communications-related products chat and voice. However, Google and Apple have a common problem, they are difficult to survive on the competitor's platform. Apple users are unable to make video chats with Google and Microsoft users, and Google has made a lot of efforts across platforms, but there are still many hurdles.

Skype, however, does not have the problem, as Skype for free services can run on Apple, Linux and Windows computers, as well as mobile platforms such as Android and iphone, and even run on TV.

Microsoft is also hoping to keep Skype away from Google's "claws" by buying Skype, not just to benefit from it. If Google buys Skype, it's a big blow for Microsoft. Think about it, if Google buys Skype and integrates Skype into Google Apps, Gmail, Google Talk and Google Voice, think about how Google will integrate Skype with the Android platform in some depth, This is undoubtedly a disaster for Microsoft. Even if Microsoft does not integrate Skype into its own products, it avoids the huge value that Google acquires by buying Skype.

Shortly after Microsoft's takeover of Skype, Google announced open source for WebRTC, which is reminiscent. Foreign media commented that Google's open source is to keep users away from the industry's leaders such as Skype and Apple's FaceTime platform. By using a browser to support real-time communication technology, Google wants the development community to be able to integrate that functionality into its own applications, thereby weakening other opponents.

It's not the first time Google has been generous with open source key projects. Last year, Google used the VP8 video codec project as an open source to support video media playback in HTML 5 technology. Today, a variety of mainstream browsers have supported the VP8 format, become the main multimedia format, compared with the patent, pay disputes, the open, free VP8 more to the browser manufacturers rest assured.

The impact of WEBRTC open source on browser vendors and the field of real-time communications technology, INFOQ Chinese station will continue to focus on and timely reporting, but also welcome readers to express their views.


+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++

Series of Good article:

1.Google Open source WebRTC project (1)


5. Google Open source WebRTC project (5)

WEBRTC's video_engine system architecture diagram, as follows:


1. WEBRTC provides a framework for video capture, encoding, transmission, and display of all functions from the video section.

In the architecture diagram, a colored arrow indicates the flow of data from the video stream: from the video capture end, through the network transport layer, to the video receiving end.

2. System limitations for WEBRTC:

Device Manager can manage up to 10 input devices, and ChannelManager can manage up to 4 channel; Of course, you can also modify these maximum values.

The maximum resolution supported by the codec is 1920*1200.

3. Extension of the WEBRTC

WEBRTC is not a closed system, instead it is easily extensible, including Device,codec,render,transport, which provides an extensible interface.

For example, you can increase the codec of H264 to facilitate the addition of support for existing systems.

For video conferencing, you can extend the network transport layer: When the encoded data packets from the video capture end are transmitted directly through the video conferencing network, the video Conferencing server is sent to each video conferencing client, which is then handed to WEBRTC for receiving processing. That's what we want.

WebRTC Project Research

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.