Skip to content

Latest commit

 

History

History
137 lines (80 loc) · 5.87 KB

README-en.md

File metadata and controls

137 lines (80 loc) · 5.87 KB

skyway-webrtc-gateway

This is the old SkyWay repository. Please consider migrating to the new SkyWay.


日本語版はこちら

SkyWay WebRTC Gateway is an experimental approach to expand WebRTC possiblity. We're seeking new partners who challanges innovation.

Concept

The mission of SkyWay is to make everyone use WebRTC easily. At first SkyWay starts to provide signaling to browser, then extends the device support to iOS and Android. As a next step, in order to the range of device and use case, we developed the SkyWay WebRTC Gateway which is IP reachable.

Background

WebRTC Engine inside the browsers is only controlled by the browser's API. Control via JavaScript is the condititon.

Can not control WebRTC engine inside browser

Because of this, you might have the problem like:

  • You want devices to use WebRTC but the devices is not capable of running browser
  • How can we operate the IoT device outside?
  • I want to analyze the video with AI or to send data...
  • I want to use WebRTC on server-side but the headless browsers doesn't meet my requirements...
  • Can we make use of SIP/RTP property we already have?
  • etc...

What if there's a WebRTC Engine which can be controlled by the program? This can leads to develop software or service freely...

In order to meet this needs, previously there's limited ways like developing something with libWebRTC from scratch, OpenWebRTC, or Janus. However, it's really difficult to understand the library and to develop application. In addition, before your starting production service there are other problems like:

  • Usability of existing application is different from the browser's one
  • You need to prepare signaling and TURN server
  • You can not get enough support from developers

Functions

To solve these problems, we have developed the SkyWay WebRTC Gateway which equips WebRTC engine which is wrapped with SkyWay. There are functions below:

  • You can use SkyWay as you do
    • Signaling server, TURN server
    • Controll the application with REST API which is similar to existing SkyWay's API
  • You can inject data to SkyWay WebRTC Gateway from outside
    • Send RTP to SkyWay WebRTC Gateway and the remote party can recevie it as MediaStream
    • Receive RTP which is sent by remote party is originally MediaStream
    • Send UDP and inject it to DataChannel
    • Receive UDP which is originally DataChannel
    • DataChannelで届いたデータをUDPで受け取る
  • Because SkyWay WebRTC Gateway runs as stand-alone application, low performance devices can use it

You can use WebRTC by the program outside

How to use

At first you need to use REST API, then you establish WebRTC sesssion. After this, what you need to do is send RTP or UDP to SkyWay WebRTC Gateway via established session from your program. Lots of use case should be covered. For instance, you can inject the video to recording device, or you can send control signal to the device which in behind the firewall.

Use case

By controlling WebRTC Engine freely, the use case is unlimited. Some use cases are introduced below.

  • Control the low performance device which can't use WebRTC by itself

IoT UseCase

  • Recording audio

Recorder UseCase

  • Implement communication components of VR game with WebRTC

VR Game

  • Want to be virtual WebRTCer by sending the same video to 1,000 people

Virtual Youtuber

  • Store the data on the AI platform on the cloud

AI UseCase1

  • View the analyzed data on the AI platform on the cloud

AI UseCase2

  • Utilization of existing SIP/RTP eqiupments

SIP UseCase

If you found the exciting use cases, let us know!

How to Use

API Reference

samples

sequence

Docs

FAQ

Developer community

Download

Download

  • Windows(x64): Windows 10, 8, 7
  • Linux(x64): Ubuntu18.04, 16.04, etc.
  • Linux(ARM)

Raspberry Pi (Linux ARM) Minimum Requirements

  • Hardware: Raspberry Pi 3B or later
  • Software: Raspbian Version 9 or later

Updates and Release Notes

issues release notes

License

Terms

This software includes the softwares which are disributed under Apache2 license.

LICENSE

NOTICE