howto:obs_ninja

VDO Ninja

Note: At the current state we can not recommend to use ninja. have a look at kevin for an alternative

VDO Ninja (previously named “OBS Ninja”) allows speakers to share their webcam or desktop over the internet using peer to peer web-rtc video streams, so the mixer can embed those streams using a browser source in OBS Studio

Voc-Hosted Service: Ninja Winkekatze

Currently Installed Version: 6

Source Code: Github

  • OBS Ninja is not totally open source, for details see Issue in Github. We are currently working on a fully free version.

Official Documentation: Github Wiki

Creating a new Groupchat creates a new room, for which the creator is the director.

For each Room there is one main director. It is possible to join subdirectors when there is already a main director present, but those are quite limited.

It is possible to transfer Streams from one room to another. This can be useful for e.g. creating a Waiting room and a live room. Multiple Transfers can be done quickly by selecting multiple Streams for trasfer by holding down CTRL (on Windows) or CMD (on MacOS).

Using the chroma parameter, you can change the background color of the Directors view. Use this if you have multiple rooms open, for a quick visual distinction.

Tally Light

OBS Ninja supports a Tally Light feature. This shows a red border around the preview video of the sender if the Sender is Visible in OBS (visible means either on the Live-Canvas or, if in Studio mode, on the preview Canvas).

In order to work, the Visibility of the source has to be toggled at least once already in OBS. (This means you have to switch to scenes such that the OBS Ninja Browser Source is not visible in the main window of OBS.)

TODO: Determine if sources in MultiView count as Visible.

Stats

The Stats window can be enabled either by pressing right CTRL while clicking on the video or appending the stats parameter to the URL. On Mobile devices, you can open the stats video by rapidly pressing on the screen multiple times.

The Stats window shows a lot of infos about the video stream, including but not limited to the used video codec, the resolution, the bitrate, the frames per secound, and the packet loss.

File Sharing

According to the documentation, it should be possible to share Files (Video / Audio) via OBS Ninja. As of 16.12.2020, this was not tested successfully.

Parameter Alias Value Type Possible Values Default Description
chroma HEX-String (RGB) 3-Digit or 6 Digit Hex Sets the Background of the website to the given color
cleanoutput clean None Null Null Hides many UI elements and Popups
director String Valid Room ID Opens the Director View of the Room with the given ID
flip None Null Null Mirrors the Video at the x axis. For mirroring along the y axis, see mirror
hash String Password Hashes acts as if password was added
hideheader noheadder None Null Null Hides just the top headder bar.
icefilter String tcp, udp, host Filters out ICE candidates that do not include the specified word in the candidate string.
label String blank Used when dragging the link into OBS Studio, changes the title of the browser tab and shows up in the connection debug stats window. If blank, prompts user for a display name on load
ln Enum en, ru, fr, pt, it, blank en Sets the UI Language. blank means Less verbose
mirror Enum 0, 1, 2, 3, Null Null Mirrors the video along the x axis. For y axis mirroring, see flip. See Official Documentation for details
nocursor None Null Null Hides the mouse cursor with CSS, Useful for Window Captures
obsoff oo None Null Null Disable the tally light effects; can be applied to both viewer or pubilsher.
password String Alpha-Numeric, Case Sensitive Sets a Password to view a stream or join a room (If trying to access a password protected Stream / Room with out this parameter, a password prompt will appear). If the password is wrong, no Error is shown. It just wont work.
relay private, privacy None Null Null Forces TURN relay into use
remote rem String Alpha-Numeric, Case Sensitive Allows remote operation of the zoom feature on Android devices.
room roomid, r String * Sets a room ID
roombitrate Integer N (in kbps) Sets Bitrate of Speaker Viewers in Room. Should not affect OBS. If set to 0, can increase maximum number of possible Guests in a Room
showonly String ? ?, Can increase maximum number of possible Guests in a Room
stats None Null Null Shows the Connection / Media Stats window by default
stereo s, proaudio Enum 0, 1, 2, 3, 4 0 see Official Documentation
sticky None Null Null Allows saving and restoring of sessions using cookies.
style Enum 0, 1, 2 ? Selects how Audio-Only Media is displayed. 1 hides audio-only elements, 2 shows a visual waveform for the audio element. Experimental, might change.
transparent None Null Null Makes the website background transparent using CSS, (not needed with OBS Default CSS, only useful when embedding OBS Ninja as IFrame)
wss URL [subdomain].domain.tld wss13.0bs.ninja Sets a custom URL for the websocket server
Parameter Alias Value Type Possible Values Default Description
aec ec Enum 0, 1 Sets whether echo-cancelation is ON or OFF. Must be disabled to use with Stereo Audio
audiodevice adevice, a {String, 0, 1} *, 0, 1 Pre-Configures the audio device. 0 will disable the microphone, 1 will select the default microphone, if a string is given, the audio source with a label containing the string is selected. The audio device selection can be changed after connecting. Whitespaces must be represented by underscores.
autogain ag Enum 0, 1 Sets whether audio auto-normalisation is ON or OFF
autostart autojoin, aj, as None Null Null Auto starts as soon as the Audio/Video device is ready
denoise dn Enum 0, 1 En/Disable Audio Noise reduction Filter
device {String, 0, 1} *, 0, 1 Same as audiodevice or videodevice, but applies to both.
fileshare fs None Null Null Allows the user to select a video or audio file as a source for streaming
forceios None Null Null Forces iOS devices to publish videos to this room guest. iOS devices can only publish three streams at a time, so they usualy do not publish streams to other guests
framerate fps, fr Integer N (in FPS) Sets the maximum framerate of the video in frames per second. Actual framerate might be less. If the camera cannot support this framerate, it will fail.
height h Integer N (in px) Sets the maximum height of the video in pixels. Actual height might be less because of bandwidth limitations. If the camera cannot support the height, it will fail.
mute muted None Null Null Starts with the microphone muted
nopreview None Null Null Disables the local self video preview
push permaid String Alpha-Numeric, Case Sensitive randomly generated 1 to 24 characters long stream ID. Use for reusable Invites. If someone sends already a video with the given ID, an error is shown.
quality q Enum 0, 1, 2 Single value less strict than resolution and bitrate. 0 tries to request about 1080p60, 1 about 720p60 and 2 about 360p60, variing depending on hardware.
screenshare ss None Null Null Disables Webcam Sharing as an Option
secure None Null Null Force Disconnect from the Handshake server after initial peer-to-peer connection is established.This effectively limits the number of viewers to one.
videodevice vdevice, v {String, 0, 1} *, 0, 1 Pre-Configures the video device. 0 will disable the video camera, 1 will select the default camera, if a string is given, the video source with a label containing the string is selected. The Video device selection can be changed after connecting. Whitespaces must be represented by underscores.
webcam wc None Null Null Disables Screen or Filesharing as an Option
width w Integer N (in px) Sets the maximum width of the video in pixels. Actual width might be less because of bandwidth limitations. If the camera cannot support the width, it will fail.
Parameter Value Type Possible Values Default Description

Windows

Software Webcam Screenshare
Browser Version Video Audio Video Audio Group Chat Comments
Chrome ? (recent) ✔ (see Comment) When ScreenSharing, using audio probably works only when either sharing a Chrome tab or an entire Screen
Firefox 83.0
Edge
Vivaldi 3.5.2130.3 Nein

Mac OS

Big Sur 11.0.1
Software Webcam Screenshare
Browser Version Video Audio Video Audio Group Chat Comments
Chrome
Firefox
Safari
Catalina 10.15.7
Software Webcam Screenshare
Browser Version Video Audio Video Audio Group Chat Comments
Chrome 87 Ja Ja Ja TODO Ja TODO: Teilen des PC-Sounds ausprobieren
Firefox 83 Ja Ja Ja TODO Ja TODO: Teilen des PC-Sounds ausprobieren
Safari 14.0.1 Ja Ja Ja TODO Ja Nur eine Session möglich (Kamera oder Screenshare), Nur Fullscreen vom Bildschirm mit dem Browserfenster

Linux

Software Webcam Screenshare
Browser Version Video Audio Video Audio Group Chat Comments
Chrome
Chromium
Firefox

Windows

Software Version Supports Websource Comments
OBS Studio 26.0.2 Offizieller Installer von https://obsproject.com/de/welcome

Mac OS

Software Version Supports Websource Comments

Linux

Software Version Supports Websource Comments
  1. I can not join a Groupchat. If I am a speaker trying to join I can select a Camera and click on start, but then see only my own camera picture. The director does not see anything.

Click to display ⇲

Click to hide ⇱

Please check that websocket connections to obs.ninja are allowed in your browser.

  • howto/obs_ninja.txt
  • Last modified: 2021/12/12 14:21
  • by andi