WebRTC Low Latency Streaming

Adds WebRTC features into Video.JS

Note: Not a live demo, server configuration is just for example. For live working example try the Millicast Publisher and Subscriber example. Or AWS Kinesis Publisher and Subscriber example.

Example publisher using hidden player managed settings menu. Max device dimensions is disabled using maxDeviceDimensions , the maximum capable dimensions of the device camera will be used which could be 4K which could be too large for publishing. If disabled maxWidth and maxHeight can be used to restrict dimensions if no dimension dropdown is configured.

The WebRTC Subscriber Player is used for subscribing to the stream. If there is a transcoding option enabled in the server a HLS source can be used instead.

If publishing to the server as RTMP using an encoder and restreaming as WebRTC, the subscriber player can be used for subscribing to the stream.

An audio meter display can be used to display microphone activity and volume.

Introduction

The WebRTC is a browser based low latency peering streaming solution with only the requirement of a signal server.

While WebRTC can allow for full 2 way peering, the intended solution is for one to many low latency live broadasting with basic conferencing functions.

With Kurento, Millicast, Ant Media Server and Wowza Media Server conferencing solutions is provided however with Wowza the streams are pulled from the server as WebRTC or HLS. Demo java backend projects are provided.

With Millicast conferencing a demo node websocket service is provided to signal users when a publish stream begins. The WebRTC plugin provides an integrated browser based encoder publishing application, with media device, resolution, codec, bitrate controls. And a subscriber player.

Media device selection can use whatever device the browser detects including video and audio inputs. Audio output control for the publisher is possible for browsers that support it.

Screensharing capabilities with browsers that support it are possible using screen sharing apis. The screen, browser, browser tab can be chosen , with an audio input for audio. This may be suitable for live broadcasting instruction videos or even gaming.

Switching between camera and screenshare video tracks is possible while peering. Retaining the original microphone audio stream. Recording of the media device is possible using browser based media recorder api's for browsers that support it. With a download capability of the recorded data.

Device toggling can turn the video / audio device off before and while publishing.

Supported servers for now is Wowza, Kurento, Millicast WebRTC backends. Wowza only supports one to many peering and no data channels. Provided is a Kurento one to many signal server.

WebRTC settings can be configured as a player overlay,

Volume control of the audio input is made possible using the audio api. This also makes the possibility of an audio meter display

Virtual Meeting Background Removal

With the use of BodyPix and Tensorflow. An included virtual background plugin. Support for dynamic background removal rendering is provided.

This rendering view can be used as the main video stream on the publisher and will be automatically detected.

The auto background uses an AI BodyPix feature that doesn't require a Chromakey Green Screen render. It's not perfect but with fine tuned settings it's enough to make a transparent background to show a background image behind the video.

Background images can be added as a background texture to the video stream.

An interesting and unique feature has been included to switch to screensharing as a background in virtual mode. With a scaled camera video resized in the foreground.

With a screen mode, when switching to screenshare, the camera video will display scaled in the corner

Audio Meter

An audio meter plugin can be configured to display microphone activity and volume. An external container with a peak-meter selector can be setup

<div class="peak-meter absolute right-4 -bottom-1.5 w-auto" style="max-width: 80px; height: 300px;"></div>

Video Conferencing

Integrated is features for WebRTC video conferencing for Wowza, Ant Media Server, Millicast and Kurento. The supplied demo signal server backends are for the purpose of the extra signalling required for peers. A master participant can both feature a participant by first selecting them. Or mute the audio being sent from that selected participant.

Camera Video Merger

Supplied for WebRTC video conferencing. Is a WebGL hardware accelerated camera video merger for the purpose of broadcasting and recording group calls as one stream. This can be integrated from the master and automatically start broadcasting with the master participant.

WebRTC Simulcast Multi-bitrate

For Chrome and Firefox web broadcasters and custom Millicast WebRTC OBS encoder. WebRTC Simulcast multi-bitrate and resolution broadcasting is supported. Has only been tested with Millicast that supports signalling Simulcast. Not supported in Wowza or Ant Media Server yet. Subscribers will handle the multiple layers and handle it automatically.

In the future with AV1 codec broadcasting. Layers are handled within the codec and therefore WebRTC simulcast is not needed. AV1 codec is supported by Millicast and experimental Chrome browsers.

Server Side Recording

Some servers allow api commands for server side recording. This is implemented for both publishers and conferencing masters. For conferencing masters with camera merger enabled, the published camera merger stream can be chosen to record.

Currently Ant Media Server, Ovenmedia Engine, and Wowza with a custom provider has server side rest api command support which requires JWT tokens configured for security. With Wowza conferencing server side recording is achieved with the custom group websocket provider.

Security

Each server feature option has their own token security features. With Wowza token security is achieved with the custom providers. Any token system can be used but JWT is configured by default with a configured secret key.

RTMP and VR Video in conferencing

RTMP publishers can join conferencing provided by notifications available in the Wowza and Ovenmedia custom websocket servers. If the stream is configured with titles and vr. Both titles and VR 360 rendering is possible. VR rendering requires the VR360 Plugin

Features

Request a free trial

Try the feature for 30 days. Free support is provided. Provide your website domain(s) it will be used for.

Pricing

Choose a suitable pricing option for one time payment. Contact for feature requests or customisations.

Enter required website domains seperated by spaces or commas.

Unlimited / SAAS Platform / Source Code

$1500 AUD

✔ All features

✔ Includes Support

✔ Source Code Includes Repository Updates

Buy Now

Integrate into own application and platform

Multi Domain

$500 AUD

✔ All features

✔ Priority Support

Buy Now

Suits Larger Sites

Single Domain

$300 AUD

✔ All features

✔ Free Support

Buy Now

Suits Small Sites

Not For Profit / Education

$150 AUD

✔ All features

✔ Free Support

Buy Now

For Charity / Personal / Education