Skip to content

rse/vdo-ninja-trampoline

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 

Repository files navigation

About

VDO.Ninja (formerly OBS.Ninja) is an awesome peer-to-peer (P2P), WebRTC and browser based solution for bringing the video/audio streams of presenters into the live event production software OBS Studio with very low latency and high quality.

This form is just a URL simplification trampoline, i.e., it takes a few intuitive URL parameters and redirects to the underlying complex technical URL of VDO.Ninja. It allows you to control VDO.Ninja parameters at a central place while being able to use clean, intuitive and stable URLs for both the presenters and OBS Studio.

The underlying VDO.Ninja parameter sets are rather opinionated and hard-coded and are intended for meeting or broadcast sessions with multiple presenters only. Broadcast sessions are like meetings, where presenters can hear but not see each other, to reduce the network bandwidth requirements of presenters.

Sneak Preview

VDO.Ninja Trampoline

Usage

Go to VDO.Ninja Trampoline (or your own website hosting VDO.Ninja Trampoline) and just use the form. The form fields are:

  • Room Id: This is the room identifier, corresponding to the room parameter of VDO.Ninja. It has to be globally unique.

  • Room Password: This is the room password, corresponding to the password parameter of VDO.Ninja. It protects access to your room.

  • Session Mode: This is the mode the peer is operating under:

    • attendee: a person in a regular meeting, i.e., all attendees share their video and audio to each other. This causes lots of WebRTC connections and hence should be used for about 5-10 peers only. This is intended for regular meeting participants.
    • sender: a person in a broadcast meeting, i.e., all sender share only their audio with each other and their video with just the director (in lower-quality) and the receiver (in high-quality). This is intended for presenters in a produced online event.
    • follower: like sender, but without sharing video at all. This is intended for assistents in a produced online event in order to observe the senders.
    • injector: like follower, but without even sharing audio at all. This is intended for assistents in a produced online event in order to just inject chat messages to the senders.
    • receiver: the OBS Studio "Browser Source" receiving the video/audio stream of a particular sender.
    • collector: the OBS Studio "Browser Source" receiving the video/audio streams of all senders at once.
    • director: the director of the online event in order to control the senders and interact with the senders.
  • Session Video: This is the video mode the peer is operating under, mapped onto the quality andvideobitrate parameters of VDO.Ninja.

  • Session Audio: This is the audio mode the peer is operating under, mapped onto the stereo and audiobitrate parameters of VDO.Ninja.

  • Peer Id: This is the peer identifier, corresponding to the view and push parameters of VDO.Ninja. It has to be locally unique to the room identifier.

  • Peer Name: This is the peer name, corresponding to the label parameter of VDO.Ninja. It can be an arbitrary name, but should explain the peer. It is displayed to the director only.

  • Source URL: This is your entry point. Copy this URL for accesssing VDO.Ninja through the clean, intuitive and stable parameters of VDO.Ninja Trampoline.

  • Target URL: This is the redirection URL, based on the underlying complex parameters of VDO.Ninja. This is shown just for comprehension purposes.

Installation

There is no installation needed if you are using the Github URL https://rse.github.io/vdo-ninja-trampoline/. If you want to use a different URL then copy the files index.html and jquery.js to your own website.

License

Copyright © 2021 Dr. Ralf S. Engelschall

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.