mirror of
https://github.com/eliasstepanik/vdo.ninja.git
synced 2026-01-11 21:58:35 +00:00
v22.7 production release
This commit is contained in:
parent
2bf7451fbe
commit
a19f91597f
1243
comms.html
1243
comms.html
File diff suppressed because one or more lines are too long
@ -877,15 +877,12 @@
|
||||
<li>
|
||||
Some devices that use hardware encoding can experience video issues; switching to VP8 or VP9 as a <a target='_blank' title='Jump to the documentation' href='https://docs.vdo.ninja/viewers-settings/codec'>codec</a> may help.
|
||||
</li>
|
||||
<li>
|
||||
Audio may drop out in OBS Studio at random times, yet still appear active. Delete the browser source and re-create, or use the <a href="https://github.com/steveseguin/electroncapture">Electron Capture</a> app instead.
|
||||
</li>
|
||||
<br />
|
||||
<h4>
|
||||
<font style="color:#daad09;">Welcome to VDO Ninja! We've rebranded! Nothing else is changing and we're staying 100% free.</font>
|
||||
</h4>
|
||||
<br />
|
||||
Site updated October 2022. <a target="_blank" href="https://docs.vdo.ninja/releases/v21">v21 release notes</a>. If having new issues, the previous version <a href="https://vdo.ninja/v20/">is here</a>, and the <a href="https://vdo.ninja/beta/">upcoming next version is here</a>. Development <a target="_blank" href='https://updates.vdo.ninja/'>updates are here.</a>
|
||||
🚀🚀 Site updated November 18th, 2022 to v22. If having new sudden issues, please try clearing your browser's cache, including refreshing the cache within any OBS browser source. You can also still access the previous version, which <a href="https://vdo.ninja/v21/">is hosted here</a>. Development <a target="_blank" href='https://updates.vdo.ninja/'>updates are here.</a>
|
||||
<br />
|
||||
<br />
|
||||
<h3>
|
||||
@ -2223,7 +2220,7 @@
|
||||
|
||||
|
||||
var session = WebRTC.Media; // session is a required global variable if configuring manually. Run before loading main.js but after webrtc.js.
|
||||
session.version = "22.6c";
|
||||
session.version = "22.7"; // nov 18th
|
||||
session.streamID = session.generateStreamID(); // randomly generates a streamID for this session. You can set your own programmatically if needed
|
||||
|
||||
session.defaultPassword = "someEncryptionKey123"; // Change this password if self-deploying for added security/privacy
|
||||
|
||||
78
lib.js
78
lib.js
@ -3787,6 +3787,8 @@ function updateMixerRun(e=false){ // this is the main auto-mixing code. It's a
|
||||
}
|
||||
if (sceneBitrate){
|
||||
session.requestRateLimit(sceneBitrate, i);
|
||||
} else if ((session.screenShareBitrate!==false) && session.rpcs[i].screenShareState){ // session.screenShareBitrate is non-room
|
||||
session.requestRateLimit(session.screenShareBitrate, i); // well, screw that. Setting it to room quality.
|
||||
} else {
|
||||
session.requestRateLimit(-1, i);
|
||||
}
|
||||
@ -7767,13 +7769,13 @@ function processStats(UUID){
|
||||
session.rpcs[UUID].stats['Peer-to-Peer Connection'].remote_candidateType = stat.candidateType;
|
||||
if (stat.candidateType === "relay"){
|
||||
if ("relayProtocol" in stat){
|
||||
session.rpcs[UUID].stats['Peer-to-Peer Connection'].remote_relayProtocol = stat.relayProtocol;
|
||||
session.rpcs[UUID].stats['Peer-to-Peer Connection'].remote_relay_protocol = stat.relayProtocol;
|
||||
}
|
||||
if ("ip" in stat){session.rpcs[UUID].stats['Peer-to-Peer Connection'].remote_relay_IP = stat.ip;}
|
||||
} else {
|
||||
try {
|
||||
delete session.rpcs[UUID].stats['Peer-to-Peer Connection'].local_relayIP;
|
||||
delete session.rpcs[UUID].stats['Peer-to-Peer Connection'].local_relayProtocol;
|
||||
delete session.rpcs[UUID].stats['Peer-to-Peer Connection'].local_relay_IP;
|
||||
delete session.rpcs[UUID].stats['Peer-to-Peer Connection'].local_relay_protocol;
|
||||
} catch(e){}
|
||||
}
|
||||
|
||||
@ -7792,13 +7794,13 @@ function processStats(UUID){
|
||||
session.rpcs[UUID].stats['Peer-to-Peer Connection'].local_candidateType = stat.candidateType;
|
||||
if (stat.candidateType === "relay"){
|
||||
if ("relayProtocol" in stat){
|
||||
session.rpcs[UUID].stats['Peer-to-Peer Connection'].local_relayProtocol = stat.relayProtocol;
|
||||
session.rpcs[UUID].stats['Peer-to-Peer Connection'].local_relay_protocol = stat.relayProtocol;
|
||||
}
|
||||
if ("ip" in stat){session.rpcs[UUID].stats['Peer-to-Peer Connection'].local_relayIP = stat.ip;}
|
||||
if ("ip" in stat){session.rpcs[UUID].stats['Peer-to-Peer Connection'].local_relay_IP = stat.ip;}
|
||||
} else {
|
||||
try {
|
||||
delete session.rpcs[UUID].stats['Peer-to-Peer Connection'].local_relayIP;
|
||||
delete session.rpcs[UUID].stats['Peer-to-Peer Connection'].local_relayProtocol;
|
||||
delete session.rpcs[UUID].stats['Peer-to-Peer Connection'].local_relay_IP;
|
||||
delete session.rpcs[UUID].stats['Peer-to-Peer Connection'].local_relay_protocol;
|
||||
} catch(e){}
|
||||
}
|
||||
}
|
||||
@ -8236,7 +8238,7 @@ function printValues(obj) { // see: printViewStats
|
||||
stat = 'Packet Loss 📶';
|
||||
value = parseInt(parseFloat(value) * 10000) / 10000.0;
|
||||
}
|
||||
else if (key == 'local_relayIP') {
|
||||
else if (key == 'local_relay_IP') {
|
||||
value = "<a href='https://whatismyipaddress.com/ip/" + value + "' target='_blank'>" + value + "</a>";
|
||||
}
|
||||
else if (key == 'remote_relay_IP') {
|
||||
@ -8385,13 +8387,13 @@ function processMeshcastStats(UUID){
|
||||
session.rpcs[UUID].stats['Meshcast Connection'].remote_candidateType = stat.candidateType;
|
||||
if (stat.candidateType === "relay"){
|
||||
if ("relayProtocol" in stat){
|
||||
session.rpcs[UUID].stats['Meshcast Connection'].remote_relayProtocol = stat.relayProtocol;
|
||||
session.rpcs[UUID].stats['Meshcast Connection'].remote_relay_protocol = stat.relayProtocol;
|
||||
}
|
||||
if ("ip" in stat){session.rpcs[UUID].stats['Meshcast Connection'].remote_relay_IP = stat.ip;}
|
||||
} else {
|
||||
try {
|
||||
delete session.rpcs[UUID].stats['Meshcast Connection'].local_relayIP;
|
||||
delete session.rpcs[UUID].stats['Meshcast Connection'].local_relayProtocol;
|
||||
delete session.rpcs[UUID].stats['Meshcast Connection'].local_relay_IP;
|
||||
delete session.rpcs[UUID].stats['Meshcast Connection'].local_relay_protocol;
|
||||
} catch(e){}
|
||||
}
|
||||
|
||||
@ -8410,13 +8412,13 @@ function processMeshcastStats(UUID){
|
||||
session.rpcs[UUID].stats['Meshcast Connection'].local_candidateType = stat.candidateType;
|
||||
if (stat.candidateType === "relay"){
|
||||
if ("relayProtocol" in stat){
|
||||
session.rpcs[UUID].stats['Meshcast Connection'].local_relayProtocol = stat.relayProtocol;
|
||||
session.rpcs[UUID].stats['Meshcast Connection'].local_relay_protocol = stat.relayProtocol;
|
||||
}
|
||||
if ("ip" in stat){session.rpcs[UUID].stats['Meshcast Connection'].local_relayIP = stat.ip;}
|
||||
if ("ip" in stat){session.rpcs[UUID].stats['Meshcast Connection'].local_relay_IP = stat.ip;}
|
||||
} else {
|
||||
try {
|
||||
delete session.rpcs[UUID].stats['Meshcast Connection'].local_relayIP;
|
||||
delete session.rpcs[UUID].stats['Meshcast Connection'].local_relayProtocol;
|
||||
delete session.rpcs[UUID].stats['Meshcast Connection'].local_relay_IP;
|
||||
delete session.rpcs[UUID].stats['Meshcast Connection'].local_relay_protocol;
|
||||
} catch(e){}
|
||||
}
|
||||
}
|
||||
@ -8648,7 +8650,6 @@ function printMyStats(menu) { // see: setupStatsMenu
|
||||
if (document.querySelector("select#videoSource3")){
|
||||
var videoSelect = document.querySelector("select#videoSource3").options;
|
||||
if (videoSelect.length){
|
||||
log(videoSelect[videoSelect.selectedIndex].text);
|
||||
if (videoSelect[videoSelect.selectedIndex].text.startsWith("OBS-Camera")) { // OBS Virtualcam
|
||||
obscam = true;
|
||||
} else if (videoSelect[videoSelect.selectedIndex].text.startsWith("OBS Virtual Camera")) { // OBS Virtualcam
|
||||
@ -8681,18 +8682,25 @@ function printMyStats(menu) { // see: setupStatsMenu
|
||||
return;
|
||||
}
|
||||
|
||||
for (var key in obj) {
|
||||
var keys = Object.keys(obj);
|
||||
|
||||
keys.forEach(key=>{
|
||||
if (typeof obj[key] === "object") {
|
||||
try{
|
||||
var tmp = key;
|
||||
tmp = sanitizeChat((tmp));
|
||||
if (tmp === "info"){
|
||||
tmp = "Remote Peer Info";
|
||||
}
|
||||
menu.innerHTML += "<li><h2 title='" + tmp + "'>" + tmp + "</h2></li>"
|
||||
} catch(e){}
|
||||
printViewValues(obj[key]);
|
||||
menu.innerHTML += "<hr />";
|
||||
} else {
|
||||
|
||||
if (key.startsWith("_")){continue;}
|
||||
}
|
||||
});
|
||||
keys.forEach(key=>{
|
||||
if (typeof obj[key] !== "object") {
|
||||
if (key.startsWith("_")){return;}
|
||||
|
||||
var stat = sanitizeChat(key);
|
||||
var value = obj[key];
|
||||
@ -8700,13 +8708,13 @@ function printMyStats(menu) { // see: setupStatsMenu
|
||||
value = sanitizeChat((value));
|
||||
}
|
||||
|
||||
if (value === false){continue;}
|
||||
if (value === false){return;}
|
||||
|
||||
if (key == 'useragent') {
|
||||
value = "<span style='cursor: pointer;' onclick='copyFunction(this.innerText,event);' title='Copy this user-agent to the clipboard' style='cursor:pointer'>"+value+"</span>"
|
||||
}
|
||||
|
||||
if (key == 'local_relayIP') {
|
||||
if (key == 'local_relay_IP') {
|
||||
value = "<a href='https://whatismyipaddress.com/ip/" + value + "' target='_blank'>" + value + "</a>";
|
||||
}
|
||||
if (key == 'remote_relay_IP') {
|
||||
@ -8725,7 +8733,7 @@ function printMyStats(menu) { // see: setupStatsMenu
|
||||
|
||||
menu.innerHTML += "<li><span>" + stat + "</span><span>" + value + "</span></li>";
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
printViewValues(session.stats);
|
||||
menu.innerHTML += "<button onclick='session.forcePLI(null,event);' data-translate='send-keyframe-to-viewer'>Send Keyframe to Viewers</button>";
|
||||
@ -8964,12 +8972,12 @@ function updateLocalStats(){
|
||||
session.mc.stats.remote_relay_IP = stat.ip;
|
||||
}
|
||||
if ("relayProtocol" in stat) {
|
||||
session.mc.stats.remote_relayProtocol = stat.relayProtocol;
|
||||
session.mc.stats.remote_relay_protocol = stat.relayProtocol;
|
||||
}
|
||||
} else {
|
||||
try {
|
||||
delete session.mc.stats.remote_relay_IP;
|
||||
delete session.mc.stats.remote_relayProtocol;
|
||||
delete session.mc.stats.remote_relay_protocol;
|
||||
} catch(e){}
|
||||
}
|
||||
}
|
||||
@ -8979,15 +8987,15 @@ function updateLocalStats(){
|
||||
|
||||
if (stat.candidateType === "relay"){
|
||||
if ("ip" in stat) {
|
||||
session.mc.stats.local_relayIP = stat.ip;
|
||||
session.mc.stats.local_relay_IP = stat.ip;
|
||||
}
|
||||
if ("relayProtocol" in stat) {
|
||||
session.mc.stats.local_relayProtocol = stat.relayProtocol;
|
||||
session.mc.stats.local_relay_protocol = stat.relayProtocol;
|
||||
}
|
||||
} else {
|
||||
try {
|
||||
delete session.mc.stats.local_relayIP;
|
||||
delete session.mc.stats.local_relayProtocol;
|
||||
delete session.mc.stats.local_relay_IP;
|
||||
delete session.mc.stats.local_relay_protocol;
|
||||
} catch(e){}
|
||||
}
|
||||
|
||||
@ -9259,12 +9267,12 @@ function updateLocalStats(){
|
||||
session.pcs[UUID].stats.remote_relay_IP = stat.ip;
|
||||
}
|
||||
if ("relayProtocol" in stat) {
|
||||
session.pcs[UUID].stats.remote_relayProtocol = stat.relayProtocol;
|
||||
session.pcs[UUID].stats.remote_relay_protocol = stat.relayProtocol;
|
||||
}
|
||||
} else {
|
||||
try {
|
||||
delete session.pcs[UUID].stats.remote_relay_IP;
|
||||
delete session.pcs[UUID].stats.remote_relayProtocol;
|
||||
delete session.pcs[UUID].stats.remote_relay_protocol;
|
||||
} catch(e){}
|
||||
}
|
||||
}
|
||||
@ -9274,15 +9282,15 @@ function updateLocalStats(){
|
||||
|
||||
if (stat.candidateType === "relay"){
|
||||
if ("ip" in stat) {
|
||||
session.pcs[UUID].stats.local_relayIP = stat.ip;
|
||||
session.pcs[UUID].stats.local_relay_IP = stat.ip;
|
||||
}
|
||||
if ("relayProtocol" in stat) {
|
||||
session.pcs[UUID].stats.local_relayProtocol = stat.relayProtocol;
|
||||
session.pcs[UUID].stats.local_relay_protocol = stat.relayProtocol;
|
||||
}
|
||||
} else {
|
||||
try {
|
||||
delete session.pcs[UUID].stats.local_relayIP;
|
||||
delete session.pcs[UUID].stats.local_relayProtocol;
|
||||
delete session.pcs[UUID].stats.local_relay_IP;
|
||||
delete session.pcs[UUID].stats.local_relay_protocol;
|
||||
} catch(e){}
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user