+
@@ -944,7 +969,13 @@
- Mute microphone by default
+ Muted; guest can unmute
+
+
+
+
+
+ Muted; director can unmute
@@ -952,12 +983,6 @@
Guest joins with no camera
-
-
-
-
- Unmute by director only
-
@@ -967,8 +992,16 @@
-
-
+
+
+
+
+
+
+
+ Hide audio-only sources
+
+
@@ -984,29 +1017,46 @@
-
-
-
-
-
-
Hide audio-only sources
-
-
+
Show active speakers
+
+
+
+
+
+
+ Green background
+
+
+
+
+
+
+
+ Fade-in videos
+
+
-
@@ -1071,7 +1133,7 @@
mute guest
-
+
More scene options
@@ -1084,7 +1146,7 @@
mute in scene
-
+
S3
@@ -1096,7 +1158,7 @@
-
+
S6
@@ -1117,7 +1179,7 @@
Scene Stats
-
+
Additional controls
@@ -1126,12 +1188,12 @@
Highlight guest
-
+
hide guest
-
+
Deafen Guest
@@ -1173,7 +1235,7 @@
- 100
+ 100
@@ -1238,26 +1300,26 @@
mute in scene
-
-
+
+
S2
-
+
S3
-
+
S4
-
-
+
+
S5
-
+
S6
-
+
S7
@@ -1421,6 +1483,18 @@
Send
+
+
+
+ ×
+
+
Change room settings
+ Change room video quality: -kbps
+
+
+
+
+
Change guest settings
@@ -1492,7 +1566,12 @@
-
+
+
+
+
+
+
@@ -1551,80 +1630,93 @@
if (window.location.hostname.indexOf("www.obs.ninja") == 0) {
window.location = window.location.href.replace("www.obs.ninja","obs.ninja"); // the session.salt is domain specific; let's consolidate www as a result.
+ } else if (window.location.hostname.indexOf("www.vdo.ninja") == 0) {
+ window.location = window.location.href.replace("www.vdo.ninja","vdo.ninja"); // the session.salt is domain specific; let's consolidate www as a result.
}
- var session = WebRTC.Media; // session is a required global variable if configuring manually. Run before loading main.js but after webrtc.js.
- session.version = "17.2";
- session.streamID = session.generateStreamID(); // randomly generates a streamID for this session. You can set your own programmatically if needed
+ var session = WebRTC.Media; // session is a required global variable if configuring manually. Run before loading main.js but after webrtc.js.
+ session.version = "18.1";
+ session.streamID = session.generateStreamID(); // randomly generates a streamID for this session. You can set your own programmatically if needed
- session.defaultPassword = "someEncryptionKey123"; // Disabling improves compatibility and is helpful for debugging.
- session.salt = location.hostname; // used only if password is not == False.
+ session.defaultPassword = "someEncryptionKey123"; // Change this password if self-deploying for added security/privacy
+ session.salt = location.hostname; // used only if password is not == False. You can change to "session.salt = location.hostname+location.pathname;" for greater deployment isolation
- // session.configuration = {
- // iceServers: [
- // { urls: ["stun:stun.l.google.com:19302", "stun:stun4.l.google.com:19302"] }, // more than 4 stun+turn servers may cause issues
- // ],
- // sdpSemantics: 'unified-plan'
- // };
- // var turn = {};
- // turn.username = "steve";
- // turn.credential = "justtesting";
- // turn.urls = ["turn:turn.obs.ninja:443"]; // US CENTRAL
- // session.configuration.iceServers.push(turn);
- // turn = {};
- // turn.username = "steve";
- // turn.credential = "justtesting";
- // turn.urls = ["turn:turn2.obs.ninja:443"]; // US WEST
- // session.configuration.iceServers.push(turn);
+ // session.configuration = {
+ // iceServers: [
+ // { urls: ["stun:stun.l.google.com:19302", "stun:stun4.l.google.com:19302"] }, // more than 4 stun+turn servers may cause issues
+ // ],
+ // sdpSemantics: 'unified-plan'
+ // };
+ // var turn = {};
+ // turn.username = "steve";
+ // turn.credential = "justtesting";
+ // turn.urls = ["turn:turn.obs.ninja:443"]; // US CENTRAL
+ // session.configuration.iceServers.push(turn);
+ // turn = {};
+ // turn.username = "steve";
+ // turn.credential = "justtesting";
+ // turn.urls = ["turn:turn2.obs.ninja:443"]; // US WEST
+ // session.configuration.iceServers.push(turn);
- // session.configuration.iceTransportPolicy = "relay"; // uncomment to enable "&privacy" and force the TURN server
+ // session.configuration.iceTransportPolicy = "relay"; // uncomment to enable "&privacy" and force the TURN server
- ///// Different endpoints are available; each isolated from each other.
- // session.wss = "wss://wss13.obs.ninja:443"; // US-East (Default)
- // session.wss = "wss://apibackup.obs.ninja:443"; // US-West
- // session.wss = "wss://jp1wss.obs.ninja:443"; // Japan
- // session.wss = "wss://au1wss.obs.ninja:443"; // Australia
- // session.wss = "wss://de1wss.obs.ninja:443"; // Germany
- // session.wss = "wss://insecure.cam:444"; // China
-
-
- ///// The following lets you set the defaults
+ ///// Different officially hosted handshake endpoints are available; each isolated from each other.
+ // session.wss = "wss://wss13.obs.ninja:443"; // US-East (Default)
+ // session.wss = "wss://apibackup.obs.ninja:443"; // US-West
+ // session.wss = "wss://jp1wss.obs.ninja:443"; // Japan
+ // session.wss = "wss://au1wss.obs.ninja:443"; // Australia
+ // session.wss = "wss://de1wss.obs.ninja:443"; // Germany
+ // session.wss = "wss://insecure.cam:444"; // China
+ //////
- // session.webcamonly // true,false
- // session.stereo // 0,1,2,3
- // session.audiobitrate // int in kbps
- // session.view // "xxxx"
- // session.remote
- // session.optimize
- // session.disableOBS
- // session.audio
- // session.video
- // session.forceios
- // session.nocursor
- // session.codec
- // session.scale
- // session.bitrate // int in kbps
- // session.totalRoomBitrate = 500; // int, kbps
- // session.height // int
- // session.width // int
- // session.quality // int
- // session.sink
- // session.offsetChannel // int
- // session.audioChannels // int
- // session.security
- // session.framerate // int
- // session.sync
- // session.buffer // int in milliseconds
- // session.roomid // "yyyy"
- // session.scene
- // session.title // "zzzz"
-
+ /// If wanting to fully-self-host, uncomment the following and deploy your own websocket server; good for air-gapped deployments
+ // session.wss = "wss://wss.contribute.cam:443"; // https://github.com/steveseguin/websocket_server
+ // session.pie=true;
+ //////
+
+ /////// Or you can use piesocket.com if you wish to have a basic free websocket server hosted for you by a third-party
+ //session.pie = true; // Set to true to have Piesocket.com
+ //var apiKey = "ZCu96UFf9ezeQeClK7BOCkq6Q0x0lxWAPJcgxjz5"; // GET YOUR OWN API KEY at piesocket.com, as using this one is a privacy hazard.
+ //session.wss = "wss://us-nyc-1.websocket.me/v3/1?api_key="+apiKey;
+ ////////////
+
+ ///// The following lets you set the defaults
+
+ // session.webcamonly // true,false
+ // session.stereo // 0,1,2,3
+ // session.audiobitrate // int in kbps
+ // session.view // "xxxx"
+ // session.remote
+ // session.optimize
+ // session.disableOBS
+ // session.audio
+ // session.video
+ // session.forceios
+ // session.nocursor
+ // session.codec // default codec; maybe h264 is useful? the default is up to the browser normally
+ // session.scale
+ // session.bitrate // int in kbps -- you can set the default max target bitrate here
+ // session.totalRoomBitrate = 500; // int, kbps -- you can set the default quality of the group room here
+ // session.height // int
+ // session.width // int
+ // session.quality // int -- if setting == 0, then than the default resolution will be 1080p, instead of 720p
+ // session.sink
+ // session.offsetChannel // int
+ // session.audioChannels // int
+ // session.security
+ // session.framerate // int
+ // session.sync
+ // session.buffer // int in milliseconds
+ // session.roomid // "yyyy"
+ // session.scene
+ // session.title // "zzzz"
+
-
+