OBS Ninja

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: 13.4

Source Code: Github

Official Documentation: Github Wiki

Features

Group Chat

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.

Camera

Screenshare

Create Reusable Invite

Misc

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.

URL Parameters

General Parameters

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)

Source Parameters

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.
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.

Viewer Parameters

Parameter	Value Type	Possible Values	Default	Description

Tested Platforms / Browsers

For Speakers

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	✔	✔	✔	Nein	Direct Links seem to work, Group chats will not work (neither as Director nor as participant)
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

For Mixers

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

Useful Tools

WebRTC Camera Resolution Scanner