Cross-platform WEBRTC client framework: OPENWEBRTC

Source: Internet
Author: User
Tags gtk git clone gstreamer


WEBRTC IOS Framework compilation http://www.th7.cn/Program/IOS/201502/390418.shtml

WebRTC in webkit:http://www.webrtcinwebkit.org/



OPENWEBRTC is designed for flexibility and modularity. The bulk of the API layer is implemented in JavaScript, making it super fast to modify and extend with new functionality. Below is a simplified sketch of the architecture.

OPENWEBRTC is an open-source, cross-platform, WebRTC client-side framework based on Gstreamer, supporting both H. S and VP8. Using OPENWEBRTC,WEBRTC is no longer just a purely browser technology, you can use WEBRTC in Nativeapp, and you can also connect with your browser webrtc. \


Based on GStreamer

Among other great projects, OPENWEBRTC are built on top of widely used and powerful GStreamer multimedia framework.


Extension of UIWebView

Bowser is based on the official UIWebView provided by the platform and the WebRTC API ' s be implemented with JavaScript th At was injected into Web pages as they load, the injected JavaScript code was using remote procedure calls to control the Op ENWEBRTC backend.

The plan is for move to the Wkwebview, introduced in IOS 8, as soon as possible.


Background

Bowser was originally developed by Ericsson and released in October of the, for both IOS and Android devices. Back then Bowser is the world's first webrtc-enabled browser for mobile devices. Bowser is later removed from the Apple App Store and Google Play but is resurrected and released as Open Source together With OPENWEBRTC.




· Ericsson Institute continues to work on the WEBRTC standard by launching a free and open source web browser and the underlying framework

· Currently, this browser is the only WebRTC browser on iOS

· OPENWEBRTC is a flexible cross-platform WEBRTC client framework that can be used to build local WEBRTC applications and browser backend

C114 Ericsson Research Institute has announced the launch of free and open source web browser Bowser and the underlying framework OPENWEBRTC, designed to provide developers with more choice and greater flexibility to further accelerate the WEBRTC (web real-time communication) in the field of innovation.

WEBRTC provides a super-easy way to build voice, video, and data applications in real time, WEBRTC includes a range of APIs and protocols, and the World Wide Web Consortium and the Internet Engineering Task Force (IETF) are standardizing on these APIs and protocols.

OPENWEBRTC relies on the idea that the WEBRTC standard will go beyond the pure browser environment, while local applications will implement the same protocols and APIs, becoming an important part of the WEBRTC ecosystem. This is especially true on mobile platforms, where publishing on-premises applications is often preferable to purely web-based applications.

Photo: Stefanålund, research director, Ericsson Institute

"We launched the Bowser in 2012 and received a wide welcome," said Stefanålund, research director at Ericsson Institute. Now, we have not only introduced Bowser, but also introduced the underlying cross-platform WEBRTC framework that has been developed and used within Ericsson in recent years. ”

Ericsson Research Institute actively participates in the standardization process of WEBRTC, and has been working to achieve the prototype of this standard since its inception. To achieve this standard, both the IETF and the consortium require that at least two independent, interoperable standards be implemented.

Ålund continues: "The WEBRTC standards are still evolving and developers are constantly looking for new ways to use this technology." The OPENWEBRTC built by our engineers can be easily modified and extended to allow space to try out more APIs and new features. ”

Bower, launched as an open source, has been submitted to the Apple App Store and will be available for free download soon.





Safari starts support WEBRTC September 12, 2015


WEBRTC and WebKit

WEBRTC is a browser-based, real-time communication interface that supports peer-to-peer audio and video communication through a browser. The WEBRTC specification is jointly developed by the consortium and the IETF. Through these api,web developers can embed video and audio communication functions in Web pages via standard JavaScript APIs.

WebKit is an open-source browser engine that consists of WebCore typesetting engine, Jscore JavaScript engine, and various platform porting code. WebKit currently lacks support for the WEBRTC standard, so developers have built the webrtcinwebkit.org site and started adding support for WEBRTC on WebKit. Initially, the project was added to WEBRTC support using OPENWEBRTC in WebKit's GTK migration, and subsequent support will be gradually put into webcore, so that all migration environments based on WebKit can be easily used. At the same time, the project will be in the future to access more WEBRTC to achieve the latter segment, such as webrtc.org.

These efforts will make it easier for Apple to implement WEBRTC functionality on safari.

What Apple has done.

WebKit is just a browser engine, each browser that uses it, is a ported version (port). The Webrtcinwebkit project, which was first tested on the WebKit GTK migration, enabled the Linux browser to support the Getusermedia interface in July.

For the implementation of the WEBRTC protocol stack for different browsers, you can see this slide. As a background, it describes how different browsers integrate WEBRTC implementations into their own architectures.

For Apple, Safari on the Mac platform on Safari and on the iOS platform is a standalone WebKit ported version. They cannot directly use the WEBRTC access code previously used for the GTK ported version. So Apple needs to implement WEBRTC access for both of these porting versions separately.

As of the end of August, the main changes Apple made to the submission record of the Git repository were: changes to Mac and iOS/platform/mediastream/mac/platform/mac-mavericks//platform/ mac-yosemite/modification of the Avfoundation Interface (AVVideoCaptureSource.h) for the modification of the Apple platform build file (webcore.xcodeproj/project.pbxproj)

From the changes, Apple has implemented support for Getusermedia and MediaStream interfaces on both Mac and iOS two platforms. Furthermore, it supports the enumeration and selection of audio and video devices, supports video and audio streams as input sources for audio and videos two tags, and supports video capture and other functions.

However, as with the Webrtcinwebkit project's initial implementation, these code changes are primarily in the Mac system porting section. This is due to a lot of features in the WEBRTC, involving platform-related hardware device interaction, media flow, etc. need to be shared between the tabs, making the changes mainly for the rendering layer.

Hopefully these changes will allow us to see the effects in Safari or iOS WebView as soon as possible.




OPENWEBRTC (1) Server and Android client Demo installation


1, about OPENWEBRTC

OPENWEBRTC is an open-source, cross-platform, WebRTC client-side framework based on Gstreamer, supporting both H. S and VP8. Using OPENWEBRTC,WEBRTC is no longer just a purely browser technology, you can use WEBRTC in Nativeapp, and you can also connect with your browser webrtc.

2, install the service side demo

Demo uses Nodejs to do the server. CentOS Installation:

<code class= "Hljs cmake has-numbering" style= "display:block; padding:0px; Color:inherit; Box-sizing:border-box; font-family: ' Source Code Pro ', monospace;font-size:undefined; White-space:pre; border-radius:0px; Word-wrap:normal; background:transparent; " >yum <span class= "Hljs-keyword" style= "Color:rgb (0, 0, 136); Box-sizing:border-box; " >install</span> nodejs nodejs-devel</code><ul class= "pre-numbering" style= "Box-sizing:border-box ; Position:absolute; width:50px; top:0px; left:0px; margin:0px; padding:6px 0px 40px; border-right-width:1px; Border-right-style:solid; Border-right-color:rgb (221, 221, 221); List-style:none; Text-align:right; Background-color:rgb (238, 238, 238); " ><li style= "Box-sizing:border-box; padding:0px 5px; " >1</li></ul>

Download example code:

<code class= "Hljs vala has-numbering" style= "display:block; padding:0px; Color:inherit; Box-sizing:border-box; font-family: ' Source Code Pro ', monospace;font-size:undefined; White-space:pre; border-radius:0px; Word-wrap:normal; background:transparent; " >cd/data git clone https:<span class= "Hljs-comment" style= "Color:rgb (136, 0, 0); Box-sizing:border-box; " >//github.com/EricssonResearch/openwebrtc-examples.git</span> CD openwebrtc-examples/web <span class= " Hljs-preprocessor "style=" Color:rgb (68, 68, 68); Box-sizing:border-box; " > #启动 </span> nohup node channel_server.js & <span class= "Hljs-preprocessor" style= "Color:rgb (68, 68, 68) ; Box-sizing:border-box; " > #默认端口8080 </span></code><ul class= "pre-numbering" style= "Box-sizing:border-box; Position:absolute; width:50px; top:0px; left:0px; margin:0px; padding:6px 0px 40px; border-right-width:1px; Border-right-style:solid; Border-right-color:rgb (221, 221, 221); List-stylE:none; Text-align:right; Background-color:rgb (238, 238, 238); " ><li style= "Box-sizing:border-box; padding:0px 5px; " >1</li><li style= "Box-sizing:border-box; padding:0px 5px; " >2</li><li style= "Box-sizing:border-box; padding:0px 5px; " >3</li><li style= "Box-sizing:border-box; padding:0px 5px; " >4</li><li style= "Box-sizing:border-box; padding:0px 5px; " >5</li><li style= "Box-sizing:border-box; padding:0px 5px; " >6</li></ul>

Installation Documentation Reference:
Https://github.com/EricssonResearch/openwebrtc-examples/tree/master/web

Then you can make a video on the web, using a browser that spends WEBRTC. Create the room first, and then let another client, join, call again.

3,android Client Demo

Download the latest Android studio, configure it well. Compile the Android project.
Https://github.com/EricssonResearch/openwebrtc-examples/tree/master/android/NativeCall <

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.