mirror of
https://github.com/eliasstepanik/vdo.ninja.git
synced 2026-01-11 21:58:35 +00:00
commit
771b189b77
84
codecs.html
Normal file
84
codecs.html
Normal file
@ -0,0 +1,84 @@
|
||||
<html>
|
||||
<body>
|
||||
<div id="output"></div>
|
||||
<script>
|
||||
|
||||
function getSupportedMimeTypes(media, types, codecs) {
|
||||
const isSupported = MediaRecorder.isTypeSupported;
|
||||
const supported = [];
|
||||
types.forEach((type) => {
|
||||
const mimeType = `${media}/${type}`;
|
||||
acodecs.forEach((codec2) => {
|
||||
codecs.forEach((codec) => [
|
||||
mimeType+';codecs="'+codec+', '+codec2+'"',
|
||||
mimeType+';codecs:"'+codec+', '+codec2+'"',
|
||||
mimeType+';codecs="'+codec.toUpperCase()+', '+codec2.toUpperCase()+'"',
|
||||
mimeType+';codecs:"'+codec.toUpperCase()+', '+codec2.toUpperCase()+'"'
|
||||
].forEach(variation => {
|
||||
if (isSupported(variation)){
|
||||
try {
|
||||
options.mimeType = variation;
|
||||
new MediaRecorder(stream, options);
|
||||
|
||||
mediaSource.addSourceBuffer(variation);
|
||||
|
||||
supported.push(variation);
|
||||
} catch(e){
|
||||
console.error(e);
|
||||
}
|
||||
}
|
||||
}));
|
||||
});
|
||||
if (isSupported(mimeType))
|
||||
supported.push(mimeType);
|
||||
});
|
||||
return supported;
|
||||
};
|
||||
|
||||
|
||||
var options = {};
|
||||
options.videoBitsPerSecond = parseInt(2500 * 1024);
|
||||
|
||||
const videoTypes = ["webm", "ogg", "mp4", "x-matroska"];
|
||||
const audioTypes = ["webm", "ogg", "mp3", "x-matroska"];
|
||||
const codecs = ["vp9", "vp9.0", "vp8", "vp8.0", "avc1", "av1", "h265", "h.265", "h264", "h.264"]
|
||||
const acodecs = ["opus", "pcm", "aac", "mpeg", "mp4a", "mp3", "vorbis"];
|
||||
|
||||
document.getElementById("output").innerHTML= "";
|
||||
var supportedVideos = null;
|
||||
var supportedAudios = null;
|
||||
// Usage ------------------
|
||||
var stream = null;
|
||||
var mediaSource = new MediaSource();
|
||||
|
||||
var video = document.createElement("video");
|
||||
video.autoplay = true;
|
||||
video.muted = false;
|
||||
video.setAttribute("playsinline","");
|
||||
video.src = URL.createObjectURL(mediaSource);
|
||||
|
||||
mediaSource.addEventListener('sourceopen', sourceOpen);
|
||||
console.log("1");
|
||||
function sourceOpen(e) {
|
||||
console.log("2");
|
||||
navigator.mediaDevices.getUserMedia({audio:true,video:true}).then(function(s) {
|
||||
stream = s;
|
||||
|
||||
supportedVideos = getSupportedMimeTypes("video", videoTypes, codecs);
|
||||
supportedAudios = getSupportedMimeTypes("audio", audioTypes, codecs);
|
||||
|
||||
for (var i=0;i<supportedVideos.length;i++){
|
||||
document.getElementById("output").innerHTML += supportedVideos[i]+"<br/>";
|
||||
}
|
||||
}).catch(function(err) {
|
||||
/* handle the error */
|
||||
});
|
||||
}
|
||||
|
||||
//for (var i=0;i<supportedAudios.length;i++){
|
||||
//document.getElementById("output").innerHTML += supportedAudios[i]+"<br/>";
|
||||
//}
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@ -548,6 +548,7 @@ function addUrlToHistory(url){
|
||||
|
||||
function modURL(){
|
||||
var url = document.getElementById('changeText').value;
|
||||
url = url.trim();
|
||||
if (url.startsWith("obs.ninja")){
|
||||
url = "https://"+url;
|
||||
} else if (url.startsWith("youtube.com")){
|
||||
|
||||
133
examples/addtoscene.html
Normal file
133
examples/addtoscene.html
Normal file
@ -0,0 +1,133 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>IFRAME Example</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
|
||||
<meta content="text/html;charset=utf-8" http-equiv="Content-Type" />
|
||||
<style>
|
||||
body{
|
||||
padding:0;
|
||||
margin:0;
|
||||
background-color: #0000;
|
||||
}
|
||||
iframe {
|
||||
border:0;
|
||||
margin:0;
|
||||
padding:0;
|
||||
display:block;
|
||||
width:100%;
|
||||
height:90%
|
||||
}
|
||||
#viewlink {
|
||||
width:400px;
|
||||
}
|
||||
#container {
|
||||
display:block;
|
||||
padding:0px;
|
||||
padding:0px;
|
||||
}
|
||||
input{
|
||||
padding:5px;
|
||||
margin:5px;
|
||||
}
|
||||
button{
|
||||
padding:5px;
|
||||
margin:5px;
|
||||
}
|
||||
</style>
|
||||
<script>
|
||||
|
||||
function loadIframe(){
|
||||
|
||||
document.getElementById("container").innerHTML = "";
|
||||
|
||||
|
||||
|
||||
var iframe = document.createElement("iframe");
|
||||
var iframeContainer = document.createElement("div");
|
||||
iframe.allow = "autoplay;camera;microphone;fullscreen;picture-in-picture;display-capture;";
|
||||
|
||||
iframe.src = "../?dir=teststeve123&password=1234";
|
||||
iframeContainer.appendChild(iframe);
|
||||
document.getElementById("container").appendChild(iframeContainer);
|
||||
|
||||
var listOfStreamIDs = [
|
||||
"1234_pov",
|
||||
"2345_pov",
|
||||
"3456_pov",
|
||||
"4567_pov",
|
||||
"5678_pov"
|
||||
];
|
||||
|
||||
|
||||
for (var i=0;i<listOfStreamIDs.length;i++){
|
||||
|
||||
var button = document.createElement("a");
|
||||
button.innerHTML = "Invite "+listOfStreamIDs[i];
|
||||
button.target = "_blank";
|
||||
button.href = "../?room=teststeve123&password=1234&broadcast&transparent&autostart&nmb&nvb&gain=0&webcam&l=stevetest&push="+listOfStreamIDs[i]+"_pov";
|
||||
iframeContainer.appendChild(button);
|
||||
|
||||
var button = document.createElement("button");
|
||||
button.innerHTML = "TOGGLE "+listOfStreamIDs[i];
|
||||
button.dataset.sid = listOfStreamIDs[i];
|
||||
button.onclick = function(){
|
||||
iframe.contentWindow.postMessage({
|
||||
action: "addScene",
|
||||
value: "1",
|
||||
target: listOfStreamIDs[i],
|
||||
}, '*');
|
||||
iframe.contentWindow.postMessage({
|
||||
action: "mic",
|
||||
value: true,
|
||||
target: listOfStreamIDs[i],
|
||||
}, '*');
|
||||
|
||||
}; // target can be a stream ID or * for all.
|
||||
iframeContainer.appendChild(button);
|
||||
}
|
||||
|
||||
|
||||
|
||||
//////////// LISTEN FOR EVENTS
|
||||
|
||||
var eventMethod = window.addEventListener ? "addEventListener" : "attachEvent";
|
||||
var eventer = window[eventMethod];
|
||||
var messageEvent = eventMethod === "attachEvent" ? "onmessage" : "message";
|
||||
|
||||
|
||||
/// If you have a routing system setup, you could have just one global listener for all iframes instead.
|
||||
|
||||
eventer(messageEvent, function (e) {
|
||||
if (e.source != iframe.contentWindow){return} // reject messages send from other iframes
|
||||
|
||||
|
||||
if ("action" in e.data){
|
||||
var outputWindow = document.createElement("div");
|
||||
outputWindow.innerHTML = "event: "+e.data.action+"<br />";
|
||||
outputWindow.style.border="1px dotted black";
|
||||
iframeContainer.appendChild(outputWindow);
|
||||
}
|
||||
|
||||
|
||||
if ("streamIDs" in e.data){
|
||||
var outputWindow = document.createElement("div");
|
||||
outputWindow.innerHTML = "streamID list:<br />";
|
||||
for (var key in e.data.streamIDs) {
|
||||
outputWindow.innerHTML += "streamID: " + key + ", label:"+e.data.streamIDs[key] + "\n";
|
||||
}
|
||||
outputWindow.style.border="1px dotted black";
|
||||
iframeContainer.appendChild(outputWindow);
|
||||
}
|
||||
});
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
|
||||
<div id="container">
|
||||
<button onclick="loadIframe();">Go to Directors Room</button>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@ -18,6 +18,8 @@ function toHexString(byteArray){
|
||||
}).join('');
|
||||
}
|
||||
var password = prompt("Please enter the password");
|
||||
password = password.trim();
|
||||
password = encodeURIComponent(password);
|
||||
|
||||
generateHash(password + location.hostname, 4).then(function(hash) { // million to one error.
|
||||
alert("hash value: "+hash)
|
||||
|
||||
@ -95,7 +95,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<h2><a href='midi.html'>midi</a></h2>
|
||||
<h2><a href='../midi.html'>midi</a></h2>
|
||||
<div class="media">
|
||||
<a href='https://www.youtube.com/watch?v=rnZ8HM9FL4I' class="youtube">
|
||||
<img src="youtube.svg" />
|
||||
|
||||
451
examples/mixer.html
Normal file
451
examples/mixer.html
Normal file
@ -0,0 +1,451 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>IFRAME Example</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
|
||||
<meta content="text/html;charset=utf-8" http-equiv="Content-Type" />
|
||||
<style>
|
||||
body{
|
||||
padding:0;
|
||||
margin:0;
|
||||
background-color: #0000;
|
||||
}
|
||||
iframe {
|
||||
border:0;
|
||||
padding:0;
|
||||
display:block;
|
||||
width:1280px;
|
||||
height:720px;
|
||||
background-color: #111;
|
||||
}
|
||||
#viewlink {
|
||||
width:400px;
|
||||
}
|
||||
#container {
|
||||
display:block;
|
||||
padding:0px;
|
||||
}
|
||||
input{
|
||||
padding:5px;
|
||||
margin:5px;
|
||||
}
|
||||
button{
|
||||
padding:5px;
|
||||
margin:5px;
|
||||
}
|
||||
canvas{
|
||||
padding:10px;
|
||||
cursor:pointer;
|
||||
}
|
||||
.thing {
|
||||
width: 100px;
|
||||
height: 2em;
|
||||
padding: 0.5em;
|
||||
margin: 0.5em;
|
||||
background: rgba(0,0,0,0.8);
|
||||
color: white;
|
||||
font-family: sans-serif;
|
||||
cursor: grab;
|
||||
}
|
||||
.empty {
|
||||
width: 100px;
|
||||
height: 2em;
|
||||
padding: 0.5em;
|
||||
margin: 0.5em;
|
||||
background: rgba(0,0,0,0.8);
|
||||
color: white;
|
||||
font-family: sans-serif;
|
||||
user-select: none;
|
||||
}
|
||||
.col {
|
||||
width: 130px;
|
||||
height: 450px;
|
||||
padding: 1em;
|
||||
border: 1px solid;
|
||||
border-radius: 5px;
|
||||
position: relative;
|
||||
float: left;
|
||||
}
|
||||
|
||||
</style>
|
||||
<script>
|
||||
|
||||
function allowDrop(ev) {
|
||||
ev.preventDefault();
|
||||
}
|
||||
|
||||
function swapNodes(n1, n2) {
|
||||
var p1 = n1.parentNode;
|
||||
var p2 = n2.parentNode;
|
||||
var i1, i2;
|
||||
|
||||
if ( !p1 || !p2 || p1.isEqualNode(n2) || p2.isEqualNode(n1) ) return;
|
||||
|
||||
for (var i = 0; i < p1.children.length; i++) {
|
||||
if (p1.children[i].isEqualNode(n1)) {
|
||||
i1 = i;
|
||||
}
|
||||
}
|
||||
for (var i = 0; i < p2.children.length; i++) {
|
||||
if (p2.children[i].isEqualNode(n2)) {
|
||||
i2 = i;
|
||||
}
|
||||
}
|
||||
|
||||
if ( p1.isEqualNode(p2) && i1 < i2 ) {
|
||||
i2++;
|
||||
}
|
||||
p1.insertBefore(n2, p1.children[i1]);
|
||||
p2.insertBefore(n1, p2.children[i2]);
|
||||
}
|
||||
|
||||
function drag(ev) {
|
||||
ev.dataTransfer.setData("text", ev.target.id);
|
||||
}
|
||||
|
||||
function drop(ev) {
|
||||
ev.preventDefault();
|
||||
var data = ev.dataTransfer.getData("text");
|
||||
var origThing = document.getElementById(data);
|
||||
console.log(origThing);
|
||||
console.log(data);
|
||||
console.log(ev);
|
||||
//var newThing = origThing.cloneNode(true);
|
||||
if (ev.target.classList.contains("thing")){
|
||||
//ev.target.parentNode.insertBefore(origThing, ev.target.nextSibling);
|
||||
//elem.parentNode.insertBefore(elem, elem.parentNode.firstChild);
|
||||
swapNodes( ev.target, origThing);
|
||||
var slot = origThing.dataset.slot;
|
||||
origThing.dataset.slot = ev.target.dataset.slot;
|
||||
ev.target.dataset.slot = slot;
|
||||
|
||||
} else if (ev.target.classList.contains("empty")){
|
||||
ev.target.parentNode.insertBefore(origThing, ev.target.nextSibling);
|
||||
origThing.dataset.slot = ev.target.dataset.slot;
|
||||
ev.target.style.display = "none";
|
||||
}
|
||||
origThing.style.backgroundColor = ev.target.style.backgroundColor;
|
||||
|
||||
|
||||
}
|
||||
|
||||
function dropRemove(ev) {
|
||||
ev.preventDefault();
|
||||
var data = ev.dataTransfer.getData("text");
|
||||
var origThing = document.getElementById(data);
|
||||
if (origThing.dataset.slot){
|
||||
document.querySelector(".empty[data-slot='"+origThing.dataset.slot+"']").style.display = "block";
|
||||
delete origThing.dataset.slot;
|
||||
}
|
||||
origThing.style.backgroundColor = "#000";
|
||||
if (ev.target.classList.contains("thing")){
|
||||
ev.target.parentNode.insertBefore(origThing, ev.target.nextSibling);
|
||||
} else {
|
||||
ev.target.appendChild(origThing);
|
||||
}
|
||||
document.getElementById("col2").appendChild(document.getElementById("delete"));
|
||||
}
|
||||
|
||||
var streamIDs = [];
|
||||
|
||||
function updateList(){
|
||||
//<div id="col2" ondrop="dropRemove(event)" ondragover="allowDrop(event)">
|
||||
// <div class="thing" draggable="true" ondragstart="drag(event)" id="thing4">THING 4</div>
|
||||
// <div class="thing" draggable="true" ondragstart="drag(event)" id="thing1">THING 1</div>
|
||||
//</div>
|
||||
for (var i=0;i<streamIDs.length;i++){
|
||||
if (!document.getElementById("sid_"+streamIDs[i])){
|
||||
var thing = document.createElement("div");
|
||||
thing.draggable = true;
|
||||
thing.classList.add("thing");
|
||||
thing.addEventListener("dragstart", drag);
|
||||
thing.dataset.sid = streamIDs[i];
|
||||
thing.id = "sid_"+streamIDs[i];
|
||||
thing.innerText = streamIDs[i];
|
||||
document.getElementById("col2").appendChild(thing);
|
||||
}
|
||||
}
|
||||
|
||||
document.getElementById("col2").appendChild(document.getElementById("delete"));
|
||||
}
|
||||
|
||||
function loadIframe(){
|
||||
|
||||
document.getElementById("container").innerHTML = "";
|
||||
|
||||
var iframe = document.createElement("iframe");
|
||||
var iframeContainer = document.createElement("div");
|
||||
iframe.allow = "autoplay;camera;microphone;fullscreen;picture-in-picture;display-capture;";
|
||||
|
||||
var promptRoom = prompt("Enter a room name to use");
|
||||
if (promptRoom){
|
||||
var iframesrc = "https://vdo.ninja/?transparent&cleanoutput&manual&scene=manualtestscene&room="+promptRoom;
|
||||
} else {
|
||||
promptRoom = "testroom123312";
|
||||
var iframesrc = "https://vdo.ninja/?transparent&cleanoutput&manual&scene=manualtestscene&room="+promptRoom;
|
||||
}
|
||||
|
||||
function activate(){
|
||||
console.log(this.dataset.layout);
|
||||
var layout = JSON.parse(this.dataset.layout);
|
||||
|
||||
iframe.contentWindow.postMessage({"target":"*", "remove":true}, '*');
|
||||
|
||||
|
||||
|
||||
for (var i=0;i<layout.length;i++){
|
||||
|
||||
var stream = document.querySelector(".thing[data-slot='"+(i+1)+"'");
|
||||
if (!stream){continue;}
|
||||
|
||||
var x = layout[i].x|| 0;
|
||||
var y = layout[i].y || 0;
|
||||
var w = layout[i].w || 0;
|
||||
var h = layout[i].h || 0;
|
||||
var cover = layout[i].cover || false;
|
||||
|
||||
if (!(w && h)){continue;}
|
||||
|
||||
x = x + "%";
|
||||
y = y + "%";
|
||||
w = w + "%";
|
||||
h = h + "%";
|
||||
|
||||
if (cover){
|
||||
cover = "object-fit:cover;";
|
||||
} else {
|
||||
cover = "";
|
||||
}
|
||||
|
||||
iframe.contentWindow.postMessage({"target":stream.dataset.sid, "add":true, "settings":{"style": "width:"+w+";height:"+h+";position:absolute;left:"+x+";top:"+y+";display:block;"+cover}}, '*');
|
||||
}
|
||||
}
|
||||
|
||||
var button = document.createElement("button");
|
||||
button.innerHTML = "Refresh list";
|
||||
button.onclick = function(){iframe.contentWindow.postMessage({"getStreamIDs":true}, '*');};
|
||||
button.style.display = "block";
|
||||
document.getElementById("sources").appendChild(button);
|
||||
|
||||
var a = document.createElement("a");
|
||||
a.innerHTML = "Invite Guest Link";
|
||||
a.href = "https://vdo.ninja/?room="+promptRoom+"&broadcast";
|
||||
a.target = "_blank";
|
||||
document.getElementById("sources").appendChild(a);
|
||||
|
||||
var colors = [
|
||||
"#00AAAA",
|
||||
"#FF0000",
|
||||
"#0000FF",
|
||||
"#AA00AA",
|
||||
"#00FF00",
|
||||
"#AAAA00"
|
||||
];
|
||||
|
||||
|
||||
var slots = document.getElementById("col1").children;
|
||||
for (var i=0;i<slots.length;i++){
|
||||
slots[i].style.backgroundColor = colors[i];
|
||||
}
|
||||
|
||||
|
||||
function drawLayout(layout){
|
||||
for (var i=0;i<layout.length;i++){
|
||||
layout[i].i = i;
|
||||
}
|
||||
|
||||
function compare( a, b ) { // sorts layout based on z-index.
|
||||
var aa = a.z || 0;
|
||||
var bb = b.z || 0;
|
||||
if ( aa > bb ){
|
||||
return 1;
|
||||
}
|
||||
if ( aa < bb ){
|
||||
return -1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
layout.sort(compare);
|
||||
|
||||
|
||||
|
||||
|
||||
var canvas = document.createElement('canvas');
|
||||
canvas.width="80";
|
||||
canvas.height="45";
|
||||
var ctx = canvas.getContext('2d');
|
||||
document.getElementById("container").appendChild(canvas);
|
||||
ctx.beginPath();
|
||||
ctx.rect(0, 0, 80, 45);
|
||||
ctx.fillStyle = "#000";
|
||||
ctx.fill();
|
||||
|
||||
for (var i=0;i<layout.length;i++){
|
||||
|
||||
ctx.fillStyle = colors[layout[i].i];
|
||||
ctx.lineWidth = 3;
|
||||
var x = layout[i].x*0.8 || 0;
|
||||
var y = layout[i].y*0.45 || 0;
|
||||
var w = layout[i].w*0.8 || 0;
|
||||
var h = layout[i].h*0.45 || 0;
|
||||
|
||||
ctx.beginPath();
|
||||
ctx.rect(x, y, w, h);
|
||||
ctx.fill();
|
||||
}
|
||||
|
||||
canvas.dataset.layout = JSON.stringify(layout);
|
||||
canvas.onclick = activate;
|
||||
}
|
||||
|
||||
var data = [
|
||||
{x:0, y:0, w:100, h:100}
|
||||
];
|
||||
drawLayout(data);
|
||||
|
||||
var data = [
|
||||
{x:0, y:0, w:0, h:0},
|
||||
{x:0, y:0, w:100, h:100, cover:true}
|
||||
];
|
||||
drawLayout(data);
|
||||
|
||||
var data = [
|
||||
{x:0, y:25, w:50, h:50, cover:true},
|
||||
{x:50, y:25, w:50, h:50, cover:true}
|
||||
];
|
||||
drawLayout(data);
|
||||
|
||||
|
||||
var data = [
|
||||
{x:70, y:70, w:30, h:30, z:1, cover:false},
|
||||
{x:0, y:0, w:100, h:100,z:0, cover:true}
|
||||
];
|
||||
drawLayout(data);
|
||||
|
||||
var data = [
|
||||
{x:0, y:0, w:100, h:100,z:0, cover:true},
|
||||
{x:70, y:70, w:30, h:30, z:1, cover:false}
|
||||
];
|
||||
drawLayout(data);
|
||||
|
||||
var data = [
|
||||
{x:0, y:0, w:20, h:20, z:1, cover:false},
|
||||
{x:0, y:0, w:100, h:100,z:0, cover:true}
|
||||
];
|
||||
drawLayout(data);
|
||||
|
||||
var data = [
|
||||
{x:0, y:0, w:50, h:50},
|
||||
{x:50, y:0, w:50, h:50},
|
||||
{x:0, y:50, w:50, h:50},
|
||||
{x:50, y:50, w:50, h:50}
|
||||
];
|
||||
drawLayout(data);
|
||||
|
||||
var data = [
|
||||
{x:0, y:16.667, w:66.667, h:66.667},
|
||||
{x:66.667, y:0, w:33.333, h:33.333},
|
||||
{x:66.667, y:33.333, w:33.333, h:33.333},
|
||||
{x:66.667, y:66.667, w:33.333, h:33.333}
|
||||
];
|
||||
drawLayout(data);
|
||||
|
||||
var data = [
|
||||
{x:66.667, y:0, w:33.333, h:33.333},
|
||||
{x:0, y:16.667, w:66.667, h:66.667},
|
||||
{x:66.667, y:33.333, w:33.333, h:33.333},
|
||||
{x:66.667, y:66.667, w:33.333, h:33.333}
|
||||
];
|
||||
drawLayout(data);
|
||||
|
||||
var data = [
|
||||
{x:0, y:0, w:0, h:0},
|
||||
{},
|
||||
{x:0, y:0, w:100, h:100}
|
||||
];
|
||||
drawLayout(data);
|
||||
|
||||
var data = [
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{x:0, y:0, w:100, h:100}
|
||||
];
|
||||
drawLayout(data);
|
||||
|
||||
var data = [
|
||||
{},
|
||||
{},
|
||||
{x:70, y:70, w:30, h:30, z:1, cover:false},
|
||||
{x:0, y:0, w:100, h:100,z:0, cover:true}
|
||||
];
|
||||
drawLayout(data);
|
||||
|
||||
var data = [
|
||||
{},
|
||||
{},
|
||||
{x:0, y:25, w:50, h:50, cover:true},
|
||||
{x:50, y:25, w:50, h:50, cover:true}
|
||||
];
|
||||
drawLayout(data);
|
||||
|
||||
|
||||
iframe.src = iframesrc;
|
||||
iframeContainer.appendChild(iframe);
|
||||
document.getElementById("container").appendChild(iframeContainer);
|
||||
|
||||
|
||||
//////////// LISTEN FOR EVENTS
|
||||
|
||||
var eventMethod = window.addEventListener ? "addEventListener" : "attachEvent";
|
||||
var eventer = window[eventMethod];
|
||||
var messageEvent = eventMethod === "attachEvent" ? "onmessage" : "message";
|
||||
|
||||
|
||||
/// If you have a routing system setup, you could have just one global listener for all iframes instead.
|
||||
|
||||
eventer(messageEvent, function (e) {
|
||||
if (e.source != iframe.contentWindow){return} // reject messages send from other iframes
|
||||
|
||||
|
||||
if ("action" in e.data){
|
||||
var outputWindow = document.createElement("div");
|
||||
outputWindow.innerHTML = "event: "+e.data.action+"<br />";
|
||||
outputWindow.style.border="1px dotted black";
|
||||
iframeContainer.appendChild(outputWindow);
|
||||
|
||||
if (e.data.action === "new-view-connection"){
|
||||
iframe.contentWindow.postMessage({"getStreamIDs":true}, '*');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if ("streamIDs" in e.data){
|
||||
streamIDs = [];
|
||||
for (var key in e.data.streamIDs){
|
||||
streamIDs.push(key);
|
||||
}
|
||||
updateList();
|
||||
console.log(streamIDs);
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body onload="loadIframe();">
|
||||
<div class="col" id="sources">
|
||||
<div id="col2" ondrop="dropRemove(event)" ondragover="allowDrop(event)">
|
||||
<div class="thing" draggable="false" id="delete" style="background-color:rgb(96 9 9);">REMOVE</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col" id="col1" ondrop="drop(event)" ondragover="allowDrop(event)">
|
||||
<div class="empty" data-slot="1">SLOT 1</div>
|
||||
<div class="empty" data-slot="2">SLOT 2</div>
|
||||
<div class="empty" data-slot="3">SLOT 3</div>
|
||||
<div class="empty" data-slot="4">SLOT 4</div>
|
||||
</div>
|
||||
<div id="container">
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
147
examples/mobiledirector.css
Normal file
147
examples/mobiledirector.css
Normal file
@ -0,0 +1,147 @@
|
||||
body{
|
||||
zoom: 75%;
|
||||
}
|
||||
button[data-action-type='solo-chat'] {
|
||||
display:none! important;
|
||||
}
|
||||
|
||||
button[data-action-type] {
|
||||
padding: 20px 10px;
|
||||
}
|
||||
|
||||
#controlButtons{
|
||||
display:none! important;
|
||||
}
|
||||
|
||||
button[data-cluster='2'] {
|
||||
display:none! important;
|
||||
}
|
||||
|
||||
button[data-action-type='solo-video'] {
|
||||
display:unset!important;
|
||||
visibility: visible;
|
||||
width:unset;
|
||||
height:unset;
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
div > a.soloLink{
|
||||
display:none! important;
|
||||
}
|
||||
|
||||
div.shift{
|
||||
display:none! important;
|
||||
}
|
||||
|
||||
div.streamID{
|
||||
display:none! important;
|
||||
}
|
||||
|
||||
button[data-action-type='forward'] {
|
||||
display:none! important;
|
||||
}
|
||||
|
||||
button[data-action-type='direct-chat'] {
|
||||
display:none! important;
|
||||
}
|
||||
|
||||
button[data-action-type='hangup'] {
|
||||
display:none! important;
|
||||
}
|
||||
|
||||
button[data-action-type='solo-chat'] {
|
||||
display:none! important;
|
||||
}
|
||||
|
||||
button[data-action-type='solo-chat'] {
|
||||
display:none! important;
|
||||
}
|
||||
|
||||
button[data-cluster='1'] {
|
||||
display:none! important;
|
||||
}
|
||||
|
||||
|
||||
button[data-action-type='recorder-local'] {
|
||||
display:none! important;
|
||||
}
|
||||
span[data-action-type='ordering'] {
|
||||
display:none! important;
|
||||
}
|
||||
button[data-action-type='open-file-share'] {
|
||||
display:none! important;
|
||||
}
|
||||
|
||||
button[data-action-type='add-channel']{
|
||||
display:none! important;
|
||||
}
|
||||
button[data-action-type='toggle-remote-speaker']{
|
||||
display:none! important;
|
||||
}
|
||||
button[data-action-type='toggle-remote-display']{
|
||||
display:none! important;
|
||||
}
|
||||
button[data-action-type='hide-guest']{
|
||||
display:none! important;
|
||||
}
|
||||
button[data-action-type='create-timer']{
|
||||
display:none! important;
|
||||
}
|
||||
button[data-action-type='change-url']{
|
||||
display:none! important;
|
||||
}
|
||||
button[data-action-type='change-params']{
|
||||
display:none! important;
|
||||
}
|
||||
span[data-action-type='change-quality']{
|
||||
display:none! important;
|
||||
}
|
||||
|
||||
span[data-action-type='sceneCluster2']{
|
||||
display:none! important;
|
||||
}
|
||||
span[data-action-type='sceneCluster1']{
|
||||
display:none! important;
|
||||
}
|
||||
|
||||
.orderspan{
|
||||
display:none! important;
|
||||
}
|
||||
#roomHeader{
|
||||
display:none! important;
|
||||
}
|
||||
.directorContainer {
|
||||
display:none!important;
|
||||
}
|
||||
|
||||
.hideDropMenu{
|
||||
display:none!important;
|
||||
}
|
||||
|
||||
#header{
|
||||
display:none!important;
|
||||
}
|
||||
body {
|
||||
background-color: #000;
|
||||
}
|
||||
|
||||
button[class="pull-right"]{
|
||||
display:none! important;
|
||||
}
|
||||
|
||||
div#guestFeeds {
|
||||
padding: 1px!important;
|
||||
margin: 1px!important;
|
||||
}
|
||||
div[class="vidcon directorMargins"] {
|
||||
padding: 1px!important;
|
||||
margin: 1px!important;
|
||||
width: 260px;
|
||||
}
|
||||
button[data-action-type]{
|
||||
margin: 1px!important;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
11
examples/nes.min.css
vendored
Normal file
11
examples/nes.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
477
examples/remoteapi.html
Normal file
477
examples/remoteapi.html
Normal file
@ -0,0 +1,477 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8"/>
|
||||
<link href="https://fonts.googleapis.com/css?family=Press+Start+2P" rel="stylesheet">
|
||||
<link href="./nes.min.css" rel="stylesheet" />
|
||||
<style>
|
||||
html, body, pre, code, kbd, samp {
|
||||
font-family:"Press Start 2P";
|
||||
}
|
||||
|
||||
body{
|
||||
margin:1%;
|
||||
border:0;
|
||||
background-image: linear-gradient(to left, #e1c5d5, #ddc5da, #d8c6e0, #d1c7e5, #c8c9e9, #c1cded, #bad2f0, #b4d6f2, #b1ddf3, #b1e4f3, #b4eaf0, #bbf0ed);
|
||||
width:100%;
|
||||
height:100%;
|
||||
}
|
||||
|
||||
button {
|
||||
margin:10px 3px;
|
||||
}
|
||||
|
||||
button, input, optgroup, select, textarea {
|
||||
font-family: inherit;
|
||||
font-size: inherit;
|
||||
line-height: inherit;
|
||||
padding: 8px 12px;
|
||||
}
|
||||
|
||||
button:active{
|
||||
background-color:#BBB;
|
||||
}
|
||||
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div id="header"></div>
|
||||
<div id="target_self"></div>
|
||||
<div id="guest_1_container"></div>
|
||||
<script>
|
||||
function generateStreamID(){
|
||||
var text = "";
|
||||
var possible = "ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnpqrstuvwxyz23456789";
|
||||
for (var i = 0; i < 10; i++){
|
||||
text += possible.charAt(Math.floor(Math.random() * possible.length));
|
||||
}
|
||||
return text;
|
||||
};
|
||||
|
||||
(function (w) {
|
||||
w.URLSearchParams = w.URLSearchParams || function (searchString) {
|
||||
var self = this;
|
||||
self.searchString = searchString;
|
||||
self.get = function (name) {
|
||||
var results = new RegExp('[\?&]' + name + '=([^&#]*)').exec(self.searchString);
|
||||
if (results == null) {
|
||||
return null;
|
||||
}
|
||||
else {
|
||||
return decodeURI(results[1]) || 0;
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
})(window);
|
||||
|
||||
var urlParams = new URLSearchParams(window.location.search);
|
||||
|
||||
window.onerror = function backupErr(errorMsg, url=false, lineNumber=false) {
|
||||
console.error(errorMsg);
|
||||
console.error(lineNumber);
|
||||
console.error("Unhandeled Error occured"); //or any message
|
||||
return false;
|
||||
};
|
||||
|
||||
window.onbeforeunload = function() {
|
||||
return "Dude, are you sure you want to leave? Think of the kittens!"; // prevents accidental page reloads.
|
||||
}
|
||||
|
||||
var WID = "testOBSN";
|
||||
if (urlParams.has("api")){
|
||||
WID = urlParams.get("api");
|
||||
} else if (urlParams.has("osc")){
|
||||
WID = urlParams.get("osc");
|
||||
} else if (urlParams.has("id")){
|
||||
WID = urlParams.get("id");
|
||||
} else if (urlParams.has("ID")){
|
||||
WID = urlParams.get("ID");
|
||||
} else if (urlParams.has("wid")){
|
||||
WID = urlParams.get("wid");
|
||||
} else {
|
||||
WID = generateStreamID(10);
|
||||
|
||||
var href = window.location.href;
|
||||
var arr = href.split('?');
|
||||
var newurl;
|
||||
if (arr.length > 1 && arr[1] !== '') {
|
||||
newurl = href + '&api=' + WID;
|
||||
} else {
|
||||
newurl = href + '?api=' + WID;
|
||||
}
|
||||
|
||||
window.history.pushState({path: newurl.toString()}, '', newurl.toString());
|
||||
|
||||
}
|
||||
|
||||
var path = "vdo.ninja"; //window.location.host+window.location.pathname.split("/").slice(0,-1).join("/");
|
||||
var header = document.getElementById("header");
|
||||
header.innerHTML += "Your Ninja Link: <a href='https://"+path+"/?api="+WID+"' target='_blank'>https://"+path+"/?api="+WID+"</a><br /><br />";
|
||||
header.innerHTML += "<small>You can append your own VDO.Ninja parameters to this link, treating it like a normal VDO.Ninja link.</small>";
|
||||
header.innerHTML += "<br /><br /><small>Code and documentation hosted at <a href='https://github.com/steveseguin/Companion-Ninja'>https://github.com/steveseguin/Companion-Ninja</a></small> <svg width='32' height='32' viewBox='0 0 1024 1024' fill='none' xmlns='http://www.w3.org/2000/svg'><path fill-rule='evenodd' clip-rule='evenodd' d='M8 0C3.58 0 0 3.58 0 8C0 11.54 2.29 14.53 5.47 15.59C5.87 15.66 6.02 15.42 6.02 15.21C6.02 15.02 6.01 14.39 6.01 13.72C4 14.09 3.48 13.23 3.32 12.78C3.23 12.55 2.84 11.84 2.5 11.65C2.22 11.5 1.82 11.13 2.49 11.12C3.12 11.11 3.57 11.7 3.72 11.94C4.44 13.15 5.59 12.81 6.05 12.6C6.12 12.08 6.33 11.73 6.56 11.53C4.78 11.33 2.92 10.64 2.92 7.58C2.92 6.71 3.23 5.99 3.74 5.43C3.66 5.23 3.38 4.41 3.82 3.31C3.82 3.31 4.49 3.1 6.02 4.13C6.66 3.95 7.34 3.86 8.02 3.86C8.7 3.86 9.38 3.95 10.02 4.13C11.55 3.09 12.22 3.31 12.22 3.31C12.66 4.41 12.38 5.23 12.3 5.43C12.81 5.99 13.12 6.7 13.12 7.58C13.12 10.65 11.25 11.33 9.47 11.53C9.76 11.78 10.01 12.26 10.01 13.01C10.01 14.08 10 14.94 10 15.21C10 15.42 10.15 15.67 10.55 15.59C13.71 14.53 16 11.53 16 8C16 3.58 12.42 0 8 0Z' transform='scale(64)' fill='#1B1F23'/></svg>";
|
||||
|
||||
var socket = null;
|
||||
var connecting = false;
|
||||
var failedCount = 0;
|
||||
|
||||
|
||||
|
||||
function connect(){
|
||||
clearTimeout(connecting);
|
||||
if (socket){
|
||||
if (socket.readyState === socket.OPEN){return;}
|
||||
try{
|
||||
socket.close();
|
||||
} catch(e){}
|
||||
}
|
||||
socket = new WebSocket("wss://api.vdo.ninja:443");
|
||||
|
||||
socket.onclose = function (){
|
||||
failedCount+=1;
|
||||
clearTimeout(connecting);
|
||||
connecting = setTimeout(function(){connect();},100*(failedCount-1));
|
||||
};
|
||||
|
||||
socket.onerror = function (){
|
||||
failedCount+=1;
|
||||
clearTimeout(connecting);
|
||||
connecting = setTimeout(function(){connect();},100*failedCount);
|
||||
};
|
||||
|
||||
socket.onopen = function (){
|
||||
failedCount = 0;
|
||||
try{
|
||||
socket.send(JSON.stringify({"join":WID}));
|
||||
} catch(e){
|
||||
connecting = setTimeout(function(){connect();},1);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
connect();
|
||||
|
||||
function sendGuestCommand(target, action, value=null){
|
||||
sendMessage(JSON.stringify({"target":target, "action":action, "value":value}));
|
||||
}
|
||||
|
||||
function sendMessage(msg){
|
||||
if (socket.readyState !== socket.OPEN){
|
||||
console.log("not connected; msg didn't send");
|
||||
connect();
|
||||
return;
|
||||
}
|
||||
try {
|
||||
socket.send(msg);
|
||||
} catch(e){
|
||||
connecting = setTimeout(function(){connect();},100);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
function log(msg){
|
||||
console.log(msg);
|
||||
}
|
||||
|
||||
function ajax(data) {
|
||||
var xhttp = new XMLHttpRequest();
|
||||
xhttp.onreadystatechange = function() {
|
||||
if (this.readyState == 4 && this.status == 200) {
|
||||
log("AJAX MESSAGE SENT SUCCESSFULL");
|
||||
}
|
||||
};
|
||||
var action = false
|
||||
if ("action" in data){
|
||||
action=data['action'];
|
||||
}
|
||||
var value = "null"
|
||||
if ("value" in data){
|
||||
value=data['value'];
|
||||
}
|
||||
var apiid = false
|
||||
if ("apiid" in data){
|
||||
apiid=data['apiid'];
|
||||
}
|
||||
var target = "null";
|
||||
if ("target" in data){
|
||||
target=data['target'];
|
||||
}
|
||||
|
||||
if (!action || !apiid){
|
||||
alert("no action or api ID provided; request won't work");
|
||||
} else {
|
||||
var URL = "https://api.vdo.ninja/"+apiid+"/"+action+"/"+target+"/"+value;
|
||||
xhttp.open("GET", URL, true);
|
||||
xhttp.send();
|
||||
}
|
||||
}
|
||||
|
||||
function loadSelfCommands(){
|
||||
var commands = {}
|
||||
commands.speaker = function(value){sendMessage(JSON.stringify({"action":"speaker","value":value}))}; // "speaker" also works in the same way
|
||||
|
||||
commands.mic = function(value){sendMessage(JSON.stringify({"action":"mic","value":value}))};
|
||||
|
||||
commands.camera = function(value){sendMessage(JSON.stringify({"action":"camera","value":value}))};
|
||||
|
||||
commands.bitrate = function(value){sendMessage(JSON.stringify({"action":"bitrate","value":value}))};
|
||||
|
||||
commands.volume = function(value){sendMessage(JSON.stringify({"action":"volume","value":value}))};
|
||||
|
||||
commands.record = function(value){sendMessage(JSON.stringify({"action":"record","value":value}))};
|
||||
|
||||
commands.sayHello = function(value){sendMessage(JSON.stringify({"action":"sendChat","value":"Hello"}))};
|
||||
|
||||
var target_self = document.getElementById("target_self");
|
||||
|
||||
setTimeout(function(){
|
||||
var hr = document.createElement("hr");
|
||||
target_self.appendChild(hr);
|
||||
var h3 = document.createElement("h3");
|
||||
h3.innerText = "These are Websocket-based requests";
|
||||
target_self.appendChild(h3);
|
||||
},0);
|
||||
|
||||
for (var k in commands) {
|
||||
setTimeout(function(k){
|
||||
var button = document.createElement("button");
|
||||
button.innerHTML = k + ":<br />TRUE";
|
||||
button.onclick = function(){commands[k](true);}
|
||||
target_self.appendChild(button);
|
||||
},0,k);
|
||||
|
||||
setTimeout(function(k){
|
||||
var button = document.createElement("button");
|
||||
button.innerHTML = k + ":<br />FALSE";
|
||||
button.onclick = function(){commands[k](false);}
|
||||
target_self.appendChild(button);
|
||||
},0,k);
|
||||
|
||||
if (k=="mic" || k=="camera" || k=="record" || k=="speaker"){
|
||||
setTimeout(function(k){
|
||||
var button = document.createElement("button");
|
||||
button.innerHTML = k + ":<br />TOGGLE";
|
||||
button.onclick = function(){commands[k]("toggle");}
|
||||
target_self.appendChild(button);
|
||||
},0,k);
|
||||
}
|
||||
|
||||
log(k);
|
||||
} // list available commands to console
|
||||
|
||||
commands.reload = function(){sendMessage(JSON.stringify({"action":"reload","value":true}))};
|
||||
|
||||
commands.hangup = function(){sendMessage(JSON.stringify({"action":"hangup","value":true}))};
|
||||
|
||||
k = "reload";
|
||||
setTimeout(function(k){
|
||||
var button = document.createElement("button");
|
||||
button.innerHTML = k + ":<br />TRUE";
|
||||
button.onclick = function(){commands[k](true);}
|
||||
target_self.appendChild(button);
|
||||
},0,k);
|
||||
|
||||
k = "hangup";
|
||||
setTimeout(function(k){
|
||||
var button = document.createElement("button");
|
||||
button.innerHTML = k + ":<br />TRUE";
|
||||
button.onclick = function(){commands[k](true);}
|
||||
target_self.appendChild(button);
|
||||
},0,k);
|
||||
|
||||
setTimeout(function(){
|
||||
var button = document.createElement("button");
|
||||
button.innerHTML = "Rainbow<br />Puke";
|
||||
button.onclick = function(){sendMessage(JSON.stringify({"action":"forceKeyframe"}))}
|
||||
target_self.appendChild(button);
|
||||
},0);
|
||||
|
||||
|
||||
|
||||
var commands2 = {}
|
||||
commands2.speaker = function(value){ajax({"action":"speaker","value":value,"apiid":WID})}; // "speaker" also works in the same way
|
||||
commands2.mic = function(value){ajax({"action":"mic","value":value,"apiid":WID})}; // "speaker" also works in the same way
|
||||
commands2.camera = function(value){ajax({"action":"camera","value":value,"apiid":WID})}; // "speaker" also works in the same way
|
||||
commands2.bitrate = function(value){ajax({"action":"bitrate","value":value,"apiid":WID})}; // "speaker" also works in the same way
|
||||
commands2.volume = function(value){ajax({"action":"volume","value":value,"apiid":WID})}; // "speaker" also works in the same way
|
||||
commands2.record = function(value){ajax({"action":"record","value":value,"apiid":WID})}; // "speaker" also works in the same way
|
||||
|
||||
setTimeout(function(){
|
||||
var hr = document.createElement("hr");
|
||||
target_self.appendChild(hr);
|
||||
var h3 = document.createElement("h3");
|
||||
h3.innerText = "These are HTTP-based GET requests";
|
||||
target_self.appendChild(h3);
|
||||
},0);
|
||||
|
||||
for (var k in commands2) {
|
||||
|
||||
setTimeout(function(k){
|
||||
var button = document.createElement("button");
|
||||
button.innerHTML = k + ":<br />TRUE";
|
||||
button.onclick = function(){commands2[k](true);}
|
||||
target_self.appendChild(button);
|
||||
},0,k);
|
||||
|
||||
setTimeout(function(k){
|
||||
var button = document.createElement("button");
|
||||
button.innerHTML = k + ":<br />FALSE";
|
||||
button.onclick = function(){commands2[k](false);}
|
||||
target_self.appendChild(button);
|
||||
},0,k);
|
||||
|
||||
if (k=="mic" || k=="camera" || k=="record" || k=="speaker"){
|
||||
setTimeout(function(k){
|
||||
var button = document.createElement("button");
|
||||
button.innerHTML = k + ":<br />TOGGLE";
|
||||
button.onclick = function(){commands2[k]("toggle");}
|
||||
target_self.appendChild(button);
|
||||
},0,k);
|
||||
}
|
||||
log(k);
|
||||
}
|
||||
|
||||
setTimeout(function(WID){
|
||||
var button = document.createElement("button");
|
||||
button.innerHTML = "Rainbow<br />Puke"
|
||||
button.onclick = function(){ajax({"action":"forceKeyframe","apiid":WID})}
|
||||
target_self.appendChild(button);
|
||||
},0,WID);
|
||||
|
||||
|
||||
return commands;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
function loadGuestCommands(guestid){
|
||||
var container = document.createElement("div");
|
||||
container.id = "guest_"+guestid+"_container";
|
||||
document.body.appendChild(container);
|
||||
|
||||
var hr = document.createElement("hr");
|
||||
container.appendChild(hr);
|
||||
var h3 = document.createElement("h3");
|
||||
h3.innerText = "These target guest "+guestid+ " (if a director)";
|
||||
container.appendChild(h3);
|
||||
|
||||
var button = document.createElement("button");
|
||||
button.innerHTML = "transfer popup";
|
||||
button.onclick = function(){sendGuestCommand(guestid, "forward");};
|
||||
container.appendChild(button);
|
||||
|
||||
var button = document.createElement("button");
|
||||
button.innerHTML = "transfer to 'room321'";
|
||||
button.onclick = function(){sendGuestCommand(guestid, "forward", 'room321');};
|
||||
container.appendChild(button);
|
||||
|
||||
var button = document.createElement("button");
|
||||
button.innerHTML = "scene 1";
|
||||
button.onclick = function(){sendGuestCommand(guestid, "addScene");}; /// SCENE 1 or specify a custom scene name as a value
|
||||
container.appendChild(button);
|
||||
|
||||
var button = document.createElement("button");
|
||||
button.innerHTML = "mute in scene";
|
||||
button.onclick = function(){sendGuestCommand(guestid, "muteScene");};
|
||||
container.appendChild(button);
|
||||
|
||||
var button = document.createElement("button");
|
||||
button.innerHTML = "mute everywhere";
|
||||
button.onclick = function(){sendGuestCommand(guestid, "mic");};
|
||||
container.appendChild(button);
|
||||
|
||||
var button = document.createElement("button");
|
||||
button.innerHTML = "hang up";
|
||||
button.onclick = function(){sendGuestCommand(guestid, "hangup");};
|
||||
container.appendChild(button);
|
||||
|
||||
var button = document.createElement("button");
|
||||
button.innerHTML = "solo chat";
|
||||
button.onclick = function(){sendGuestCommand(guestid, "soloChat");};
|
||||
container.appendChild(button);
|
||||
|
||||
var button = document.createElement("button");
|
||||
button.innerHTML = "remote speaker";
|
||||
button.onclick = function(){sendGuestCommand(guestid, "speaker");};
|
||||
container.appendChild(button);
|
||||
|
||||
var button = document.createElement("button");
|
||||
button.innerHTML = "remote display";
|
||||
button.onclick = function(){sendGuestCommand(guestid, "display");};
|
||||
container.appendChild(button);
|
||||
|
||||
var button = document.createElement("button");
|
||||
button.innerHTML = "rainbow puke fix";
|
||||
button.onclick = function(){sendGuestCommand(guestid, "forceKeyframe");};
|
||||
container.appendChild(button);
|
||||
|
||||
var button = document.createElement("button");
|
||||
button.innerHTML = "highlight";
|
||||
button.onclick = function(){sendGuestCommand(guestid, "soloVideo");};
|
||||
container.appendChild(button);
|
||||
|
||||
var button = document.createElement("button");
|
||||
button.innerHTML = "scene 2";
|
||||
button.onclick = function(){sendGuestCommand(guestid, "addScene", 2);};
|
||||
container.appendChild(button);
|
||||
|
||||
var button = document.createElement("button");
|
||||
button.innerHTML = "scene 3";
|
||||
button.onclick = function(){sendGuestCommand(guestid, "addScene", 3);};
|
||||
container.appendChild(button);
|
||||
|
||||
var button = document.createElement("button");
|
||||
button.innerHTML = "scene 4";
|
||||
button.onclick = function(){sendGuestCommand(guestid, "addScene", 4);};
|
||||
container.appendChild(button);
|
||||
|
||||
var button = document.createElement("button");
|
||||
button.innerHTML = "scene 5";
|
||||
button.onclick = function(){sendGuestCommand(guestid, "addScene", 5);};
|
||||
container.appendChild(button);
|
||||
|
||||
var button = document.createElement("button");
|
||||
button.innerHTML = "scene 6";
|
||||
button.onclick = function(){sendGuestCommand(guestid, "addScene", 6);};
|
||||
container.appendChild(button);
|
||||
|
||||
var button = document.createElement("button");
|
||||
button.innerHTML = " scene 7";
|
||||
button.onclick = function(){sendGuestCommand(guestid, "addScene", 7);};
|
||||
container.appendChild(button);
|
||||
|
||||
var button = document.createElement("button");
|
||||
button.innerHTML = "scene 8";
|
||||
button.onclick = function(){sendGuestCommand(guestid, "addScene", 8);};
|
||||
container.appendChild(button);
|
||||
|
||||
var button = document.createElement("button");
|
||||
button.innerHTML = "scene 'test'";
|
||||
button.onclick = function(){sendGuestCommand(guestid, "addScene", 'test');}; // specifying a custom scene; it needs to be active for this to work..
|
||||
container.appendChild(button);
|
||||
|
||||
|
||||
var input = document.createElement("label");
|
||||
input.innerHTML = "mic volume:";
|
||||
container.appendChild(input);
|
||||
var input = document.createElement("input");
|
||||
input.type = "range";
|
||||
input.title = "volume";
|
||||
input.min = 0;
|
||||
input.max = 200;
|
||||
input.value = 100;
|
||||
input.onchange = function(){sendGuestCommand(guestid, "volume", this.value);};
|
||||
container.appendChild(input);
|
||||
|
||||
}
|
||||
|
||||
loadSelfCommands();
|
||||
loadGuestCommands(1);
|
||||
loadGuestCommands(2);
|
||||
loadGuestCommands(3);
|
||||
loadGuestCommands(4);
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
11
iframe.html
11
iframe.html
@ -134,19 +134,24 @@
|
||||
button.onclick = function(){iframe.contentWindow.postMessage({"close":true}, '*');};
|
||||
iframeContainer.appendChild(button);
|
||||
|
||||
var button = document.createElement("button");
|
||||
button.innerHTML = "0 Bitrate";
|
||||
button.onclick = function(){iframe.contentWindow.postMessage({"bitrate":0, "target": "*"}, '*');};
|
||||
iframeContainer.appendChild(button);
|
||||
|
||||
var button = document.createElement("button");
|
||||
button.innerHTML = "Low Bitrate";
|
||||
button.onclick = function(){iframe.contentWindow.postMessage({"bitrate":30}, '*');};
|
||||
button.onclick = function(){iframe.contentWindow.postMessage({"bitrate":30, "target": "*"}, '*');};
|
||||
iframeContainer.appendChild(button);
|
||||
|
||||
var button = document.createElement("button");
|
||||
button.innerHTML = "High Bitrate";
|
||||
button.onclick = function(){iframe.contentWindow.postMessage({"bitrate":5000}, '*');};
|
||||
button.onclick = function(){iframe.contentWindow.postMessage({"bitrate":5000, "target": "*"}, '*');};
|
||||
iframeContainer.appendChild(button);
|
||||
|
||||
var button = document.createElement("button");
|
||||
button.innerHTML = "Default Bitrate";
|
||||
button.onclick = function(){iframe.contentWindow.postMessage({"bitrate":-1}, '*');};
|
||||
button.onclick = function(){iframe.contentWindow.postMessage({"bitrate":-1, "target": "*"}, '*');};
|
||||
iframeContainer.appendChild(button);
|
||||
|
||||
var button = document.createElement("button");
|
||||
|
||||
378
index.html
378
index.html
@ -54,7 +54,7 @@
|
||||
transition: opacity .1s linear;
|
||||
}
|
||||
</style>
|
||||
<link rel="stylesheet" href="./main.css?ver=142" />
|
||||
<link rel="stylesheet" href="./main.css?ver=146" />
|
||||
<script type="text/javascript" crossorigin="anonymous" src="./thirdparty/adapter.min.js"></script>
|
||||
<style id="lightbox-animations" type="text/css"></style>
|
||||
</head>
|
||||
@ -66,8 +66,8 @@
|
||||
<span itemprop="thumbnail" itemscope itemtype="http://schema.org/ImageObject">
|
||||
<link itemprop="url" href="./media/vdoNinja_logo_full.png" />
|
||||
</span>
|
||||
<script type="text/javascript" crossorigin="anonymous" src="./thirdparty/CodecsHandler.js?ver=34"></script>
|
||||
<script type="text/javascript" crossorigin="anonymous" src="./webrtc.js?ver=327"></script>
|
||||
<script type="text/javascript" crossorigin="anonymous" src="./thirdparty/CodecsHandler.js?ver=35"></script>
|
||||
<script type="text/javascript" crossorigin="anonymous" src="./webrtc.js?ver=338"></script>
|
||||
<input id="zoomSlider" type="range" style="display: none;" />
|
||||
<div id="header">
|
||||
|
||||
@ -138,15 +138,24 @@
|
||||
<div id="mutevideobutton" onmousedown="event.preventDefault(); event.stopPropagation();" title="Disable the Camera" alt="Disable the Camera" onclick="toggleVideoMute()" tabindex="19" role="button" aria-pressed="false" onkeyup="enterPressedClick(event,this);" class="advanced float" style="cursor: pointer;">
|
||||
<i id="mutevideotoggle" onmousedown="event.preventDefault(); event.stopPropagation();" class="toggleSize las la-video my-float"></i>
|
||||
</div>
|
||||
<div id="screensharebutton" onmousedown="event.preventDefault(); event.stopPropagation();" title="Share a Screen with others" alt="Share a Screen with others" onclick="toggleScreenShare()" tabindex="20" role="button" aria-pressed="false" onkeyup="enterPressedClick(event,this);" class="float advanced" style="cursor: pointer;">
|
||||
<div id="screensharebutton" onmousedown="event.preventDefault(); event.stopPropagation();" title="Share a Screen with others" alt="Share a Screen with others" onclick="screenshareTypeDecider(1)" tabindex="20" role="button" aria-pressed="false" onkeyup="enterPressedClick(event,this);" class="float advanced" style="cursor: pointer;">
|
||||
<i id="screensharetoggle" onmousedown="event.preventDefault(); event.stopPropagation();" class="toggleSize las la-desktop my-float"></i>
|
||||
</div>
|
||||
<div id="screenshare2button" onmousedown="event.preventDefault(); event.stopPropagation();" title="Create a Secondary Stream" alt="Create a Secondary Stream" onclick="createIframePopup()" tabindex="20" role="button" aria-pressed="false" onkeyup="enterPressedClick(event,this);" class="float advanced" style="cursor: pointer;">
|
||||
<div id="screenshare2button" onmousedown="event.preventDefault(); event.stopPropagation();" title="Create a Secondary Stream" alt="Create a Secondary Stream" onclick="screenshareTypeDecider(2)" tabindex="20" role="button" aria-pressed="false" onkeyup="enterPressedClick(event,this);" class="float advanced" style="cursor: pointer;">
|
||||
<i id="screenshare2toggle" onmousedown="event.preventDefault(); event.stopPropagation();" class="toggleSize las la-tv my-float"></i>
|
||||
</div>
|
||||
<div id="websitesharebutton" onmousedown="event.preventDefault(); event.stopPropagation();" title="Share a website as an embedded iFRAME" alt="Share a website as an embedded iFRAME" onclick="shareWebsite(false, event)" tabindex="21" role="button" aria-pressed="false" onkeyup="enterPressedClick(event,this);" class="float advanced" style="cursor: pointer;">
|
||||
<div id="screenshare3button" onmousedown="event.preventDefault(); event.stopPropagation();" title="Create a Third Stream" alt="Create a Third Stream" onclick="screenshareTypeDecider(3)" tabindex="20" role="button" aria-pressed="false" onkeyup="enterPressedClick(event,this);" class="float advanced" style="cursor: pointer;">
|
||||
<i id="screenshare3toggle" onmousedown="event.preventDefault(); event.stopPropagation();" class="toggleSize las la-tv my-float"></i>
|
||||
</div>
|
||||
<div id="websitesharebutton" onmousedown="event.preventDefault(); event.stopPropagation();" title="Share a website with your guests (IFRAME)" alt="Share a website with your guests (IFRAME)" onclick="shareWebsite(false, event)" tabindex="21" role="button" aria-pressed="false" onkeyup="enterPressedClick(event,this);" class="float advanced" style="cursor: pointer;">
|
||||
<i id="websitesharetoggle" onmousedown="event.preventDefault(); event.stopPropagation();" class="toggleSize las la-window-maximize my-float"></i>
|
||||
</div>
|
||||
<div id="websitesharebutton2" onmousedown="event.preventDefault(); event.stopPropagation();" title="Hold CTRL (or CMD) and click to spotlight this video" alt="Share a website as an embedded iFRAME" onclick="shareWebsite(false, event)" tabindex="21" role="button" aria-pressed="false" onkeyup="enterPressedClick(event,this);" class="float2 orange shake advanced" style="cursor: pointer;max-width: 200px;margin: auto;padding: 0 10px;">
|
||||
<i onmousedown="event.preventDefault(); event.stopPropagation();" class="toggleSize las my-float la-window-close" style="display: inline-block;"></i>
|
||||
<div style="display: inline-block;width: 85px;line-height: 1; font-size: 0.9em;">
|
||||
Stop Sharing Website
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="flipcamerabutton" onmousedown="event.preventDefault(); event.stopPropagation();" title="Cycle the Cameras" onclick="cycleCameras()" class="advanced float" tabindex="21" role="button" aria-pressed="false" onkeyup="enterPressedClick(event,this);" style="cursor: pointer;" alt="Cycle the Cameras">
|
||||
<i id="settingstoggle" class="toggleSize las la-sync-alt my-float"></i>
|
||||
@ -202,7 +211,7 @@
|
||||
<i style="float: right; bottom: 0px; cursor: pointer; position: fixed; right: 33px; color: #d9e4eb; padding: 2px; margin: 2px 2px 0 0; font-size: 140%;" class="las la-calendar" aria-hidden="true"></i>
|
||||
</span>
|
||||
<div id="mainmenu" class="row" style="opacity: 0; align: center;">
|
||||
<div id="container-1" title="Add Group Chat to OBS" alt="Add Group Chat to OBS" tabindex="2" role="button" aria-pressed="false" onkeyup="enterPressedClick(event,this);" class="column columnfade pointer card" style=" overflow-y: auto;">
|
||||
<div id="container-1" title="Add Group Chat to OBS" alt="Add Group Chat to OBS" tabindex="2" role="button" aria-pressed="false" onkeyup="enterPressedClick(event,this);" class="column columnfade pointer rounded card" style=" overflow-y: auto;">
|
||||
|
||||
<h2>
|
||||
<span data-translate="add-group-chat">Create a Room</span>
|
||||
@ -216,24 +225,37 @@
|
||||
|
||||
<table >
|
||||
<tr>
|
||||
<th style="text-align:right;">
|
||||
<th style="text-align:right;" class="labelLarge">
|
||||
<b>
|
||||
<span data-translate="room-name">Room Name</span>:
|
||||
</b>
|
||||
</th>
|
||||
<th style="text-align:left;">
|
||||
<input type="text" autocorrect="off" autocapitalize="none" id="videoname1" placeholder="Enter a Room Name here" onkeydown="checkStrengthRoom(event, 'securityLevelRoom');" onchange="checkStrengthRoom(event, 'securityLevelRoom');" onkeyup="enterPressed(event, createRoom);" size="30" maxlength="30" style="font-size: 110%; padding: 5px;" />
|
||||
<th class="labelSmall"></th>
|
||||
<th style="text-align:left;" >
|
||||
<div class="labelSmall">
|
||||
<b>
|
||||
<span data-translate="room-name">Room Name</span>:
|
||||
</b>
|
||||
</div>
|
||||
<input type="text" autocorrect="off" autocapitalize="none" id="videoname1" placeholder="Enter a Room Name here" onkeydown="checkStrengthRoom(event, 'securityLevelRoom');" onchange="checkStrengthRoom(event, 'securityLevelRoom');" onkeyup="enterPressed(event, createRoom);" maxlength="30" style="font-size: 110%; padding: 5px;" />
|
||||
<div id="securityLevelRoom" style="display:none;margin-top:3px;position:relative;top:3px;font-size:0.8em;"></div>
|
||||
</th>
|
||||
|
||||
</tr><tr>
|
||||
|
||||
<th style="text-align:right;">
|
||||
<th style="text-align:right;" class="labelLarge">
|
||||
<b>
|
||||
<span data-translate="password-input-field">Password</span>:
|
||||
</b>
|
||||
</th><th style="text-align:left;">
|
||||
<input type="text" autocorrect="off" autocapitalize="none" id="passwordRoom" placeholder="Optional room password here" onkeydown="checkStrengthRoom(event, 'securityLevelRoom');" onchange="checkStrengthRoom(event, 'securityLevelRoom');" onkeyup="enterPressed(event, createRoom);" size="30" maxlength="30" style="font-size: 110%; padding: 5px;" />
|
||||
</th>
|
||||
<th class="labelSmall"></th>
|
||||
<th style="text-align:left;">
|
||||
<div class="labelSmall">
|
||||
<b>
|
||||
<span data-translate="password-input-field">Password</span>:
|
||||
</b>
|
||||
</div>
|
||||
<input type="text" autocorrect="off" autocapitalize="none" id="passwordRoom" placeholder="Optional room password here" onkeydown="checkStrengthRoom(event, 'securityLevelRoom');" onchange="checkStrengthRoom(event, 'securityLevelRoom');" onkeyup="enterPressed(event, createRoom);" maxlength="30" style="font-size: 110%; padding: 5px;" />
|
||||
</th>
|
||||
|
||||
</tr><tr >
|
||||
@ -270,32 +292,37 @@
|
||||
</select >
|
||||
</b>
|
||||
</th>
|
||||
</tr><tr>
|
||||
<th></th>
|
||||
<th style="text-align:right;">
|
||||
<button onclick="createRoom()" class="gobutton" style="float: left;width:100%;" alt="Enter the room as the group's director" title="You'll enter as the room's director">
|
||||
<span data-translate="enter-the-rooms-control">Enter the Room's Control Center</span>
|
||||
</button>
|
||||
<br /><br />
|
||||
<button class="white" style="display: block;" onclick="toggle(document.getElementById('roomnotes'),this);">
|
||||
<span data-translate="show-tips">Show me some tips..</span>
|
||||
</button>
|
||||
</th>
|
||||
</tr>
|
||||
</table>
|
||||
<br />
|
||||
<ul style=" margin: auto auto; max-width: 500px; display: none; text-align: left;" id="roomnotes">
|
||||
|
||||
<div style="margin: 0 auto; width: 400px; max-width:100%;">
|
||||
<button onclick="createRoom()" class="gobutton" style="width:100%;" alt="Enter the room as the group's director" title="You'll enter as the room's director">
|
||||
<span data-translate="enter-the-rooms-control">Enter the Room's Control Center</span>
|
||||
</button>
|
||||
<br /><br />
|
||||
<button class="white roomnotes" style="display: block;" onclick="toggle(document.getElementById('roomnotes'),this);">
|
||||
<span data-translate="show-tips">Show me some tips..</span>
|
||||
</button>
|
||||
|
||||
<ul style=" margin: auto auto; max-width: 500px; display: none; text-align: left;" class="roomnotes" id="roomnotes">
|
||||
<span data-translate="added-notes" >
|
||||
<u>
|
||||
<i>Important Tips:</i><br /><br />
|
||||
</u>
|
||||
<li>Disabling video sharing between guests will improve performance</li>
|
||||
<li>Invite only guests to the room that you trust.</li>
|
||||
<li>The "Recording" option is considered experimental.</li>
|
||||
<li><a href="https://params.vdo.ninja" style="color:black;"><u>Advanced URL parameters</u></a> are available to customize rooms.</li>
|
||||
</span>
|
||||
<br />
|
||||
<br />
|
||||
</ul>
|
||||
<br />
|
||||
<span data-translate="added-notes">
|
||||
<u>
|
||||
<i>Important Tips:</i><br /><br />
|
||||
</u>
|
||||
<li>Disabling video sharing between guests will improve performance</li>
|
||||
<li>Invite only guests to the room that you trust.</li>
|
||||
<li>The "Recording" option is considered experimental.</li>
|
||||
<li><a href="https://params.vdo.ninja" style="color:black;"><u>Advanced URL parameters</u></a> are available to customize rooms.</li>
|
||||
</span>
|
||||
</ul>
|
||||
<i>Looking to just chat and not direct?</i>
|
||||
<button onclick="jumptoroom2()" class="gobutton" style="width:100%;" alt="Enter the room as the group's director" title="You'll enter as the room's director">
|
||||
<span data-translate="join-the-room-basic">Join room as participant</span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="outer close">
|
||||
<div class="inner">
|
||||
@ -305,7 +332,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="container-3" title="Add your Camera to OBS" onkeyup="enterPressedClick(event,this);" alt="Add your Camera to OBS" tabindex="3" role="button" aria-pressed="false" class="column columnfade pointer card" onclick="previewWebcam()" style=" overflow-y: auto;">
|
||||
<div id="container-3" title="Add your Camera to OBS" onkeyup="enterPressedClick(event,this);" alt="Add your Camera to OBS" tabindex="3" role="button" aria-pressed="false" class="column columnfade pointer rounded card" onclick="previewWebcam()" style=" overflow-y: auto;">
|
||||
<h2 id="add_camera">
|
||||
<span data-translate="add-your-camera">Add your Camera to OBS</span>
|
||||
</h2>
|
||||
@ -340,6 +367,10 @@
|
||||
|
||||
<i class="las la-cog" style="font-size: 140%; vertical-align: middle;" aria-hidden="true"></i>
|
||||
</span>
|
||||
<div id="cameraTip1" class="cameraTip advanced">
|
||||
<i class="las la-info-circle"></i>
|
||||
<p><span id="cameraTipContext1"></span></p>
|
||||
</div>
|
||||
</span>
|
||||
<br />
|
||||
<center>
|
||||
@ -375,7 +406,7 @@
|
||||
<li>
|
||||
<input type="checkbox" id="multiselect1" name="multiselect1" style="display: none;" checked value="ZZZ" />
|
||||
<label for="multiselect1">
|
||||
<span data-translate="no-audio">No Audio</span>
|
||||
<span data-translate="no-audio"> No Audio</span>
|
||||
</label>
|
||||
</li>
|
||||
</ul>
|
||||
@ -409,13 +440,17 @@
|
||||
</span>
|
||||
|
||||
<div id="selectImageTFLITE" style="display:none;margin-top:10px;">
|
||||
<img src="./media/bg_sample.webp" style="max-width:130px;max-height:73.5px;display:inline-block:margin:10px;cursor:pointer;" onclick="changeTFLiteImage(event, this);"/>
|
||||
<img src="./media/bg_sample2.webp" style="max-width:130px;max-height:73.5px;display:inline-block:margin:10px;cursor:pointer;" onclick="changeTFLiteImage(event, this);"/>
|
||||
<img src="./media/bg_sample.webp" loading="lazy" style="max-width:130px;max-height:73.5px;display:inline-block:margin:10px;cursor:pointer;" onclick="changeTFLiteImage(event, this);"/>
|
||||
<img src="./media/bg_sample2.webp" loading="lazy" style="max-width:130px;max-height:73.5px;display:inline-block:margin:10px;cursor:pointer;" onclick="changeTFLiteImage(event, this);"/>
|
||||
<label style="width:130px;display:inline-block;margin:0 10px; text-align: center; cursor:pointer;">
|
||||
<i class="las la-hdd" style="font-size: 3em;"></i><br />Select Local Image
|
||||
<input type="file" onchange="changeTFLiteImage(event, this)" accept="image/*" style="position: fixed; top: -100em; margin-left:10px; border:1px solid #555;">
|
||||
</label>
|
||||
</div>
|
||||
<div id="selectEffectAmount" style="display:none;margin-top:10px;">
|
||||
<label for="selectEffectAmountInput" style="width: 113px;display: inline-block;">Effect amount:</label>
|
||||
<input id="selectEffectAmountInput" style="display: inline-block;width: 350px; max-width: 60%;margin:6px 0;" name="selectEffectAmountInput" title="Adjust the amount of effect applied" type="range" oninput="changeEffectAmount(event, this)" onchange="changeEffectAmount(event, this)" min="0" step="1" max="20">
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<span id="addPasswordBasic" >
|
||||
@ -432,8 +467,6 @@
|
||||
Safari is more prone to having audio issues</span></p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
<div class="outer close">
|
||||
<div class="inner">
|
||||
@ -443,13 +476,13 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="container-2" title="Remote Screenshare into OBS" onkeyup="enterPressedClick(event,this);" alt="Remote Screenshare into OBS" tabindex="4" role="button" aria-pressed="false" class="column columnfade pointer card" style=" overflow-y: auto;">
|
||||
<div id="container-2" title="Remote Screenshare into OBS" onkeyup="enterPressedClick(event,this);" alt="Remote Screenshare into OBS" tabindex="4" role="button" aria-pressed="false" class="column columnfade pointer rounded card" style=" overflow-y: auto;">
|
||||
<h2 id="add_screen">
|
||||
<span data-translate="remote-screenshare-obs">Remote Screenshare into OBS</span>
|
||||
</h2>
|
||||
<div class="container-inner">
|
||||
<span>
|
||||
<video id="screenshare" autoplay="true" muted="true" loop src="./media/screenshare.webm" ></video>
|
||||
<video id="screenshare" autoplay="true" muted="true" loop src="./media/screenshare.webm" class="lazy" style='background-image: unset;'></video>
|
||||
</span>
|
||||
<br />
|
||||
<button class='gobutton' style="padding: 10px; font-size: 120%;" alt="clilck to select you screen to share" onclick="publishScreen()">
|
||||
@ -460,7 +493,7 @@
|
||||
<i class="las la-cog" style="font-size: 170%; vertical-align: middle;" aria-hidden="true"></i>
|
||||
</span>
|
||||
<center>
|
||||
<span id="videoSettings2" style="margin: auto auto; display: none; background-color: white; vertical-aligh: middle; border: 3px solid #ccc; max-width: 500px; padding: 10px 10px 5px 10px; margin: 0px 0px 10px;">
|
||||
<span id="videoSettings2" style="margin: auto auto; display: none; vertical-aligh: middle; border: 3px solid #ccc; max-width: 500px; padding: 10px 10px 5px 10px; margin: 0px 0px 10px;">
|
||||
<form id="webcamquality2">
|
||||
<input type="radio" id="fullhd2" name="resolution2" value="0" />
|
||||
<label for="fullhd">
|
||||
@ -517,7 +550,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="container-4" tabindex="5" alt="Create Reusable Invite" onkeyup="enterPressedClick(event,this);" onclick="loadQR();" title="Create Reusable Invite" role="button" aria-pressed="false" class="column columnfade pointer card" style=" overflow-y: auto;">
|
||||
<div id="container-4" tabindex="5" alt="Create Reusable Invite" onkeyup="enterPressedClick(event,this);" onclick="loadQR();" title="Create Reusable Invite" role="button" aria-pressed="false" class="column columnfade pointer rounded card" style=" overflow-y: auto;">
|
||||
<h2>
|
||||
<span data-translate="create-reusable-invite">Create Reusable Invite</span>
|
||||
</h2>
|
||||
@ -639,7 +672,7 @@
|
||||
|
||||
<div id="dropButton" onclick="dropDownButtonAction()" title="More Options"><i class="las la-chevron-down" ></i></div>
|
||||
|
||||
<div id="container-5" class="column columnfade pointer card advanced" style=" overflow-y: auto;">
|
||||
<div id="container-5" class="column columnfade pointer rounded card advanced" style=" overflow-y: auto;">
|
||||
<h2><span data-translate="share-local-video-file">Stream Media File</span></h2>
|
||||
<div class="container-inner">
|
||||
|
||||
@ -673,7 +706,7 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="container-6" class="column columnfade pointer card advanced" style=" overflow-y: auto;">
|
||||
<div id="container-6" class="column columnfade pointer rounded card advanced" style=" overflow-y: auto;">
|
||||
<h2><span data-translate="share-website-iframe">Share Website</span></h2>
|
||||
<i style="margin-top:30px;font-size:560%;overflow:hidden;" class="las la-broadcast-tower"></i>
|
||||
<div class="container-inner">
|
||||
@ -705,12 +738,12 @@
|
||||
|
||||
</div>
|
||||
|
||||
<div id="container-7" class="column columnfade pointer card advanced" style="overflow: hidden;" onclick="window.location = './speedtest.html';">
|
||||
<div id="container-7" class="column columnfade pointer rounded card advanced" style="overflow: hidden;" onclick="window.location = './speedtest.html';">
|
||||
<h2><span data-translate="run-a-speed-test">Run a Speed Test</span></h2>
|
||||
<i style="margin-top:30px;font-size:600%;overflow:hidden;" class="las la-tachometer-alt"></i>
|
||||
</div>
|
||||
|
||||
<div id="container-8" class="column columnfade pointer card advanced" style="overflow: hidden;" onclick="window.location = 'https://guides.vdo.ninja';">
|
||||
<div id="container-8" class="column columnfade pointer rounded card advanced" style="overflow: hidden;" onclick="window.location = 'https://guides.vdo.ninja';">
|
||||
<h2><span data-translate="read-the-guides">Browse the Guides</span></h2>
|
||||
<i style="margin-top:30px;font-size:600%;overflow:hidden;" class="las la-book-open"></i>
|
||||
</div>
|
||||
@ -737,19 +770,20 @@
|
||||
</i>
|
||||
<br />
|
||||
<li>
|
||||
Some devices that use H264 hardware encoding can experience video glitching; switching to VP8 or VP9 as a codec can help.
|
||||
Some devices that use hardware encoding can experience video glitching; 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>
|
||||
Video glitching and random audio-loss can occur when using the OBS browser source. The <a href='https://github.com/steveseguin/electroncapture/blob/master/README.md'>Electron Capture app</a> avoids these issues.
|
||||
</li>
|
||||
<li>
|
||||
Samsung smartphones (A-series) may fail to publish video with some mobile browsers; try using Firefox or the native <a href='https://docs.vdo.ninja/getting-started/native-mobile-app-versions#android-download-link'>VDO.Ninja Android app</a> in these cases.
|
||||
</li>
|
||||
<br />
|
||||
<font style="color:#daad09;">
|
||||
👋 👀 Welcome to VDO Ninja! We've rebranded! 📼 Nothing else is changing and we're staying 100% free.
|
||||
</font>
|
||||
<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 />
|
||||
<br />
|
||||
🎁 Last update was on October 14th (v19.4). The next version, v20, is now available for testing; <a href="https://vdo.ninja/beta/">available here</a>.
|
||||
|
||||
🎁 Welcome to v20, updated December 24th. 🎄 <a target="_blank" href="https://docs.vdo.ninja/release-notes/v20">Release notes are here</a>. The previous version is <a href="https://vdo.ninja/v19/">available here</a> if you have new issues.
|
||||
<br />
|
||||
<br />
|
||||
<h3>
|
||||
@ -814,12 +848,12 @@
|
||||
<span style="margin:5px; line-height: 1.6;" data-translate='invite-users-to-join'>Guests can use the link to join the group room</span>
|
||||
<a onclick='copyFunction(this,event)' id="director_block_1" class='task grabLinks' style='cursor:copy;background-color: #0003;'></a>
|
||||
<span style="display:block;">
|
||||
<span style="bottom: 0; margin: 0 0 0 10px; top: 22px; position: relative;">
|
||||
<span style="bottom: 0; margin: 0 0 0 10px; top: 22px; position: relative; display:inline-block; max-width: 45%;">
|
||||
<label class="switch" title="If disabled, the invited guest will not be able to see or hear anyone in the room.">
|
||||
<input type="checkbox" checked data-param="&view=" onchange="updateLinkInverse(1,this);saveDirectorSettings();">
|
||||
<span class="slider"></span>
|
||||
</label>
|
||||
<span data-translate="guests-hear-others">Guests hear others</span>
|
||||
<span data-translate="guests-hear-others" style="line-height:0;position:relative;top:-3px;">Guests hear others</span>
|
||||
</span>
|
||||
<button class='pull-right grey' style='font-size:1.15em' onclick='copyFunction(getById("director_block_1"),event)'><i class='las la-copy'></i>Copy link</button>
|
||||
<button class='pull-right grey' style='font-size:1.15em' id="showCustomizerButton1" onclick='showCustomizer(1,this)'><i class='las la-tools'></i>Customize</button>
|
||||
@ -833,12 +867,12 @@
|
||||
<span style="margin:5px; line-height: 1.6;" data-translate='this-is-obs-browser-source-link'>Use in OBS or other studio software to capture the group video mix</span>
|
||||
<a onclick='copyFunction(this,event)' data-drag="1" draggable="true" id="director_block_3" class='task grabLinks' style='cursor:grab;background-color: #0003;'></a>
|
||||
<span style="display:block;">
|
||||
<span style="bottom: 0; margin: 0 0 0 10px; top: 22px; position: relative;">
|
||||
<span style="bottom: 0; margin: 0 0 0 10px; top: 22px; position: relative; display:inline-block; max-width: 45%;">
|
||||
<label class="switch" title="If disabled, you must manually add a video to a scene for it to appear.">
|
||||
<input type="checkbox" checked data-param="&scene" onchange="updateLinkScene(3,this);saveDirectorSettings();">
|
||||
<span class="slider"></span>
|
||||
</label>
|
||||
<span data-translate="auto-add-guests">Auto-add guests</span>
|
||||
<span data-translate="auto-add-guests" style="line-height:0;position:relative;top:-3px;">Auto-add guests</span>
|
||||
</span>
|
||||
<button class='pull-right grey' style='font-size:1.15em' onclick='copyFunction(getById("director_block_3"),event)'><i class='las la-copy'></i>Copy link</button>
|
||||
<button class='pull-right grey' style='font-size:1.15em' id="showCustomizerButton3" onclick='showCustomizer(3,this)'><i class='las la-tools'></i>Customize</button>
|
||||
@ -893,7 +927,12 @@
|
||||
<span class="slider"></span>
|
||||
</label>
|
||||
<span data-translate="show-active-speaker">Show active speakers</span>
|
||||
|
||||
<Br />
|
||||
<label class="switch" title="Show a custom welcome message to the joining guest of this invite link">
|
||||
<input type="checkbox" data-param="&welcome" onchange="updateLinkWelcome(1,this);">
|
||||
<span class="slider"></span>
|
||||
</label>
|
||||
<span data-translate="show-welcome-message">Show welcome message</span>
|
||||
|
||||
</div>
|
||||
<div style="display:inline-block;margin-top: 12px; position: relative; margin-right:10px;">
|
||||
@ -984,7 +1023,7 @@
|
||||
</label>
|
||||
<span data-translate="prefix-screenshare">Prefix screenshare IDs</span>
|
||||
</div>
|
||||
<div style="display:inline-block;margin-top: 12px; position: relative; height: 20px;">
|
||||
<div style="display:inline-block;margin-top: 12px; position: relative; ">
|
||||
<label class="switch" title="This low-fi video codec uses very little CPU, even with dozens of active viewers.">
|
||||
<input type="checkbox" data-param="&webp" onchange="updateLinkWebP(1,this);">
|
||||
<span class="slider"></span>
|
||||
@ -1059,7 +1098,7 @@
|
||||
|
||||
</div>
|
||||
|
||||
<div style="display:inline-block;margin-top: 12px; position: relative; margin-right:10px; height: 20px;">
|
||||
<div style="display:inline-block;margin-top: 12px; position: relative; margin-right:10px; ">
|
||||
|
||||
<label class="switch" title="The active speakers are made visible automatically">
|
||||
<input type="checkbox" data-param="&sas" onchange="updateLink(3,this);">
|
||||
@ -1093,7 +1132,7 @@
|
||||
|
||||
</div>
|
||||
|
||||
<div style="display:inline-block;margin-top: 12px; position: relative; margin-right:10px; height: 20px;">
|
||||
<div style="display:inline-block;margin-top: 12px; position: relative; margin-right:10px;">
|
||||
<label class="switch">
|
||||
<input type="checkbox" data-param="&sl" onchange="updateLink(3,this);">
|
||||
<span class="slider"></span>
|
||||
@ -1114,7 +1153,7 @@
|
||||
<font class="tooltip" style='cursor: help;position:relative;bottom:2px;font-family:"Noto Color Emoji", "Apple Color Emoji", "Segoe UI Emoji", Times, Symbola, Aegyptus, Code2000, Code2001, Code2002, Musica, serif, LastResort;'>⚠<span class="tooltiptext">This can cause video playback to lag</span></font> Unlock Video Bitrate
|
||||
</div>
|
||||
|
||||
<div style="display:inline-block;margin-top: 12px; position: relative; height: 20px;">
|
||||
<div style="display:inline-block;margin-top: 12px; position: relative; ">
|
||||
<label class="switch" title="Playback the video with mono-channel audio">
|
||||
<input type="checkbox" data-param="&mono" onchange="updateLink(3,this);">
|
||||
<span class="slider"></span>
|
||||
@ -1156,21 +1195,21 @@
|
||||
<div id="controls_blank" style="display: none;">
|
||||
<div class="controlsGrid">
|
||||
|
||||
<button data-action-type="forward" data-value="0" title="Move the user to another room, controlled by another director" onclick="directMigrate(this, event);">
|
||||
<button data-action-type="forward" class="mainonly" data-value="0" title="Move the user to another room, controlled by another director" onclick="directMigrate(this, event);">
|
||||
<i class="las la-paper-plane"></i>
|
||||
<span data-translate="forward-to-room">Transfer</span>
|
||||
</button>
|
||||
|
||||
<button data-action-type="direct-chat" title="Send a Direct Message to this user." onclick="directorSendMessage(this);">
|
||||
<button data-action-type="direct-chat" class="mainonly" title="Send a Direct Message to this user." onclick="directorSendMessage(this);">
|
||||
<span data-translate="send-direct-chat"><i class="las la-envelope"></i> Message</span>
|
||||
</button>
|
||||
|
||||
<button data-action-type="hangup" data-value="0" title="Force the user to Disconnect. They can always reconnect." onclick="directHangup(this, event);">
|
||||
<button data-action-type="hangup" class="mainonly" data-value="0" title="Force the user to Disconnect. They can always reconnect." onclick="directHangup(this, event);">
|
||||
<i class="las la-sign-out-alt" style="color:#900"></i>
|
||||
<span data-translate="disconnect-guest" >Hangup</span>
|
||||
</button>
|
||||
|
||||
<button data-action-type="solo-chat" title="Toggle solo voice chat or hold CTRL/CMD when selecting to make it two-way private." onclick="session.toggleSoloChat(this.dataset.UUID, event);">
|
||||
<button data-action-type="solo-chat" class="mainonly" title="Toggle solo voice chat or hold CTRL/CMD when selecting to make it two-way private." onclick="session.toggleSoloChat(this.dataset.UUID, event);">
|
||||
<span data-translate="voice-chat"><i class="las la-microphone" style="color:#090"></i> Solo Talk</span>
|
||||
</button>
|
||||
|
||||
@ -1193,8 +1232,8 @@
|
||||
<span data-translate="add-to-scene2">add to scene 2</span>
|
||||
</button>
|
||||
|
||||
<button data-action-type="mute-scene" class="hidden" data-cluster="1" title="Remotely Mute this Audio in all remote '&scene' views" onclick="directMute(this, event);">
|
||||
<i class="las la-microphone-slash" style="color:#900"></i>
|
||||
<button data-action-type="mute-scene" class="hidden" data-cluster="1" title="Remotely Mute this Audio in all remote '&scene' views" onclick="directMute(this, event);">
|
||||
<i class="las la-microphone-slash" style="color:#900"></i>
|
||||
<span data-translate="mute-scene" >mute in scene</span>
|
||||
</button>
|
||||
|
||||
@ -1246,59 +1285,14 @@
|
||||
<span data-translate="hide-guest" >hide guest</span>
|
||||
</button>
|
||||
|
||||
<button class="hidden" data-cluster="2" data-action-type="toggle-remote-speaker"title="Toggle the remote guest's speaker output" onclick="remoteSpeakerMute(this, event);">
|
||||
<button class="hidden mainonly" data-cluster="2" data-action-type="toggle-remote-speaker"title="Toggle the remote guest's speaker output" onclick="remoteSpeakerMute(this, event);">
|
||||
<i class="las la-volume-off"></i> <span data-translate="toggle-remote-speaker">Deafen Guest</span>
|
||||
</button>
|
||||
|
||||
<button class="hidden" data-cluster="2" data-action-type="toggle-remote-display" title="Toggle the remote guest's display output" onclick="remoteDisplayMute(this, event);">
|
||||
<button class="hidden mainonly" data-cluster="2" data-action-type="toggle-remote-display" title="Toggle the remote guest's display output" onclick="remoteDisplayMute(this, event);">
|
||||
<i class="las la-eye-slash"></i> <span data-translate="toggle-remote-display">Blind Guest</span>
|
||||
</button>
|
||||
|
||||
<span class="hidden" data-cluster="2" data-action-type="ordering">
|
||||
<button style="width:34px;" data-action-type="order-down" title="Shift this Video Down in Order" onclick="changeOrder(-1,this.dataset.UUID);">
|
||||
<span data-translate="order-down"><i class="las la-minus"></i></span>
|
||||
</button>
|
||||
<span class="orderspan">
|
||||
<div style="text-align: center;font-size: 150%;" data-action-type="order-value" title="Current Index Order of this Video" >0</div>
|
||||
Mix Order
|
||||
</span>
|
||||
<button style="width:34px;margin-left:0;" data-action-type="order-up" title="Shift this Video Up in Order" onclick="changeOrder(1,this.dataset.UUID);">
|
||||
<span data-translate="order-up"><i class="las la-plus"></i></span>
|
||||
</button>
|
||||
</span>
|
||||
|
||||
<button class="hidden" data-cluster="2" data-action-type="change-url" data-value="0" title="Remotely reload the guest's page with a new URL" onclick="directPageReload(this, event);">
|
||||
<i class="las la-sync"></i>
|
||||
<span data-translate="change-url">Change URL</span>
|
||||
</button>
|
||||
|
||||
<button class="hidden" data-cluster="2" data-action-type="change-params" style="display:none" title="Change user parameters" onclick="promptUser('transferSettingsTemplate', this.dataset.UUID);">
|
||||
<i class="las la-cog"></i>
|
||||
<span data-translate="change-params">URL Params</span>
|
||||
</button>
|
||||
|
||||
|
||||
|
||||
<button class="hidden" data-cluster="2" data-action-type="recorder-local" title="Start Recording this remote stream to this local drive. *experimental*'" onclick="recordVideo(this, event)">
|
||||
<i class="las la-circle"></i>
|
||||
<span data-translate="record-local"> Record Local</span>
|
||||
</button>
|
||||
<button class="hidden" data-cluster="2" data-action-type="recorder-remote" data-value="0" title="The Remote Guest will record their local stream to their local drive. *experimental*" onclick="requestVideoRecord(this)">
|
||||
<i class="las la-circle"></i>
|
||||
<span data-translate="record-remote"> Record Remote</span>
|
||||
</button>
|
||||
|
||||
<button class="hidden" data-cluster="2" data-action-type="open-file-share" data-value="0" title="Allow the guest to select a file to upload to the director. Once shared, it will show in the chat as a download link." onclick="requestFileUpload(this)">
|
||||
<i class="las la-file-upload"></i>
|
||||
<span data-translate="request-upload"> Request File</span>
|
||||
</button>
|
||||
|
||||
<button class="hidden" data-cluster="2" data-action-type="create-timer" data-value="0" title="Set a countdown timer that this guest sees" onclick="directTimer(this, event);">
|
||||
<i class="las la-clock"></i>
|
||||
<span data-translate="create-timer">Create Timer</span>
|
||||
</button>
|
||||
|
||||
|
||||
<font class="tooltip hidden" data-cluster="2" style="height: 0; border: 0;">
|
||||
<input data-action-type="volume" type="range" min="0" max="200" value="100" title="Remotely change the volume of this guest" oninput="remoteVolumeUI(this)" ondblclick="this.value=100;remoteVolume(this);remoteVolumeUI(this);" onchange="remoteVolume(this);" style="grid-column: 2; margin:5px; width: 93%; position: relative;top: 0.6em; background-color:#fff0;"/><span class="tooltiptext" style='float: right; overflow: auto; left: 40px; width: 2.5em; top: -13px; margin: 0; position:relative;font-family:"Noto Color Emoji", "Apple Color Emoji", "Segoe UI Emoji", Times, Symbola, Aegyptus,Code2000, Code2001, Code2002, Musica, serif, LastResort;' >100</span>
|
||||
</font>
|
||||
@ -1315,6 +1309,48 @@
|
||||
</button>
|
||||
</span>
|
||||
|
||||
<span class="hidden" data-cluster="2" data-action-type="ordering">
|
||||
<button style="width:34px;" data-action-type="order-down" title="Shift this Video Down in Order" onclick="changeOrder(-1,this.dataset.UUID);">
|
||||
<span data-translate="order-down"><i class="las la-minus"></i></span>
|
||||
</button>
|
||||
<span class="orderspan">
|
||||
<div style="text-align: center;font-size: 150%;" data-action-type="order-value" title="Current Index Order of this Video" >0</div>
|
||||
Mix Order
|
||||
</span>
|
||||
<button style="width:34px;margin-left:0;" data-action-type="order-up" title="Shift this Video Up in Order" onclick="changeOrder(1,this.dataset.UUID);">
|
||||
<span data-translate="order-up"><i class="las la-plus"></i></span>
|
||||
</button>
|
||||
</span>
|
||||
|
||||
<button class="hidden mainonly" data-cluster="2" data-action-type="change-url" data-value="0" title="Remotely reload the guest's page with a new URL" onclick="directPageReload(this, event);">
|
||||
<i class="las la-sync"></i>
|
||||
<span data-translate="change-url">Change URL</span>
|
||||
</button>
|
||||
|
||||
<button class="hidden mainonly" data-cluster="2" data-action-type="change-params" style="display:none" title="Change user parameters" onclick="promptUser('transferSettingsTemplate', this.dataset.UUID);">
|
||||
<i class="las la-cog"></i>
|
||||
<span data-translate="change-params">URL Params</span>
|
||||
</button>
|
||||
|
||||
<button class="hidden" data-cluster="2" data-action-type="recorder-local" title="Start Recording this remote stream to this local drive. *experimental*'" onclick="recordVideo(this, event)">
|
||||
<i class="las la-circle"></i>
|
||||
<span data-translate="record-local"> Record Local</span>
|
||||
</button>
|
||||
<button class="hidden" data-cluster="2" data-action-type="recorder-remote" data-value="0" title="The Remote Guest will record their local stream to their local drive. *experimental*" onclick="requestVideoRecord(this)">
|
||||
<i class="las la-circle"></i>
|
||||
<span data-translate="record-remote"> Record Remote</span>
|
||||
</button>
|
||||
|
||||
<button class="hidden mainonly" data-cluster="2" data-action-type="open-file-share" data-value="0" title="Allow the guest to select a file to upload to the director. Once shared, it will show in the chat as a download link." onclick="requestFileUpload(this)">
|
||||
<i class="las la-file-upload"></i>
|
||||
<span data-translate="request-upload"> Request File</span>
|
||||
</button>
|
||||
|
||||
<button class="hidden mainonly" data-cluster="2" data-action-type="create-timer" data-value="0" title="Set a countdown timer that this guest sees" onclick="directTimer(this, event);">
|
||||
<i class="las la-clock"></i>
|
||||
<span data-translate="create-timer">Create Timer</span>
|
||||
</button>
|
||||
|
||||
|
||||
<span id="channelGroup1" class="hidden" data-cluster="2">
|
||||
|
||||
@ -1372,7 +1408,7 @@
|
||||
<button class="hidden" data-cluster="2" data-action-type="advanced-audio-settings" data-active="false" title="Remote Audio Settings" onclick="requestAudioSettings(this);">
|
||||
<span data-translate="advanced-audio-settings"><i class="las la-sliders-h"></i> Audio Settings</span>
|
||||
</button>
|
||||
<button class="hidden" data-cluster="2" data-action-type="advanced-camera-settings" data-active="false" title="Advanced Video Settings" onclick="requestVideoSettings(this);">
|
||||
<button class="hidden mainonly" data-cluster="2" data-action-type="advanced-camera-settings" data-active="false" title="Advanced Video Settings" onclick="requestVideoSettings(this);">
|
||||
<span data-translate="advanced-camera-settings"><i class="las la-sliders-h"></i> Video Settings</span>
|
||||
</button>
|
||||
|
||||
@ -1503,7 +1539,7 @@
|
||||
<span data-translate="select-digital-effect"> Digital Video Effects: </span>
|
||||
</div>
|
||||
<select id="effectSelector3" onchange="effectsDynamicallyUpdate(event, this);">
|
||||
<option value="0" data-translate="no-effects-applied">No effects applied</option>
|
||||
<option value="0" data-translate="no-effects-applied">No effects applied</option>
|
||||
<option value="3" data-translate="blurred-background">Blurred background</option>
|
||||
<option value="4" data-translate="digital-greenscreen">Digital greenscreen</option>
|
||||
<option value="5" data-translate="virtual-background">Virtual background</option>
|
||||
@ -1515,13 +1551,17 @@
|
||||
<i class="las la-info-circle"></i>
|
||||
</span>
|
||||
<div id="selectImageTFLITE3" style="display:none;margin-top:10px;">
|
||||
<img src="./media/bg_sample.webp" style="max-width:130px;max-height:73.5px;display:inline-block:margin:10px;cursor:pointer;" onclick="changeTFLiteImage(event, this);"/>
|
||||
<img src="./media/bg_sample2.webp" style="max-width:130px;max-height:73.5px;display:inline-block:margin:10px;cursor:pointer;" onclick="changeTFLiteImage(event, this);"/>
|
||||
<img src="./media/bg_sample.webp" loading="lazy" style="max-width:130px;max-height:73.5px;display:inline-block:margin:10px;cursor:pointer;" onclick="changeTFLiteImage(event, this);"/>
|
||||
<img src="./media/bg_sample2.webp" loading="lazy" style="max-width:130px;max-height:73.5px;display:inline-block:margin:10px;cursor:pointer;" onclick="changeTFLiteImage(event, this);"/>
|
||||
<label style="width:130px;display:inline-block;margin:0 10px; text-align: center; cursor:pointer;">
|
||||
<i class="las la-hdd" style="font-size: 3em;"></i><br /><span data-translate="select-local-image">Select Local Image</span>
|
||||
<input type="file" accept="image/*" onchange="changeTFLiteImage(event, this)" style="position: fixed; top: -100em; margin-left:10px; border:1px solid #555;">
|
||||
</label>
|
||||
</div>
|
||||
<div id="selectEffectAmount3" style="display:none;margin-top:10px;">
|
||||
<label for="selectEffectAmountInput" style="width: 113px;display: inline-block;">Effect amount:</label>
|
||||
<input id="selectEffectAmountInput3" style="display: inline-block;width: 350px; max-width: 60%;margin:6px 0;" name="selectEffectAmountInput3" title="Adjust the amount of effect applied" type="range" oninput="changeEffectAmount(event, this)" onchange="changeEffectAmount(event, this)" min="0" step="1" max="20">
|
||||
</div>
|
||||
|
||||
</span>
|
||||
<button id="shareScreenGear" style="width: 135px; padding:20px;text-align:center;" onclick="grabScreen()"><b>Share Screen</b><br /><i style="padding:5px; font-size:300%;" class="las la-desktop"></i></button>
|
||||
@ -1603,7 +1643,7 @@
|
||||
<div id="chatModule" style="display:none;text-align:right">
|
||||
<a target="popup" id="popOutChat" style="cursor:pointer;text-align:right;color:#B3C7F9;" onclick="createPopoutChat();"><i class="las la-external-link-alt"></i></a>
|
||||
<div id="chatBody">
|
||||
<div class="inMessage" data-translate='welcome-to-obs-ninja-chat'>
|
||||
<div class="inMessage" id="welcomeMsg" data-translate='welcome-to-obs-ninja-chat'>
|
||||
Welcome to VDO.Ninja! You can send text messages directly to connected peers from here.
|
||||
</div>
|
||||
</div>
|
||||
@ -1612,7 +1652,7 @@
|
||||
</div>
|
||||
|
||||
|
||||
<div id="roomSettings" style="display:none">
|
||||
<div id="roomSettings" style="display:none; user-select: none;">
|
||||
<div class="promptModalInner">
|
||||
<span class='modalClose' onclick="toggleRoomSettings();">×</span>
|
||||
<span></span>
|
||||
@ -1621,8 +1661,28 @@
|
||||
<span style="margin-left: 6px;" id="trbSettingInputFeedback"></span>-kbps
|
||||
<input id="trbSettingInput" type="range" min="0" max="4000" value="500" onchange="changeTRB(this);" oninput="getById('trbSettingInputFeedback').innerHTML = this.value;" style="width:100%;display:block;" />
|
||||
<span style="margin: 20px 0 0 0;display:block" id='highlightDirectorSpan' title="Only the director's video will be visible to guests and within group scenes">
|
||||
<label for="highlightDirector">Highlight Director (only video guests will see)</label>
|
||||
<input id="highlightDirector" style="width: 15px; height: 15px; margin:10px;" name="highlightDirector" data-value="0" data-action-type="solo-video" type="checkbox" onchange="requestInfocus(this);" />
|
||||
<label for="highlightDirector">Highlight Director (only video guests will see)</label>
|
||||
</span>
|
||||
<span style="margin: 5px 0 0 0;display:block" id='enableCodirector' title="Allow for remote co-directors">
|
||||
<span id="coDirectorEnableSpan">
|
||||
<input id="coDirectorEnable" style="width: 15px; height: 15px; margin:10px;" name="coDirectorEnable" data-value="0" data-action-type="codirector" type="checkbox" onchange="toggleCoDirector(this);" />
|
||||
<label for="coDirectorEnable">Allow for remote co-directors</label>
|
||||
</span>
|
||||
<span style="margin:0;display:none;" id='codirectorSettings'>
|
||||
<div>
|
||||
<input id="codirectorSettings_transfer" style="width: 15px; height: 15px; margin:10px;" name="codirectorSettings_transfer" data-value="0" data-action-type="codirector_transfer" type="checkbox" onchange="toggleCoDirector_transfer(this);" />
|
||||
<label for="codirectorSettings_transfer">Allow co-directors to transfer guests</label>
|
||||
</div>
|
||||
<div style="display:none;">
|
||||
<input id="codirectorSettings_changeurl" style="width: 15px; height: 15px; margin:10px; " name="codirectorSettings_changeurl" data-value="0" data-action-type="codirector_changeurl" type="checkbox" onchange="toggleCoDirector_changeurl(this);" />
|
||||
<label for="codirectorSettings_changeurl">Allow co-directors to change a guest's URL</label>
|
||||
</div>
|
||||
<div style="margin:8px;">
|
||||
<label for="codirectorSettings_invite">Basic co-director invite link:</label>
|
||||
<input id="codirectorSettings_invite" style="display:block;width: 100%;margin: 3px 0; padding: 4px 5px 3px 5px; border: 1px solid black;" name="codirectorSettings_invite" value="some URL here" type="text" />
|
||||
</div>
|
||||
</span>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
@ -1690,10 +1750,16 @@
|
||||
<div id="userList">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="voiceMeterTemplate" class="video-meter">
|
||||
<div id="signalMeterTemplate" class="signal-meter advanced" data-cpu="0" data-level="0">
|
||||
<i class="las la-signal"></i>
|
||||
<i class="las la-fire-alt"></i>
|
||||
</div>
|
||||
<div id="voiceMeterTemplate2" class="video-meter2">
|
||||
<div id="batteryMeterTemplate" class="battery advanced" data-plugged="1">
|
||||
<div class="battery-level" style="height:100%;">🔌</div>
|
||||
</div>
|
||||
<div id="voiceMeterTemplate" class="video-meter advanced">
|
||||
</div>
|
||||
<div id="voiceMeterTemplate2" class="video-meter2 advanced">
|
||||
</div>
|
||||
<div id="muteStateTemplate" style="display:none;" class="video-mute-state">
|
||||
<i class="las la-microphone-slash"></i>
|
||||
@ -1710,7 +1776,7 @@
|
||||
</audio>
|
||||
<div class="gone" >
|
||||
<!-- This image is used when dragging elements -->
|
||||
<img src="./media/favicon-32x32.png" id="dragImage" />
|
||||
<img src="./media/favicon-32x32.png" id="dragImage" loading="lazy" />
|
||||
</div>
|
||||
<div id="request_info_prompt" style="display:none">
|
||||
</div>
|
||||
@ -1773,7 +1839,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 = "19.4";
|
||||
session.version = "20.0-beta";
|
||||
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
|
||||
@ -1807,40 +1873,42 @@
|
||||
///// The following lets you set the defaults
|
||||
|
||||
// session.webcamonly // true,false
|
||||
// session.stereo // 0,1,2,3
|
||||
// session.stereo // 0,1,2,3,4,5
|
||||
// session.audiobitrate // int in kbps
|
||||
// session.view // "xxxx"
|
||||
// session.remote
|
||||
// session.optimize
|
||||
// session.disableOBS
|
||||
// session.audio
|
||||
// session.video
|
||||
// session.forceios
|
||||
// session.nocursor
|
||||
// session.view // "xxxx" ; the stream ID or a list of Stream IDs to Connect to. Not the same as &noaudio/&novideo. Set to "" (empty) if you don't wish to connect to any.
|
||||
// session.remote // See docs, but allows for remote stats monitoring and remote focus/zoom control
|
||||
// session.optimize // Whether to optimize invisible scenes in OBS. See docs.vdo.ninja
|
||||
// session.disableOBS // If true, will disable any OBS-specific events/functions.
|
||||
// session.noaudio // False by default, otherwise specify a list [] of stream IDs to allow. Listing none allows no incoming audio streams
|
||||
// session.novideo // False by default, otherwise specify a list [] of stream IDs to allow. Listing none allows no incoming video streams
|
||||
// session.forceios // If true, will allow iOS devices to send H264 video to other guests in a room
|
||||
// session.nocursor // hides the cursor using CSS
|
||||
// session.codec // default codec; maybe h264 is useful? the default is up to the browser normally
|
||||
// session.scale
|
||||
// session.scale // By default, scale is self-optimizing, but you can set a value of 1 to 100 to choose the playback scale of all incoming video streams
|
||||
// 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 /2 int
|
||||
// session.height // int ; height to publish a video stream at. Will fail if not supported by the camera
|
||||
// session.width // int ; see above
|
||||
// session.quality // int -- if setting == 0, then than the default resolution will be 1080p, instead of 720p60 (q=1) , while q=2 = 360p30.
|
||||
// session.sink // Output device to playback audio to. see the docs
|
||||
// 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"
|
||||
// session.security // true to disable the wss connection after the first peer connection is made
|
||||
// session.framerate // int ; publishing frame rate. will fail if camera does not support it.
|
||||
// session.sync // see the docs
|
||||
// session.buffer // int in milliseconds ; see the docs
|
||||
// session.roomid // "yyyy" -- the room name to use. alphanumeric.
|
||||
// session.scene // the scene name. Scene 0, 1, ... 8, or any custom scene name is supported. STRING value. Needed to have a clean view link of a guest stream
|
||||
// session.title // "zzzz" ; sets the title of the browser page.
|
||||
// session.introOnClean = true; // this will load the page with the webcam selection screen if &push or &room is in the URL; no need to use &webcam.
|
||||
</script>
|
||||
<script type="text/javascript" crossorigin="anonymous" src="./thirdparty/aes.js"></script>
|
||||
<script type="text/javascript" crossorigin="anonymous" id="lib-js" src="./lib.js?ver=202"></script>
|
||||
<script type="text/javascript" crossorigin="anonymous" id="lib-js" src="./lib.js?ver=246"></script>
|
||||
|
||||
<!--
|
||||
// If you wish to change branding, blank offers a good clean start.
|
||||
<script type="text/javascript" id="main-js" src="./main.js" data-translation="blank"></script>
|
||||
-->
|
||||
<script type="text/javascript" crossorigin="anonymous" id="main-js" src="./main.js?ver=276"></script>
|
||||
<script type="text/javascript" crossorigin="anonymous" id="main-js" src="./main.js?ver=287"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
469
main.css
469
main.css
@ -45,6 +45,14 @@ table {
|
||||
background-color: #FFF;
|
||||
}
|
||||
|
||||
.promptModalLabel{
|
||||
cursor: pointer;
|
||||
font-weight: normal;
|
||||
font-size: 1.0em;
|
||||
display:block;
|
||||
margin: 17px 20px 15px 20px;
|
||||
}
|
||||
|
||||
#bigPlayButton {
|
||||
margin:0 auto;
|
||||
background-color: #0000;
|
||||
@ -66,13 +74,17 @@ table {
|
||||
}
|
||||
|
||||
#playButton {
|
||||
font-size: 50vh;
|
||||
border-radius: 50vh;
|
||||
font-size: min(50vw, 50vh);
|
||||
cursor:pointer;
|
||||
opacity:100%;
|
||||
margin-top: 20vh;
|
||||
background-color:#444;
|
||||
border-radius: 50vh;
|
||||
width: min(50vw, 50vh);
|
||||
cursor: pointer;
|
||||
opacity: 100%;
|
||||
margin-top: 20vh;
|
||||
background-color: #646262;
|
||||
background-image: url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='utf-8'%3F%3E%3Csvg version='1.1' id='Layer_1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' viewBox='0 0 122.88 122.88' style='enable-background:new 0 0 122.88 122.88' xml:space='preserve'%3E%3Cstyle type='text/css'%3E.st0%7Bfill-rule:evenodd;clip-rule:evenodd;%7D%3C/style%3E%3Cg%3E%3Cpath class='st0' d='M61.44,0c33.93,0,61.44,27.51,61.44,61.44s-27.51,61.44-61.44,61.44S0,95.37,0,61.44S27.51,0,61.44,0L61.44,0z M83.31,65.24c3.13-2.02,3.12-4.27,0-6.06L50.98,40.6c-2.55-1.6-5.21-0.66-5.14,2.67l0.1,37.55c0.22,3.61,2.28,4.6,5.32,2.93 L83.31,65.24L83.31,65.24z M61.44,12.48c27.04,0,48.96,21.92,48.96,48.96c0,27.04-21.92,48.96-48.96,48.96S12.48,88.48,12.48,61.44 C12.48,34.4,34.4,12.48,61.44,12.48L61.44,12.48z'/%3E%3C/g%3E%3C/svg%3E");
|
||||
display: inline-block;
|
||||
height: min(50vw, 50vh);
|
||||
background-repeat: no-repeat;
|
||||
border: #646262 7vh solid;
|
||||
}
|
||||
|
||||
tr {
|
||||
@ -114,23 +126,16 @@ a:link {
|
||||
color: #B9DFF9;
|
||||
}
|
||||
|
||||
/* visited link */
|
||||
|
||||
a:visited {
|
||||
text-decoration: none;
|
||||
color: #99BFD9;
|
||||
}
|
||||
|
||||
|
||||
/* mouse over link */
|
||||
|
||||
a:hover {
|
||||
color: #048AE8;
|
||||
}
|
||||
|
||||
|
||||
/* selected link */
|
||||
|
||||
a:active {
|
||||
color: #D9E4EB;
|
||||
}
|
||||
@ -236,6 +241,7 @@ button.white:active {
|
||||
padding: 1px;
|
||||
background-color: #0F131D;
|
||||
color: #FFF;
|
||||
min-height:18.8px;
|
||||
}
|
||||
#head5 {
|
||||
display: inline-block;
|
||||
@ -334,6 +340,19 @@ button.white:active {
|
||||
color: #101020;
|
||||
}
|
||||
|
||||
|
||||
body.darktheme .credits {
|
||||
color: #707a93;
|
||||
}
|
||||
|
||||
body.darktheme .credits>a {
|
||||
color: #707a93;
|
||||
}
|
||||
|
||||
body.darktheme .credits>a:visited {
|
||||
color: #707a93;
|
||||
}
|
||||
|
||||
.chevron {
|
||||
padding: 0px 6px;
|
||||
}
|
||||
@ -418,7 +437,6 @@ hr {
|
||||
position: relative;
|
||||
user-select: none;
|
||||
}
|
||||
/* Clear floats after the columns */
|
||||
|
||||
.row:after {
|
||||
content: "";
|
||||
@ -464,9 +482,6 @@ hr {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
|
||||
/* Invite link generator */
|
||||
|
||||
.invite_setting_group {
|
||||
margin: 20px 0px;
|
||||
background-color: #d2d2d2;
|
||||
@ -522,7 +537,117 @@ hr {
|
||||
animation: pulse 2s infinite;
|
||||
}
|
||||
|
||||
.mirror {
|
||||
.battery {
|
||||
border: 3px solid #4192c5;
|
||||
width: 11px;
|
||||
height: 19px;
|
||||
border-radius: 4px;
|
||||
position: absolute;
|
||||
left: 27px;
|
||||
top: 3px;
|
||||
background-color: #FFF2;
|
||||
font-size: 1.5em;
|
||||
z-index: 2;
|
||||
cursor: help;
|
||||
display:block;
|
||||
}
|
||||
.battery[data-plugged="1"]{
|
||||
font-size:0px;
|
||||
}
|
||||
.battery.warn {
|
||||
border: 3px solid #EFAF13;
|
||||
}
|
||||
.battery.alert {
|
||||
border: 3px solid #e81309;
|
||||
}
|
||||
.battery-level {
|
||||
background: #30b455;
|
||||
position: absolute;
|
||||
bottom: 0px;
|
||||
left: 0;
|
||||
right: 0;
|
||||
}
|
||||
|
||||
.signal-meter{
|
||||
width: 22px;
|
||||
height: 22px;
|
||||
position: absolute;
|
||||
left: 5px;
|
||||
top: 1px;
|
||||
background-color: #FFF2;
|
||||
font-size: 1.5em;
|
||||
display:block;
|
||||
z-index: 2;
|
||||
cursor: help;
|
||||
}
|
||||
.signal-meter[data-cpu="0"]>.la-signal {
|
||||
display:block;
|
||||
}
|
||||
.signal-meter[data-cpu="0"]>.la-fire-alt {
|
||||
display:none;
|
||||
}
|
||||
.signal-meter[data-cpu="1"]>.la-signal {
|
||||
display:none;
|
||||
}
|
||||
.signal-meter[data-cpu="1"]>.la-fire-alt {
|
||||
display:block;
|
||||
}
|
||||
.signal-meter[data-cpu="1"] {
|
||||
display:block!important;
|
||||
}
|
||||
.signal-meter[data-level="0"] {
|
||||
color:#000F;
|
||||
display:none;
|
||||
}
|
||||
.signal-meter[data-level="1"] {
|
||||
color:#FF1B01;
|
||||
}
|
||||
.signal-meter[data-level="2"] {
|
||||
color:#FF8D01;
|
||||
}
|
||||
.signal-meter[data-level="3"] {
|
||||
color:#FFD201;
|
||||
}
|
||||
.signal-meter[data-level="4"] {
|
||||
color:#C6FF01;
|
||||
}
|
||||
.signal-meter[data-level="5"] {
|
||||
color:#00FF00;
|
||||
}
|
||||
|
||||
.togglePreview{
|
||||
border-radius: 11px;
|
||||
background-color: #00000044;
|
||||
top: calc(19px + 2vh);
|
||||
right: 2vw;
|
||||
cursor: pointer;
|
||||
width: 22px;
|
||||
display: flex;
|
||||
margin: 5px;
|
||||
position: absolute;
|
||||
color: white;
|
||||
font-size: 22px;
|
||||
z-Index:35;
|
||||
height: 22px;
|
||||
}
|
||||
.togglePreview > .la-eye-slash{
|
||||
display:block;
|
||||
}
|
||||
|
||||
.togglePreview > .la-eye{
|
||||
display:none;
|
||||
}
|
||||
.togglePreview.blinded > .la-eye-slash{
|
||||
display:none!important;
|
||||
}
|
||||
.togglePreview.blinded > .la-eye{
|
||||
display:block!important;
|
||||
}
|
||||
.rounded{
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
.mirror{
|
||||
transform: scaleX(-1);
|
||||
}
|
||||
|
||||
@ -594,10 +719,45 @@ button.glyphicon-button.active.focus {
|
||||
height:100%;
|
||||
}
|
||||
|
||||
.labelSmall {
|
||||
display:none;
|
||||
}
|
||||
|
||||
.gobutton {
|
||||
font-size: 110%;
|
||||
padding: 10px;
|
||||
border: 3px solid #DDDDDD;
|
||||
cursor: pointer;
|
||||
background-color: #99BFD9;
|
||||
color: black;
|
||||
font-weight: bold;
|
||||
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 640px){
|
||||
#subControlButtons {
|
||||
transform: scale(0.9) translateY(10%);
|
||||
}
|
||||
|
||||
.labelSmall {
|
||||
display:inherit;
|
||||
padding:5px;
|
||||
}
|
||||
|
||||
.labelLarge {
|
||||
display:none!important;
|
||||
}
|
||||
|
||||
.gobutton{
|
||||
width: 100vh;
|
||||
margin-left: 10px;
|
||||
margin-right: 10px;
|
||||
max-width: 87%;
|
||||
}
|
||||
|
||||
.roomnotes{
|
||||
display:none!important;
|
||||
}
|
||||
}
|
||||
@media only screen and (max-width: 400px){
|
||||
#subControlButtons {
|
||||
@ -607,7 +767,31 @@ button.glyphicon-button.active.focus {
|
||||
@media only screen and (max-width: 300px){
|
||||
#subControlButtons {
|
||||
padding: 0px;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
.orange{
|
||||
background-color: #8d5e1a
|
||||
}
|
||||
|
||||
.shake {
|
||||
animation: shake 0.5s;
|
||||
animation-iteration-count: once;
|
||||
}
|
||||
|
||||
@keyframes shake {
|
||||
0% { transform: translate(1px, 1px) rotate(0deg); }
|
||||
10% { transform: translate(-1px, -2px) rotate(-1deg); }
|
||||
20% { transform: translate(-3px, 0px) rotate(1deg); }
|
||||
30% { transform: translate(3px, 2px) rotate(0deg); }
|
||||
40% { transform: translate(1px, -1px) rotate(1deg); }
|
||||
50% { transform: translate(-1px, 2px) rotate(-1deg); }
|
||||
60% { transform: translate(-3px, 1px) rotate(0deg); }
|
||||
70% { transform: translate(3px, 1px) rotate(-1deg); }
|
||||
80% { transform: translate(-1px, -1px) rotate(1deg); }
|
||||
90% { transform: translate(1px, 2px) rotate(0deg); }
|
||||
100% { transform: translate(1px, -2px) rotate(-1deg); }
|
||||
}
|
||||
|
||||
#obsState {
|
||||
@ -659,7 +843,6 @@ button.glyphicon-button.active.focus {
|
||||
}
|
||||
}
|
||||
|
||||
/* Node selector to prioritise this selector above .float */
|
||||
button.btnArmTransferRoom{
|
||||
width:auto;
|
||||
margin-left: 2px;
|
||||
@ -727,6 +910,9 @@ button.btnArmTransferRoom.selected{
|
||||
#controlButtons {
|
||||
height:50px;
|
||||
}
|
||||
#header{
|
||||
min-height:0px;
|
||||
}
|
||||
}
|
||||
@media only screen and (max-height: 300px){
|
||||
#gridlayout>#container.vidcon {
|
||||
@ -836,6 +1022,18 @@ input[type='radio'] { cursor:pointer; }
|
||||
z-index: 10;
|
||||
}
|
||||
|
||||
.retry-spinner {
|
||||
border: 1vh solid #7f838666;
|
||||
border-top: 1vh solid #f0f0f066;
|
||||
border-radius: 50%;
|
||||
width: 10vh;
|
||||
height: 10vh;
|
||||
animation: spin-animation 3s infinite linear, fadeIn 5s;
|
||||
margin: 44vh auto;
|
||||
cursor: help;
|
||||
}
|
||||
|
||||
|
||||
@keyframes spin-animation {
|
||||
0% {
|
||||
transform: rotate(0deg);
|
||||
@ -910,15 +1108,7 @@ body {
|
||||
display: inherit;
|
||||
}
|
||||
|
||||
.gobutton {
|
||||
font-size: 110%;
|
||||
padding: 10px;
|
||||
border: 3px solid #DDDDDD;
|
||||
cursor: pointer;
|
||||
background-color: #99BFD9;
|
||||
color: black;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
|
||||
.infoblob {
|
||||
color: white;
|
||||
@ -959,6 +1149,22 @@ body {
|
||||
background-color:#474!important;
|
||||
}
|
||||
|
||||
#effectSelector{
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
font-size: 100%;
|
||||
max-width: 260px;
|
||||
}
|
||||
#effectSelector3{
|
||||
background-color: #FFF;
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
padding: 3px;
|
||||
font-size: 93%;
|
||||
max-width: 100%;
|
||||
width: 90%;
|
||||
}
|
||||
|
||||
/*https://css-tricks.com/styling-cross-browser-compatible-range-inputs-css/*/
|
||||
input[type=range] {
|
||||
-webkit-appearance: none;
|
||||
@ -1170,6 +1376,11 @@ input[type=range]:focus::-ms-fill-upper {
|
||||
.mobileHide{
|
||||
display:none !important;
|
||||
}
|
||||
#effectSelector {
|
||||
max-width: 100%;
|
||||
width: 100%;
|
||||
margin: 4px 0 0 0;
|
||||
}
|
||||
}
|
||||
|
||||
@media only screen and (max-height: 355px) {
|
||||
@ -1203,7 +1414,6 @@ input[type=range]:focus::-ms-fill-upper {
|
||||
background-color: #9d5050;
|
||||
color: #fff;
|
||||
text-align: center;
|
||||
/* padding: 5px 0; */
|
||||
border-radius: 10px;
|
||||
position: absolute;
|
||||
z-index: 1;
|
||||
@ -1219,6 +1429,18 @@ input[type=range]:focus::-ms-fill-upper {
|
||||
#screenshare2button.float2{
|
||||
background-color: #335c3a;
|
||||
}
|
||||
#screenshare3button.float2{
|
||||
background-color: #2bf96e88;
|
||||
animation: pulse 5s infinite;
|
||||
}
|
||||
#previewWebcam.miconly {
|
||||
display:none;
|
||||
}
|
||||
|
||||
.notmain > .mainonly {
|
||||
display:none!important;
|
||||
}
|
||||
|
||||
#popupSelector {
|
||||
background: linear-gradient(6deg, rgba(221, 221, 221, 0) 4%, rgb(221, 221, 221, 0.2) 30%, rgba(120, 120, 100, .5) 100%);
|
||||
transition: all 0.2s linear 0s;
|
||||
@ -1348,7 +1570,6 @@ label {
|
||||
margin: auto;
|
||||
background-color: #5555;
|
||||
width: 100px;
|
||||
/* padding: 30px; */
|
||||
border-radius: 30px;
|
||||
cursor:pointer;
|
||||
color: #636363
|
||||
@ -1359,7 +1580,6 @@ label {
|
||||
margin: 0 auto;
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
/* Add shadows to create the "card" effect */
|
||||
}
|
||||
|
||||
.card {
|
||||
@ -1367,8 +1587,6 @@ label {
|
||||
background-color: #ddd;
|
||||
}
|
||||
|
||||
/* Create four equal columns that floats next to each other */
|
||||
|
||||
|
||||
.column {
|
||||
display: inline-block;
|
||||
@ -1377,17 +1595,12 @@ label {
|
||||
width: 20%;
|
||||
padding: 25px;
|
||||
height: 200px;
|
||||
/* Should be removed. Only for demonstration */
|
||||
border-radius: 5px;
|
||||
text-align: center;
|
||||
font-size: 100%;
|
||||
/* Add shadows to create the "card" effect */
|
||||
transition: box-shadow 0.1s ease-in-out;
|
||||
}
|
||||
|
||||
|
||||
/* On mouse-over, add a deeper shadow */
|
||||
|
||||
.column:hover {
|
||||
box-shadow: 0 8px 16px 0 rgba(0, 0, 0, .3);
|
||||
}
|
||||
@ -1416,16 +1629,12 @@ img {
|
||||
margin: 5px;
|
||||
}
|
||||
|
||||
/* Empty container that will replace the original container */
|
||||
#empty-container {
|
||||
display: inline-block;
|
||||
/*float: left;*/
|
||||
width: 20%;
|
||||
min-width: 300px;
|
||||
padding: 28px;
|
||||
height: 200px;
|
||||
/* Should be removed. Only for demonstration */
|
||||
|
||||
margin: 1.8%;
|
||||
text-align: center;
|
||||
}
|
||||
@ -1664,6 +1873,7 @@ img {
|
||||
|
||||
.ondeck {
|
||||
border: grey solid 2px !important;
|
||||
display: block !important;
|
||||
}
|
||||
|
||||
.recording{
|
||||
@ -1880,7 +2090,7 @@ audio.fileshare::-webkit-media-controls-play-button, video.fileshare::-webkit-me
|
||||
display: none;
|
||||
align-text: center;
|
||||
position: absolute;
|
||||
z-index: 21 !important;
|
||||
z-index: 35 !important;
|
||||
padding: 3px !important;
|
||||
min-width: 180px !important;
|
||||
background-color: #fff !important;
|
||||
@ -1949,15 +2159,7 @@ audio.fileshare::-webkit-media-controls-play-button, video.fileshare::-webkit-me
|
||||
background-color: #f3f3f3;
|
||||
border: 1px solid #ccc;
|
||||
}
|
||||
#effectSelector3{
|
||||
background-color: #FFF;
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
padding: 3px;
|
||||
font-size: 93%;
|
||||
max-width: 100%;
|
||||
width: 90%;
|
||||
}
|
||||
|
||||
#effectsDiv {
|
||||
user-select: none;
|
||||
font-size:100%;
|
||||
@ -2003,12 +2205,7 @@ audio.fileshare::-webkit-media-controls-play-button, video.fileshare::-webkit-me
|
||||
font-size: 100%;
|
||||
max-width: 260px;
|
||||
}
|
||||
#effectSelector{
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
font-size: 100%;
|
||||
max-width: 260px;
|
||||
}
|
||||
|
||||
.gone {
|
||||
position: absolute;
|
||||
display: inline-block;
|
||||
@ -2040,7 +2237,6 @@ audio.fileshare::-webkit-media-controls-play-button, video.fileshare::-webkit-me
|
||||
height:0px;
|
||||
opacity: 0;
|
||||
}
|
||||
/* visited link */
|
||||
.grabLinks a:visited {
|
||||
color: black !important;
|
||||
}
|
||||
@ -2219,20 +2415,14 @@ label {
|
||||
font-weight: normal;
|
||||
}
|
||||
input[type=checkbox] {
|
||||
/* Double-sized Checkboxes */
|
||||
|
||||
-ms-transform: scale(1.4);
|
||||
/* IE */
|
||||
|
||||
-moz-transform: scale(1.4);
|
||||
/* FF */
|
||||
|
||||
-webkit-transform: scale(1.4);
|
||||
/* Safari and Chrome */
|
||||
|
||||
-o-transform: scale(1.4);
|
||||
/* Opera */
|
||||
|
||||
transform: scale(1.4);
|
||||
padding: 5px;
|
||||
margin: 0 5px 0 1px;
|
||||
@ -2329,13 +2519,11 @@ input[type=checkbox] {
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
/* Handle */
|
||||
.debugStats::-webkit-scrollbar-thumb {
|
||||
background: rgb(119, 119, 119);
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
/* Handle on hover */
|
||||
.debugStats::-webkit-scrollbar-thumb:hover {
|
||||
background: rgb(158, 158, 158);
|
||||
;
|
||||
@ -2558,7 +2746,6 @@ i.las.la-circle {
|
||||
font-size: 0.7em;
|
||||
text-overflow: ellipsis;
|
||||
overflow: hidden;
|
||||
/* left: 22px; */
|
||||
position: relative;
|
||||
width: 230px;
|
||||
display: inline-block;
|
||||
@ -2609,7 +2796,6 @@ div#guestFeeds:empty {
|
||||
outline: none;
|
||||
}
|
||||
|
||||
/* Top of the page share link */
|
||||
a#reshare {
|
||||
white-space: nowrap;
|
||||
margin: 0;
|
||||
@ -2621,7 +2807,6 @@ a#reshare {
|
||||
font-size: 130%;
|
||||
}
|
||||
|
||||
/* Top of the page Join room input*/
|
||||
#joinroomID {
|
||||
border-radius: 0;
|
||||
padding: 5px;
|
||||
@ -2630,7 +2815,6 @@ a#reshare {
|
||||
margin: 0px var(--regular-margin);
|
||||
}
|
||||
|
||||
/* Tips for guests */
|
||||
span#guestTips {
|
||||
margin: 0 auto 15px auto;
|
||||
width: 450px;
|
||||
@ -2744,6 +2928,23 @@ span#guestTips {
|
||||
pointer-events:none;
|
||||
border: 1px black solid;
|
||||
}
|
||||
|
||||
.video-meter-2 {
|
||||
padding:0;
|
||||
display:block;
|
||||
width:100%;
|
||||
height:100%;
|
||||
min-width:10px;
|
||||
min-height:10px;
|
||||
top: 0;
|
||||
right: 0;
|
||||
background-color:unset;
|
||||
position:absolute;
|
||||
border-radius: 5px;
|
||||
pointer-events:none;
|
||||
border: 5px green solid;
|
||||
}
|
||||
|
||||
.video-meter-director {
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
@ -2978,8 +3179,9 @@ input:checked + .slider:before {
|
||||
border-radius: 10px;
|
||||
font-weight: bold;
|
||||
z-index:31;
|
||||
min-width:400px;
|
||||
max-width:90%;
|
||||
width:550px;
|
||||
max-width:100%;
|
||||
overflow: hidden;
|
||||
overflow-wrap: break-word;
|
||||
}
|
||||
|
||||
@ -2994,7 +3196,7 @@ input:checked + .slider:before {
|
||||
.promptModalInner {
|
||||
position: relative;
|
||||
padding: 1em;
|
||||
max-width: 400px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.promptModalMessage {
|
||||
@ -3036,6 +3238,32 @@ input:checked + .slider:before {
|
||||
padding: 2px 0 0 0;
|
||||
}
|
||||
|
||||
.cameraTip {
|
||||
width: 100%;
|
||||
display: block;
|
||||
border-left: 4px solid #50cef1;
|
||||
background: #dbf0ff;
|
||||
padding: 10px;
|
||||
align-items: center;
|
||||
position: relative;
|
||||
margin: 8px auto 0px auto;
|
||||
box-shadow: 0px 5px 10px -5px #a9a9a9;
|
||||
text-align: left;
|
||||
font-size: 97%;
|
||||
}
|
||||
.cameraTip > p {
|
||||
text-align: left;
|
||||
display:inline-block;
|
||||
padding-left: 32px;
|
||||
vertical-align: middle;
|
||||
|
||||
}
|
||||
.cameraTip > i {
|
||||
position: absolute;
|
||||
font-size: 1.5em;
|
||||
padding: 2px 0 0 0;
|
||||
}
|
||||
|
||||
#consentWarning{
|
||||
margin: 0 auto 20px auto;
|
||||
}
|
||||
@ -3084,17 +3312,14 @@ input:checked + .slider:before {
|
||||
color: blue;
|
||||
}
|
||||
|
||||
/* visited link */
|
||||
#alertModal a:visited {
|
||||
color: blue;
|
||||
}
|
||||
|
||||
/* mouse over link */
|
||||
#alertModal a:hover {
|
||||
color: blue;
|
||||
}
|
||||
|
||||
/* selected link */
|
||||
#alertModal a:active {
|
||||
color: blue;
|
||||
}
|
||||
@ -3102,6 +3327,7 @@ input:checked + .slider:before {
|
||||
.alertModalInner {
|
||||
position: relative;
|
||||
padding: 2em;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
.modalClose {
|
||||
@ -3325,6 +3551,8 @@ input:checked + .slider:before {
|
||||
content: "\f017"; }
|
||||
.la-tachometer-alt:before {
|
||||
content: "\f3fd"; }
|
||||
.la-fire-alt:before {
|
||||
content: "\f7e4"; }
|
||||
.la-book-open:before {
|
||||
content: "\f518"; }
|
||||
.la-caret-down:before {
|
||||
@ -3363,6 +3591,8 @@ input:checked + .slider:before {
|
||||
content: "\f026"; }
|
||||
.la-eye-slash:before {
|
||||
content: "\f070"; }
|
||||
.la-eye:before {
|
||||
content: "\f06e"; }
|
||||
.la-minus:before {
|
||||
content: "\f068"; }
|
||||
.la-plus:before {
|
||||
@ -3409,7 +3639,9 @@ input:checked + .slider:before {
|
||||
content: "\f001"; }
|
||||
.la-hdd:before {
|
||||
content: "\f0a0"; }
|
||||
|
||||
.la-signal:before {
|
||||
content: "\f012"; }
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
:root {
|
||||
--color-mode: dark;
|
||||
@ -3417,6 +3649,13 @@ input:checked + .slider:before {
|
||||
}
|
||||
}
|
||||
|
||||
body.darktheme {
|
||||
color: white;
|
||||
}
|
||||
body.darktheme form>label{
|
||||
color: white;
|
||||
}
|
||||
|
||||
body.darktheme .container-inner{
|
||||
background-color: #40444E
|
||||
}
|
||||
@ -3436,7 +3675,7 @@ body.darktheme .directorsgrid .vidcon > .las {
|
||||
background-color: #646464;
|
||||
}
|
||||
body.darktheme .form-group .multiselect {
|
||||
background-color: #949494;
|
||||
background-color: #414141;
|
||||
padding: 10px; background-color:#f3f3f3;
|
||||
}
|
||||
body.darktheme h2 {
|
||||
@ -3454,22 +3693,22 @@ body.darktheme #roomHeader{
|
||||
filter: brightness(0.85);
|
||||
}
|
||||
body.darktheme div.multiselect {
|
||||
background-color: #949494;
|
||||
background-color: #414141;
|
||||
}
|
||||
body.darktheme .videoMenu {
|
||||
background-color: #949494;
|
||||
background-color: #414141;
|
||||
}
|
||||
body.darktheme .audioMenu{
|
||||
background-color: #949494;
|
||||
background-color: #414141;
|
||||
}
|
||||
body.darktheme #headphonesDiv{
|
||||
background-color: #949494;
|
||||
background-color: #414141;
|
||||
}
|
||||
body.darktheme #headphonesDiv3{
|
||||
background-color: #949494;
|
||||
background-color: #414141;
|
||||
}
|
||||
body.darktheme select{
|
||||
background-color: #949494;
|
||||
background-color: #b2b2b2;
|
||||
}
|
||||
body.darktheme .white {
|
||||
filter: brightness(0.85);
|
||||
@ -3485,13 +3724,13 @@ body.darktheme .infoblob{
|
||||
color: #CCC;
|
||||
}
|
||||
body.darktheme #addPasswordBasic{
|
||||
background-color: #949494;
|
||||
background-color: #414141;
|
||||
}
|
||||
body.darktheme #effectsDiv{
|
||||
background-color: #949494;
|
||||
background-color: #414141;
|
||||
}
|
||||
body.darktheme #effectsDiv3{
|
||||
background-color: #949494;
|
||||
background-color: #414141;
|
||||
}
|
||||
body.darktheme .outMessage{
|
||||
background-color: #7f89a7;
|
||||
@ -3506,52 +3745,52 @@ body.darktheme .popup-message{
|
||||
background-color: #9b9b9b !important;
|
||||
}
|
||||
body.darktheme #audioScreenShare1{
|
||||
background-color: #949494;
|
||||
background-color: #414141;
|
||||
}
|
||||
body.darktheme #webcamstats2{
|
||||
background-color: #949494;
|
||||
background-color: #414141;
|
||||
}
|
||||
body.darktheme #audioSourceScreenshare{
|
||||
background-color: #c1c1c1;
|
||||
background-color: #e4e4e4;
|
||||
}
|
||||
body.darktheme #headphonesDiv2{
|
||||
background-color: #949494;
|
||||
background-color: #414141;
|
||||
}
|
||||
body.darktheme #outputSourceScreenshare{
|
||||
background-color: #c1c1c1;
|
||||
background-color: #e4e4e4;
|
||||
}
|
||||
body.darktheme #audioSource{
|
||||
background-color: #c1c1c1;
|
||||
background-color: #e4e4e4;
|
||||
}
|
||||
body.darktheme #outputSource{
|
||||
background-color: #c1c1c1;
|
||||
background-color: #e4e4e4;
|
||||
}
|
||||
body.darktheme #videoSourceSelect{
|
||||
background-color: #c1c1c1;
|
||||
background-color: #e4e4e4;
|
||||
}
|
||||
body.darktheme #videoSettings{
|
||||
background-color: #949494;
|
||||
background-color: #414141;
|
||||
}
|
||||
body.darktheme #effectSelector{
|
||||
background-color: #c1c1c1;
|
||||
background-color: #e4e4e4;
|
||||
}
|
||||
body.darktheme #effectSelector3{
|
||||
background-color: #c1c1c1;
|
||||
background-color: #e4e4e4;
|
||||
}
|
||||
body.darktheme #audioSource3{
|
||||
background-color: #c1c1c1;
|
||||
background-color: #e4e4e4;
|
||||
}
|
||||
body.darktheme #videoSource3{
|
||||
background-color: #c1c1c1;
|
||||
background-color: #e4e4e4;
|
||||
}
|
||||
body.darktheme #videoMenu3{
|
||||
background-color: #949494;
|
||||
background-color: #414141;
|
||||
}
|
||||
body.darktheme #outputSource3{
|
||||
background-color: #c1c1c1;
|
||||
background-color: #e4e4e4;
|
||||
}
|
||||
body.darktheme #videoSettings3{
|
||||
background-color: #949494;
|
||||
background-color: #414141;
|
||||
}
|
||||
body.darktheme .promptModalInner{
|
||||
background-color: #ccc;
|
||||
@ -3564,9 +3803,21 @@ body.darktheme .directorContainer{
|
||||
filter: brightness(0.85);
|
||||
}
|
||||
body.darktheme #grabDirectorSoloLinkParent{
|
||||
background-color: #949494;
|
||||
background-color: #414141;
|
||||
}
|
||||
body.darktheme #grabDirectorSoloLink{
|
||||
background-color: #c1c1c1;
|
||||
background-color: #e4e4e4;
|
||||
}
|
||||
|
||||
body.darktheme .cameraTip{
|
||||
background-color: #27354b;
|
||||
color: #e5dbdb;
|
||||
}
|
||||
body.darktheme .invite_setting_group{
|
||||
color: black;
|
||||
}
|
||||
body.darktheme .invite_setting_item>input{
|
||||
background-color:white;
|
||||
}
|
||||
body.darktheme .invite_setting_item>select{
|
||||
background-color:white;
|
||||
}
|
||||
BIN
media/icon.png
BIN
media/icon.png
Binary file not shown.
|
Before Width: | Height: | Size: 45 KiB After Width: | Height: | Size: 49 KiB |
BIN
media/logo_cropped.png
Normal file
BIN
media/logo_cropped.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 44 KiB |
BIN
media/old_icon.png
Normal file
BIN
media/old_icon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 45 KiB |
571
midi.html
Normal file
571
midi.html
Normal file
@ -0,0 +1,571 @@
|
||||
<html>
|
||||
<head>
|
||||
<script src="https://vdo.ninja/thirdparty/webmidi.js"></script>
|
||||
<link rel="stylesheet" href="https://vdo.ninja/main.css" />
|
||||
<style>
|
||||
.container {
|
||||
max-width: 80%;
|
||||
width: fit-content;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
h1 {
|
||||
margin-top: 1em;
|
||||
margin-bottom: 1em;
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
.card {
|
||||
margin: 10px;
|
||||
box-shadow: 0 4px 8px 0 rgb(0 0 0 / 10%);
|
||||
background-color: #ddd;
|
||||
color: black;
|
||||
margin-bottom: 1.5em;
|
||||
}
|
||||
|
||||
.card>div {
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
.card h2 {
|
||||
font-size: 1.5em;
|
||||
padding: 10px;
|
||||
background-color: #457b9d;
|
||||
color: white;
|
||||
border-bottom: 2px solid #3b6a87;
|
||||
}
|
||||
|
||||
small {
|
||||
font-style: italic;
|
||||
display: block;
|
||||
margin-left: 1em;
|
||||
}
|
||||
|
||||
span.warning {
|
||||
color: rgb(212, 191, 0);
|
||||
}
|
||||
|
||||
input {
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
video {
|
||||
max-width: 640px;
|
||||
max-height: 360px;
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
audio {
|
||||
max-width: 640px;
|
||||
max-height: 360px;
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
div#processing {
|
||||
display: none;
|
||||
justify-content: center;
|
||||
place-items: center;
|
||||
position: absolute;
|
||||
inset: 0;
|
||||
font-size: 1.5em;
|
||||
font-weight: bold;
|
||||
background: #141926;
|
||||
flex-direction: column;
|
||||
}
|
||||
button {
|
||||
margin:5px;
|
||||
border:solid black 2px;
|
||||
}
|
||||
|
||||
body {
|
||||
color:white;
|
||||
}
|
||||
|
||||
a {
|
||||
color: #225273!important;
|
||||
}
|
||||
|
||||
|
||||
|
||||
</style>
|
||||
<title>VDO.Ninja MIDI Controller</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="header">
|
||||
<a id="logoname" href="./" style="text-decoration: none; color: white; margin: 2px">
|
||||
<span data-translate="logo-header">
|
||||
<font id="qos">V</font>DO.Ninja
|
||||
</span>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="container">
|
||||
<div id="info">
|
||||
<h1>VDO.Ninja MIDI test app</h1>
|
||||
|
||||
<div class="card">
|
||||
<h2>About</h2>
|
||||
<div>
|
||||
You can check the console debug logs for added of input/output events and device details.
|
||||
<br /><br />You can download a virtual MIDI I/O controller for windwos here:<br />
|
||||
http://www.tobias-erichsen.de/software/loopmidi.html
|
||||
<br /><br />This code uses the WebMIDI.js library, referenced here:<br />
|
||||
https://github.com/djipco/webmidi
|
||||
<br /><br />
|
||||
Below you can test the <a href="https://docs.vdo.ninja/general-settings/midi">MIDI hotkey commands</a> for VDO.Ninja below:<br />
|
||||
</div>
|
||||
</div>
|
||||
<div class="card">
|
||||
<h2>Select the MIDI Output device:</h2>
|
||||
<div>
|
||||
<label for="outputdevice">MIDI Output device:</label>
|
||||
<select name="outputdevice" id="outputdevice">
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card">
|
||||
<h2>&midi=1</h2>
|
||||
<div id="container1">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="card">
|
||||
<h2>&midi=3</h2>
|
||||
<div id="container2">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="card">
|
||||
<h2>&midi=4 ; director</h2>
|
||||
<div id="container3">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="card">
|
||||
<h2>&midi=4 ; guest 1</h2>
|
||||
<div id="container4">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="card">
|
||||
<h2>&midi=4 ; guest 2</h2>
|
||||
<div id="container5">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="card">
|
||||
<h2>Sample Remote Director Control links</h2>
|
||||
<div id="container6">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div id='commands'>
|
||||
|
||||
</div>
|
||||
<script>
|
||||
// Enable WebMidi.js
|
||||
WebMidi.enable(function (err) {
|
||||
|
||||
if (err) {
|
||||
console.log("WebMidi could not be enabled.", err);
|
||||
}
|
||||
|
||||
// Viewing available inputs and outputs
|
||||
console.log(WebMidi.inputs);
|
||||
console.log(WebMidi.outputs);
|
||||
|
||||
var output = WebMidi.outputs[0];
|
||||
|
||||
|
||||
var midiout = 0;
|
||||
var outputdevice = document.getElementById("outputdevice");
|
||||
for (var i=0;i<WebMidi.outputs.length;i++){
|
||||
var opt = document.createElement('option');
|
||||
opt.value = WebMidi.outputs[i].id;
|
||||
opt.innerHTML = WebMidi.outputs[i].name + " (id:"+(1+i)+")";
|
||||
if (i==0){
|
||||
midiout = opt.value;
|
||||
opt.selected = true;
|
||||
}
|
||||
outputdevice.appendChild(opt);
|
||||
}
|
||||
|
||||
var path = window.location.host+window.location.pathname.split("/").slice(0,-1).join("/");
|
||||
|
||||
outputdevice.onchange = function(e){
|
||||
midiout = outputdevice.value;
|
||||
output = WebMidi.getOutputById(midiout);
|
||||
//input = WebMidi.getInputById(midiout);
|
||||
console.log("MIDI DEVICE CHANGED: "+midiout);
|
||||
|
||||
var container = document.getElementById("container6");
|
||||
container.innerHTML = "<br />https://"+path+"/?midiremote=4&director=ROOMNAMEHERE";
|
||||
container.innerHTML += "<br /><br />";
|
||||
container.innerHTML += "https://"+path+"/?room=ROOMNAMEHERE&midiout="+(outputdevice.selectedIndex+1)+"&vd=0&ad=0&push&autostart&label=MIDI_CONTROLLER";
|
||||
}
|
||||
|
||||
var container = document.getElementById("container6");
|
||||
container.innerHTML = "<br />https://"+path+"/?midiremote=4&director=ROOMNAMEHERE";
|
||||
container.innerHTML += "<br /><br />";
|
||||
container.innerHTML += "https://"+path+"/?room=ROOMNAMEHERE&midiout="+(outputdevice.selectedIndex+1)+"&vd=0&ad=0&push&autostart&label=MIDI_CONTROLLER";
|
||||
|
||||
// Reacting when a new device becomes available
|
||||
WebMidi.addListener("connected", function(e) {
|
||||
console.log(e);
|
||||
});
|
||||
|
||||
// Reacting when a device becomes unavailable
|
||||
WebMidi.addListener("disconnected", function(e) {
|
||||
console.log(e);
|
||||
});
|
||||
|
||||
// Display the current time
|
||||
console.log(WebMidi.time);
|
||||
|
||||
|
||||
// Retrieve an input by name, id or index
|
||||
// var input = WebMidi.getInputByName("StreamDeck2Daw");
|
||||
// input = WebMidi.getInputById("1809568182");
|
||||
try{
|
||||
for (var i =0;i<WebMidi.inputs.length;i++){
|
||||
var input = WebMidi.inputs[i];
|
||||
|
||||
// Listen for a 'note on' message on all channels
|
||||
input.addListener('noteon', "all",
|
||||
function (e) {
|
||||
console.log("Received 'noteon' message (" + e.note.name + e.note.octave + ").");
|
||||
console.log(e);
|
||||
}
|
||||
);
|
||||
|
||||
// Listen to pitch bend message on channel 3
|
||||
input.addListener('pitchbend', 3,
|
||||
function (e) {
|
||||
console.log("Received 'pitchbend' message.", e);
|
||||
}
|
||||
);
|
||||
|
||||
// Listen to control change message on all channels
|
||||
input.addListener('controlchange', "all",
|
||||
function (e) {
|
||||
console.log("Received 'controlchange' message.", e);
|
||||
}
|
||||
);
|
||||
|
||||
// Listen to NRPN message on all channels
|
||||
input.addListener('nrpn', "all",
|
||||
function (e) {
|
||||
if(e.controller.type === 'entry') {
|
||||
console.log("Received 'nrpn' 'entry' message.", e);
|
||||
}
|
||||
if(e.controller.type === 'decrement') {
|
||||
console.log("Received 'nrpn' 'decrement' message.", e);
|
||||
}
|
||||
if(e.controller.type === 'increment') {
|
||||
console.log("Received 'nrpn' 'increment' message.", e);
|
||||
}
|
||||
console.log("message value: " + e.controller.value + ".", e);
|
||||
}
|
||||
);
|
||||
}
|
||||
} catch(e){errorlog("no input midi found");}
|
||||
|
||||
|
||||
|
||||
var container = document.getElementById("container1");
|
||||
|
||||
|
||||
///
|
||||
|
||||
|
||||
var button = document.createElement("button");
|
||||
button.innerHTML = "Note G3; Chat";
|
||||
button.onclick = function(){output.playNote("G3");}; // "speaker" also works in the same way.
|
||||
container.appendChild(button);
|
||||
|
||||
var button = document.createElement("button");
|
||||
button.innerHTML = "Note A3; Mute";
|
||||
button.onclick = function(){output.playNote("A3");}; // "speaker" also works in the same way.
|
||||
container.appendChild(button);
|
||||
|
||||
var button = document.createElement("button");
|
||||
button.innerHTML = "Note B3; Mute Video";
|
||||
button.onclick = function(){output.playNote("B3");}; // "speaker" also works in the same way.
|
||||
container.appendChild(button);
|
||||
|
||||
var button = document.createElement("button");
|
||||
button.innerHTML = "Note C4; ScreenShare";
|
||||
button.onclick = function(){output.playNote("C4");}; // "speaker" also works in the same way.
|
||||
container.appendChild(button);
|
||||
|
||||
var button = document.createElement("button");
|
||||
button.innerHTML = "Note D4; Hangup";
|
||||
button.onclick = function(){output.playNote("D4");}; // "speaker" also works in the same way.
|
||||
container.appendChild(button);
|
||||
|
||||
var button = document.createElement("button");
|
||||
button.innerHTML = "Note E4; Hands";
|
||||
button.onclick = function(){output.playNote("E4");}; // "speaker" also works in the same way.
|
||||
container.appendChild(button);
|
||||
|
||||
var button = document.createElement("button");
|
||||
button.innerHTML = "Note F4; Record";
|
||||
button.onclick = function(){output.playNote("F4");}; // "speaker" also works in the same way.
|
||||
container.appendChild(button);
|
||||
|
||||
var button = document.createElement("button");
|
||||
button.innerHTML = "Note G4; Turn on Dir's Audio";
|
||||
button.onclick = function(){output.playNote("G4");}; // "speaker" also works in the same way.
|
||||
container.appendChild(button);
|
||||
|
||||
var button = document.createElement("button");
|
||||
button.innerHTML = "Note A4; Stop Dir's Audio";
|
||||
button.onclick = function(){output.playNote("A4");}; // "speaker" also works in the same way.
|
||||
container.appendChild(button);
|
||||
|
||||
///
|
||||
|
||||
var container = document.getElementById("container2");
|
||||
|
||||
///
|
||||
|
||||
|
||||
var button = document.createElement("button");
|
||||
button.innerHTML = "Note C1; velocity 0";
|
||||
button.onclick = function(){output.playNote("C1", 1, {velocity: 0});}; // "speaker" also works in the same way.
|
||||
container.appendChild(button);
|
||||
|
||||
var button = document.createElement("button");
|
||||
button.innerHTML = "Note C1; velocity 1";
|
||||
button.onclick = function(){output.playNote("C1", 1, {velocity: 1});}; // "speaker" also works in the same way.
|
||||
container.appendChild(button);
|
||||
|
||||
var button = document.createElement("button");
|
||||
button.innerHTML = "Note C1; velocity 2";
|
||||
button.onclick = function(){output.playNote("C1", 1, {velocity: 2});}; // "speaker" also works in the same way.
|
||||
container.appendChild(button);
|
||||
|
||||
var button = document.createElement("button");
|
||||
button.innerHTML = "Note C1; velocity 3";
|
||||
button.onclick = function(){output.playNote("C1", 1, {velocity: 3});}; // "speaker" also works in the same way.
|
||||
container.appendChild(button);
|
||||
|
||||
var button = document.createElement("button");
|
||||
button.innerHTML = "Note C1; velocity 4";
|
||||
button.onclick = function(){output.playNote("C1", 1, {velocity: 4});}; // "speaker" also works in the same way.
|
||||
container.appendChild(button);
|
||||
|
||||
var button = document.createElement("button");
|
||||
button.innerHTML = "Note C1; velocity 5";
|
||||
button.onclick = function(){output.playNote("C1", 1, {velocity: 5});}; // "speaker" also works in the same way.
|
||||
container.appendChild(button);
|
||||
|
||||
var button = document.createElement("button");
|
||||
button.innerHTML = "Note C1; velocity 6";
|
||||
button.onclick = function(){output.playNote("C1", 1, {velocity: 6});}; // "speaker" also works in the same way.
|
||||
container.appendChild(button);
|
||||
|
||||
var button = document.createElement("button");
|
||||
button.innerHTML = "Note C1; velocity 7";
|
||||
button.onclick = function(){output.playNote("C1", 1, {velocity: 7});}; // "speaker" also works in the same way.
|
||||
container.appendChild(button);
|
||||
|
||||
var button = document.createElement("button");
|
||||
button.innerHTML = "Note C1; velocity 8";
|
||||
button.onclick = function(){output.playNote("C1", 1, {velocity: 8});}; // "speaker" also works in the same way.
|
||||
container.appendChild(button);
|
||||
///
|
||||
|
||||
var container = document.getElementById("container3");
|
||||
|
||||
|
||||
///
|
||||
|
||||
|
||||
var button = document.createElement("button");
|
||||
button.innerHTML = "channel 110; value 0";
|
||||
button.onclick = function(){output.sendControlChange(110, 0, 1);}; // "speaker" also works in the same way.
|
||||
container.appendChild(button);
|
||||
|
||||
var button = document.createElement("button");
|
||||
button.innerHTML = "channel 110; value 1";
|
||||
button.onclick = function(){output.sendControlChange(110, 1, 1);}; // "speaker" also works in the same way.
|
||||
container.appendChild(button);
|
||||
|
||||
var button = document.createElement("button");
|
||||
button.innerHTML = "channel 110; value 2";
|
||||
button.onclick = function(){output.sendControlChange(110, 2, 1);}; // "speaker" also works in the same way.
|
||||
container.appendChild(button);
|
||||
|
||||
var button = document.createElement("button");
|
||||
button.innerHTML = "channel 110; value 3";
|
||||
button.onclick = function(){output.sendControlChange(110, 3, 1);}; // "speaker" also works in the same way.
|
||||
container.appendChild(button);
|
||||
|
||||
var button = document.createElement("button");
|
||||
button.innerHTML = "channel 110; value 4";
|
||||
button.onclick = function(){output.sendControlChange(110, 4, 1);}; // "speaker" also works in the same way.
|
||||
container.appendChild(button);
|
||||
|
||||
var button = document.createElement("button");
|
||||
button.innerHTML = "channel 110; value 5";
|
||||
button.onclick = function(){output.sendControlChange(110, 5, 1);}; // "speaker" also works in the same way.
|
||||
container.appendChild(button);
|
||||
|
||||
var button = document.createElement("button");
|
||||
button.innerHTML = "channel 110; value 6";
|
||||
button.onclick = function(){output.sendControlChange(110, 6, 1);}; // "speaker" also works in the same way.
|
||||
container.appendChild(button);
|
||||
|
||||
var button = document.createElement("button");
|
||||
button.innerHTML = "channel 110; value 7";
|
||||
button.onclick = function(){output.sendControlChange(110, 7, 1);}; // "speaker" also works in the same way.
|
||||
container.appendChild(button);
|
||||
|
||||
var button = document.createElement("button");
|
||||
button.innerHTML = "channel 110; value 8";
|
||||
button.onclick = function(){output.sendControlChange(110, 8, 1);}; // "speaker" also works in the same way.
|
||||
container.appendChild(button);
|
||||
|
||||
|
||||
|
||||
///
|
||||
|
||||
var container = document.getElementById("container4");
|
||||
|
||||
|
||||
///
|
||||
|
||||
var button = document.createElement("button");
|
||||
button.innerHTML = "channel 111; value 0";
|
||||
button.onclick = function(){output.sendControlChange(111, 0, 1);}; // "speaker" also works in the same way.
|
||||
container.appendChild(button);
|
||||
|
||||
var button = document.createElement("button");
|
||||
button.innerHTML = "channel 111; value 1";
|
||||
button.onclick = function(){output.sendControlChange(111, 1, 1);}; // "speaker" also works in the same way.
|
||||
container.appendChild(button);
|
||||
|
||||
var button = document.createElement("button");
|
||||
button.innerHTML = "channel 111; value 2";
|
||||
button.onclick = function(){output.sendControlChange(111, 2, 1);}; // "speaker" also works in the same way.
|
||||
container.appendChild(button);
|
||||
|
||||
var button = document.createElement("button");
|
||||
button.innerHTML = "channel 111; value 3";
|
||||
button.onclick = function(){output.sendControlChange(111, 3, 1);}; // "speaker" also works in the same way.
|
||||
container.appendChild(button);
|
||||
|
||||
var button = document.createElement("button");
|
||||
button.innerHTML = "channel 111; value 4";
|
||||
button.onclick = function(){output.sendControlChange(111, 4, 1);}; // "speaker" also works in the same way.
|
||||
container.appendChild(button);
|
||||
|
||||
var button = document.createElement("button");
|
||||
button.innerHTML = "channel 111; value 5";
|
||||
button.onclick = function(){output.sendControlChange(111, 5, 1);}; // "speaker" also works in the same way.
|
||||
container.appendChild(button);
|
||||
|
||||
var button = document.createElement("button");
|
||||
button.innerHTML = "Rainbow Puke Fix; value 8";
|
||||
button.onclick = function(){output.sendControlChange(111, 8, 1);}; // "speaker" also works in the same way.
|
||||
container.appendChild(button);
|
||||
|
||||
///
|
||||
|
||||
var container = document.getElementById("container5");
|
||||
|
||||
|
||||
///
|
||||
|
||||
|
||||
var button = document.createElement("button");
|
||||
button.innerHTML = "channel 112; transfer popup";
|
||||
button.onclick = function(){output.sendControlChange(112, 0, 1);}; // "speaker" also works in the same way.
|
||||
container.appendChild(button);
|
||||
|
||||
var button = document.createElement("button");
|
||||
button.innerHTML = "channel 112; scene 1";
|
||||
button.onclick = function(){output.sendControlChange(112, 1, 1);}; // "speaker" also works in the same way.
|
||||
container.appendChild(button);
|
||||
|
||||
var button = document.createElement("button");
|
||||
button.innerHTML = "channel 112; mute in scene";
|
||||
button.onclick = function(){output.sendControlChange(112, 2, 1);}; // "speaker" also works in the same way.
|
||||
container.appendChild(button);
|
||||
|
||||
var button = document.createElement("button");
|
||||
button.innerHTML = "channel 112; mute everywhere";
|
||||
button.onclick = function(){output.sendControlChange(112, 3, 1);}; // "speaker" also works in the same way.
|
||||
container.appendChild(button);
|
||||
|
||||
var button = document.createElement("button");
|
||||
button.innerHTML = "channel 112; hang up";
|
||||
button.onclick = function(){output.sendControlChange(112, 4, 1);}; // "speaker" also works in the same way.
|
||||
container.appendChild(button);
|
||||
|
||||
var button = document.createElement("button");
|
||||
button.innerHTML = "channel 112; solo chat";
|
||||
button.onclick = function(){output.sendControlChange(112, 5, 1);}; // "speaker" also works in the same way.
|
||||
container.appendChild(button);
|
||||
|
||||
var button = document.createElement("button");
|
||||
button.innerHTML = "remote speaker";
|
||||
button.onclick = function(){output.sendControlChange(112, 6, 1);}; // "speaker" also works in the same way.
|
||||
container.appendChild(button);
|
||||
|
||||
var button = document.createElement("button");
|
||||
button.innerHTML = "remote display";
|
||||
button.onclick = function(){output.sendControlChange(112, 7, 1);}; // "speaker" also works in the same way.
|
||||
container.appendChild(button);
|
||||
|
||||
var button = document.createElement("button");
|
||||
button.innerHTML = "Rainbow Puke Fix";
|
||||
button.onclick = function(){output.sendControlChange(112, 8, 1);}; // "speaker" also works in the same way.
|
||||
container.appendChild(button);
|
||||
|
||||
var button = document.createElement("button");
|
||||
button.innerHTML = "scene 2";
|
||||
button.onclick = function(){output.sendControlChange(112, 12, 1);}; // "speaker" also works in the same way.
|
||||
container.appendChild(button);
|
||||
|
||||
var button = document.createElement("button");
|
||||
button.innerHTML = "scene 3";
|
||||
button.onclick = function(){output.sendControlChange(112, 13, 1);}; // "speaker" also works in the same way.
|
||||
container.appendChild(button);
|
||||
|
||||
var button = document.createElement("button");
|
||||
button.innerHTML = "scene 4";
|
||||
button.onclick = function(){output.sendControlChange(112, 14, 1);}; // "speaker" also works in the same way.
|
||||
container.appendChild(button);
|
||||
|
||||
var button = document.createElement("button");
|
||||
button.innerHTML = "scene 5";
|
||||
button.onclick = function(){output.sendControlChange(112, 15, 1);}; // "speaker" also works in the same way.
|
||||
container.appendChild(button);
|
||||
|
||||
var button = document.createElement("button");
|
||||
button.innerHTML = "scene 6";
|
||||
button.onclick = function(){output.sendControlChange(112, 16, 1);}; // "speaker" also works in the same way.
|
||||
container.appendChild(button);
|
||||
|
||||
var button = document.createElement("button");
|
||||
button.innerHTML = " scene 7";
|
||||
button.onclick = function(){output.sendControlChange(112, 17, 1);}; // "speaker" also works in the same way.
|
||||
container.appendChild(button);
|
||||
|
||||
var button = document.createElement("button");
|
||||
button.innerHTML = "scene 8";
|
||||
button.onclick = function(){output.sendControlChange(112, 18, 1);}; // "speaker" also works in the same way.
|
||||
container.appendChild(button);
|
||||
|
||||
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
1125
mixer.html
Normal file
1125
mixer.html
Normal file
File diff suppressed because it is too large
Load Diff
14
monitor.html
14
monitor.html
@ -2,7 +2,7 @@
|
||||
<head>
|
||||
<meta charset="utf8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<title>OBSN Monitoring</title>
|
||||
<title>VDO.Ninja Monitoring</title>
|
||||
<style>
|
||||
|
||||
body {
|
||||
@ -99,7 +99,9 @@
|
||||
|
||||
canvas {
|
||||
background-color: black;
|
||||
margin: 20px;
|
||||
margin: 1vw;
|
||||
width: 22vw;
|
||||
height: 160px;
|
||||
}
|
||||
|
||||
#log {
|
||||
@ -430,14 +432,12 @@
|
||||
<body onload="loadIframe();">
|
||||
<div id="container">
|
||||
<h1 >
|
||||
<span id="streamID_header">OBS.Ninja Remote Monitor</span>
|
||||
<span id="streamID_header">VDO.Ninja Remote Monitor</span>
|
||||
</h1>
|
||||
</div>
|
||||
|
||||
<div id="graphs" style="display:none">
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="graph">
|
||||
<h2>Bitrate (kbps)</h2>
|
||||
<span>0</span>
|
||||
@ -447,7 +447,7 @@
|
||||
<div class="graph">
|
||||
<h2>Reported lost packets (per second)</h2>
|
||||
<span>0</span>
|
||||
<canvas data-nackrate-graph="true"></canvas>
|
||||
<canvas data-nackrate-graph="true"></canvas>
|
||||
</div>
|
||||
|
||||
<div class="graph">
|
||||
|
||||
@ -36,7 +36,8 @@ body {
|
||||
|
||||
h1 {
|
||||
color: white;
|
||||
margin: 20px 0px;
|
||||
margin: 20px auto;
|
||||
width: 80%;
|
||||
}
|
||||
|
||||
h1 small {
|
||||
|
||||
@ -8,7 +8,7 @@
|
||||
</head>
|
||||
<body onload="loadIframe();">
|
||||
<h1>
|
||||
VDO.Ninja Speed Test
|
||||
VDO.Ninja's video streaming quality test
|
||||
</h1>
|
||||
<div id="container">
|
||||
</div>
|
||||
@ -42,22 +42,23 @@
|
||||
<li>Select your camera.</li>
|
||||
<li>Hit start</li>
|
||||
<li>
|
||||
Wait for the video to load side-by-side. *If it does not auto-load
|
||||
within 20s, refresh and try again.*
|
||||
Wait for the video to load side-by-side. *If it does not auto-load within 20s, refresh and try again.*
|
||||
</li>
|
||||
<li>
|
||||
Stats will load on the right-hand side of the page here. (or press
|
||||
CTRL + LeftClick on the new video to open stats that way)
|
||||
Stats will be printed to screen, along with graphs visualizing the most important metrics. You can also hold CTRL (cmd) + Click on the video to access even more stats.
|
||||
</li>
|
||||
<li>
|
||||
Bitrate, Buffer delay, and packet loss are important connection
|
||||
quality metrics
|
||||
Bitrate, Buffer delay, and packet loss are important connection quality metrics. Monitor them for at least a minute.
|
||||
</li>
|
||||
<li>
|
||||
Change the video bitrate by pressing the buttons below the video. It
|
||||
should approach 6000-kbps if the network allows.
|
||||
Change the video bitrate by pressing the buttons below the video. It should approach 6000-kbps if the network allows.
|
||||
</li>
|
||||
<li>
|
||||
Good packet loss will not exceed 0.1% and bad packet loss will exceed 1%. You can try testing against different global regions with the drop-down menu below.
|
||||
</li>
|
||||
<li>
|
||||
Check out <a href="https://youtu.be/je2ljlvLzlY" target="_blank" style='color:#DEF;'>this Youtube video</a> for more details and solutions to reduce packet loss if suffering from any.
|
||||
</li>
|
||||
|
||||
</ol>
|
||||
<div id="screen" style="color: #CCC; margin:10px 0;"><a href="./speedtest?screen" style="color: #CCC;">Test screen-sharing performance here</a></div>
|
||||
<div id="remote"></div>
|
||||
@ -69,9 +70,10 @@
|
||||
<option value="fr1">Strasbourg, France</option>
|
||||
<option value="bra1">São Paulo, Brazil</option>
|
||||
<option value="cae1">Montreal, Canada</option>
|
||||
<option value="use1">Virgina, USA</option>
|
||||
<option value="usc1">Chicago, USA</option>
|
||||
<option value="usw1">Los Angeles 1, USA</option>
|
||||
<option value="usw2">Los Angeles 2, USA</option>
|
||||
<option value="usw1">Los Angeles, USA</option>
|
||||
<option value="usw2">Oregon, USA</option>
|
||||
<option value="aus1">Sydney, Australia</option>
|
||||
<option value="jap1">Tokyo, Japan</option>
|
||||
<option value="sing1">Singapore</option>
|
||||
@ -114,6 +116,7 @@
|
||||
var quality_reason = "";
|
||||
var encoder = "";
|
||||
var Round_Trip_Time_ms = "";
|
||||
var recordResults = false;
|
||||
|
||||
function copyFunction(copyText) {
|
||||
alert("Log copied to the clipboard.");
|
||||
@ -238,6 +241,10 @@
|
||||
if (urlParams.has("buffer")) {
|
||||
srcString = srcString + "&buffer=" + urlParams.get("buffer");
|
||||
}
|
||||
|
||||
if (urlParams.has("record")) {
|
||||
recordResults = true;
|
||||
}
|
||||
|
||||
iframe.src = srcString;
|
||||
|
||||
@ -361,14 +368,12 @@
|
||||
if (out.split("Bitrate_in_kbps").length > 1) {
|
||||
for (var key in e.data.stats.inbound_stats[streamID]) {
|
||||
if (key.startsWith("RTCMediaStreamTrack_receiver")) {
|
||||
var bitrate =
|
||||
e.data.stats.inbound_stats[streamID][key][
|
||||
var bitrate = e.data.stats.inbound_stats[streamID][key][
|
||||
"Bitrate_in_kbps"
|
||||
];
|
||||
updateData("bitrate", bitrate);
|
||||
|
||||
var buffer =
|
||||
e.data.stats.inbound_stats[streamID][key][
|
||||
var buffer = e.data.stats.inbound_stats[streamID][key][
|
||||
"Buffer_Delay_in_ms"
|
||||
];
|
||||
updateData("buffer", buffer);
|
||||
@ -379,8 +384,7 @@
|
||||
updateData("packetloss", packetloss);
|
||||
}
|
||||
|
||||
var resolution =
|
||||
e.data.stats.inbound_stats[streamID][key]["Resolution"];
|
||||
var resolution = e.data.stats.inbound_stats[streamID][key]["Resolution"];
|
||||
|
||||
if (previousResolution != resolution) {
|
||||
previousResolution = resolution;
|
||||
@ -390,6 +394,12 @@
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (recordResults){
|
||||
var request = new XMLHttpRequest();
|
||||
request.open('POST', "https://reports.vdo.ninja/record");
|
||||
request.send(JSON.stringify(e.data.stats));
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@ -43,8 +43,29 @@
|
||||
return raw ? parseInt(raw[2], 10) : false;
|
||||
}
|
||||
|
||||
if (!getChromeVersion() || getChromeVersion < 60){
|
||||
alert("This tool really only works with recent Chromium based browsers; Firefox or Safari are not supported");
|
||||
function safariVersion() {
|
||||
try {
|
||||
var ver = navigator.appVersion.split("Version/");
|
||||
if (ver.length > 1) {
|
||||
ver = ver[1].split(" Safari");
|
||||
}
|
||||
if (ver.length > 1) {
|
||||
ver = ver[0].split(".");
|
||||
}
|
||||
if (ver.length > 1) {
|
||||
ver = parseInt(ver[0]);
|
||||
} else {
|
||||
ver = 0;
|
||||
}
|
||||
} catch (e) {
|
||||
return 0;
|
||||
}
|
||||
return ver;
|
||||
}
|
||||
|
||||
|
||||
if (!((safariVersion() && safariVersion()>=15) || (getChromeVersion() || getChromeVersion >=60))){
|
||||
alert("This tool really only works with recent Chromium based browsers; Firefox is not supported: "+ safariVersion());
|
||||
}
|
||||
|
||||
function prettyPrintJsonToId(json, element) {
|
||||
|
||||
5
thirdparty/CodecsHandler.js
vendored
5
thirdparty/CodecsHandler.js
vendored
@ -28,7 +28,6 @@ Copyright (c) 2012-2020 [Muaz Khan](https://github.com/muaz-khan)
|
||||
var CodecsHandler = (function() {
|
||||
function preferCodec(sdp, codecName) {
|
||||
var info = splitLines(sdp);
|
||||
|
||||
if (!info.videoCodecNumbers) {
|
||||
return sdp;
|
||||
} else if (codecName === 'vp8' && info.vp8LineNumber === info.videoCodecNumbers[0]) {
|
||||
@ -134,7 +133,9 @@ var CodecsHandler = (function() {
|
||||
info.h264LineNumber = line.replace('a=rtpmap:', '').split(' ')[0];
|
||||
}
|
||||
|
||||
if (line.indexOf('AV1X/90000') !== -1 && !info.av1LineNumber) {
|
||||
if (line.indexOf('AV1X/90000') !== -1 && !info.av1LineNumber) {
|
||||
info.av1LineNumber = line.replace('a=rtpmap:', '').split(' ')[0];
|
||||
} else if (line.indexOf('AV1/90000') !== -1 && !info.av1LineNumber) {
|
||||
info.av1LineNumber = line.replace('a=rtpmap:', '').split(' ')[0];
|
||||
}
|
||||
|
||||
|
||||
448
thirdparty/webmidi3.js
vendored
Normal file
448
thirdparty/webmidi3.js
vendored
Normal file
File diff suppressed because one or more lines are too long
@ -149,7 +149,30 @@
|
||||
"the-camera-will-load-in-a-default-safe-mode-that-may-work-if-other-modes-fail-": "The camera will load in a default safe-mode that may work if other modes fail.",
|
||||
"disable-animated-transitions-during-video-mixing": "Disable animated transitions during video mixing",
|
||||
"allow-the-guest-to-select-a-file-to-upload-to-the-director-once-shared-it-will-show-in-the-chat-as-a-download-link-": "Allow the guest to select a file to upload to the director. Once shared, it will show in the chat as a download link.",
|
||||
"set-a-countdown-timer-that-this-guest-sees": "Set a countdown timer that this guest sees"
|
||||
"set-a-countdown-timer-that-this-guest-sees": "Set a countdown timer that this guest sees",
|
||||
"will-remember-the-room-prompting-you-the-next-time-you-visit-if-you-wish-to-load-this-director-s-room-again": "Will remember the room, prompting you the next time you visit if you wish to load this director's room again",
|
||||
"create-a-third-stream": "Create a Third Stream",
|
||||
"share-a-website-with-your-guests-iframe-": "Share a website with your guests (IFRAME)",
|
||||
"hold-ctrl-or-cmd-and-click-to-spotlight-this-video": "Hold CTRL (or CMD) and click to spotlight this video",
|
||||
"add-group-chat": "Add Group Chat",
|
||||
"if-checked-the-director-can-be-added-to-scenes-as-if-a-guest-otherwise-the-director-will-never-appear-in-a-scene-": "If checked, the director can be added to scenes as if a guest. Otherwise, the director will never appear in a scene.",
|
||||
"add-your-camera": "Add your Camera",
|
||||
"experimental": "experimental",
|
||||
"adjust-the-amount-of-effect-applied": "Adjust the amount of effect applied",
|
||||
"remote-screenshare": "Remote Screenshare",
|
||||
"the-guest-will-be-able-to-select-digital-video-effects-to-apply-": "The guest will be able to select digital video effects to apply.",
|
||||
"use-this-link-as-a-browser-source-to-capture-the-video-or-audio": "Use this link as a Browser Source to capture the video or audio",
|
||||
"show-a-custom-welcome-message-to-the-joining-guest-of-this-invite-link": "Show a custom welcome message to the joining guest of this invite link",
|
||||
"add-remove-from-group-1": "Add/remove from group 1",
|
||||
"add-remove-from-group-2": "Add/remove from group 2",
|
||||
"add-remove-from-group-3": "Add/remove from group 3",
|
||||
"add-remove-from-group-4": "Add/remove from group 4",
|
||||
"add-remove-from-group-5": "Add/remove from group 5",
|
||||
"add-remove-from-group-6": "Add/remove from group 6",
|
||||
"the-solo-view-link-of-the-director-s-video-": "The solo view link of the Director's video.",
|
||||
"only-the-director-s-video-will-be-visible-to-guests-and-within-group-scenes": "Only the director's video will be visible to guests and within group scenes",
|
||||
"allow-for-remote-co-directors": "Allow for remote co-directors",
|
||||
"jump-to-the-documentation": "Jump to the documentation"
|
||||
},
|
||||
"innerHTML": {
|
||||
"join-room": "Join room",
|
||||
@ -167,9 +190,9 @@
|
||||
"joining-room": "You are in room",
|
||||
"push-to-talk-enable": " enable director`s microphone or video<br>(only guests can see this feed)",
|
||||
"hide-the-links": " LINKS (GUEST INVITES & SCENES)",
|
||||
"click-for-quick-room-overview": "\n\t\t\t\t\t\t<i class=\"las la-question-circle\"></i> <span data-translate=\"click-here-for-help\">Click Here for a quick overview and help</span>\n\t\t\t\t\t",
|
||||
"click-for-quick-room-overview": "\n<i class=\"las la-question-circle\"></i> <span data-translate=\"click-here-for-help\">Click Here for a quick overview and help</span>\n",
|
||||
"click-here-for-help": "Click Here for a quick overview and help",
|
||||
"welcome-to-control-room": "\n\t\t\t\t\t\t<b>Welcome. This is the director's control-room for the group-chat.</b><br><br>\n\t\t\t\t\t\tYou can host a group chat with friends using a room. Share the blue link to invite guests who will join the chat automatically.\n\t\t\t\t\t\t<br><br>\n\t\t\t\t\t\tA group room can handle normally around 6 to 20 guests, depending on numerous factors, including CPU and available bandwidth of all guests in the room\n\t\t\t\t\t",
|
||||
"welcome-to-control-room": "\n<b>Welcome. This is the director's control-room for the group-chat.</b><br><br>\nYou can host a group chat with friends using a room. Share the blue link to invite guests who will join the chat automatically.\n<br><br>\nA group room can handle normally around 6 to 20 guests, depending on numerous factors, including CPU and available bandwidth of all guests in the room\n",
|
||||
"invite-users-to-join": "Guests can use the link to join the group room",
|
||||
"guests-hear-others": "Guests hear others",
|
||||
"capture-a-group-scene": "CAPTURE A GROUP SCENE",
|
||||
@ -271,7 +294,7 @@
|
||||
"add-to-google-calendar": "Add to Google Calendar",
|
||||
"add-to-outlook-calendar": "Add to Outlook Calendar",
|
||||
"add-to-yahoo-calendar": "Add to Yahoo Calendar",
|
||||
"logo-header": "\n\t\t\t\t\t<font id=\"qos\">V</font>DO.Ninja \n\t\t\t\t",
|
||||
"logo-header": "\n<font id=\"qos\">V</font>DO.Ninja \n",
|
||||
"only-director-can-hear-you": "Only the director can hear you currently.",
|
||||
"director-muted-you": "The director has muted you.",
|
||||
"add-group-chat": "Create a Room",
|
||||
@ -283,14 +306,14 @@
|
||||
"default-codec-select": "Preferred Video Codec: ",
|
||||
"enter-the-rooms-control": "Enter the Room's Control Center",
|
||||
"show-tips": "Show me some tips..",
|
||||
"added-notes": "\n\t\t\t\t\t\t\t\t<u>\n\t\t\t\t\t\t\t\t\t<i>Important Tips:</i><br><br>\n\t\t\t\t\t\t\t\t</u>\n\t\t\t\t\t\t\t\t<li>Disabling video sharing between guests will improve performance</li>\n\t\t\t\t\t\t\t\t<li>Invite only guests to the room that you trust.</li>\n\t\t\t\t\t\t\t\t<li>The \"Recording\" option is considered experimental.</li>\n\t\t\t\t\t\t\t\t<li><a href=\"https://params.vdo.ninja\" style=\"color:black;\"><u>Advanced URL parameters</u></a> are available to customize rooms.</li>\n\t\t\t\t\t\t\t",
|
||||
"added-notes": "\n<u>\n<i>Important Tips:</i><br><br>\n</u>\n<li>Disabling video sharing between guests will improve performance</li>\n<li>Invite only guests to the room that you trust.</li>\n<li>The \"Recording\" option is considered experimental.</li>\n<li><a href=\"https://params.vdo.ninja\" style=\"color:black;\"><u>Advanced URL parameters</u></a> are available to customize rooms.</li>\n",
|
||||
"back": "Back",
|
||||
"add-your-camera": "Add your Camera",
|
||||
"ask-for-permissions": "Allow Access to Camera/Microphone",
|
||||
"waiting-for-camera": "Waiting for Camera to Load",
|
||||
"no-audio": "No Audio",
|
||||
"add-a-password": " Add a Password:",
|
||||
"use-chrome-instead": "Consider using a Chromium-based browser instead.<br>\n \t\t\t\t\t\tSafari is more prone to having audio issues",
|
||||
"use-chrome-instead": "Consider using a Chromium-based browser instead.<br>\n Safari is more prone to having audio issues",
|
||||
"remote-screenshare-obs": "Remote Screenshare",
|
||||
"select-screen-to-share": "SELECT SCREEN TO SHARE",
|
||||
"audio-sources": "Audio Sources",
|
||||
@ -323,7 +346,7 @@
|
||||
"animate-mixing": "Animate mixing",
|
||||
"prefix-screenshare": "Prefix screenshare IDs",
|
||||
"more-than-four-can-join": "These four guest slots are just for demonstration. More than four guests can actually join a room.",
|
||||
"welcome-to-obs-ninja-chat": "\n\t\t\t\t\tWelcome! You can send text messages directly to connected peers from here.\n\t\t\t\t",
|
||||
"welcome-to-obs-ninja-chat": "\nWelcome! You can send text messages directly to connected peers from here.\n",
|
||||
"privacy-disabled": "Privacy warning: The director will be able to remotely access your camera and microphone if you continue.",
|
||||
"face-mesh": "Face mesh (slow load)",
|
||||
"anonymous-mask": "Anonymous mask",
|
||||
@ -336,7 +359,10 @@
|
||||
"mirror-video": "Mirror",
|
||||
"toggle-control-video": "Toggle control bar",
|
||||
"picture-in-picture": "Picture-in-picture",
|
||||
"chrome-cast": "Cast.."
|
||||
"chrome-cast": "Cast..",
|
||||
"join-the-room-basic": "Join room as participant",
|
||||
"allow-effects-invite": "Allow video effects to be used",
|
||||
"show-welcome-message": "Show welcome message"
|
||||
},
|
||||
"placeholders": {
|
||||
"join-by-room-name-here": "Join by Room Name here",
|
||||
@ -399,6 +425,17 @@
|
||||
"unhide": "unhide guest",
|
||||
"hide-guest": "hide guest",
|
||||
"confirm-disconnect-users": "Are you sure you wish to disconnect these users?",
|
||||
"confirm-disconnect-user": "Are you sure you wish to disconnect this user?"
|
||||
"confirm-disconnect-user": "Are you sure you wish to disconnect this user?",
|
||||
"enter-new-codirector-password": "Enter a co-director password to use",
|
||||
"control-room-co-director": "Control Room: Co-Director",
|
||||
"signal-meter": "Video packet loss indicator of video preview; green is good, red is bad. Flame implies CPU is overloaded. May not reflect the packet loss seen by scenes or other guests.",
|
||||
"waiting-for-the-stream": "Waiting for the stream. Tip: Adding &cleanoutput to the URL will hide this spinner, or click to retry, which will also hide it.",
|
||||
"main-director": "Main Director",
|
||||
"share-a-screen": "Share a screen",
|
||||
"stop-screen-sharing": "Stop screen sharing",
|
||||
"you-have-been-transferred": "You've been transferred to a different room",
|
||||
"you-are-no-longer-a-co-director": "You are no longer a co-director as you were transferred.",
|
||||
"transferred": "Transferred",
|
||||
"room-changed": "Your room has changed"
|
||||
}
|
||||
}
|
||||
@ -150,7 +150,30 @@
|
||||
"disable-animated-transitions-during-video-mixing": "在视频混合期间禁用动画过渡",
|
||||
"allow-the-guest-to-select-a-file-to-upload-to-the-director-once-shared-it-will-show-in-the-chat-as-a-download-link-": "允许来宾选择要上传给导演的文件。分享后,它将在聊天中显示为下载链接.",
|
||||
"set-a-countdown-timer-that-this-guest-sees": "设置此客人看到的倒数计时器",
|
||||
"enter-a-room-name-to-quick-join": "Enter a room name to quick join"
|
||||
"enter-a-room-name-to-quick-join": "Enter a room name to quick join",
|
||||
"will-remember-the-room-prompting-you-the-next-time-you-visit-if-you-wish-to-load-this-director-s-room-again": "Will remember the room, prompting you the next time you visit if you wish to load this director's room again",
|
||||
"create-a-third-stream": "Create a Third Stream",
|
||||
"share-a-website-with-your-guests-iframe-": "Share a website with your guests (IFRAME)",
|
||||
"hold-ctrl-or-cmd-and-click-to-spotlight-this-video": "Hold CTRL (or CMD) and click to spotlight this video",
|
||||
"add-group-chat": "Add Group Chat",
|
||||
"if-checked-the-director-can-be-added-to-scenes-as-if-a-guest-otherwise-the-director-will-never-appear-in-a-scene-": "If checked, the director can be added to scenes as if a guest. Otherwise, the director will never appear in a scene.",
|
||||
"add-your-camera": "Add your Camera",
|
||||
"experimental": "experimental",
|
||||
"adjust-the-amount-of-effect-applied": "Adjust the amount of effect applied",
|
||||
"remote-screenshare": "Remote Screenshare",
|
||||
"the-guest-will-be-able-to-select-digital-video-effects-to-apply-": "The guest will be able to select digital video effects to apply.",
|
||||
"use-this-link-as-a-browser-source-to-capture-the-video-or-audio": "Use this link as a Browser Source to capture the video or audio",
|
||||
"show-a-custom-welcome-message-to-the-joining-guest-of-this-invite-link": "Show a custom welcome message to the joining guest of this invite link",
|
||||
"add-remove-from-group-1": "Add/remove from group 1",
|
||||
"add-remove-from-group-2": "Add/remove from group 2",
|
||||
"add-remove-from-group-3": "Add/remove from group 3",
|
||||
"add-remove-from-group-4": "Add/remove from group 4",
|
||||
"add-remove-from-group-5": "Add/remove from group 5",
|
||||
"add-remove-from-group-6": "Add/remove from group 6",
|
||||
"the-solo-view-link-of-the-director-s-video-": "The solo view link of the Director's video.",
|
||||
"only-the-director-s-video-will-be-visible-to-guests-and-within-group-scenes": "Only the director's video will be visible to guests and within group scenes",
|
||||
"allow-for-remote-co-directors": "Allow for remote co-directors",
|
||||
"jump-to-the-documentation": "Jump to the documentation"
|
||||
},
|
||||
"innerHTML": {
|
||||
"copy-this-url": "将此 URL 复制到 OBS“浏览器源”中",
|
||||
@ -337,7 +360,10 @@
|
||||
"share-your-screen": "共享您的屏幕",
|
||||
"click-start-to-join": "点击开始加入",
|
||||
"waiting-for-mic-to-load": "等待麦克风加载",
|
||||
"waiting-for-camera-to-load": "等待相机加载"
|
||||
"waiting-for-camera-to-load": "等待相机加载",
|
||||
"join-the-room-basic": "Join room as participant",
|
||||
"allow-effects-invite": "Allow video effects to be used",
|
||||
"show-welcome-message": "Show welcome message"
|
||||
},
|
||||
"placeholders": {
|
||||
"join-by-room-name-here": "用房间名称加入",
|
||||
@ -400,6 +426,17 @@
|
||||
"unhide": "取消隐藏客人",
|
||||
"hide-guest": "隐藏客人",
|
||||
"confirm-disconnect-users": "您确定要断开这些用户的连接吗?",
|
||||
"confirm-disconnect-user": "您确定要断开此用户的连接吗?"
|
||||
"confirm-disconnect-user": "您确定要断开此用户的连接吗?",
|
||||
"enter-new-codirector-password": "Enter a co-director password to use",
|
||||
"control-room-co-director": "Control Room: Co-Director",
|
||||
"signal-meter": "Video packet loss indicator of video preview; green is good, red is bad. Flame implies CPU is overloaded. May not reflect the packet loss seen by scenes or other guests.",
|
||||
"waiting-for-the-stream": "Waiting for the stream. Tip: Adding &cleanoutput to the URL will hide this spinner, or click to retry, which will also hide it.",
|
||||
"main-director": "Main Director",
|
||||
"share-a-screen": "Share a screen",
|
||||
"stop-screen-sharing": "Stop screen sharing",
|
||||
"you-have-been-transferred": "You've been transferred to a different room",
|
||||
"you-are-no-longer-a-co-director": "You are no longer a co-director as you were transferred.",
|
||||
"transferred": "Transferred",
|
||||
"room-changed": "Your room has changed"
|
||||
}
|
||||
}
|
||||
@ -165,7 +165,30 @@
|
||||
"disable-animated-transitions-during-video-mixing": "Disable animated transitions during video mixing",
|
||||
"allow-the-guest-to-select-a-file-to-upload-to-the-director-once-shared-it-will-show-in-the-chat-as-a-download-link-": "Allow the guest to select a file to upload to the director. Once shared, it will show in the chat as a download link.",
|
||||
"set-a-countdown-timer-that-this-guest-sees": "Set a countdown timer that this guest sees",
|
||||
"enter-a-room-name-to-quick-join": "Enter a room name to quick join"
|
||||
"enter-a-room-name-to-quick-join": "Enter a room name to quick join",
|
||||
"will-remember-the-room-prompting-you-the-next-time-you-visit-if-you-wish-to-load-this-director-s-room-again": "Will remember the room, prompting you the next time you visit if you wish to load this director's room again",
|
||||
"create-a-third-stream": "Create a Third Stream",
|
||||
"share-a-website-with-your-guests-iframe-": "Share a website with your guests (IFRAME)",
|
||||
"hold-ctrl-or-cmd-and-click-to-spotlight-this-video": "Hold CTRL (or CMD) and click to spotlight this video",
|
||||
"add-group-chat": "Add Group Chat",
|
||||
"if-checked-the-director-can-be-added-to-scenes-as-if-a-guest-otherwise-the-director-will-never-appear-in-a-scene-": "If checked, the director can be added to scenes as if a guest. Otherwise, the director will never appear in a scene.",
|
||||
"add-your-camera": "Add your Camera",
|
||||
"experimental": "experimental",
|
||||
"adjust-the-amount-of-effect-applied": "Adjust the amount of effect applied",
|
||||
"remote-screenshare": "Remote Screenshare",
|
||||
"the-guest-will-be-able-to-select-digital-video-effects-to-apply-": "The guest will be able to select digital video effects to apply.",
|
||||
"use-this-link-as-a-browser-source-to-capture-the-video-or-audio": "Use this link as a Browser Source to capture the video or audio",
|
||||
"show-a-custom-welcome-message-to-the-joining-guest-of-this-invite-link": "Show a custom welcome message to the joining guest of this invite link",
|
||||
"add-remove-from-group-1": "Add/remove from group 1",
|
||||
"add-remove-from-group-2": "Add/remove from group 2",
|
||||
"add-remove-from-group-3": "Add/remove from group 3",
|
||||
"add-remove-from-group-4": "Add/remove from group 4",
|
||||
"add-remove-from-group-5": "Add/remove from group 5",
|
||||
"add-remove-from-group-6": "Add/remove from group 6",
|
||||
"the-solo-view-link-of-the-director-s-video-": "The solo view link of the Director's video.",
|
||||
"only-the-director-s-video-will-be-visible-to-guests-and-within-group-scenes": "Only the director's video will be visible to guests and within group scenes",
|
||||
"allow-for-remote-co-directors": "Allow for remote co-directors",
|
||||
"jump-to-the-documentation": "Jump to the documentation"
|
||||
},
|
||||
"innerHTML": {
|
||||
"logo-header": "<font id=\"qos\" style=\"color: white;\">O</font>BS.Ninja ",
|
||||
@ -357,7 +380,10 @@
|
||||
"picture-in-picture": "Picture-in-picture",
|
||||
"chrome-cast": "Cast..",
|
||||
"join-room": "Join room",
|
||||
"waiting-for-mic-to-load": "Waiting for mic to load"
|
||||
"waiting-for-mic-to-load": "Waiting for mic to load",
|
||||
"join-the-room-basic": "Join room as participant",
|
||||
"allow-effects-invite": "Allow video effects to be used",
|
||||
"show-welcome-message": "Show welcome message"
|
||||
},
|
||||
"placeholders": {
|
||||
"join-by-room-name-here": "Připojit se s názvem místnosti zde",
|
||||
@ -420,6 +446,17 @@
|
||||
"unhide": "unhide guest",
|
||||
"hide-guest": "hide guest",
|
||||
"confirm-disconnect-users": "Are you sure you wish to disconnect these users?",
|
||||
"confirm-disconnect-user": "Are you sure you wish to disconnect this user?"
|
||||
"confirm-disconnect-user": "Are you sure you wish to disconnect this user?",
|
||||
"enter-new-codirector-password": "Enter a co-director password to use",
|
||||
"control-room-co-director": "Control Room: Co-Director",
|
||||
"signal-meter": "Video packet loss indicator of video preview; green is good, red is bad. Flame implies CPU is overloaded. May not reflect the packet loss seen by scenes or other guests.",
|
||||
"waiting-for-the-stream": "Waiting for the stream. Tip: Adding &cleanoutput to the URL will hide this spinner, or click to retry, which will also hide it.",
|
||||
"main-director": "Main Director",
|
||||
"share-a-screen": "Share a screen",
|
||||
"stop-screen-sharing": "Stop screen sharing",
|
||||
"you-have-been-transferred": "You've been transferred to a different room",
|
||||
"you-are-no-longer-a-co-director": "You are no longer a co-director as you were transferred.",
|
||||
"transferred": "Transferred",
|
||||
"room-changed": "Your room has changed"
|
||||
}
|
||||
}
|
||||
@ -165,7 +165,30 @@
|
||||
"disable-animated-transitions-during-video-mixing": "Disable animated transitions during video mixing",
|
||||
"allow-the-guest-to-select-a-file-to-upload-to-the-director-once-shared-it-will-show-in-the-chat-as-a-download-link-": "Allow the guest to select a file to upload to the director. Once shared, it will show in the chat as a download link.",
|
||||
"set-a-countdown-timer-that-this-guest-sees": "Set a countdown timer that this guest sees",
|
||||
"enter-a-room-name-to-quick-join": "Enter a room name to quick join"
|
||||
"enter-a-room-name-to-quick-join": "Enter a room name to quick join",
|
||||
"will-remember-the-room-prompting-you-the-next-time-you-visit-if-you-wish-to-load-this-director-s-room-again": "Will remember the room, prompting you the next time you visit if you wish to load this director's room again",
|
||||
"create-a-third-stream": "Create a Third Stream",
|
||||
"share-a-website-with-your-guests-iframe-": "Share a website with your guests (IFRAME)",
|
||||
"hold-ctrl-or-cmd-and-click-to-spotlight-this-video": "Hold CTRL (or CMD) and click to spotlight this video",
|
||||
"add-group-chat": "Add Group Chat",
|
||||
"if-checked-the-director-can-be-added-to-scenes-as-if-a-guest-otherwise-the-director-will-never-appear-in-a-scene-": "If checked, the director can be added to scenes as if a guest. Otherwise, the director will never appear in a scene.",
|
||||
"add-your-camera": "Add your Camera",
|
||||
"experimental": "experimental",
|
||||
"adjust-the-amount-of-effect-applied": "Adjust the amount of effect applied",
|
||||
"remote-screenshare": "Remote Screenshare",
|
||||
"the-guest-will-be-able-to-select-digital-video-effects-to-apply-": "The guest will be able to select digital video effects to apply.",
|
||||
"use-this-link-as-a-browser-source-to-capture-the-video-or-audio": "Use this link as a Browser Source to capture the video or audio",
|
||||
"show-a-custom-welcome-message-to-the-joining-guest-of-this-invite-link": "Show a custom welcome message to the joining guest of this invite link",
|
||||
"add-remove-from-group-1": "Add/remove from group 1",
|
||||
"add-remove-from-group-2": "Add/remove from group 2",
|
||||
"add-remove-from-group-3": "Add/remove from group 3",
|
||||
"add-remove-from-group-4": "Add/remove from group 4",
|
||||
"add-remove-from-group-5": "Add/remove from group 5",
|
||||
"add-remove-from-group-6": "Add/remove from group 6",
|
||||
"the-solo-view-link-of-the-director-s-video-": "The solo view link of the Director's video.",
|
||||
"only-the-director-s-video-will-be-visible-to-guests-and-within-group-scenes": "Only the director's video will be visible to guests and within group scenes",
|
||||
"allow-for-remote-co-directors": "Allow for remote co-directors",
|
||||
"jump-to-the-documentation": "Jump to the documentation"
|
||||
},
|
||||
"innerHTML": {
|
||||
"logo-header": "<font id=\"qos\" style=\"color: white;\">O</font>BS Ninja",
|
||||
@ -178,7 +201,7 @@
|
||||
"password-input-field": "Passwort",
|
||||
"enter-the-rooms-control": "Control Center für diesen Raum betreten",
|
||||
"show-tips": "Ich möchte Tipps..",
|
||||
"added-notes": "\n\t\t\t\t<u><i>Weitere Infos:</i></u>\n\t\t\t\t<li>Räume können von allen betreten werden, die den Raumnamen wissen. Vermeiden Sie daher zu einfache Namen.</li>\n\t\t\t\t<li>Je nach Hardwareausstattung können mehr als vier Teilnehmende in einem Raum zu Performance-Problemen führen.</li>\n\t\t\t\t<li>Aufgrund einer Hardware-Einschränkung können iOS-Devices Video nur mit dem Regisseur/Director teilen.</li>\n\t\t\t\t<li>Bitte betrachten Sie die \"Aufnehmen\"-Funktion als neu und experimentell. Sie sollten sie vermutlich nicht in Produktivumgebungen einsetzen.</li>\n\t\t\t\t<li>Damit ein Video-Feed in einer Gruppen-Szene erscheint, müssen Sie ihn zunächst dort hinzufügen.</li>\n\t\t\t\t<li>Der Gäste-View enthält einen neuen \"fortgeschrittenen Fullscreen\"-Button.</li>\n\t\t\t\t",
|
||||
"added-notes": "\n<u><i>Weitere Infos:</i></u>\n<li>Räume können von allen betreten werden, die den Raumnamen wissen. Vermeiden Sie daher zu einfache Namen.</li>\n<li>Je nach Hardwareausstattung können mehr als vier Teilnehmende in einem Raum zu Performance-Problemen führen.</li>\n<li>Aufgrund einer Hardware-Einschränkung können iOS-Devices Video nur mit dem Regisseur/Director teilen.</li>\n<li>Bitte betrachten Sie die \"Aufnehmen\"-Funktion als neu und experimentell. Sie sollten sie vermutlich nicht in Produktivumgebungen einsetzen.</li>\n<li>Damit ein Video-Feed in einer Gruppen-Szene erscheint, müssen Sie ihn zunächst dort hinzufügen.</li>\n<li>Der Gäste-View enthält einen neuen \"fortgeschrittenen Fullscreen\"-Button.</li>\n",
|
||||
"back": "Zurück",
|
||||
"add-your-camera": "Kamera hinzufügen",
|
||||
"ask-for-permissions": "Zugriff für Kamera/Mikrofon erlauben",
|
||||
@ -189,9 +212,9 @@
|
||||
"smooth-cool": "Smooth und Cool",
|
||||
"select-audio-source": "Audio-Quellen auswählen",
|
||||
"no-audio": "Kein Audio",
|
||||
"select-output-source": " Ausgang für Audio: \n\t\t\t\t\t",
|
||||
"select-output-source": " Ausgang für Audio: \n",
|
||||
"remote-screenshare-obs": "Bildschirm teilen",
|
||||
"note-share-audio": "\n\t\t\t\t\t<b>note</b>: Vergessen Sie nicht, in Chrome \"Audio teilen\" zu klicken.<br>(Firefox unterstütz das Teilen von Audio nicht.)",
|
||||
"note-share-audio": "\n<b>note</b>: Vergessen Sie nicht, in Chrome \"Audio teilen\" zu klicken.<br>(Firefox unterstütz das Teilen von Audio nicht.)",
|
||||
"select-screen-to-share": "ZU TEILENDEN BILDSCHIRM AUSWÄHLEN",
|
||||
"audio-sources": "Audioquellen",
|
||||
"create-reusable-invite": "Wiederverwendbare Einladung erstellen",
|
||||
@ -231,10 +254,10 @@
|
||||
"copy-to-clipboard": "In die Zwischenablage kopieren",
|
||||
"click-for-quick-room-overview": "❔ Erste Schritte und Hilfe",
|
||||
"push-to-talk-enable": "🔊 Audio und Video mit Gästen teilen (Push-to-Talk Mode)",
|
||||
"welcome-to-control-room": "Welcome. This is the control-room for the group-chat. There are different things you can use this room for:<br><br>\t<li>You can host a group chat with friends using a room. Share the blue link to invite guests who will join the chat automatically.</li>\t<li>A group room can handle around 4 to 30 guests, depending on numerous factors, including CPU and available bandwidth of all guests in the room.</li>\t<li>Solo-views of each video are offered under videos as they load. These can be used within an OBS Browser Source.</li>\t<li>You can use the auto-mixing Group Scene, the green link, to auto arrange multiple videos for you in OBS.</li>\t<li>You can use this control room to record isolated video or audio streams, but it is an experimental feature still.</li>\t<li>Videos in the Director's room will be of low quality on purpose; to save bandwidth/CPU</li>\t<li>Guest's in the room will see each other's videos at a very limited quality to conserve bandwidth/CPU.</li>\t<li>OBS will see a guest's video in high-quality; the default video bitrate is 2500kbps.</li>\t<br>\tAs guests join, their videos will appear below. You can bring their video streams into OBS as solo-scenes or you can add them to the Group Scene.\t<br>The Group Scene auto-mixes videos that have been added to the group scene. Please note that the Auto-Mixer requires guests be manually added to it for them to appear in it; they are not added automatically.<br><br>Apple mobile devices, such as iPhones and iPads, do not fully support Video Group Chat. This is a hardware constraint.<br><br>\tFor advanced options and parameters, <a href=\"https://github.com/steveseguin/obsninja/wiki/Guides-and-How-to's#urlparameters\">see the Wiki.</a>",
|
||||
"welcome-to-control-room": "Welcome. This is the control-room for the group-chat. There are different things you can use this room for:<br><br><li>You can host a group chat with friends using a room. Share the blue link to invite guests who will join the chat automatically.</li><li>A group room can handle around 4 to 30 guests, depending on numerous factors, including CPU and available bandwidth of all guests in the room.</li><li>Solo-views of each video are offered under videos as they load. These can be used within an OBS Browser Source.</li><li>You can use the auto-mixing Group Scene, the green link, to auto arrange multiple videos for you in OBS.</li><li>You can use this control room to record isolated video or audio streams, but it is an experimental feature still.</li><li>Videos in the Director's room will be of low quality on purpose; to save bandwidth/CPU</li><li>Guest's in the room will see each other's videos at a very limited quality to conserve bandwidth/CPU.</li><li>OBS will see a guest's video in high-quality; the default video bitrate is 2500kbps.</li><br>As guests join, their videos will appear below. You can bring their video streams into OBS as solo-scenes or you can add them to the Group Scene.<br>The Group Scene auto-mixes videos that have been added to the group scene. Please note that the Auto-Mixer requires guests be manually added to it for them to appear in it; they are not added automatically.<br><br>Apple mobile devices, such as iPhones and iPads, do not fully support Video Group Chat. This is a hardware constraint.<br><br>For advanced options and parameters, <a href=\"https://github.com/steveseguin/obsninja/wiki/Guides-and-How-to's#urlparameters\">see the Wiki.</a>",
|
||||
"more-than-four-can-join": "These four guest slots are just for demonstration. More than four guests can actually join a room.",
|
||||
"welcome-to-obs-ninja-chat": "\n\t\t\t\t\tWillkommen zu OBS.Ninja! Schicken Sie anderen Gästen eine Message.\n\t\t\t\t",
|
||||
"names-and-labels-coming-soon": "\n\t\t\t\t\tNames identifying connected peers will be a feature in an upcoming release.\n\t\t\t\t",
|
||||
"welcome-to-obs-ninja-chat": "\nWillkommen zu OBS.Ninja! Schicken Sie anderen Gästen eine Message.\n",
|
||||
"names-and-labels-coming-soon": "\nNames identifying connected peers will be a feature in an upcoming release.\n",
|
||||
"send-chat": "Abschicken",
|
||||
"available-languages": "Verfügbare Sprachen:",
|
||||
"add-more-here": "Weitere hinzufügen",
|
||||
@ -278,7 +301,7 @@
|
||||
"blurred-background": "Blurred background",
|
||||
"digital-greenscreen": "Digital greenscreen",
|
||||
"virtual-background": "Virtual background",
|
||||
"use-chrome-instead": "Consider using a Chromium-based browser instead.<br>\n \t\t\t\t\t\tSafari is more prone to having audio issues",
|
||||
"use-chrome-instead": "Consider using a Chromium-based browser instead.<br>\n Safari is more prone to having audio issues",
|
||||
"select-the-video-files-to-share": "SELECT THE VIDEO FILES TO SHARE",
|
||||
"enter-the-website-URL-you-wish-to-share": "Enter the URL website you wish to share.",
|
||||
"click-here-for-help": "Click Here for a quick overview and help",
|
||||
@ -357,7 +380,10 @@
|
||||
"picture-in-picture": "Picture-in-picture",
|
||||
"chrome-cast": "Cast..",
|
||||
"join-room": "Join room",
|
||||
"waiting-for-mic-to-load": "Waiting for mic to load"
|
||||
"waiting-for-mic-to-load": "Waiting for mic to load",
|
||||
"join-the-room-basic": "Join room as participant",
|
||||
"allow-effects-invite": "Allow video effects to be used",
|
||||
"show-welcome-message": "Show welcome message"
|
||||
},
|
||||
"placeholders": {
|
||||
"join-by-room-name-here": "Raum über Namen betreten",
|
||||
@ -420,6 +446,17 @@
|
||||
"unhide": "unhide guest",
|
||||
"hide-guest": "hide guest",
|
||||
"confirm-disconnect-users": "Are you sure you wish to disconnect these users?",
|
||||
"confirm-disconnect-user": "Are you sure you wish to disconnect this user?"
|
||||
"confirm-disconnect-user": "Are you sure you wish to disconnect this user?",
|
||||
"enter-new-codirector-password": "Enter a co-director password to use",
|
||||
"control-room-co-director": "Control Room: Co-Director",
|
||||
"signal-meter": "Video packet loss indicator of video preview; green is good, red is bad. Flame implies CPU is overloaded. May not reflect the packet loss seen by scenes or other guests.",
|
||||
"waiting-for-the-stream": "Waiting for the stream. Tip: Adding &cleanoutput to the URL will hide this spinner, or click to retry, which will also hide it.",
|
||||
"main-director": "Main Director",
|
||||
"share-a-screen": "Share a screen",
|
||||
"stop-screen-sharing": "Stop screen sharing",
|
||||
"you-have-been-transferred": "You've been transferred to a different room",
|
||||
"you-are-no-longer-a-co-director": "You are no longer a co-director as you were transferred.",
|
||||
"transferred": "Transferred",
|
||||
"room-changed": "Your room has changed"
|
||||
}
|
||||
}
|
||||
@ -1,26 +1,60 @@
|
||||
{
|
||||
"titles": {
|
||||
"join-by-room-name-here": "Geben Sie einen Raumnamen ein",
|
||||
"join-by-room-name-here": "Enter a room name to quick join",
|
||||
"join-room": "Join room",
|
||||
"will-remember-the-room-prompting-you-the-next-time-you-visit-if-you-wish-to-load-this-director-s-room-again": "Will remember the room, prompting you the next time you visit if you wish to load this director's room again",
|
||||
"load-the-next-guest-in-queue": "Load the next guest in queue",
|
||||
"transfer-any-file-to-the-group": "Transfer any file to the group",
|
||||
"toggle-the-chat": "Toggle the Chat",
|
||||
"mute-the-speaker": "Mute the Speaker",
|
||||
"mute-the-mic": "Mute the Mic",
|
||||
"disable-the-camera": "Disable the Camera",
|
||||
"share-a-screen-with-others": "Share a Screen with others",
|
||||
"create-a-secondary-stream": "Create a Secondary Stream",
|
||||
"share-a-website-as-an-embedded-iframe": "Share a website as an embedded iFRAME",
|
||||
"create-a-third-stream": "Create a Third Stream",
|
||||
"share-a-website-with-your-guests-iframe-": "Share a website with your guests (IFRAME)",
|
||||
"hold-ctrl-or-cmd-and-click-to-spotlight-this-video": "Hold CTRL (or CMD) and click to spotlight this video",
|
||||
"cycle-the-cameras": "Cycle the Cameras",
|
||||
"room-settings": "Room Settings",
|
||||
"your-audio-and-video-settings": "Your audio and video Settings",
|
||||
"hangup-the-call": "Hangup the Call",
|
||||
"alert-the-host-you-want-to-speak": "Alert the host you want to speak",
|
||||
"record-your-stream-to-disk": "Record your stream to disk",
|
||||
"you-can-also-enable-the-director-s-video-output-afterwards-by-clicking-the-setting-s-button": "You can also enable the director`s Video Output afterwards by clicking the Setting`s button",
|
||||
"cancel-the-director-s-video-audio": "Cancel the Director's Video/Audio",
|
||||
"submit-any-error-logs": "Submit any error logs",
|
||||
"show-help-info": "Show Help Info",
|
||||
"language-options": "Language Options",
|
||||
"add-to-calendar": "Add to Calendar",
|
||||
"add-group-chat-to-obs": "Add Group Chat to OBS",
|
||||
"for-large-group-rooms-this-option-can-reduce-the-load-on-remote-guests-substantially": "For large group rooms, this option can reduce the load on remote guests substantially",
|
||||
"the-director-will-be-visible-in-scenes-as-if-a-performer-themselves-": "The director will be visible in scenes as if a performer themselves.",
|
||||
"if-checked-the-director-can-be-added-to-scenes-as-if-a-guest-otherwise-the-director-will-never-appear-in-a-scene-": "If checked, the director can be added to scenes as if a guest. Otherwise, the director will never appear in a scene.",
|
||||
"which-video-codec-would-you-want-used-by-default-": "Which video codec would you want used by default?",
|
||||
"you-ll-enter-as-the-room-s-director": "You'll enter as the room's director",
|
||||
"add-your-camera-to-obs": "Add your Camera to OBS",
|
||||
"start-streaming": "start streaming",
|
||||
"tip-hold-ctrl-command-to-select-multiple": "tip: Hold CTRL (command) to select Multiple",
|
||||
"experimental": "experimental",
|
||||
"improve-performance-and-quality-with-this-tip": "Improve performance and quality with this tip",
|
||||
"adjust-the-amount-of-effect-applied": "Adjust the amount of effect applied",
|
||||
"remote-screenshare-into-obs": "Remote Screenshare into OBS",
|
||||
"create-reusable-invite": "Create Reusable Invite",
|
||||
"ideal-for-1080p60-gaming-if-your-computer-and-upload-are-up-for-it": "Ideal for 1080p60 gaming, if your computer and upload are up for it",
|
||||
"better-video-compression-and-quality-at-the-cost-of-increased-cpu-encoding-load": "Better video compression and quality at the cost of increased CPU encoding load",
|
||||
"disable-digital-audio-effects-and-increase-audio-bitrate": "Disable digital audio-effects and increase audio bitrate",
|
||||
"the-guest-will-be-able-to-select-digital-video-effects-to-apply-": "The guest will be able to select digital video effects to apply.",
|
||||
"the-guest-will-not-have-a-choice-over-audio-options": "The guest will not have a choice over audio-options",
|
||||
"the-guest-will-only-be-able-to-select-their-webcam-as-an-option": "The guest will only be able to select their webcam as an option",
|
||||
"hold-ctrl-and-the-mouse-wheel-to-zoom-in-and-out-remotely-of-compatible-video-streams": "Hold CTRL and the mouse wheel to zoom in and out remotely of compatible video streams",
|
||||
"encode-the-url-so-that-it-s-harder-for-a-guest-to-modify-the-settings-": "Encode the URL so that it's harder for a guest to modify the settings.",
|
||||
"add-a-password-to-make-the-stream-inaccessible-to-those-without-the-password": "Add a password to make the stream inaccessible to those without the password",
|
||||
"add-the-guest-to-a-group-chat-room-it-will-be-created-automatically-if-needed-": "Add the guest to a group-chat room; it will be created automatically if needed.",
|
||||
"customize-the-room-settings-for-this-guest": "Customize the room settings for this guest",
|
||||
"more-options": "More Options",
|
||||
"hold-ctrl-or-cmd-to-select-multiple-files": "Hold CTRL (or CMD) to select multiple files",
|
||||
"transfer-any-file": "Transfer any file",
|
||||
"enter-an-https-url": "Enter an HTTPS URL",
|
||||
"jump-to-the-documentation": "Jump to the documentation",
|
||||
"youtube-video-demoing-how-to-do-this": "Youtube Video demoing how to do this",
|
||||
"invite-a-guest-or-camera-source-to-publish-into-the-group-room": "Invite a guest or camera source to publish into the group room",
|
||||
"if-disabled-the-invited-guest-will-not-be-able-to-see-or-hear-anyone-in-the-room-": "If disabled, the invited guest will not be able to see or hear anyone in the room.",
|
||||
@ -33,20 +67,23 @@
|
||||
"guest-will-be-prompted-to-enter-a-display-name": "Guest will be prompted to enter a Display Name",
|
||||
"display-names-will-be-shown-in-the-bottom-left-corner-of-videos": "Display Names will be shown in the bottom-left corner of videos",
|
||||
"guests-not-actively-speaking-will-be-hidden": "Guests not actively speaking will be hidden",
|
||||
"show-a-custom-welcome-message-to-the-joining-guest-of-this-invite-link": "Show a custom welcome message to the joining guest of this invite link",
|
||||
"request-1080p60-from-the-guest-instead-of-720p60-if-possible": "Request 1080p60 from the Guest instead of 720p60, if possible",
|
||||
"the-default-microphone-will-be-pre-selected-for-the-guest": "The default microphone will be pre-selected for the guest",
|
||||
"the-default-camera-device-will-selected-automatically": "The default camera device will selected automatically",
|
||||
"the-camera-will-load-in-a-default-safe-mode-that-may-work-if-other-modes-fail-": "The camera will load in a default safe-mode that may work if other modes fail.",
|
||||
"the-guest-won-t-have-access-to-changing-camera-settings-or-screenshare": "The guest won't have access to changing camera settings or screenshare",
|
||||
"the-guest-s-self-video-preview-will-appear-tiny-in-the-top-right": "The guest's self-video preview will appear tiny in the top right",
|
||||
"allow-the-guests-to-pick-a-virtual-backscreen-effect": "Allow the guests to pick a virtual backscreen effect",
|
||||
"videos-use-an-animated-transition-when-being-remixed": "Videos use an animated transition when being remixed",
|
||||
"disable-animated-transitions-during-video-mixing": "Disable animated transitions during video mixing",
|
||||
"increase-video-quality-that-guests-in-room-see-": "Increase video quality that guests in room see.",
|
||||
"the-guest-will-not-see-their-own-self-preview-after-joining": "The guest will not see their own self-preview after joining",
|
||||
"guests-will-have-an-option-to-poke-the-director-by-pressing-a-button": "Guests will have an option to poke the Director by pressing a button",
|
||||
"add-an-audio-compressor-to-the-guest-s-microphone": "Add an audio compressor to the guest's microphone",
|
||||
"add-an-equalizer-to-the-guest-s-microphone-that-the-director-can-control": "Add an Equalizer to the guest's microphone that the director can control",
|
||||
"show-some-prep-suggestions-to-the-guests-on-connect": "Show some prep suggestions to the guests on connect",
|
||||
"have-screen-shares-stream-id-s-use-a-predictable-prefixed-value-instead-of-a-random-one-": "Have screen-shares stream ID's use a predictable prefixed value instead of a random one.",
|
||||
"this-low-fi-video-codec-uses-very-little-cpu-even-with-dozens-of-active-viewers-": "This low-fi video codec uses very little CPU, even with dozens of active viewers.",
|
||||
"the-guest-s-self-video-preview-will-appear-tiny-in-the-top-right": "The guest's self-video preview will appear tiny in the top right",
|
||||
"the-guest-can-only-see-the-director-s-video-if-provided": "The guest can only see the Director's video, if provided",
|
||||
"the-guest-s-microphone-will-be-muted-on-joining-they-can-unmute-themselves-": "The guest's microphone will be muted on joining. They can unmute themselves.",
|
||||
"have-the-guest-join-muted-so-only-the-director-can-unmute-the-guest-": "Have the guest join muted, so only the director can Unmute the guest.",
|
||||
@ -55,16 +92,15 @@
|
||||
"the-active-speakers-are-made-visible-automatically": "The active speakers are made visible automatically",
|
||||
"set-the-background-color-to-bright-green": "Set the background color to bright green",
|
||||
"fade-videos-in-over-500ms": "Fade videos in over 500ms",
|
||||
"videos-use-an-animated-transition-when-being-remixed": "Videos use an animated transition when being remixed",
|
||||
"add-a-10px-margin-around-all-video-elements": "Add a 10px margin around all video elements",
|
||||
"playback-the-video-with-mono-channel-audio": "Playback the video with mono-channel audio",
|
||||
"have-the-videos-fit-their-respective-areas-even-if-it-means-cropping-a-bit": "Have the videos fit their respective areas, even if it means cropping a bit",
|
||||
"have-videos-be-aligned-with-sizing-designed-for-vertical-video": "Have videos be aligned with sizing designed for vertical video",
|
||||
"copy-this-stream-id-to-the-clipboard": "Copy this Stream ID to the clipboard",
|
||||
"click-here-to-edit-the-label-for-this-stream-changes-will-propagate-to-all-viewers-of-this-stream": "Click here to edit the label for this stream. Changes will propagate to all viewers of this stream",
|
||||
"move-the-user-to-another-room-controlled-by-another-director": "Move the user to another room, controlled by another director",
|
||||
"send-a-direct-message-to-this-user-": "Send a Direct Message to this user.",
|
||||
"force-the-user-to-disconnect-they-can-always-reconnect-": "Force the user to Disconnect. They can always reconnect.",
|
||||
"toggle-solo-voice-chat": "Toggle Solo Voice Chat",
|
||||
"toggle-solo-voice-chat-or-hold-ctrl-cmd-when-selecting-to-make-it-two-way-private-": "Toggle solo voice chat or hold CTRL/CMD when selecting to make it two-way private.",
|
||||
"add-this-video-to-any-remote-scene-1-": "Add this Video to any remote '&scene=1'",
|
||||
"mute-this-guest-everywhere": "Mute this guest everywhere",
|
||||
"add-this-video-to-any-remote-scene-2-": "Add this Video to any remote '&scene=2'",
|
||||
@ -81,6 +117,10 @@
|
||||
"hide-this-guest-everywhere": "Hide this guest everywhere",
|
||||
"toggle-the-remote-guest-s-speaker-output": "Toggle the remote guest's speaker output",
|
||||
"toggle-the-remote-guest-s-display-output": "Toggle the remote guest's display output",
|
||||
"remotely-change-the-volume-of-this-guest": "Remotely change the volume of this guest",
|
||||
"disable-video-preview": "Disable Video Preview",
|
||||
"low-quality-preview": "Low-Quality Preview",
|
||||
"high-quality-preview": "High-Quality Preview",
|
||||
"shift-this-video-down-in-order": "Shift this Video Down in Order",
|
||||
"current-index-order-of-this-video": "Current Index Order of this Video",
|
||||
"shift-this-video-up-in-order": "Shift this Video Up in Order",
|
||||
@ -88,26 +128,28 @@
|
||||
"change-user-parameters": "Change user parameters",
|
||||
"start-recording-this-remote-stream-to-this-local-drive-experimental-": "Start Recording this remote stream to this local drive. *experimental*'",
|
||||
"the-remote-guest-will-record-their-local-stream-to-their-local-drive-experimental-": "The Remote Guest will record their local stream to their local drive. *experimental*",
|
||||
"remotely-change-the-volume-of-this-guest": "Remotely change the volume of this guest",
|
||||
"disable-video-preview": "Disable Video Preview",
|
||||
"low-quality-preview": "Low-Quality Preview",
|
||||
"high-quality-preview": "High-Quality Preview",
|
||||
"allow-the-guest-to-select-a-file-to-upload-to-the-director-once-shared-it-will-show-in-the-chat-as-a-download-link-": "Allow the guest to select a file to upload to the director. Once shared, it will show in the chat as a download link.",
|
||||
"set-a-countdown-timer-that-this-guest-sees": "Set a countdown timer that this guest sees",
|
||||
"set-to-audio-channel-1": "Set to Audio Channel 1",
|
||||
"set-to-audio-channel-2": "Set to Audio Channel 2",
|
||||
"set-to-audio-channel-3": "Set to Audio Channel 3",
|
||||
"set-to-audio-channel-4": "Set to Audio Channel 4",
|
||||
"set-to-audio-channel-5": "Set to Audio Channel 5",
|
||||
"set-to-audio-channel-6": "Set to Audio Channel 6",
|
||||
"add-remove-from-group-1": "Add/remove from group 1",
|
||||
"add-remove-from-group-2": "Add/remove from group 2",
|
||||
"add-remove-from-group-3": "Add/remove from group 3",
|
||||
"add-remove-from-group-4": "Add/remove from group 4",
|
||||
"add-remove-from-group-5": "Add/remove from group 5",
|
||||
"add-remove-from-group-6": "Add/remove from group 6",
|
||||
"remote-audio-settings": "Remote Audio Settings",
|
||||
"advanced-video-settings": "Advanced Video Settings",
|
||||
"this-will-ask-the-remote-guest-for-permission-to-change": "This will ask the remote guest for permission to change",
|
||||
"a-direct-solo-view-of-the-video-audio-stream-with-nothing-else-its-audio-can-be-remotely-controlled-from-here": "A direct solo view of the video/audio stream with nothing else. Its audio can be remotely controlled from here",
|
||||
"this-guest-raised-their-hand-click-this-to-clear-notification-": "This guest raised their hand. Click this to clear notification.",
|
||||
"add-to-scene-2": "Add to Scene 2",
|
||||
"activate-or-reload-this-video-device-": "Activate or Reload this video device.",
|
||||
"tip-hold-ctrl-command-to-select-multiple": "tip: Hold CTRL (command) to select Multiple",
|
||||
"improve-performance-and-quality-with-this-tip": "Improve performance and quality with this tip",
|
||||
"the-solo-view-link-of-the-director-s-video-": "The solo view link of the Director's video.",
|
||||
"increase-this-at-your-peril-changes-the-total-inbound-video-bitrate-per-guest-mobile-devices-excluded-webp-mode-also-excluded-": "Increase this at your peril. Changes the total inbound video bitrate per guest; mobile devices excluded. Webp-mode also excluded.",
|
||||
"only-the-director-s-video-will-be-visible-to-guests-and-within-group-scenes": "Only the director's video will be visible to guests and within group scenes",
|
||||
"allow-for-remote-co-directors": "Allow for remote co-directors",
|
||||
"cannot-see-videos": "Cannot see videos",
|
||||
"cannot-hear-others": "Cannot hear others",
|
||||
"see-director-only": "See director only",
|
||||
@ -116,152 +158,13 @@
|
||||
"show-labels": "Show labels",
|
||||
"transfer-to-a-new-room": "Transfer to a new Room",
|
||||
"enable-custom-password": "Enable custom password",
|
||||
"hide-this-window": "Hide this window",
|
||||
"cycle-the-cameras": "Cycle the Cameras",
|
||||
"add-group-chat-to-obs": "Add Group Chat to OBS",
|
||||
"for-large-group-rooms-this-option-can-reduce-the-load-on-remote-guests-substantially": "For large group rooms, this option can reduce the load on remote guests substantially",
|
||||
"the-director-will-be-visible-in-scenes-as-if-a-performer-themselves-": "The director will be visible in scenes, as if a performer themselves.",
|
||||
"useful-if-you-want-to-perform-and-direct-at-the-same-time": "Useful if you want to perform and direct at the same time",
|
||||
"which-video-codec-would-you-want-used-by-default-": "Which video codec would you want used by default?",
|
||||
"you-ll-enter-as-the-room-s-director": "You'll enter as the room's director",
|
||||
"add-your-camera-to-obs": "Add your Camera to OBS",
|
||||
"start-streaming": "start streaming",
|
||||
"remote-screenshare-into-obs": "Remote Screenshare into OBS",
|
||||
"create-reusable-invite": "Create Reusable Invite",
|
||||
"ideal-for-1080p60-gaming-if-your-computer-and-upload-are-up-for-it": "Ideal for 1080p60 gaming, if your computer and upload are up for it",
|
||||
"better-video-compression-and-quality-at-the-cost-of-increased-cpu-encoding-load": "Better video compression and quality at the cost of increased CPU encoding load",
|
||||
"disable-digital-audio-effects-and-increase-audio-bitrate": "Disable digital audio-effects and increase audio bitrate",
|
||||
"the-guest-will-not-have-a-choice-over-audio-options": "The guest will not have a choice over audio-options",
|
||||
"the-guest-will-only-be-able-to-select-their-webcam-as-an-option": "The guest will only be able to select their webcam as an option",
|
||||
"hold-ctrl-and-the-mouse-wheel-to-zoom-in-and-out-remotely-of-compatible-video-streams": "Hold CTRL and the mouse wheel to zoom in and out remotely of compatible video streams",
|
||||
"encode-the-url-so-that-it-s-harder-for-a-guest-to-modify-the-settings-": "Encode the URL so that it's harder for a guest to modify the settings.",
|
||||
"add-a-password-to-make-the-stream-inaccessible-to-those-without-the-password": "Add a password to make the stream inaccessible to those without the password",
|
||||
"add-the-guest-to-a-group-chat-room-it-will-be-created-automatically-if-needed-": "Add the guest to a group-chat room; it will be created automatically if needed.",
|
||||
"customize-the-room-settings-for-this-guest": "Customize the room settings for this guest",
|
||||
"more-options": "More Options",
|
||||
"hold-ctrl-or-cmd-to-select-multiple-files": "Hold CTRL (or CMD) to select multiple files",
|
||||
"enter-an-https-url": "Enter an HTTPS URL",
|
||||
"creative-commons-by-3-0": "Creative Commons BY 3.0",
|
||||
"have-screen-shares-stream-id-s-use-a-predictable-prefixed-value-instead-of-a-random-one-": "Have screen-shares stream ID's use a predictable prefixed value instead of a random one.",
|
||||
"toggle-solo-voice-chat-or-hold-ctrl-cmd-when-selecting-to-make-it-two-way-private-": "Toggle solo voice chat or hold CTRL/CMD when selecting to make it two-way private.",
|
||||
"transfer-any-file-to-the-group": "Transfer any file to the group",
|
||||
"transfer-any-file": "Transfer any file",
|
||||
"the-camera-will-load-in-a-default-safe-mode-that-may-work-if-other-modes-fail-": "The camera will load in a default safe-mode that may work if other modes fail.",
|
||||
"disable-animated-transitions-during-video-mixing": "Disable animated transitions during video mixing",
|
||||
"allow-the-guest-to-select-a-file-to-upload-to-the-director-once-shared-it-will-show-in-the-chat-as-a-download-link-": "Allow the guest to select a file to upload to the director. Once shared, it will show in the chat as a download link.",
|
||||
"set-a-countdown-timer-that-this-guest-sees": "Set a countdown timer that this guest sees"
|
||||
"hide-this-window": "Hide this window"
|
||||
},
|
||||
"innerHTML": {
|
||||
"logo-header": "\n<font id=\"qos\">V</font>DO.Ninja \n",
|
||||
"copy-this-url": "Copy this URL into an OBS \"Browser Source\"",
|
||||
"you-are-in-the-control-center": "Control center for room:",
|
||||
"joining-room": "You are in room",
|
||||
"push-to-talk-enable": " enable director`s microphone or video<br>(only guests can see this feed)",
|
||||
"hide-the-links": " LINKS (GUEST INVITES & SCENES)",
|
||||
"click-for-quick-room-overview": "\n\t\t\t\t\t\t<i class=\"las la-question-circle\"></i> <span data-translate=\"click-here-for-help\">Click Here for a quick overview and help</span>\n\t\t\t\t\t",
|
||||
"click-here-for-help": "Click Here for a quick overview and help",
|
||||
"welcome-to-control-room": "\n\t\t\t\t\t\t<b>Welcome. This is the director's control-room for the group-chat.</b><br><br>\n\t\t\t\t\t\tYou can host a group chat with friends using a room. Share the blue link to invite guests who will join the chat automatically.\n\t\t\t\t\t\t<br><br>\n\t\t\t\t\t\t<font style=\"color:red\">Known Limitations with Group Rooms:</font><br>\n\t\t\t\t\t\t<li>A group room can handle up to around 30 guests, depending on numerous factors, including CPU and available bandwidth of all guests in the room. To achieve more than around 7-guests though, you will likely want to <a href=\"https://www.youtube.com/watch?v=bpRa8-UYCGc\" title=\"Youtube Video demoing how to do this\">disable video sharing between guests</a>. Using &broadcast, &roombitrate=0 or &novideo are options there.</li>\n\t\t\t\t\t\t\n\t\t\t\t\t\t<li>Videos will appear of low quality on purpose for guests and director; this is to save bandwidth and CPU resources. It will be high-quality within OBS still though.</li>\n\t\t\t\t\t\t\n\t\t\t\t\t\t<li>The state of the scenes, such as which videos are active in a scene, are lost when the director resets the control-room or the scene.</li>\n\t\t\t\t\t\t<br>\n\t\t\t\t\t\tFurther Notes:<br><br>\n\t\t\t\t\t\t<li>Links to Solo-views of each guest video are offered under videos as they load. These can be used within an OBS Browser Source.</li>\n\t\t\t\t\t\t<li>You can use the auto-mixing Group Scenes, the green links, to auto arrange multiple videos for you in OBS.</li>\n\t\t\t\t\t\t<li>You can use this control room to record isolated video or audio streams, but it is an experimental feature still.</li>\n\t\t\t\t\t\t<li>If you transfer a guest from one room to another, they won't know which room they have been transferred to.</li>\n\t\t\t\t\t\t<li>OBS will see a guest's video in high-quality; the default video bitrate is 2500kbps. Setting higher bitrates will improve motion.</li>\n\t\t\t\t\t\t<li>VP8 is typically the default video codec, but using &codec=vp9 or &codec=h264 as a URL in OBS can help to reduce corrupted video puke issues.</li>\n\t\t\t\t\t\t<li>&stereo=2 can be added to guests to turn off audio effects, such as echo cancellation and noise-reduction.</li>\n\t\t\t\t\t\t<li>https://invite.cam is a free service provided that can help obfuscuate the URL parameters of an invite link given to guests.</li>\n\t\t\t\t\t\t<li>Adding &showonly=SOME_OBS_VIRTUALCAM to the guest invite links allows for only a single video to be seen by the guests; this can be output of the OBS Virtual Camera for example</li>\n\t\t\t\t\t\t<br>\n\t\t\t\t\t\t\n\t\t\t\t\t\tFor advanced URL options and parameters, <a href=\"https://docs.vdo.ninja/advanced-settings\">see the Wiki.</a>\n\t\t\t\t\t",
|
||||
"invite-users-to-join": "Guests can use the link to join the group room",
|
||||
"guests-hear-others": "Guests hear others",
|
||||
"capture-a-group-scene": "CAPTURE A GROUP SCENE",
|
||||
"this-is-obs-browser-source-link": "Use in OBS or other studio software to capture the group video mix",
|
||||
"auto-add-guests": "Auto-add guests",
|
||||
"pro-audio-mode": "Pro-audio mode",
|
||||
"hide-audio-only-sources": "Hide audio-only sources",
|
||||
"remote-monitoring": "Remote Monitoring",
|
||||
"invite-saved-to-cookie": "Invite saved to cookie",
|
||||
"ask-for-display-name": "Ask for display name",
|
||||
"show-display-names": "Show display names",
|
||||
"show-active-speaker": "Show active speakers",
|
||||
"auto-select-microphone": "Auto-select default microphone",
|
||||
"auto-select-camera": "Auto-select default camera",
|
||||
"hide-setting-buttons": "Hide settings button",
|
||||
"mini-self-preview": "Mini self-preview",
|
||||
"virtual-backgrounds": "Virtual backgrounds",
|
||||
"fade-videos-in": "Fade videos in",
|
||||
"powerful-computers-only": "Only use with powerful computers and small groups!!",
|
||||
"guests-see-HD-video": "Guests see HD video",
|
||||
"no-self-preview": "Disable self-preview",
|
||||
"raise-hand-button": "Display 'raise-hand' button",
|
||||
"enable-compressor": "Enable audio compressor",
|
||||
"enable-equalizer": "Enable equalizer as option",
|
||||
"show-guest-tips": "Show guest setup tips",
|
||||
"low-cpu=broadcast-codec": "Low-CPU broadcast codec",
|
||||
"only-see-director-feed": "Only see the director's feed",
|
||||
"mute-microphone-by-default": "Muted; guest can unmute",
|
||||
"unmute-by-director-only": "Muted; director can unmute",
|
||||
"guest-joins-with-no-camera": "Guest joins with no camera",
|
||||
"obfuscate-link": "Obfuscate link and parameters",
|
||||
"this-can-reduce-packet-loss": "Can reduce packet loss video corruption in OBS on PC",
|
||||
"use-h264-codec": "Use H264 codec",
|
||||
"show-active-speakers": "Show active speakers",
|
||||
"green-background": "Green background",
|
||||
"add-margin": "Add margin to videos",
|
||||
"force-mono-audio": "Force mono audio",
|
||||
"fill-video-space": "Crop video to fit",
|
||||
"vertical-aspect-ratio": "Vertical video mode",
|
||||
"learn-more-about-params": "Learn more about URL parameters at ",
|
||||
"forward-to-room": "Transfer",
|
||||
"send-direct-chat": "<i class=\"las la-envelope\"></i> Message",
|
||||
"disconnect-guest": "Hangup",
|
||||
"voice-chat": "<i class=\"las la-microphone\" style=\"color:#090\"></i> Solo Talk",
|
||||
"add-to-scene": "add to scene 1",
|
||||
"mute-guest": "mute guest",
|
||||
"More-scene-options": "More scene options",
|
||||
"add-to-scene2": "add to scene 2",
|
||||
"mute-scene": "mute in scene",
|
||||
"force-keyframe": "Rainbow Puke Fix",
|
||||
"stats-remote": " Scene Stats",
|
||||
"additional-controls": "Additional controls",
|
||||
"solo-video": "Highlight guest",
|
||||
"hide-guest": "hide guest",
|
||||
"toggle-remote-speaker": "Deafen Guest",
|
||||
"toggle-remote-display": "Blind Guest",
|
||||
"order-down": "<i class=\"las la-minus\"></i>",
|
||||
"order-up": "<i class=\"las la-plus\"></i>",
|
||||
"change-url": "Change URL",
|
||||
"change-params": "URL Params",
|
||||
"record-local": " Record Local",
|
||||
"record-remote": " Record Remote",
|
||||
"change-to-low-quality": " <i class=\"las la-video-slash\"></i>",
|
||||
"change-to-medium-quality": " <i class=\"las la-video\"></i>",
|
||||
"change-to-high-quality": " <i class=\"las la-binoculars\"></i>",
|
||||
"advanced-audio-settings": "<i class=\"las la-sliders-h\"></i> Audio Settings",
|
||||
"advanced-camera-settings": "<i class=\"las la-sliders-h\"></i> Video Settings",
|
||||
"user-raised-hand": "Lower Raised Hand",
|
||||
"unmute": "un-mute",
|
||||
"unhide-guest": "un-hide",
|
||||
"undeafen": "un-deafen",
|
||||
"unblind": "un-blind",
|
||||
"close": "close",
|
||||
"send-message": "send message<s pan=\"\"> </s>",
|
||||
"record-director-local": " Record",
|
||||
"video-source": " Video Source ",
|
||||
"max-resolution": "Max Resolution",
|
||||
"balanced": "Balanced",
|
||||
"smooth-cool": "Smooth and Cool",
|
||||
"select-audio-source": " Audio Source(s) ",
|
||||
"select-output-source": " Audio Output Destination: ",
|
||||
"select-digital-effect": " Digital Video Effects: ",
|
||||
"no-effects-applied": "No effects applied",
|
||||
"blurred-background": "Blurred background",
|
||||
"digital-greenscreen": "Digital greenscreen",
|
||||
"virtual-background": "Virtual background",
|
||||
"select-local-image": "Select Local Image",
|
||||
"close-settings": "Close Settings",
|
||||
"advanced": "Advanced ",
|
||||
"open-in-new-tab": "Open in new Tab",
|
||||
"copy-to-clipboard": "Copy to Clipboard",
|
||||
"send-chat": "Send",
|
||||
"apply-new-guest-settings": "Apply settings",
|
||||
"cancel": "Cancel",
|
||||
"invisible-guests": "Not Visible",
|
||||
"available-languages": "Available Languages:",
|
||||
"add-more-here": "Add More Here!",
|
||||
"add-to-calendar": "Add details to your Calendar:",
|
||||
"add-to-google-calendar": "Add to Google Calendar",
|
||||
"add-to-outlook-calendar": "Add to Outlook Calendar",
|
||||
"add-to-yahoo-calendar": "Add to Yahoo Calendar",
|
||||
"logo-header": "\n\t\t\t\t\t<font id=\"qos\">V</font>DO.Ninja \n\t\t\t\t",
|
||||
"only-director-can-hear-you": "Only the director can hear you currently.",
|
||||
"director-muted-you": "The director has muted you.",
|
||||
"add-group-chat": "Create a Room",
|
||||
@ -269,18 +172,34 @@
|
||||
"room-name": "Room Name",
|
||||
"password-input-field": "Password",
|
||||
"guests-only-see-director": "Guests can only see the Director's Video",
|
||||
"scenes-can-see-director": "Director will also be a performer",
|
||||
"scenes-can-see-director": "Director will be performing; appearing in scenes",
|
||||
"default-codec-select": "Preferred Video Codec: ",
|
||||
"enter-the-rooms-control": "Enter the Room's Control Center",
|
||||
"show-tips": "Show me some tips..",
|
||||
"added-notes": "\n\t\t\t\t\t\t\t\t<u>\n\t\t\t\t\t\t\t\t\t<i>Important Tips:</i><br><br>\n\t\t\t\t\t\t\t\t</u>\n\t\t\t\t\t\t\t\t<li>Disabling video sharing between guests will improve performance</li>\n\t\t\t\t\t\t\t\t<li>Invite only guests to the room that you trust.</li>\n\t\t\t\t\t\t\t\t<li>The \"Recording\" option is considered experimental.</li>\n\t\t\t\t\t\t\t\t<li><a href=\"https://params.vdo.ninja\" style=\"color:black;\"><u>Advanced URL parameters</u></a> are available to customize rooms.</li>\n\t\t\t\t\t\t\t",
|
||||
"added-notes": "\n<u>\n<i>Important Tips:</i><br><br>\n</u>\n<li>Disabling video sharing between guests will improve performance</li>\n<li>Invite only guests to the room that you trust.</li>\n<li>The \"Recording\" option is considered experimental.</li>\n<li><a href=\"https://params.vdo.ninja\" style=\"color:black;\"><u>Advanced URL parameters</u></a> are available to customize rooms.</li>\n",
|
||||
"join-the-room-basic": "Join room as participant",
|
||||
"back": "Back",
|
||||
"add-your-camera": "Add your Camera to OBS",
|
||||
"ask-for-permissions": "Allow Access to Camera/Microphone",
|
||||
"waiting-for-camera": "Waiting for Camera to Load",
|
||||
"no-audio": "No Audio",
|
||||
"privacy-disabled": "Privacy warning: The director will be able to remotely access your camera and microphone if you continue.",
|
||||
"video-source": " Video Source ",
|
||||
"max-resolution": "Max Resolution",
|
||||
"balanced": "Balanced",
|
||||
"smooth-cool": "Smooth and Cool",
|
||||
"select-audio-source": " Audio Source(s) ",
|
||||
"no-audio": " No Audio",
|
||||
"select-output-source": " Audio Output Destination: ",
|
||||
"select-digital-effect": " Digital Video Effects: ",
|
||||
"no-effects-applied": "No effects applied",
|
||||
"blurred-background": "Blurred background",
|
||||
"digital-greenscreen": "Digital greenscreen",
|
||||
"virtual-background": "Virtual background",
|
||||
"face-mesh": "Face mesh (slow load) 👨🔬",
|
||||
"anonymous-mask": "Anonymous mask 👨🔬",
|
||||
"dog-face": "Dog ears and nose 👨🔬",
|
||||
"add-a-password": " Add a Password:",
|
||||
"use-chrome-instead": "Consider using a Chromium-based browser instead.<br>\n \t\t\t\t\t\tSafari is more prone to having audio issues",
|
||||
"use-chrome-instead": "Consider using a Chromium-based browser instead.<br>\n Safari is more prone to having audio issues",
|
||||
"remote-screenshare-obs": "Remote Screenshare into OBS",
|
||||
"select-screen-to-share": "SELECT SCREEN TO SHARE",
|
||||
"audio-sources": "Audio Sources",
|
||||
@ -289,14 +208,15 @@
|
||||
"here-you-can-pre-generate": "Here you can pre-generate a reusable Browser Source link and a related guest invite link.",
|
||||
"generate-invite-link": "GENERATE THE INVITE LINK",
|
||||
"advanced-paramaters": "Advanced Options",
|
||||
"unlock-video-bitrate": "Unlock Video Bitrate (20mbps)",
|
||||
"force-vp9-video-codec": "Force VP9 Video Codec",
|
||||
"enable-stereo-and-pro": "Enable Stereo and Pro HD Audio",
|
||||
"video-resolution": "Video Resolution: ",
|
||||
"hide-mic-selection": "Force Default Microphone",
|
||||
"hide-screen-share": "Hide Screenshare Option",
|
||||
"allow-remote-control": "Remote Control Camera Zoom (android)",
|
||||
"obfuscate_url": "Obfuscate the Invite URL",
|
||||
"unlock-video-bitrate": "Unlock the video bitrate (20mbps)",
|
||||
"force-vp9-video-codec": "Use the VP9 video codec",
|
||||
"enable-stereo-and-pro": "Enable stereo and pro HD audio",
|
||||
"video-resolution": "Video resolution: ",
|
||||
"allow-effects-invite": "Allow video effects to be used",
|
||||
"hide-mic-selection": "Force select the default microphone",
|
||||
"hide-screen-share": "Hide the screenshare option",
|
||||
"allow-remote-control": "Remote control of zoom (android)",
|
||||
"obfuscate_url": "Obfuscate the invite URL",
|
||||
"add-a-password-to-stream": " Add a password:",
|
||||
"add-the-guest-to-a-room": " Add the guest to a room:",
|
||||
"invite-group-chat-type": "This room guest can:",
|
||||
@ -309,37 +229,120 @@
|
||||
"enter-the-website-URL-you-wish-to-share": "Enter the URL website you wish to share.",
|
||||
"run-a-speed-test": "Run a Speed Test",
|
||||
"read-the-guides": "Browse the Guides",
|
||||
"info-blob": "\n\t\t\t\t\t\t\t<h2>What is VDO.Ninja</h2>\n\t\t\t\t\t\t\t<br>\n\t\t\t\t\t\t\t<li>100% <b>free</b>; no downloads; no personal data collection; no sign-in</li>\n\t\t\t\t\t\t\t<li>Bring live video from your smartphone, remote computer, or friends directly into OBS or other studio software.</li>\n\t\t\t\t\t\t\t<li>We use cutting edge Peer-to-Peer forwarding technology that offers privacy and ultra-low latency</li>\n\t\t\t\t\t\t\t<br>\n\t\t\t\t\t\t\t<li>Youtube video \n\t\t\t\t\t\t\t\t<i class=\"lab la-youtube\"></i>\n\t\t\t\t\t\t\t\t<a href=\"https://www.youtube.com/watch?v=vLpRzMjUDaE&list=PLWodc2tCfAH1WHjl4WAOOoRSscJ8CHACe&index=2\" alt=\"Youtube video demoing VDO.Ninja\">Demoing it here</a>\n\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<br>\n\t\t\t\t\t\t\t<i>\n\t\t\t\t\t\t\t\t<font style=\"color: red;\">Known issues:</font>\n\t\t\t\t\t\t\t</i>\n\t\t\t\t\t\t\t<br>\n\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\tSome devices that use H264 hardware encoding can experience video glitching; switching to VP8 or VP9 as a codec can help.\n\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\tIf using multiple group scenes at a time, iOS devices may fail to work if the hardware encoders max out. Perhaps try VP8 as a codec instead.\n\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\tA list of less common issues can <a href=\"https://docs.vdo.ninja/common-errors-and-known-issues/known-issues-browser-bugs-and-more\">be found here</a>.\n\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t<br>\n\t\t\t\t\t\t\t<h4 style=\"color:#daad09;\">\n\t\t\t\t\t\t\t\t👋 👀 Welcome to VDO Ninja! We've rebranded! 📼 Nothing else is changing and we're staying 100% free.\n\t\t\t\t\t\t\t</h4>\n\t\t\t\t\t\t\t<br>\n\t\t\t\t\t\t\t🌻 Site Updated on July 8th. The <a href=\"https://docs.vdo.ninja/release-notes/v18_3\">v18.3 release notes are here</a>. If new issues occur, the previous version can also be <a href=\"https://vdo.ninja/v18/\">found here</a>.\n\n\t\t\t\t\t\t\t<br>\n\t\t\t\t\t\t\t<br>\n\t\t\t\t\t\t\t<h3>\n\t\t\t\t\t\t\t 🛠 For support, see the <a href=\"https://www.reddit.com/r/VDONinja/\">sub-reddit <i class=\"lab la-reddit-alien\"></i></a> or join the <a href=\"https://discord.gg/T4xpQVv\">Discord <i class=\"lab la-discord\"></i></a>. The <a href=\"https://docs.vdo.ninja/\">documentation is here</a> and my personal email is <i>steve@seguin.email</i>\n\t\t\t\t\t\t\t</h3> \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t",
|
||||
"animate-mixing": "Animate mixing",
|
||||
"prefix-screenshare": "Prefix screenshare IDs",
|
||||
"more-than-four-can-join": "These four guest slots are just for demonstration. More than four guests can actually join a room.",
|
||||
"welcome-to-obs-ninja-chat": "\n\t\t\t\t\tWelcome to VDO.Ninja! You can send text messages directly to connected peers from here.\n\t\t\t\t",
|
||||
"privacy-disabled": "Privacy warning: The director will be able to remotely access your camera and microphone if you continue.",
|
||||
"face-mesh": "Face mesh (slow load)",
|
||||
"anonymous-mask": "Anonymous mask",
|
||||
"dog-face": "Dog ears and nose",
|
||||
"info-blob": "\n<h2>What is VDO.Ninja</h2>\n<br>\n<li>100% <b>free</b>; no downloads; no personal data collection; no sign-in</li>\n<li>Bring live video from your smartphone, remote computer, or friends directly into OBS or other studio software.</li>\n<li>We use cutting edge Peer-to-Peer forwarding technology that offers privacy and ultra-low latency</li>\n<br>\n<li>Youtube video \n<i class=\"lab la-youtube\"></i>\n<a href=\"https://www.youtube.com/watch?v=vLpRzMjUDaE&list=PLWodc2tCfAH1WHjl4WAOOoRSscJ8CHACe&index=2\" alt=\"Youtube video demoing VDO.Ninja\">Demoing it here</a>\n</li>\n\n<br>\n<br>\n<h3>\n 🛠 For support, see the <a href=\"https://www.reddit.com/r/VDONinja/\">sub-reddit <i class=\"lab la-reddit-alien\"></i></a> or join the <a href=\"https://discord.gg/T4xpQVv\">Discord <i class=\"lab la-discord\"></i></a>. The <a href=\"https://docs.vdo.ninja/\">documentation is here</a> and my personal email is <i>steve@seguin.email</i>\n</h3> \n\n",
|
||||
"hide-the-links": " LINKS (GUEST INVITES & SCENES)",
|
||||
"click-for-quick-room-overview": "\n<i class=\"las la-question-circle\"></i> <span data-translate=\"click-here-for-help\">Click Here for a quick overview and help</span>\n",
|
||||
"click-here-for-help": "Click Here for a quick overview and help",
|
||||
"welcome-to-control-room": "\n<b>Welcome. This is the director's control-room for the group-chat.</b><br><br>\nYou can host a group chat with friends using a room. Share the blue link to invite guests who will join the chat automatically.\n<br><br>\n<font style=\"color:red\">Known Limitations with Group Rooms:</font><br>\n<li>A group room can handle up to around 30 guests, depending on numerous factors, including CPU and available bandwidth of all guests in the room. To achieve more than around 7-guests though, you will likely want to <a href=\"https://www.youtube.com/watch?v=bpRa8-UYCGc\" title=\"Youtube Video demoing how to do this\">disable video sharing between guests</a>. Using &broadcast, &roombitrate=0 or &novideo are options there.</li>\n\n<li>Videos will appear of low quality on purpose for guests and director; this is to save bandwidth and CPU resources. It will be high-quality within OBS still though.</li>\n\n<li>The state of the scenes, such as which videos are active in a scene, are lost when the director resets the control-room or the scene.</li>\n<br>\nFurther Notes:<br><br>\n<li>Links to Solo-views of each guest video are offered under videos as they load. These can be used within an OBS Browser Source.</li>\n<li>You can use the auto-mixing Group Scenes, the green links, to auto arrange multiple videos for you in OBS.</li>\n<li>You can use this control room to record isolated video or audio streams, but it is an experimental feature still.</li>\n<li>If you transfer a guest from one room to another, they won't know which room they have been transferred to.</li>\n<li>OBS will see a guest's video in high-quality; the default video bitrate is 2500kbps. Setting higher bitrates will improve motion.</li>\n<li>VP8 is typically the default video codec, but using &codec=vp9 or &codec=h264 as a URL in OBS can help to reduce corrupted video puke issues.</li>\n<li>&stereo=2 can be added to guests to turn off audio effects, such as echo cancellation and noise-reduction.</li>\n<li>https://invite.cam is a free service provided that can help obfuscuate the URL parameters of an invite link given to guests.</li>\n<li>Adding &showonly=SOME_OBS_VIRTUALCAM to the guest invite links allows for only a single video to be seen by the guests; this can be output of the OBS Virtual Camera for example</li>\n<br>\n\nFor advanced URL options and parameters, <a href=\"https://docs.vdo.ninja/advanced-settings\">see the Wiki.</a>\n",
|
||||
"invite-users-to-join": "Guests can use the link to join the group room",
|
||||
"guests-hear-others": "Guests hear others",
|
||||
"capture-a-group-scene": "CAPTURE A GROUP SCENE",
|
||||
"this-is-obs-browser-source-link": "Use in OBS or other studio software to capture the group video mix",
|
||||
"auto-add-guests": "Auto-add guests",
|
||||
"pro-audio-mode": "Pro-audio mode",
|
||||
"hide-audio-only-sources": "Hide audio-only sources",
|
||||
"remote-monitoring": "Remote Monitoring",
|
||||
"invite-saved-to-cookie": "Invite saved to cookie",
|
||||
"ask-for-display-name": "Ask for display name",
|
||||
"show-display-names": "Show display names",
|
||||
"show-active-speaker": "Show active speakers",
|
||||
"show-welcome-message": "Show welcome message",
|
||||
"auto-select-microphone": "Auto-select default microphone",
|
||||
"auto-select-camera": "Auto-select default camera",
|
||||
"compatibility-mode": "Compatibility mode",
|
||||
"hide-setting-buttons": "Hide settings button",
|
||||
"virtual-backgrounds": "Virtual backgrounds",
|
||||
"disable-animated-mixing": "Disable animations",
|
||||
"powerful-computers-only": "Only use with powerful computers and small groups!!",
|
||||
"guests-see-HD-video": "Guests see HD video",
|
||||
"no-self-preview": "Disable self-preview",
|
||||
"raise-hand-button": "Display 'raise-hand' button",
|
||||
"enable-compressor": "Enable audio compressor",
|
||||
"enable-equalizer": "Enable equalizer as option",
|
||||
"show-guest-tips": "Show guest setup tips",
|
||||
"prefix-screenshare": "Prefix screenshare IDs",
|
||||
"low-cpu=broadcast-codec": "Low-CPU broadcast codec",
|
||||
"mini-self-preview": "Mini self-preview",
|
||||
"only-see-director-feed": "Only see the director's feed",
|
||||
"mute-microphone-by-default": "Muted; guest can unmute",
|
||||
"unmute-by-director-only": "Muted; director can unmute",
|
||||
"guest-joins-with-no-camera": "Guest joins with no camera",
|
||||
"obfuscate-link": "Obfuscate link and parameters",
|
||||
"this-can-reduce-packet-loss": "Can reduce packet loss video corruption in OBS on PC",
|
||||
"use-h264-codec": "Use H264 codec",
|
||||
"show-active-speakers": "Show active speakers",
|
||||
"green-background": "Green background",
|
||||
"fade-videos-in": "Fade-in videos",
|
||||
"animate-mixing": "Animate mixing",
|
||||
"add-margin": "Add margin to videos",
|
||||
"force-mono-audio": "Force mono audio",
|
||||
"fill-video-space": "Crop video to fit",
|
||||
"vertical-aspect-ratio": "Vertical video mode",
|
||||
"learn-more-about-params": "Learn more about URL parameters at ",
|
||||
"more-than-four-can-join": "These four guest slots are just for demonstration. More than four guests can actually join a room.",
|
||||
"forward-to-room": "Transfer",
|
||||
"send-direct-chat": "<i class=\"las la-envelope\"></i> Message",
|
||||
"disconnect-guest": "Hangup",
|
||||
"voice-chat": "<i class=\"las la-microphone\" style=\"color:#090\"></i> Solo Talk",
|
||||
"add-to-scene": "add to scene 1",
|
||||
"mute-guest": "mute guest",
|
||||
"More-scene-options": "More scene options",
|
||||
"add-to-scene2": "add to scene 2",
|
||||
"mute-scene": "mute in scene",
|
||||
"force-keyframe": "Rainbow Puke Fix",
|
||||
"stats-remote": " Scene Stats",
|
||||
"additional-controls": "Additional controls",
|
||||
"solo-video": "Highlight",
|
||||
"hide-guest": "hide guest",
|
||||
"toggle-remote-speaker": "Deafen Guest",
|
||||
"toggle-remote-display": "Blind Guest",
|
||||
"change-to-low-quality": " <i class=\"las la-video-slash\"></i>",
|
||||
"change-to-medium-quality": " <i class=\"las la-video\"></i>",
|
||||
"change-to-high-quality": " <i class=\"las la-binoculars\"></i>",
|
||||
"order-down": "<i class=\"las la-minus\"></i>",
|
||||
"order-up": "<i class=\"las la-plus\"></i>",
|
||||
"change-url": "Change URL",
|
||||
"change-params": "URL Params",
|
||||
"record-local": " Record Local",
|
||||
"record-remote": " Record Remote",
|
||||
"request-upload": " Request File",
|
||||
"create-timer": "Create Timer",
|
||||
"advanced-audio-settings": "<i class=\"las la-sliders-h\"></i> Audio Settings",
|
||||
"advanced-camera-settings": "<i class=\"las la-sliders-h\"></i> Video Settings",
|
||||
"record-director-local": " Record",
|
||||
"select-local-image": "Select Local Image",
|
||||
"close-settings": "Close Settings",
|
||||
"advanced": "Advanced ",
|
||||
"open-in-new-tab": "Open in new tab",
|
||||
"copy-to-clipboard": "Copy to clipboard",
|
||||
"edit-url": "Edit URL manually",
|
||||
"mirror-video": "Mirror",
|
||||
"toggle-control-video": "Toggle control bar",
|
||||
"picture-in-picture": "Picture-in-picture",
|
||||
"chrome-cast": "Cast.."
|
||||
"chrome-cast": "Cast..",
|
||||
"welcome-to-obs-ninja-chat": "\nWelcome to VDO.Ninja! You can send text messages directly to connected peers from here.\n",
|
||||
"send-chat": "Send",
|
||||
"apply-new-guest-settings": "Apply settings",
|
||||
"cancel": "Cancel",
|
||||
"invisible-guests": "Not Visible",
|
||||
"available-languages": "Available Languages:",
|
||||
"add-more-here": "Add More Here!",
|
||||
"add-to-calendar": "Add details to your Calendar:",
|
||||
"add-to-google-calendar": "Add to Google Calendar",
|
||||
"add-to-outlook-calendar": "Add to Outlook Calendar",
|
||||
"add-to-yahoo-calendar": "Add to Yahoo Calendar"
|
||||
},
|
||||
"placeholders": {
|
||||
"join-by-room-name-here": "Join by Room Name here",
|
||||
"enter-your-message-here": "Enter your message here",
|
||||
"enter-chat-message-to-send-here": "Enter chat message to send here",
|
||||
"enter-the-room-name-here": "Enter the room name here",
|
||||
"enter-the-room-password-here": "Enter the room password here",
|
||||
"enter-a-room-name-here": "Enter a Room Name here",
|
||||
"optional-room-password-here": "Optional room password here",
|
||||
"optional": "optional",
|
||||
"give-this-media-source-a-name-optional-": "Give this media source a name (optional)",
|
||||
"add-an-optional-password": "Add an optional password",
|
||||
"enter-room-name-here": "Enter Room name here"
|
||||
"enter-room-name-here": "Enter Room name here",
|
||||
"enter-chat-message-to-send-here": "Enter chat message to send here",
|
||||
"enter-the-room-name-here": "Enter the room name here",
|
||||
"enter-the-room-password-here": "Enter the room password here"
|
||||
},
|
||||
"miscellaneous": {
|
||||
"start": "START",
|
||||
@ -349,7 +352,7 @@
|
||||
"director-redirect-2": "\n\nPress OK to be redirected.",
|
||||
"add-a-label": "Add a label",
|
||||
"audio-processing-disabled": "Audio processing is disabled with this guest. Can't mute or change volume",
|
||||
"not-the-director": "<font color='red'>You are not the director of this room. You will have limited to no control. You can try claiming the room after the first director leaves.</font>",
|
||||
"not-the-director": "<font color='red'>You are not the director of this room. You will have limited to no control. See <a target='_blank' href='https://docs.vdo.ninja/director-settings/codirector'>&codirector</a> on how to become a co-director.</font>",
|
||||
"room-is-claimed": "The room is already claimed by someone else.\n\nOnly the first person to join a room is the assigned director.\n\nRefresh after the first director leaves to claim.",
|
||||
"room-is-claimed-codirector": "The room is already claimed by someone else.\n\nTrying to join as a co-director...",
|
||||
"streamid-already-published": "The stream ID you are publishing to is already in use.\n\nPlease try with a different invite link or refresh to retry again.\n\nYou will now be disconnected.",
|
||||
@ -363,7 +366,7 @@
|
||||
"password-incorrect": "The password was incorrect.\n\nRefresh and try again.",
|
||||
"enter-display-name": "Please enter your display name:",
|
||||
"enter-new-display-name": "Enter a new Display Name for this stream",
|
||||
"what-bitrate": "What bitrate would you like to record at? (kbps)",
|
||||
"what-bitrate": "What bitrate would you like to record at? (kbps)\n(note: This feature is experimental, so have backup recordings going)",
|
||||
"enter-website": "Enter a website URL to share",
|
||||
"press-ok-to-record": "Press OK to start recording. Press again to stop and download.\n\nWarning: Keep this browser tab active to continue recording.\n\nYou can change the default video bitrate if desired below (kbps)",
|
||||
"no-streamID-provided": "No streamID was provided; one will be generated randomily.\n\nStream ID: ",
|
||||
@ -375,7 +378,7 @@
|
||||
"allowed-chars": "Allowed chars",
|
||||
"transfer": "transfer",
|
||||
"armed": "armed",
|
||||
"transfer-guest-to-room": "Transfer guests to room:\n\n(Please note rooms must share the same password)",
|
||||
"transfer-guest-to-room": "Transfer guests to room:\n\n(Please note: rooms must share the same password)",
|
||||
"transfer-guest-to-url": "Transfer guests to new website URL.\n\n(Guests will be prompted to accept)",
|
||||
"change-url": "change URL",
|
||||
"mute-in-scene": "mute in scene",
|
||||
@ -389,6 +392,17 @@
|
||||
"unhide": "unhide guest",
|
||||
"hide-guest": "hide guest",
|
||||
"confirm-disconnect-users": "Are you sure you wish to disconnect these users?",
|
||||
"confirm-disconnect-user": "Are you sure you wish to disconnect this user?"
|
||||
"confirm-disconnect-user": "Are you sure you wish to disconnect this user?",
|
||||
"enter-new-codirector-password": "Enter a co-director password to use",
|
||||
"control-room-co-director": "Control Room: Co-Director",
|
||||
"signal-meter": "Video packet loss indicator of video preview; green is good, red is bad. Flame implies CPU is overloaded. May not reflect the packet loss seen by scenes or other guests.",
|
||||
"waiting-for-the-stream": "Waiting for the stream. Tip: Adding &cleanoutput to the URL will hide this spinner, or click to retry, which will also hide it.",
|
||||
"main-director": "Main Director",
|
||||
"share-a-screen": "Share a screen",
|
||||
"stop-screen-sharing": "Stop screen sharing",
|
||||
"you-have-been-transferred": "You've been transferred to a different room",
|
||||
"you-are-no-longer-a-co-director": "You are no longer a co-director as you were transferred.",
|
||||
"transferred": "Transferred",
|
||||
"room-changed": "Your room has changed"
|
||||
}
|
||||
}
|
||||
@ -151,7 +151,30 @@
|
||||
"disable-animated-transitions-during-video-mixing": "Deshabilite las transiciones animadas",
|
||||
"allow-the-guest-to-select-a-file-to-upload-to-the-director-once-shared-it-will-show-in-the-chat-as-a-download-link-": "Permita que el invitado seleccione un archivo para enviarlo solamente al Director. Una vez compartido se le mostrara en el chat como un enlace de descarga",
|
||||
"set-a-countdown-timer-that-this-guest-sees": "Establece un temporizador que se le mostrara al invitado en su pantalla",
|
||||
"enter-a-room-name-to-quick-join": "Ingrese un nombre de Sala para unirse"
|
||||
"enter-a-room-name-to-quick-join": "Ingrese un nombre de Sala para unirse",
|
||||
"will-remember-the-room-prompting-you-the-next-time-you-visit-if-you-wish-to-load-this-director-s-room-again": "Will remember the room, prompting you the next time you visit if you wish to load this director's room again",
|
||||
"create-a-third-stream": "Create a Third Stream",
|
||||
"share-a-website-with-your-guests-iframe-": "Share a website with your guests (IFRAME)",
|
||||
"hold-ctrl-or-cmd-and-click-to-spotlight-this-video": "Hold CTRL (or CMD) and click to spotlight this video",
|
||||
"add-group-chat": "Add Group Chat",
|
||||
"if-checked-the-director-can-be-added-to-scenes-as-if-a-guest-otherwise-the-director-will-never-appear-in-a-scene-": "If checked, the director can be added to scenes as if a guest. Otherwise, the director will never appear in a scene.",
|
||||
"add-your-camera": "Add your Camera",
|
||||
"experimental": "experimental",
|
||||
"adjust-the-amount-of-effect-applied": "Adjust the amount of effect applied",
|
||||
"remote-screenshare": "Remote Screenshare",
|
||||
"the-guest-will-be-able-to-select-digital-video-effects-to-apply-": "The guest will be able to select digital video effects to apply.",
|
||||
"use-this-link-as-a-browser-source-to-capture-the-video-or-audio": "Use this link as a Browser Source to capture the video or audio",
|
||||
"show-a-custom-welcome-message-to-the-joining-guest-of-this-invite-link": "Show a custom welcome message to the joining guest of this invite link",
|
||||
"add-remove-from-group-1": "Add/remove from group 1",
|
||||
"add-remove-from-group-2": "Add/remove from group 2",
|
||||
"add-remove-from-group-3": "Add/remove from group 3",
|
||||
"add-remove-from-group-4": "Add/remove from group 4",
|
||||
"add-remove-from-group-5": "Add/remove from group 5",
|
||||
"add-remove-from-group-6": "Add/remove from group 6",
|
||||
"the-solo-view-link-of-the-director-s-video-": "The solo view link of the Director's video.",
|
||||
"only-the-director-s-video-will-be-visible-to-guests-and-within-group-scenes": "Only the director's video will be visible to guests and within group scenes",
|
||||
"allow-for-remote-co-directors": "Allow for remote co-directors",
|
||||
"jump-to-the-documentation": "Jump to the documentation"
|
||||
},
|
||||
"innerHTML": {
|
||||
"copy-this-url": "Copia esta URL como fuente \"Navegador\" en OBS",
|
||||
@ -338,7 +361,10 @@
|
||||
"share-your-screen": "Comparte tu pantalla",
|
||||
"click-start-to-join": "Clikea COMENZAR para unirte a la sala",
|
||||
"waiting-for-mic-to-load": "Esperando Microfono para cargar",
|
||||
"waiting-for-camera-to-load": "Esperando Cámara para cargar"
|
||||
"waiting-for-camera-to-load": "Esperando Cámara para cargar",
|
||||
"join-the-room-basic": "Join room as participant",
|
||||
"allow-effects-invite": "Allow video effects to be used",
|
||||
"show-welcome-message": "Show welcome message"
|
||||
},
|
||||
"placeholders": {
|
||||
"join-by-room-name-here": "Unirse por Nombre de Sala aquí",
|
||||
@ -401,6 +427,17 @@
|
||||
"unhide": "Mostrar invitado",
|
||||
"hide-guest": "Ocultar invitado",
|
||||
"confirm-disconnect-users": "¿Está seguro de que desea desconectar a estos usuarios?",
|
||||
"confirm-disconnect-user": "¿Está seguro de que desea desconectar a este usuario?"
|
||||
"confirm-disconnect-user": "¿Está seguro de que desea desconectar a este usuario?",
|
||||
"enter-new-codirector-password": "Enter a co-director password to use",
|
||||
"control-room-co-director": "Control Room: Co-Director",
|
||||
"signal-meter": "Video packet loss indicator of video preview; green is good, red is bad. Flame implies CPU is overloaded. May not reflect the packet loss seen by scenes or other guests.",
|
||||
"waiting-for-the-stream": "Waiting for the stream. Tip: Adding &cleanoutput to the URL will hide this spinner, or click to retry, which will also hide it.",
|
||||
"main-director": "Main Director",
|
||||
"share-a-screen": "Share a screen",
|
||||
"stop-screen-sharing": "Stop screen sharing",
|
||||
"you-have-been-transferred": "You've been transferred to a different room",
|
||||
"you-are-no-longer-a-co-director": "You are no longer a co-director as you were transferred.",
|
||||
"transferred": "Transferred",
|
||||
"room-changed": "Your room has changed"
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,378 +1,443 @@
|
||||
{
|
||||
"titles": {
|
||||
"join-by-room-name-here": "Hasteko gelari izena jarri",
|
||||
"join-room": "Batu gelara",
|
||||
"load-the-next-guest-in-queue": "Batu hurrengo gonbidatua",
|
||||
"toggle-the-chat": "Aldatu txata",
|
||||
"mute-the-speaker": "Isildu hizlaria",
|
||||
"mute-the-mic": "Isildu mikrofonoa",
|
||||
"disable-the-camera": "Itzali kamera",
|
||||
"share-a-screen-with-others": "Elkarbanatu pantaila besteekin",
|
||||
"create-a-secondary-stream": "Sortu bigarren Stream-a",
|
||||
"settings": "Ezaugarriak",
|
||||
"hangup-the-call": "Moztu deia",
|
||||
"alert-the-host-you-want-to-speak": "Jakinarazi zuzendariari hitz egin nahi duzula.",
|
||||
"record-your-stream-to-disk": "Diskoan irarri Stream-a",
|
||||
"cancel-the-director-s-video-audio": "Zuzendariaren bideoa/audioa itzali",
|
||||
"submit-any-error-logs": "Bidali edozein akats erregistro",
|
||||
"show-help-info": "Laguntza informazioa",
|
||||
"language-options": "Hizkuntza aukerak",
|
||||
"add-to-calendar": "Gehitu egutegira",
|
||||
"add-group-chat-to-obs": "Gehitu talde txata",
|
||||
"for-large-group-rooms-this-option-can-reduce-the-load-on-remote-guests-substantially": "Parte hartzaile asko daudean bezeroen karga gutxitu dezake",
|
||||
"the-director-will-be-visible-in-scenes-as-if-a-performer-themselves-": "Zuzendaria ikusgai egongo da eszenetan, antzeztuko baluke bezala.",
|
||||
"useful-if-you-want-to-perform-and-direct-at-the-same-time": "Gaitu zuzendariak ere parte hartuko badu",
|
||||
"which-video-codec-would-you-want-used-by-default-": "Zein bideo-kodek lehenetsi nahi duzu?",
|
||||
"you-ll-enter-as-the-room-s-director": "Gelako zuzendari bezala sartuko zara",
|
||||
"add-your-camera-to-obs": "Gehitu kamera",
|
||||
"start-streaming": "Hasi zuzenekoa",
|
||||
"tip-hold-ctrl-command-to-select-multiple": "aholkua: sakatu CTRL (edo CMD) hainbat aukeratzeko",
|
||||
"improve-performance-and-quality-with-this-tip": "Errendimendua eta kalitatea hobetzeko aholkua",
|
||||
"remote-screenshare-into-obs": "Partekatu pantaila",
|
||||
"create-reusable-invite": "Sortu gonbidapen berrerabilgarria",
|
||||
"ideal-for-1080p60-gaming-if-your-computer-and-upload-are-up-for-it": "1080p60 kalitatean jokatzeko prestatua, zure ordenagailuak eta konexioak onartzen badute",
|
||||
"better-video-compression-and-quality-at-the-cost-of-increased-cpu-encoding-load": "Bideo konpresio eta kalitate hobea, nahiz eta CPU-aren lan karga handitu",
|
||||
"disable-digital-audio-effects-and-increase-audio-bitrate": "Audioaren bitratea handitu eta soinu digitalen efektuak desgaitu",
|
||||
"the-guest-will-not-have-a-choice-over-audio-options": "Gonbidatuak ezingo du audio ezaugarririk hautatu",
|
||||
"the-guest-will-only-be-able-to-select-their-webcam-as-an-option": "Gonbidatuak bere kameraren ezaugarriak soilik hautatu ditzake",
|
||||
"hold-ctrl-and-the-mouse-wheel-to-zoom-in-and-out-remotely-of-compatible-video-streams": "CTRL eta saguaren gurpila mantenduz zoom egin bideoetan",
|
||||
"encode-the-url-so-that-it-s-harder-for-a-guest-to-modify-the-settings-": "URL-a kodetu gonbidatuak ezaugarriak aldatzea zailtzeko.",
|
||||
"add-a-password-to-make-the-stream-inaccessible-to-those-without-the-password": "Pasahitza dutenak bakarrik sartu ahalko dira zuzenekora.",
|
||||
"add-the-guest-to-a-group-chat-room-it-will-be-created-automatically-if-needed-": "Gonbidatua talde batera gehitu; automatikoki sortuko da beharrezkoa bada.",
|
||||
"customize-the-room-settings-for-this-guest": "Gelaren ezaugarriak kudeatu gonbidatuarentzat",
|
||||
"more-options": "Aukera gehiago",
|
||||
"hold-ctrl-or-cmd-to-select-multiple-files": "Sakatu CTRL (edo CMD) hainbat aukeratzeko",
|
||||
"enter-an-https-url": "Sartu HTTPS helbidea",
|
||||
"creative-commons-by-3-0": "Creative Commons BY 3.0",
|
||||
"youtube-video-demoing-how-to-do-this": "Hau nola egiten den jakiteko Youtubeko bideoa",
|
||||
"invite-a-guest-or-camera-source-to-publish-into-the-group-room": "Gehitu taldeko gelara gonbidatu kamara edo kamera iturri berria",
|
||||
"if-disabled-the-invited-guest-will-not-be-able-to-see-or-hear-anyone-in-the-room-": "Desgaitu ezkero, gonbidatuak ezingo du gelan audio edo bideorik ikusi.",
|
||||
"use-this-link-in-the-obs-browser-source-to-capture-the-video-or-audio": "Erabili esteka hau audio edo bideoa jasotzeko OBS iturri bilatzailean",
|
||||
"if-disabled-you-must-manually-add-a-video-to-a-scene-for-it-to-appear-": "Desgaitu ezkero, eskuz gehitu beharko duzu eszenara bideoa ikusteko.",
|
||||
"disables-echo-cancellation-and-improves-audio-quality": "Itzali oihartzun ezeztapena eta hobetu audioaren kalitatea",
|
||||
"audio-only-sources-are-visually-hidden-from-scenes": "Audio sarrerak ikusezin daude eszenetan",
|
||||
"guest-will-be-prompted-to-enter-a-display-name": "Erabiltzaile izena jartzeko eskatuko zaio gonbidatuari",
|
||||
"display-names-will-be-shown-in-the-bottom-left-corner-of-videos": "Erabiltzaile izenak bideoen beheko ezker aldean azalduko dira",
|
||||
"guests-not-actively-speaking-will-be-hidden": "Aktiboki hitz egiten ez duten gonbidatuak ezkutatuak izango dira",
|
||||
"request-1080p60-from-the-guest-instead-of-720p60-if-possible": "Ahal denean, gonbidatuari eskatu 1080p60 720p60 ordez",
|
||||
"the-default-microphone-will-be-pre-selected-for-the-guest": "Gonbidatuari hautazko mikrofonoa aurrezarriko zaio",
|
||||
"the-default-camera-device-will-selected-automatically": "Lehenetsitako kamera automatikoki aukeratuko da",
|
||||
"the-guest-won-t-have-access-to-changing-camera-settings-or-screenshare": "Gonbidatuak ezin du kamera edo pantaila partekatzeko ezaugarrietara sartu",
|
||||
"allow-the-guests-to-pick-a-virtual-backscreen-effect": "Baimendu gonbidatuari atzeko irudi efektu birtuala hautatzea",
|
||||
"increase-video-quality-that-guests-in-room-see-": "Gelako bideo kalitatea hobetu gonbidatuentzat.",
|
||||
"the-guest-will-not-see-their-own-self-preview-after-joining": "Gonbidatuak gelara sartzean ezingo dute beraien aurrebista ikusi",
|
||||
"guests-will-have-an-option-to-poke-the-director-by-pressing-a-button": "Gonbidatuak zuzendaria mugitzeko aukera dute botoia sakatuz",
|
||||
"add-an-audio-compressor-to-the-guest-s-microphone": "Audio konprimitzailea gehitu gonbidatuaren mikrofonoari",
|
||||
"add-an-equalizer-to-the-guest-s-microphone-that-the-director-can-control": "Zuzendariak kontrolatu dezaken ekualizatzilea gehitu gonbidatuaren mikrofonoari",
|
||||
"this-low-fi-video-codec-uses-very-little-cpu-even-with-dozens-of-active-viewers-": "Erantzun baxuko bideo codek honek CPU gutxi darabil, nahiz eta dozenaka erabiltzaile aktibo izan.",
|
||||
"the-guest-can-only-see-the-director-s-video-if-provided": "Gonbidatuek zuzendariaren bideoa bakarrik ikusi dezakete (beti ere partekatzen ari bada)",
|
||||
"the-guest-s-microphone-will-be-muted-on-joining-they-can-unmute-themselves-": "Gonbidatuen mikrofonoak mututa hasiko dira gelara batutakoan. Gonbidatuek piztu ditzateke.",
|
||||
"the-guest-will-not-be-asked-for-a-video-device-on-connection": "Gonbidatuari ez zaio kamera eskatuko konektatzerakoan",
|
||||
"have-the-guest-join-muted-so-only-the-director-can-unmute-the-guest-": "Gonbidatua batzerakoan mututa hasiko da, zuzendariak baimendu arte",
|
||||
"make-the-invite-url-encoded-so-parameters-are-harder-to-tinker-with-by-guests": "Gonbidapen esteka kodetu, ezaugarriak aldatzeko zailtasunak izan ditzaten",
|
||||
"the-active-speakers-are-made-visible-automatically": "Hizlari aktiboak automatiko ikusgarri izango dira",
|
||||
"move-the-user-to-another-room-controlled-by-another-director": "Mugitu erabiltzailea beste gela batera, beste zuzendari baten gidaritzapean",
|
||||
"send-a-direct-message-to-this-user-": "Bidali mezu zuzena erabiltzaile honi.",
|
||||
"force-the-user-to-disconnect-they-can-always-reconnect-": "Kaleratu erabiltzailea. Berriz battzeko aukera dauka.",
|
||||
"toggle-solo-voice-chat": "Txandakatu bakarkako txata",
|
||||
"add-this-video-to-any-remote-scene-1-": "Gehitu bideo hau urruneko '&scene=1'-ri",
|
||||
"mute-this-guest-everywhere": "Isildu erabiltzaile hau leku guztietan",
|
||||
"add-this-video-to-any-remote-scene-2-": "Gehitu bideo hau urruneko '&scene=2'-ri",
|
||||
"remotely-mute-this-audio-in-all-remote-scene-views": "Isildu audio hau urruneko '&scene' tan",
|
||||
"add-to-scene-3": "Gehito 3.eszenara",
|
||||
"add-to-scene-4": "Gehitu 4.eszenara",
|
||||
"add-to-scene-5": "Gehitu 5.eszenara",
|
||||
"add-to-scene-6": "Gehitu 6.eszenara",
|
||||
"add-to-scene-7": "Gehitu 7.eszenara",
|
||||
"add-to-scene-8": "Gehitu 8.eszenara",
|
||||
"force-the-remote-sender-to-issue-a-keyframe-to-all-scenes-fixing-pixel-smearing-issues-": "Eszenarako Keyframe-a bidaltzera behartu, pixel galera konpontzeko.",
|
||||
"request-the-statistics-of-this-video-in-any-active-scene": "Azaldu bideo honen estatistikak eszena aktiboetan",
|
||||
"solo-this-video-everywhere": "Bideo hau bakarrik leku guztietan",
|
||||
"hide-this-guest-everywhere": "Gonbidatua ezkutatu leku guztietan",
|
||||
"toggle-the-remote-guest-s-speaker-output": "Txandakatu gonbidatuaren urruneko audio irteera",
|
||||
"toggle-the-remote-guest-s-display-output": "Txandakatu gonbidatuaren urruneko pantila",
|
||||
"shift-this-video-down-in-order": "Mugitu beherantz bideoa ordenean",
|
||||
"current-index-order-of-this-video": "Momentuko bideoaren ordena",
|
||||
"shift-this-video-up-in-order": "Mugitu gorantz bideoa ordenean",
|
||||
"remotely-reload-the-guest-s-page-with-a-new-url": "Berriz kargatu gonbidatuaren orria URL berriarekin",
|
||||
"change-user-parameters": "Aldatu erabiltzailearen ezaugarriak",
|
||||
"start-recording-this-remote-stream-to-this-local-drive-experimental-": "Hasi urruneko zuzenekoa grabatzen fitxategi lokalera. *probetan*'",
|
||||
"the-remote-guest-will-record-their-local-stream-to-their-local-drive-experimental-": "Gonbidatuak zuzenekoa grabatuko du bere fitxategi lokalean. *probetan*",
|
||||
"remotely-change-the-volume-of-this-guest": "Aldatu gonbiatu honen bolumena urruneko kontrolaz",
|
||||
"disable-video-preview": "Itzali bideo aurrebista",
|
||||
"low-quality-preview": "Kalitate baxuko aurrebista",
|
||||
"high-quality-preview": "Kalitate handiko aurrebista",
|
||||
"set-to-audio-channel-1": "Jarri 1.Audio kanalean",
|
||||
"set-to-audio-channel-2": "Jarri 2.Audio kanalean",
|
||||
"set-to-audio-channel-3": "Jarri 3.Audio kanalean",
|
||||
"set-to-audio-channel-4": "Jarri 4.Audio kanalean",
|
||||
"set-to-audio-channel-5": "Jarri 5.Audio kanalean",
|
||||
"set-to-audio-channel-6": "Jarri 6.Audio kanalean",
|
||||
"remote-audio-settings": "Urruneko audio ezaugarriak",
|
||||
"advanced-video-settings": "Bideo ezaugarri aurreratuak",
|
||||
"add-to-scene-2": "Gehitu 2.eszenara",
|
||||
"activate-or-reload-this-video-device-": "Bideo gailua aktibatu edo birkargatu.",
|
||||
"cannot-see-videos": "Ezin dira bideoak ikusi",
|
||||
"cannot-hear-others": "Besteak ezin dira entzun",
|
||||
"see-director-only": "Zuzendaria bakarrik ikusi",
|
||||
"show-mini-preview": "Aurrebista txikia ikusi",
|
||||
"raise-hand-button": "Eskua altsatzeko botoia",
|
||||
"show-labels": "Erakutsi etiketak",
|
||||
"transfer-to-a-new-room": "Aldatu gela berrira",
|
||||
"enable-custom-password": "Jarri pasahitz pertsonalizatua",
|
||||
"share-a-website-as-an-embedded-iframe": "Partekatu webgunea txertatutako iFRAME moduan",
|
||||
"room-settings": "Gelako ezaugarriak",
|
||||
"allow-for-remote-stat-monitoring-via-the-monitoring-tool": "Baimendu urruneko estatistika ikusketa monitorizazio tresna bidez",
|
||||
"videos-use-an-animated-transition-when-being-remixed": "Bideoek trantsizio animatuak erabiliko dituzte nahasterakoan",
|
||||
"show-some-prep-suggestions-to-the-guests-on-connect": "Gonbidatuak batzean erakutsi prestaketa iradokizun batzuk",
|
||||
"set-the-background-color-to-bright-green": "Bihurtu atzeko irudia kolore berde argira",
|
||||
"fade-videos-in-over-500ms": "Lausotu bideoak 500ms-tik gora",
|
||||
"add-a-10px-margin-around-all-video-elements": "Gehitu 10 pixeleko marjina bideo elementu guztien inguruan",
|
||||
"playback-the-video-with-mono-channel-audio": "Ikusi bideoa kanal mono audioarekin",
|
||||
"have-videos-be-aligned-with-sizing-designed-for-vertical-video": "Bideo bertikaletarako diseinatutako tamainarekin lerrokatu",
|
||||
"copy-this-stream-id-to-the-clipboard": "Kopiatu Stream ID-a arbelean",
|
||||
"this-will-ask-the-remote-guest-for-permission-to-change": "Honek urruneko gonbidatuari aldatzeko baimena eskatuko dio",
|
||||
"a-direct-solo-view-of-the-video-audio-stream-with-nothing-else-its-audio-can-be-remotely-controlled-from-here": "Bideo/audio streamaren bakarkako ikuspegi zuzena beste ezer gabe. Bertako audioa urrunetik kontrola daiteke",
|
||||
"this-guest-raised-their-hand-click-this-to-clear-notification-": "Gonbidatu honek eskua altxatu du. Egin klik hemen jakinarazpena garbitzeko.",
|
||||
"hide-this-window": "Ezkutatu leiho hau",
|
||||
"your-audio-and-video-settings": "Audio eta bideo ezaugarriak",
|
||||
"you-can-also-enable-the-director-s-video-output-afterwards-by-clicking-the-setting-s-button": "Zuzendariaren bideo irteera gaitu dezakezu ezarpenaren botoian klik eginez",
|
||||
"the-guest-will-be-asked-if-they-want-to-reload-the-previous-link-when-revisiting": "Gonbidatuari aurreko esteka berriro kargatu nahi duten galdetuko zaio berriz itzultzerakoan",
|
||||
"the-guest-s-self-video-preview-will-appear-tiny-in-the-top-right": "Gonbidatuaren kamera aurrebista txikia goian eskubi aldean ikusiko da",
|
||||
"have-the-videos-fit-their-respective-areas-even-if-it-means-cropping-a-bit": "Bideoak dagozkien eremura egokitu, nahiz eta apur bat moztea esan nahi duen",
|
||||
"click-here-to-edit-the-label-for-this-stream-changes-will-propagate-to-all-viewers-of-this-stream": "Hemen klik eginez streamaren izena aldatu. Aldaketak streameneko erabiltzaileei jakinaraziko zaizkie",
|
||||
"increase-this-at-your-peril-changes-the-total-inbound-video-bitrate-per-guest-mobile-devices-excluded-webp-mode-also-excluded-": "Aldatu hau zure baitan. Gonbidatu bakoitzeko sarrerako bideo bitrate osoa aldatzen du; gailu mugikorrak baztertuta. Webp modua ere baztertuta dago.",
|
||||
"cycle-the-cameras": "Txandakatu kamerak"
|
||||
},
|
||||
"innerHTML": {
|
||||
"copy-this-url": "Kopiatu URL hau OBS iturri bilatzailean",
|
||||
"you-are-in-the-control-center": "Gelaren kontrol zentrua:",
|
||||
"joining-room": "Gelan zaude",
|
||||
"add-group-chat": "Sortu gela",
|
||||
"rooms-allow-for": "Gelek txata eta gonbidatuak kudeatzeko tresnak eskaintzen dituzte.",
|
||||
"room-name": "Gelaren izena",
|
||||
"password-input-field": "Pasahitza",
|
||||
"guests-only-see-director": "Gonbidatuek zuzendariaren bideoa ikusi dezakete soilik",
|
||||
"scenes-can-see-director": "Zuzendariak ere parte hartuko du",
|
||||
"default-codec-select": "Hobetsitako audio-kodeka",
|
||||
"enter-the-rooms-control": "Sartu gelaren kontrol-panelera",
|
||||
"show-tips": "Erakutsi aholku batzuk..",
|
||||
"added-notes": "\n\t\t\t\t\t\t\t\t<u>\n\t\t\t\t\t\t\t\t\t<i>Aholku garrantzitsuak:</i><br><br>\n\t\t\t\t\t\t\t\t</u>\n\t\t\t\t\t\t\t\t<li>Parte-hartzaileen artean bideoa ez partekatzeak emanaldiaren kalitatea hobetzen du.</li>\n\t\t\t\t\t\t\t\t<li>Gonbidatu soilik ezagutzen dituzun pertsonak.</li>\n\t\t\t\t\t\t\t\t<li>\"Grabaketa\" aukera esperimentala da oraingoz.</li>",
|
||||
"back": "Atzera",
|
||||
"add-your-camera": "Gehitu kamera",
|
||||
"ask-for-permissions": "Baimendu sarbidea Kamera/Mikrofonoa",
|
||||
"waiting-for-camera": "Kamera kargatzeko zain",
|
||||
"video-source": " Bideo iturria ",
|
||||
"max-resolution": "Erresoluzio maximoa",
|
||||
"balanced": "Orekatua",
|
||||
"smooth-cool": "Goxo",
|
||||
"select-audio-source": " Audio iturriak ",
|
||||
"no-audio": "Audiorik EZ",
|
||||
"select-output-source": " Audio irteeraren helbidea: ",
|
||||
"select-digital-effect": " Bideo efektu digitalak: ",
|
||||
"no-effects-applied": "Efekturik ez gehitua",
|
||||
"blurred-background": "Atzealde lausotua",
|
||||
"digital-greenscreen": "Pantaila digital berdea",
|
||||
"virtual-background": "Atzealde birtuala",
|
||||
"add-a-password": "Ezarri Pasahitza:",
|
||||
"use-chrome-instead": "Chomiumen oinarritutako nabigatzaileak gomendatzen ditugu.<br>\n \t\t\t\t\t\tSafarik audio arazoak eman ditzake",
|
||||
"remote-screenshare-obs": "Partekatu pantaila",
|
||||
"select-screen-to-share": "AUKERATU PARTEKATZEKO PANTAILA",
|
||||
"audio-sources": "Audio Iturriak",
|
||||
"create-reusable-invite": "Sortu gonbidapen berrerabilgarria",
|
||||
"here-you-can-pre-generate": "Hemen gonbidapen helbideak aldez aurretik sortu ditzakezu.",
|
||||
"generate-invite-link": "GONBIDAPEN HELBIDEA SORTU",
|
||||
"advanced-paramaters": "Ezaugarri aurreratuak",
|
||||
"unlock-video-bitrate": "Desblokeatu bideoaren bitrate-a (20mbps)",
|
||||
"force-vp9-video-codec": "Behartu VP9 bideo-kodeka",
|
||||
"enable-stereo-and-pro": "Gaitu estereo eta pro HD audioa",
|
||||
"video-resolution": "Bideo erresoluzioa: ",
|
||||
"hide-mic-selection": "Behartu lehenetsitako mikrofonoa",
|
||||
"hide-screen-share": "Ezkutatu pantaila partekatzeko aukera",
|
||||
"allow-remote-control": "Kameraren zoomaren urruneko kontrola (android)",
|
||||
"obfuscate_url": "Itsutu gonbidapen helbidea",
|
||||
"add-a-password-to-stream": "Ezarri pasahitza:",
|
||||
"add-the-guest-to-a-room": " Gehitu gonbidatuak gela honetara:",
|
||||
"invite-group-chat-type": "Gela honetako gonbidatuak daukate:",
|
||||
"can-see-and-hear": "Taldearen txata ikusi eta entzun",
|
||||
"can-hear-only": "Taldeko txata entzun bakarrik",
|
||||
"cant-see-or-hear": "Ezin du Taldeko txata ikusi ezta entzun",
|
||||
"share-local-video-file": "Partekatu multimedia fitxategia",
|
||||
"select-the-video-files-to-share": "AUKERATU PARTEKATZEKO BIDEO FITXATEGIAK",
|
||||
"share-website-iframe": "Partekatu web orrialdea",
|
||||
"enter-the-website-URL-you-wish-to-share": "Sartu partekatzeko web orrialdearen helbidea.",
|
||||
"run-a-speed-test": "Neurtu konexio abiadura",
|
||||
"read-the-guides": "Irakurri gidak",
|
||||
"info-blob": "",
|
||||
"hide-the-links": " ESTEKA (GONBIDAPENAK & ESZENAK)",
|
||||
"click-for-quick-room-overview": "\n\t\t\t\t\t\t<i class=\"las la-question-circle\"></i> <span data-translate=\"click-here-for-help\">Hemen klik egin laburpen azkarra ikusteko eta laguntza izateko</span>\n\t\t\t\t\t",
|
||||
"click-here-for-help": "Hemen klik egin laburpen azkarra ikusteko eta laguntza izateko",
|
||||
"welcome-to-control-room": "\n\t\t\t\t\t\t<b>Ongi etorri. Hau da talde berriketarako zuzendariaren kontrol gela.</b><br><br>\n\t\t\t\t\t\tLagunekin talde berriketak egin ditzakezu gela bat erabiliz. Partekatu esteka urdina txatera automatikoki sartuko diren gonbidatuentzat.\n\t\t\t\t\t\t<br><br>\n\t\t\t\t\t\t<font style=\"color:red\">Talde gelek dituzten mugak:</font><br>\n\t\t\t\t\t\t<li>Talde gela batek 30 gonbidatu inguru har ditzake, faktore ugariren arabera, besteak beste, CPU eta gelako gonbidatu guztien banda zabalera kontuan hartuz. 7 lagun inguru baino gehiago elkartzeko, ziurrenik nahiago duzu <a href=\"https://www.youtube.com/watch?v=bpRa8-UYCGc\" title=\"Youtube Video demoing how to do this\">\ndesgaitu bideoen partekatzea gonbidatuen artean</a>. Using &broadcast, &roombitrate=0 or &bideoen aukerak dira hemen.</li>\n\t\t\t\t\t\t\n\t\t\t\t\t\t<li>Bideoak kalitate baxukoak izango dira nahita gonbidatuentzat eta zuzendarientzat; banda zabalera eta CPU baliabideak aurrezteko. Hala ere, kalitate handikoa izango da OBS barruan.</li>\n\t\t\t\t\t\t\n\t\t\t\t\t\t<li>Eszenen egoera, esaterako, eszena batean aktibo dauden bideoak galtzen dira zuzendariak kontrol gela edo eszena berrezartzen duenean.</li>\n\t\t\t\t\t\t<br>\n\t\t\t\t\t\tNota gehigarriak:<br><br>\n\t\t\t\t\t\t<li>Gonbidatutako bideo bakoitzaren ikustaldietarako estekak bideoen azpian ikusten dira kargatu ahala. Hauek OBS iturrien arakatzailean erabil daitezke.</li>\n\t\t\t\t\t\t<li>Nahasteko taldeko eszenak, esteka berdeak, erabil ditzakezu automatikoki antolatzeko bideoak OBSn.</li>\n\t\t\t\t\t\t<li>Kontrol gela hau bideo edo audio stream isolatuak grabatzeko erabil dezakezu, baina oraindik ezaugarri esperimentala da.</li>\n\t\t\t\t\t\t<li>Gonbidatu bat gela batetik bestera mugitzen baduzu, ez dute jakingo zein gelara aldatu diren.</li>\n\t\t\t\t\t\t<li>OBSk gonbidatuen bideoa kalitate handian ikusiko du; bideo bit tasa lehenetsia 2500 kbps da. Bit tasa altuagoak ezartzeak mugimendua hobetuko du.</li>\n\t\t\t\t\t\t<li>VP8 bideo kodek lehenetsia izan ohi da, baina erabiltzen duen &codec=vp9 or &codec=h264 OBS-en URLak hondatutako bideo-arazoak murrizten lagun dezake.</li>\n\t\t\t\t\t\t<li>&stereo=2 can be added to guests to turn off audio effects, such as echo cancellation and noise-reduction.</li>\n\t\t\t\t\t\t<li>https://invite.cam gonbidatuei emandako gonbidapen esteka baten URL parametroak ezkutatzen lagun dezakeen doako zerbitzua da.</li>\n\t\t\t\t\t\t<li>Adding &showonly=SOME_OBS_VIRTUALCAM gonbidatuentzako gonbidapen estekek bideo bakarra ikusteko aukera ematen die gonbidatuei; hau, adibidez, OBS Kamera Birtualaren irteera izan daiteke</li>\n\t\t\t\t\t\t<br>\n\t\t\t\t\t\t\n\t\t\t\t\t\tURL aukera eta parametro aurreratuetarako, <a href=\"https://docs.vdo.ninja/advanced-settings\">Wikian ikusi.</a>\n\t\t\t\t\t",
|
||||
"invite-users-to-join": "Gelara batzeko gonbidatuek esteka erabili dezakete",
|
||||
"guests-hear-others": "Gonbidatuak elkar entzun dezakete",
|
||||
"capture-a-group-scene": "ATZITU TALDE ESZENA",
|
||||
"this-is-obs-browser-source-link": "Erabili taldearen bideo nahasketa OBS edo beste Studio software batean",
|
||||
"auto-add-guests": "Gehitu gonbidatuak automatikoki",
|
||||
"pro-audio-mode": "Pro-Audio modua",
|
||||
"hide-audio-only-sources": "Ezkutatu audio iturriak soilik direnak",
|
||||
"ask-for-display-name": "Galdetu ikusiko den izenagatik",
|
||||
"show-display-names": "Erakutsi izenak",
|
||||
"show-active-speaker": "Erakutsi hizlari aktiboak",
|
||||
"auto-select-microphone": "Hautazko mikrofonoa automatikoki aukeratu",
|
||||
"auto-select-camera": "Aukeratu hautazko kamera automatikoki",
|
||||
"hide-setting-buttons": "Ezkutatu ezarpenen botoia",
|
||||
"mini-self-preview": "aurrebista propio txikia",
|
||||
"virtual-backgrounds": "Atzealde birtuala",
|
||||
"powerful-computers-only": "Erabili soilik ordenagailu indartsuekin eta talde txikiak!!",
|
||||
"guests-see-HD-video": "Gonbidatuak HD bideoa ikusgai",
|
||||
"no-self-preview": "Aurrebista propioa itzali",
|
||||
"raise-hand-button": "\"Eskua altxa\" botoia ikusarazi",
|
||||
"enable-compressor": "Gaitu audio konprimatzailea",
|
||||
"enable-equalizer": "Gaitu ekualizadore aukera",
|
||||
"low-cpu=broadcast-codec": "CPU gutxi behar duen emisio-kodeka",
|
||||
"only-see-director-feed": "Zuzendariaren iturria bakarrik ikusgai",
|
||||
"mute-microphone-by-default": "Isilduta; gonbidatuek piztu dezakete",
|
||||
"guest-joins-with-no-camera": "Gonbidatuak kamerarik gabe sartu daitezke",
|
||||
"unmute-by-director-only": "Isilduta; zuzendariak soilik piztu dezake",
|
||||
"obfuscate-link": "Itsutu esteka eta ezaugarriak",
|
||||
"this-can-reduce-packet-loss": "Honek bideoari dagokion informazio galera ekidin dezake",
|
||||
"use-h264-codec": "Erabili H264 kodeka",
|
||||
"show-active-speakers": "Erakutsi hizlari aktiboa",
|
||||
"force-mono-audio": "Behartu mono audioa",
|
||||
"learn-more-about-params": "URL parametroez gehiago ikasi hemen ",
|
||||
"more-than-four-can-join": "Lau gonbidatu hauen lekuak adibidea besterik ez dira. Lau gonbidatu baino gehiago batu daitezke.",
|
||||
"forward-to-room": "Bidali",
|
||||
"send-direct-chat": "<i class=\"las la-envelope\"></i> Mezua",
|
||||
"disconnect-guest": "Eskegi",
|
||||
"voice-chat": "<i class=\"las la-microphone\" style=\"color:#090\"></i> Bakarrik hitz egin",
|
||||
"add-to-scene": "Gehitu 1.eszenara",
|
||||
"mute-guest": "Mututu gonbidatua",
|
||||
"More-scene-options": "Eszena aukera gehiago",
|
||||
"mute-scene": "Eszena mututu",
|
||||
"force-keyframe": "Ostadarra konpondu",
|
||||
"stats-remote": " Eszena baloreak",
|
||||
"additional-controls": "Kontrol gehigarriak",
|
||||
"solo-video": "Nabarmendu gonbidatua",
|
||||
"hide-guest": "Ezkutatu gonbidatua ",
|
||||
"toggle-remote-speaker": "Gonbidatua mututu",
|
||||
"toggle-remote-display": "Gonbidatua itsutu",
|
||||
"order-down": "<i class=\"las la-minus\"></i>",
|
||||
"order-up": "<i class=\"las la-plus\"></i>",
|
||||
"change-url": "Aldatu URL-a",
|
||||
"change-params": "URL parametroak",
|
||||
"record-local": " Grabazioa lokala",
|
||||
"record-remote": " Urruneko grabazioa",
|
||||
"change-to-low-quality": " <i class=\"las la-video-slash\"></i>",
|
||||
"change-to-medium-quality": " <i class=\"las la-video\"></i>",
|
||||
"change-to-high-quality": " <i class=\"las la-binoculars\"></i>",
|
||||
"advanced-audio-settings": "<i class=\"las la-sliders-h\"></i> Audio ezaugarriak",
|
||||
"advanced-camera-settings": "<i class=\"las la-sliders-h\"></i> Bideo ezaugarriak",
|
||||
"select-local-image": "Aukeratu irudi lokala",
|
||||
"close-settings": "Itxi ezarpenak",
|
||||
"advanced": "Aurreratua ",
|
||||
"open-in-new-tab": "Ireki fitxa berrian",
|
||||
"copy-to-clipboard": "Kopiatu arbelean",
|
||||
"send-chat": "Bidali",
|
||||
"apply-new-guest-settings": "Ezaugarriak ezarri",
|
||||
"cancel": "Ezeztatu",
|
||||
"invisible-guests": "Ikusezin",
|
||||
"available-languages": "Hizkuntza erabilgarriak:",
|
||||
"add-more-here": "Gehitu gehiago hemen!",
|
||||
"add-to-calendar": "Gehitu xehetasunak egutegian:",
|
||||
"add-to-google-calendar": "Gehitu Google egutegian",
|
||||
"add-to-outlook-calendar": "Gehitu Outlook egutegian",
|
||||
"add-to-yahoo-calendar": "Gehitu Yahoo egutegian",
|
||||
"push-to-talk-enable": " Gaitu zuzendariaren mikrofonoa edo bideoa<br>(gonbidatuek soilik ikusi dezakete hau)",
|
||||
"remote-monitoring": "Urruneko monitorizazioa",
|
||||
"fade-videos-in": "Lausotu bideoak",
|
||||
"show-guest-tips": "Erakutsi gonbidatuei konfigurazio aholkuak",
|
||||
"green-background": "Atzealde berdea",
|
||||
"add-margin": "Jarri marjinak bideoei",
|
||||
"fill-video-space": "Moztu bideoa egokitzeko",
|
||||
"vertical-aspect-ratio": "Bideo bertikal modua",
|
||||
"add-to-scene2": "Gehitu 2.eszenara",
|
||||
"user-raised-hand": "Jaitsi eskua",
|
||||
"unmute": "piztu",
|
||||
"unhide-guest": "azaldu",
|
||||
"undeafen": "entzun",
|
||||
"unblind": "ikusarazi",
|
||||
"close": "itxi",
|
||||
"send-message": "bidali mezua<s pan=\"\"> </s>",
|
||||
"record-director-local": " Grabazioa",
|
||||
"director-muted-you": "Zuzendariak isildu zaitu.",
|
||||
"mirror-video": "Ispilua",
|
||||
"request-upload": " Eskatu fitxategia",
|
||||
"edit-url": "Aldatu URLa",
|
||||
"dog-face": "Txakur belarriak eta sudurra",
|
||||
"compatibility-mode": "Bateragarritasun modua",
|
||||
"disable-animated-mixing": "Desaktibatu animazioak",
|
||||
"create-timer": "Sortu tenporizadorea",
|
||||
"toggle-control-video": "Ezkutatu edo erakutsi kontrol barra",
|
||||
"invite-saved-to-cookie": "Gonbidapena cookie batean gorde da",
|
||||
"logo-header": "\n\t\t\t\t\t<font id=\"qos\">V</font>DO.Ninja \n\t\t\t\t",
|
||||
"only-director-can-hear-you": "Momentu honetan zuzendariak bakarrik entzun zaitzake.",
|
||||
"privacy-disabled": "Pribatutasun oharra: jarraitzen baduzu, zuzendariak zure kamara eta mikrofonoa urrunetik kontrolatu ahalko ditu."
|
||||
},
|
||||
"placeholders": {
|
||||
"join-by-room-name-here": "Sartu gela izena batzeko",
|
||||
"enter-a-room-name-here": "gelaren izena",
|
||||
"optional-room-password-here": "gelaren hautazko pasahitza",
|
||||
"optional": "Hautazkoa",
|
||||
"give-this-media-source-a-name-optional-": "media iturriaren izena (hautazkoa)",
|
||||
"add-an-optional-password": "aukerazko pasahitza",
|
||||
"enter-room-name-here": "gelaren izena",
|
||||
"enter-chat-message-to-send-here": "Bidali nahi den mezua hemen sartu",
|
||||
"enter-the-room-name-here": "gelaren izena",
|
||||
"enter-the-room-password-here": "Gelaren pasahitza",
|
||||
"enter-your-message-here": "Idatzi hemen mezua"
|
||||
},
|
||||
"miscellaneous": {
|
||||
"new-display-name": "Izen berria jarri stream honi",
|
||||
"submit-error-report": "Sakatu OK VDO.Ninja-ra akatsen erregistroak bidaltzeko. Akatsen erregistroek informazio pribatua izan ditzakete.",
|
||||
"director-redirect-2": "\n\nSakatu OK bideratua izateko.",
|
||||
"add-a-label": "Gehitu etiketa",
|
||||
"audio-processing-disabled": "Gonbidatu honekin audio prozesatzea kenduta dago. Ezin da isildu edo bolumena aldatu",
|
||||
"not-the-director": "<font color='red'>Ez zara gela honetako zuzendaria. Kontrolik gabe egongo zara. Zuzendariak alde egitean, gela erreklamatzen saia zaitezke.</font>",
|
||||
"streamid-already-published": "Argitaratzen ari zaren stream IDa dagoeneko erabiltzen ari dira.\n\nSaiatu beste gonbidapen esteka batekin edo berritu berriro saiatzeko.\n\nDeskonektatuta izango zara.",
|
||||
"director": "Zuzendaria",
|
||||
"unknown-user": "Erabiltzaile ezezaguna",
|
||||
"room-test-not-good": "\"Test\" gelaren izena oso erabilia da eta agian ez da segurua.\n\nZiur zaude jarraitu nahi duzula?",
|
||||
"load-previous-session": "Aurreko saioaren ezarpenak berrerabili nahi dituzu?",
|
||||
"enter-password-2": "Mesedez, sartu pasahitza behean: \n\n(Oharra: pasahitzak maiuskulak eta minuskulak bereizten dituzte.)",
|
||||
"password-incorrect": "Pasahitza okerra zen.\n\nSaiatu berriro.",
|
||||
"enter-display-name": "Mesedez, sartu zure bistaratzeko izena:",
|
||||
"enter-new-display-name": "Idatzi stream honetan bistaratzeko izen berria",
|
||||
"what-bitrate": "Zein bit tasatan grabatu nahi zenuke? (kbps)",
|
||||
"enter-website": "Sartu webgunearen URLa partekatzeko",
|
||||
"no-streamID-provided": "Ez da stream IDrik eman; ausazko bat sortuko da.\n\nStream ID: ",
|
||||
"alphanumeric-only": "Informazioa: zenbakiak eta letrak soilik erabili behar dira stream IDan.\n\nKaraktere iraingarriak azpimarra batez ordezkatu dira",
|
||||
"stream-id-too-long": "Stream IDak 45 karaktere alfanumeriko baino gutxiago izan behar ditu.\n\nLuzera egokituko da.",
|
||||
"share-with-trusted": "Partekatu konfiantzazkoekin soilik",
|
||||
"pass-recommended": "Pasahitza jartzea gomendatzen da",
|
||||
"insecure-room-name": "Gelaren izena ez da segurua.",
|
||||
"allowed-chars": "Onartutako karaktereak",
|
||||
"transfer": "mugitu",
|
||||
"armed": "armatua",
|
||||
"transfer-guest-to-url": "Bidali gonbidatuak beste helbide batera.\n\n(Gonbidatuek onartu beharko dute)",
|
||||
"change-url": "aldatu esteka",
|
||||
"mute-in-scene": "Isiltasuna eszenan",
|
||||
"unmute-guest": "Gonbidatua entzungai",
|
||||
"undeafen": "entzun",
|
||||
"deafen": "Mututu gonbidatua",
|
||||
"unblind": "ikusarazi",
|
||||
"unmute": "piztu",
|
||||
"mute-guest": "Mututu gonbidatua",
|
||||
"blind": "Itsutu gonbidatua",
|
||||
"unhide": "gonbidatua azaldu",
|
||||
"confirm-disconnect-users": "Ziur zaude erabiltzaile horiek deskonektatu nahi dituzula?",
|
||||
"hide-guest": "ezkutatu gonbidatua",
|
||||
"director-redirect-1": "Zuzendariak URL honetara bideratu nahi zaitu: ",
|
||||
"room-is-claimed": "Gelara sartu den lehenengo pertsona da zuzendaria.\n\nEskatu irteteko eta berritu orrialdea",
|
||||
"enter-password": "Mesedez, sartu pasahitza behean: \n\n(Oharra: pasahitzek letra larriak eta xeheak bereizten dituzte eta ez zaizu ohartaraziko zuzena ez denean.)",
|
||||
"press-ok-to-record": "Sakatu OK grabatzen hasteko. Sakatu berriro gelditzeko eta deskargatzeko.\n\nAbisua: mantendu aktibo arakatzailearen fitxa grabatzen jarraitzeko.\n\nNahi izanez gero, bideoaren bit tasa lehenetsia alda dezakezu behean (kbps)",
|
||||
"transfer-guest-to-room": "Bidali gonbidatuak gelara:\n\n(Kontuan izan gelek pasahitz bera partekatu behar dutela)",
|
||||
"confirm-disconnect-user": "Ziur zaude erabiltzaile hau deskonektatu nahi duzula?",
|
||||
"start": "HASI",
|
||||
"enter-director-password": "Sartu zuzendariaren pasahitza:\n\n(Oharra: Pasahitzek letra xehe eta larriak desberdintzen dituzte, eta gaizki sartuz gero ez zaizu ohartaraziko.)"
|
||||
}
|
||||
}
|
||||
"titles": {
|
||||
"join-by-room-name-here": "Hasteko gelari izena jarri",
|
||||
"join-room": "Batu gelara",
|
||||
"load-the-next-guest-in-queue": "Batu hurrengo gonbidatua",
|
||||
"toggle-the-chat": "Aldatu txata",
|
||||
"mute-the-speaker": "Isildu hizlaria",
|
||||
"mute-the-mic": "Isildu mikrofonoa",
|
||||
"disable-the-camera": "Itzali kamera",
|
||||
"share-a-screen-with-others": "Elkarbanatu pantaila besteekin",
|
||||
"create-a-secondary-stream": "Sortu bigarren Stream-a",
|
||||
"settings": "Ezaugarriak",
|
||||
"hangup-the-call": "Moztu deia",
|
||||
"alert-the-host-you-want-to-speak": "Jakinarazi zuzendariari hitz egin nahi duzula.",
|
||||
"record-your-stream-to-disk": "Diskoan irarri Stream-a",
|
||||
"cancel-the-director-s-video-audio": "Zuzendariaren bideoa/audioa itzali",
|
||||
"submit-any-error-logs": "Bidali edozein akats erregistro",
|
||||
"show-help-info": "Laguntza informazioa",
|
||||
"language-options": "Hizkuntza aukerak",
|
||||
"add-to-calendar": "Gehitu egutegira",
|
||||
"add-group-chat-to-obs": "Gehitu talde txata",
|
||||
"for-large-group-rooms-this-option-can-reduce-the-load-on-remote-guests-substantially": "Parte hartzaile asko daudean bezeroen karga gutxitu dezake",
|
||||
"the-director-will-be-visible-in-scenes-as-if-a-performer-themselves-": "Zuzendaria ikusgai egongo da eszenetan, antzeztuko baluke bezala.",
|
||||
"useful-if-you-want-to-perform-and-direct-at-the-same-time": "Gaitu zuzendariak ere parte hartuko badu",
|
||||
"which-video-codec-would-you-want-used-by-default-": "Zein bideo-kodek lehenetsi nahi duzu?",
|
||||
"you-ll-enter-as-the-room-s-director": "Gelako zuzendari bezala sartuko zara",
|
||||
"add-your-camera-to-obs": "Gehitu kamera",
|
||||
"start-streaming": "Hasi zuzenekoa",
|
||||
"tip-hold-ctrl-command-to-select-multiple": "aholkua: sakatu CTRL (edo CMD) hainbat aukeratzeko",
|
||||
"improve-performance-and-quality-with-this-tip": "Errendimendua eta kalitatea hobetzeko aholkua",
|
||||
"remote-screenshare-into-obs": "Partekatu pantaila",
|
||||
"create-reusable-invite": "Sortu gonbidapen berrerabilgarria",
|
||||
"ideal-for-1080p60-gaming-if-your-computer-and-upload-are-up-for-it": "1080p60 kalitatean jokatzeko prestatua, zure ordenagailuak eta konexioak onartzen badute",
|
||||
"better-video-compression-and-quality-at-the-cost-of-increased-cpu-encoding-load": "Bideo konpresio eta kalitate hobea, nahiz eta CPU-aren lan karga handitu",
|
||||
"disable-digital-audio-effects-and-increase-audio-bitrate": "Audioaren bitratea handitu eta soinu digitalen efektuak desgaitu",
|
||||
"the-guest-will-not-have-a-choice-over-audio-options": "Gonbidatuak ezingo du audio ezaugarririk hautatu",
|
||||
"the-guest-will-only-be-able-to-select-their-webcam-as-an-option": "Gonbidatuak bere kameraren ezaugarriak soilik hautatu ditzake",
|
||||
"hold-ctrl-and-the-mouse-wheel-to-zoom-in-and-out-remotely-of-compatible-video-streams": "CTRL eta saguaren gurpila mantenduz zoom egin bideoetan",
|
||||
"encode-the-url-so-that-it-s-harder-for-a-guest-to-modify-the-settings-": "URL-a kodetu gonbidatuak ezaugarriak aldatzea zailtzeko.",
|
||||
"add-a-password-to-make-the-stream-inaccessible-to-those-without-the-password": "Pasahitza dutenak bakarrik sartu ahalko dira zuzenekora.",
|
||||
"add-the-guest-to-a-group-chat-room-it-will-be-created-automatically-if-needed-": "Gonbidatua talde batera gehitu; automatikoki sortuko da beharrezkoa bada.",
|
||||
"customize-the-room-settings-for-this-guest": "Gelaren ezaugarriak kudeatu gonbidatuarentzat",
|
||||
"more-options": "Aukera gehiago",
|
||||
"hold-ctrl-or-cmd-to-select-multiple-files": "Sakatu CTRL (edo CMD) hainbat aukeratzeko",
|
||||
"enter-an-https-url": "Sartu HTTPS helbidea",
|
||||
"creative-commons-by-3-0": "Creative Commons BY 3.0",
|
||||
"youtube-video-demoing-how-to-do-this": "Hau nola egiten den jakiteko Youtubeko bideoa",
|
||||
"invite-a-guest-or-camera-source-to-publish-into-the-group-room": "Gehitu taldeko gelara gonbidatu kamara edo kamera iturri berria",
|
||||
"if-disabled-the-invited-guest-will-not-be-able-to-see-or-hear-anyone-in-the-room-": "Desgaitu ezkero, gonbidatuak ezingo du gelan audio edo bideorik ikusi.",
|
||||
"use-this-link-in-the-obs-browser-source-to-capture-the-video-or-audio": "Erabili esteka hau audio edo bideoa jasotzeko OBS iturri bilatzailean",
|
||||
"if-disabled-you-must-manually-add-a-video-to-a-scene-for-it-to-appear-": "Desgaitu ezkero, eskuz gehitu beharko duzu eszenara bideoa ikusteko.",
|
||||
"disables-echo-cancellation-and-improves-audio-quality": "Itzali oihartzun ezeztapena eta hobetu audioaren kalitatea",
|
||||
"audio-only-sources-are-visually-hidden-from-scenes": "Audio sarrerak ikusezin daude eszenetan",
|
||||
"guest-will-be-prompted-to-enter-a-display-name": "Erabiltzaile izena jartzeko eskatuko zaio gonbidatuari",
|
||||
"display-names-will-be-shown-in-the-bottom-left-corner-of-videos": "Erabiltzaile izenak bideoen beheko ezker aldean azalduko dira",
|
||||
"guests-not-actively-speaking-will-be-hidden": "Aktiboki hitz egiten ez duten gonbidatuak ezkutatuak izango dira",
|
||||
"request-1080p60-from-the-guest-instead-of-720p60-if-possible": "Ahal denean, gonbidatuari eskatu 1080p60 720p60 ordez",
|
||||
"the-default-microphone-will-be-pre-selected-for-the-guest": "Gonbidatuari hautazko mikrofonoa aurrezarriko zaio",
|
||||
"the-default-camera-device-will-selected-automatically": "Lehenetsitako kamera automatikoki aukeratuko da",
|
||||
"the-guest-won-t-have-access-to-changing-camera-settings-or-screenshare": "Gonbidatuak ezin du kamera edo pantaila partekatzeko ezaugarrietara sartu",
|
||||
"allow-the-guests-to-pick-a-virtual-backscreen-effect": "Baimendu gonbidatuari atzeko irudi efektu birtuala hautatzea",
|
||||
"increase-video-quality-that-guests-in-room-see-": "Gelako bideo kalitatea hobetu gonbidatuentzat.",
|
||||
"the-guest-will-not-see-their-own-self-preview-after-joining": "Gonbidatuak gelara sartzean ezingo dute beraien aurrebista ikusi",
|
||||
"guests-will-have-an-option-to-poke-the-director-by-pressing-a-button": "Gonbidatuak zuzendaria mugitzeko aukera dute botoia sakatuz",
|
||||
"add-an-audio-compressor-to-the-guest-s-microphone": "Audio konprimitzailea gehitu gonbidatuaren mikrofonoari",
|
||||
"add-an-equalizer-to-the-guest-s-microphone-that-the-director-can-control": "Zuzendariak kontrolatu dezaken ekualizatzilea gehitu gonbidatuaren mikrofonoari",
|
||||
"this-low-fi-video-codec-uses-very-little-cpu-even-with-dozens-of-active-viewers-": "Erantzun baxuko bideo codek honek CPU gutxi darabil, nahiz eta dozenaka erabiltzaile aktibo izan.",
|
||||
"the-guest-can-only-see-the-director-s-video-if-provided": "Gonbidatuek zuzendariaren bideoa bakarrik ikusi dezakete (beti ere partekatzen ari bada)",
|
||||
"the-guest-s-microphone-will-be-muted-on-joining-they-can-unmute-themselves-": "Gonbidatuen mikrofonoak mututa hasiko dira gelara batutakoan. Gonbidatuek piztu ditzateke.",
|
||||
"the-guest-will-not-be-asked-for-a-video-device-on-connection": "Gonbidatuari ez zaio kamera eskatuko konektatzerakoan",
|
||||
"have-the-guest-join-muted-so-only-the-director-can-unmute-the-guest-": "Gonbidatua batzerakoan mututa hasiko da, zuzendariak baimendu arte",
|
||||
"make-the-invite-url-encoded-so-parameters-are-harder-to-tinker-with-by-guests": "Gonbidapen esteka kodetu, ezaugarriak aldatzeko zailtasunak izan ditzaten",
|
||||
"the-active-speakers-are-made-visible-automatically": "Hizlari aktiboak automatiko ikusgarri izango dira",
|
||||
"move-the-user-to-another-room-controlled-by-another-director": "Mugitu erabiltzailea beste gela batera, beste zuzendari baten gidaritzapean",
|
||||
"send-a-direct-message-to-this-user-": "Bidali mezu zuzena erabiltzaile honi.",
|
||||
"force-the-user-to-disconnect-they-can-always-reconnect-": "Kaleratu erabiltzailea. Berriz battzeko aukera dauka.",
|
||||
"toggle-solo-voice-chat": "Txandakatu bakarkako txata",
|
||||
"add-this-video-to-any-remote-scene-1-": "Gehitu bideo hau urruneko '&scene=1'-ri",
|
||||
"mute-this-guest-everywhere": "Isildu erabiltzaile hau leku guztietan",
|
||||
"add-this-video-to-any-remote-scene-2-": "Gehitu bideo hau urruneko '&scene=2'-ri",
|
||||
"remotely-mute-this-audio-in-all-remote-scene-views": "Isildu audio hau urruneko '&scene' tan",
|
||||
"add-to-scene-3": "Gehito 3.eszenara",
|
||||
"add-to-scene-4": "Gehitu 4.eszenara",
|
||||
"add-to-scene-5": "Gehitu 5.eszenara",
|
||||
"add-to-scene-6": "Gehitu 6.eszenara",
|
||||
"add-to-scene-7": "Gehitu 7.eszenara",
|
||||
"add-to-scene-8": "Gehitu 8.eszenara",
|
||||
"force-the-remote-sender-to-issue-a-keyframe-to-all-scenes-fixing-pixel-smearing-issues-": "Eszenarako Keyframe-a bidaltzera behartu, pixel galera konpontzeko.",
|
||||
"request-the-statistics-of-this-video-in-any-active-scene": "Azaldu bideo honen estatistikak eszena aktiboetan",
|
||||
"solo-this-video-everywhere": "Bideo hau bakarrik leku guztietan",
|
||||
"hide-this-guest-everywhere": "Gonbidatua ezkutatu leku guztietan",
|
||||
"toggle-the-remote-guest-s-speaker-output": "Txandakatu gonbidatuaren urruneko audio irteera",
|
||||
"toggle-the-remote-guest-s-display-output": "Txandakatu gonbidatuaren urruneko pantila",
|
||||
"shift-this-video-down-in-order": "Mugitu beherantz bideoa ordenean",
|
||||
"current-index-order-of-this-video": "Momentuko bideoaren ordena",
|
||||
"shift-this-video-up-in-order": "Mugitu gorantz bideoa ordenean",
|
||||
"remotely-reload-the-guest-s-page-with-a-new-url": "Berriz kargatu gonbidatuaren orria URL berriarekin",
|
||||
"change-user-parameters": "Aldatu erabiltzailearen ezaugarriak",
|
||||
"start-recording-this-remote-stream-to-this-local-drive-experimental-": "Hasi urruneko zuzenekoa grabatzen fitxategi lokalera. *probetan*'",
|
||||
"the-remote-guest-will-record-their-local-stream-to-their-local-drive-experimental-": "Gonbidatuak zuzenekoa grabatuko du bere fitxategi lokalean. *probetan*",
|
||||
"remotely-change-the-volume-of-this-guest": "Aldatu gonbiatu honen bolumena urruneko kontrolaz",
|
||||
"disable-video-preview": "Itzali bideo aurrebista",
|
||||
"low-quality-preview": "Kalitate baxuko aurrebista",
|
||||
"high-quality-preview": "Kalitate handiko aurrebista",
|
||||
"set-to-audio-channel-1": "Jarri 1.Audio kanalean",
|
||||
"set-to-audio-channel-2": "Jarri 2.Audio kanalean",
|
||||
"set-to-audio-channel-3": "Jarri 3.Audio kanalean",
|
||||
"set-to-audio-channel-4": "Jarri 4.Audio kanalean",
|
||||
"set-to-audio-channel-5": "Jarri 5.Audio kanalean",
|
||||
"set-to-audio-channel-6": "Jarri 6.Audio kanalean",
|
||||
"remote-audio-settings": "Urruneko audio ezaugarriak",
|
||||
"advanced-video-settings": "Bideo ezaugarri aurreratuak",
|
||||
"add-to-scene-2": "Gehitu 2.eszenara",
|
||||
"activate-or-reload-this-video-device-": "Bideo gailua aktibatu edo birkargatu.",
|
||||
"cannot-see-videos": "Ezin dira bideoak ikusi",
|
||||
"cannot-hear-others": "Besteak ezin dira entzun",
|
||||
"see-director-only": "Zuzendaria bakarrik ikusi",
|
||||
"show-mini-preview": "Aurrebista txikia ikusi",
|
||||
"raise-hand-button": "Eskua altsatzeko botoia",
|
||||
"show-labels": "Erakutsi etiketak",
|
||||
"transfer-to-a-new-room": "Aldatu gela berrira",
|
||||
"enable-custom-password": "Jarri pasahitz pertsonalizatua",
|
||||
"share-a-website-as-an-embedded-iframe": "Partekatu webgunea txertatutako iFRAME moduan",
|
||||
"room-settings": "Gelako ezaugarriak",
|
||||
"allow-for-remote-stat-monitoring-via-the-monitoring-tool": "Baimendu urruneko estatistika ikusketa monitorizazio tresna bidez",
|
||||
"videos-use-an-animated-transition-when-being-remixed": "Bideoek trantsizio animatuak erabiliko dituzte nahasterakoan",
|
||||
"show-some-prep-suggestions-to-the-guests-on-connect": "Gonbidatuak batzean erakutsi prestaketa iradokizun batzuk",
|
||||
"set-the-background-color-to-bright-green": "Bihurtu atzeko irudia kolore berde argira",
|
||||
"fade-videos-in-over-500ms": "Lausotu bideoak 500ms-tik gora",
|
||||
"add-a-10px-margin-around-all-video-elements": "Gehitu 10 pixeleko marjina bideo elementu guztien inguruan",
|
||||
"playback-the-video-with-mono-channel-audio": "Ikusi bideoa kanal mono audioarekin",
|
||||
"have-videos-be-aligned-with-sizing-designed-for-vertical-video": "Bideo bertikaletarako diseinatutako tamainarekin lerrokatu",
|
||||
"copy-this-stream-id-to-the-clipboard": "Kopiatu Stream ID-a arbelean",
|
||||
"this-will-ask-the-remote-guest-for-permission-to-change": "Honek urruneko gonbidatuari aldatzeko baimena eskatuko dio",
|
||||
"a-direct-solo-view-of-the-video-audio-stream-with-nothing-else-its-audio-can-be-remotely-controlled-from-here": "Bideo/audio streamaren bakarkako ikuspegi zuzena beste ezer gabe. Bertako audioa urrunetik kontrola daiteke",
|
||||
"this-guest-raised-their-hand-click-this-to-clear-notification-": "Gonbidatu honek eskua altxatu du. Egin klik hemen jakinarazpena garbitzeko.",
|
||||
"hide-this-window": "Ezkutatu leiho hau",
|
||||
"your-audio-and-video-settings": "Audio eta bideo ezaugarriak",
|
||||
"you-can-also-enable-the-director-s-video-output-afterwards-by-clicking-the-setting-s-button": "Zuzendariaren bideo irteera gaitu dezakezu ezarpenaren botoian klik eginez",
|
||||
"the-guest-will-be-asked-if-they-want-to-reload-the-previous-link-when-revisiting": "Gonbidatuari aurreko esteka berriro kargatu nahi duten galdetuko zaio berriz itzultzerakoan",
|
||||
"the-guest-s-self-video-preview-will-appear-tiny-in-the-top-right": "Gonbidatuaren kamera aurrebista txikia goian eskubi aldean ikusiko da",
|
||||
"have-the-videos-fit-their-respective-areas-even-if-it-means-cropping-a-bit": "Bideoak dagozkien eremura egokitu, nahiz eta apur bat moztea esan nahi duen",
|
||||
"click-here-to-edit-the-label-for-this-stream-changes-will-propagate-to-all-viewers-of-this-stream": "Hemen klik eginez streamaren izena aldatu. Aldaketak streameneko erabiltzaileei jakinaraziko zaizkie",
|
||||
"increase-this-at-your-peril-changes-the-total-inbound-video-bitrate-per-guest-mobile-devices-excluded-webp-mode-also-excluded-": "Aldatu hau zure baitan. Gonbidatu bakoitzeko sarrerako bideo bitrate osoa aldatzen du; gailu mugikorrak baztertuta. Webp modua ere baztertuta dago.",
|
||||
"cycle-the-cameras": "Txandakatu kamerak",
|
||||
"will-remember-the-room-prompting-you-the-next-time-you-visit-if-you-wish-to-load-this-director-s-room-again": "Will remember the room, prompting you the next time you visit if you wish to load this director's room again",
|
||||
"transfer-any-file-to-the-group": "Transfer any file to the group",
|
||||
"create-a-third-stream": "Create a Third Stream",
|
||||
"share-a-website-with-your-guests-iframe-": "Share a website with your guests (IFRAME)",
|
||||
"hold-ctrl-or-cmd-and-click-to-spotlight-this-video": "Hold CTRL (or CMD) and click to spotlight this video",
|
||||
"add-group-chat": "Add Group Chat",
|
||||
"if-checked-the-director-can-be-added-to-scenes-as-if-a-guest-otherwise-the-director-will-never-appear-in-a-scene-": "If checked, the director can be added to scenes as if a guest. Otherwise, the director will never appear in a scene.",
|
||||
"add-your-camera": "Add your Camera",
|
||||
"experimental": "experimental",
|
||||
"adjust-the-amount-of-effect-applied": "Adjust the amount of effect applied",
|
||||
"remote-screenshare": "Remote Screenshare",
|
||||
"the-guest-will-be-able-to-select-digital-video-effects-to-apply-": "The guest will be able to select digital video effects to apply.",
|
||||
"transfer-any-file": "Transfer any file",
|
||||
"use-this-link-as-a-browser-source-to-capture-the-video-or-audio": "Use this link as a Browser Source to capture the video or audio",
|
||||
"show-a-custom-welcome-message-to-the-joining-guest-of-this-invite-link": "Show a custom welcome message to the joining guest of this invite link",
|
||||
"the-camera-will-load-in-a-default-safe-mode-that-may-work-if-other-modes-fail-": "The camera will load in a default safe-mode that may work if other modes fail.",
|
||||
"disable-animated-transitions-during-video-mixing": "Disable animated transitions during video mixing",
|
||||
"have-screen-shares-stream-id-s-use-a-predictable-prefixed-value-instead-of-a-random-one-": "Have screen-shares stream ID's use a predictable prefixed value instead of a random one.",
|
||||
"toggle-solo-voice-chat-or-hold-ctrl-cmd-when-selecting-to-make-it-two-way-private-": "Toggle solo voice chat or hold CTRL/CMD when selecting to make it two-way private.",
|
||||
"allow-the-guest-to-select-a-file-to-upload-to-the-director-once-shared-it-will-show-in-the-chat-as-a-download-link-": "Allow the guest to select a file to upload to the director. Once shared, it will show in the chat as a download link.",
|
||||
"set-a-countdown-timer-that-this-guest-sees": "Set a countdown timer that this guest sees",
|
||||
"add-remove-from-group-1": "Add/remove from group 1",
|
||||
"add-remove-from-group-2": "Add/remove from group 2",
|
||||
"add-remove-from-group-3": "Add/remove from group 3",
|
||||
"add-remove-from-group-4": "Add/remove from group 4",
|
||||
"add-remove-from-group-5": "Add/remove from group 5",
|
||||
"add-remove-from-group-6": "Add/remove from group 6",
|
||||
"the-solo-view-link-of-the-director-s-video-": "The solo view link of the Director's video.",
|
||||
"only-the-director-s-video-will-be-visible-to-guests-and-within-group-scenes": "Only the director's video will be visible to guests and within group scenes",
|
||||
"allow-for-remote-co-directors": "Allow for remote co-directors",
|
||||
"enter-a-room-name-to-quick-join": "Enter a room name to quick join",
|
||||
"jump-to-the-documentation": "Jump to the documentation"
|
||||
},
|
||||
"innerHTML": {
|
||||
"copy-this-url": "Kopiatu URL hau OBS iturri bilatzailean",
|
||||
"you-are-in-the-control-center": "Gelaren kontrol zentrua:",
|
||||
"joining-room": "Gelan zaude",
|
||||
"add-group-chat": "Sortu gela",
|
||||
"rooms-allow-for": "Gelek txata eta gonbidatuak kudeatzeko tresnak eskaintzen dituzte.",
|
||||
"room-name": "Gelaren izena",
|
||||
"password-input-field": "Pasahitza",
|
||||
"guests-only-see-director": "Gonbidatuek zuzendariaren bideoa ikusi dezakete soilik",
|
||||
"scenes-can-see-director": "Zuzendariak ere parte hartuko du",
|
||||
"default-codec-select": "Hobetsitako audio-kodeka",
|
||||
"enter-the-rooms-control": "Sartu gelaren kontrol-panelera",
|
||||
"show-tips": "Erakutsi aholku batzuk..",
|
||||
"added-notes": "\n\t\t\t\t\t\t\t\t<u>\n\t\t\t\t\t\t\t\t\t<i>Aholku garrantzitsuak:</i><br><br>\n\t\t\t\t\t\t\t\t</u>\n\t\t\t\t\t\t\t\t<li>Parte-hartzaileen artean bideoa ez partekatzeak emanaldiaren kalitatea hobetzen du.</li>\n\t\t\t\t\t\t\t\t<li>Gonbidatu soilik ezagutzen dituzun pertsonak.</li>\n\t\t\t\t\t\t\t\t<li>\"Grabaketa\" aukera esperimentala da oraingoz.</li>",
|
||||
"back": "Atzera",
|
||||
"add-your-camera": "Gehitu kamera",
|
||||
"ask-for-permissions": "Baimendu sarbidea Kamera/Mikrofonoa",
|
||||
"waiting-for-camera": "Kamera kargatzeko zain",
|
||||
"video-source": " Bideo iturria ",
|
||||
"max-resolution": "Erresoluzio maximoa",
|
||||
"balanced": "Orekatua",
|
||||
"smooth-cool": "Goxo",
|
||||
"select-audio-source": " Audio iturriak ",
|
||||
"no-audio": "Audiorik EZ",
|
||||
"select-output-source": " Audio irteeraren helbidea: ",
|
||||
"select-digital-effect": " Bideo efektu digitalak: ",
|
||||
"no-effects-applied": "Efekturik ez gehitua",
|
||||
"blurred-background": "Atzealde lausotua",
|
||||
"digital-greenscreen": "Pantaila digital berdea",
|
||||
"virtual-background": "Atzealde birtuala",
|
||||
"add-a-password": "Ezarri Pasahitza:",
|
||||
"use-chrome-instead": "Chomiumen oinarritutako nabigatzaileak gomendatzen ditugu.<br>\n \t\t\t\t\t\tSafarik audio arazoak eman ditzake",
|
||||
"remote-screenshare-obs": "Partekatu pantaila",
|
||||
"select-screen-to-share": "AUKERATU PARTEKATZEKO PANTAILA",
|
||||
"audio-sources": "Audio Iturriak",
|
||||
"create-reusable-invite": "Sortu gonbidapen berrerabilgarria",
|
||||
"here-you-can-pre-generate": "Hemen gonbidapen helbideak aldez aurretik sortu ditzakezu.",
|
||||
"generate-invite-link": "GONBIDAPEN HELBIDEA SORTU",
|
||||
"advanced-paramaters": "Ezaugarri aurreratuak",
|
||||
"unlock-video-bitrate": "Desblokeatu bideoaren bitrate-a (20mbps)",
|
||||
"force-vp9-video-codec": "Behartu VP9 bideo-kodeka",
|
||||
"enable-stereo-and-pro": "Gaitu estereo eta pro HD audioa",
|
||||
"video-resolution": "Bideo erresoluzioa: ",
|
||||
"hide-mic-selection": "Behartu lehenetsitako mikrofonoa",
|
||||
"hide-screen-share": "Ezkutatu pantaila partekatzeko aukera",
|
||||
"allow-remote-control": "Kameraren zoomaren urruneko kontrola (android)",
|
||||
"obfuscate_url": "Itsutu gonbidapen helbidea",
|
||||
"add-a-password-to-stream": "Ezarri pasahitza:",
|
||||
"add-the-guest-to-a-room": " Gehitu gonbidatuak gela honetara:",
|
||||
"invite-group-chat-type": "Gela honetako gonbidatuak daukate:",
|
||||
"can-see-and-hear": "Taldearen txata ikusi eta entzun",
|
||||
"can-hear-only": "Taldeko txata entzun bakarrik",
|
||||
"cant-see-or-hear": "Ezin du Taldeko txata ikusi ezta entzun",
|
||||
"share-local-video-file": "Partekatu multimedia fitxategia",
|
||||
"select-the-video-files-to-share": "AUKERATU PARTEKATZEKO BIDEO FITXATEGIAK",
|
||||
"share-website-iframe": "Partekatu web orrialdea",
|
||||
"enter-the-website-URL-you-wish-to-share": "Sartu partekatzeko web orrialdearen helbidea.",
|
||||
"run-a-speed-test": "Neurtu konexio abiadura",
|
||||
"read-the-guides": "Irakurri gidak",
|
||||
"info-blob": "",
|
||||
"hide-the-links": " ESTEKA (GONBIDAPENAK & ESZENAK)",
|
||||
"click-for-quick-room-overview": "\n\t\t\t\t\t\t<i class=\"las la-question-circle\"></i> <span data-translate=\"click-here-for-help\">Hemen klik egin laburpen azkarra ikusteko eta laguntza izateko</span>\n\t\t\t\t\t",
|
||||
"click-here-for-help": "Hemen klik egin laburpen azkarra ikusteko eta laguntza izateko",
|
||||
"welcome-to-control-room": "\n\t\t\t\t\t\t<b>Ongi etorri. Hau da talde berriketarako zuzendariaren kontrol gela.</b><br><br>\n\t\t\t\t\t\tLagunekin talde berriketak egin ditzakezu gela bat erabiliz. Partekatu esteka urdina txatera automatikoki sartuko diren gonbidatuentzat.\n\t\t\t\t\t\t<br><br>\n\t\t\t\t\t\t<font style=\"color:red\">Talde gelek dituzten mugak:</font><br>\n\t\t\t\t\t\t<li>Talde gela batek 30 gonbidatu inguru har ditzake, faktore ugariren arabera, besteak beste, CPU eta gelako gonbidatu guztien banda zabalera kontuan hartuz. 7 lagun inguru baino gehiago elkartzeko, ziurrenik nahiago duzu <a href=\"https://www.youtube.com/watch?v=bpRa8-UYCGc\" title=\"Youtube Video demoing how to do this\">\ndesgaitu bideoen partekatzea gonbidatuen artean</a>. Using &broadcast, &roombitrate=0 or &bideoen aukerak dira hemen.</li>\n\t\t\t\t\t\t\n\t\t\t\t\t\t<li>Bideoak kalitate baxukoak izango dira nahita gonbidatuentzat eta zuzendarientzat; banda zabalera eta CPU baliabideak aurrezteko. Hala ere, kalitate handikoa izango da OBS barruan.</li>\n\t\t\t\t\t\t\n\t\t\t\t\t\t<li>Eszenen egoera, esaterako, eszena batean aktibo dauden bideoak galtzen dira zuzendariak kontrol gela edo eszena berrezartzen duenean.</li>\n\t\t\t\t\t\t<br>\n\t\t\t\t\t\tNota gehigarriak:<br><br>\n\t\t\t\t\t\t<li>Gonbidatutako bideo bakoitzaren ikustaldietarako estekak bideoen azpian ikusten dira kargatu ahala. Hauek OBS iturrien arakatzailean erabil daitezke.</li>\n\t\t\t\t\t\t<li>Nahasteko taldeko eszenak, esteka berdeak, erabil ditzakezu automatikoki antolatzeko bideoak OBSn.</li>\n\t\t\t\t\t\t<li>Kontrol gela hau bideo edo audio stream isolatuak grabatzeko erabil dezakezu, baina oraindik ezaugarri esperimentala da.</li>\n\t\t\t\t\t\t<li>Gonbidatu bat gela batetik bestera mugitzen baduzu, ez dute jakingo zein gelara aldatu diren.</li>\n\t\t\t\t\t\t<li>OBSk gonbidatuen bideoa kalitate handian ikusiko du; bideo bit tasa lehenetsia 2500 kbps da. Bit tasa altuagoak ezartzeak mugimendua hobetuko du.</li>\n\t\t\t\t\t\t<li>VP8 bideo kodek lehenetsia izan ohi da, baina erabiltzen duen &codec=vp9 or &codec=h264 OBS-en URLak hondatutako bideo-arazoak murrizten lagun dezake.</li>\n\t\t\t\t\t\t<li>&stereo=2 can be added to guests to turn off audio effects, such as echo cancellation and noise-reduction.</li>\n\t\t\t\t\t\t<li>https://invite.cam gonbidatuei emandako gonbidapen esteka baten URL parametroak ezkutatzen lagun dezakeen doako zerbitzua da.</li>\n\t\t\t\t\t\t<li>Adding &showonly=SOME_OBS_VIRTUALCAM gonbidatuentzako gonbidapen estekek bideo bakarra ikusteko aukera ematen die gonbidatuei; hau, adibidez, OBS Kamera Birtualaren irteera izan daiteke</li>\n\t\t\t\t\t\t<br>\n\t\t\t\t\t\t\n\t\t\t\t\t\tURL aukera eta parametro aurreratuetarako, <a href=\"https://docs.vdo.ninja/advanced-settings\">Wikian ikusi.</a>\n\t\t\t\t\t",
|
||||
"invite-users-to-join": "Gelara batzeko gonbidatuek esteka erabili dezakete",
|
||||
"guests-hear-others": "Gonbidatuak elkar entzun dezakete",
|
||||
"capture-a-group-scene": "ATZITU TALDE ESZENA",
|
||||
"this-is-obs-browser-source-link": "Erabili taldearen bideo nahasketa OBS edo beste Studio software batean",
|
||||
"auto-add-guests": "Gehitu gonbidatuak automatikoki",
|
||||
"pro-audio-mode": "Pro-Audio modua",
|
||||
"hide-audio-only-sources": "Ezkutatu audio iturriak soilik direnak",
|
||||
"ask-for-display-name": "Galdetu ikusiko den izenagatik",
|
||||
"show-display-names": "Erakutsi izenak",
|
||||
"show-active-speaker": "Erakutsi hizlari aktiboak",
|
||||
"auto-select-microphone": "Hautazko mikrofonoa automatikoki aukeratu",
|
||||
"auto-select-camera": "Aukeratu hautazko kamera automatikoki",
|
||||
"hide-setting-buttons": "Ezkutatu ezarpenen botoia",
|
||||
"mini-self-preview": "aurrebista propio txikia",
|
||||
"virtual-backgrounds": "Atzealde birtuala",
|
||||
"powerful-computers-only": "Erabili soilik ordenagailu indartsuekin eta talde txikiak!!",
|
||||
"guests-see-HD-video": "Gonbidatuak HD bideoa ikusgai",
|
||||
"no-self-preview": "Aurrebista propioa itzali",
|
||||
"raise-hand-button": "\"Eskua altxa\" botoia ikusarazi",
|
||||
"enable-compressor": "Gaitu audio konprimatzailea",
|
||||
"enable-equalizer": "Gaitu ekualizadore aukera",
|
||||
"low-cpu=broadcast-codec": "CPU gutxi behar duen emisio-kodeka",
|
||||
"only-see-director-feed": "Zuzendariaren iturria bakarrik ikusgai",
|
||||
"mute-microphone-by-default": "Isilduta; gonbidatuek piztu dezakete",
|
||||
"guest-joins-with-no-camera": "Gonbidatuak kamerarik gabe sartu daitezke",
|
||||
"unmute-by-director-only": "Isilduta; zuzendariak soilik piztu dezake",
|
||||
"obfuscate-link": "Itsutu esteka eta ezaugarriak",
|
||||
"this-can-reduce-packet-loss": "Honek bideoari dagokion informazio galera ekidin dezake",
|
||||
"use-h264-codec": "Erabili H264 kodeka",
|
||||
"show-active-speakers": "Erakutsi hizlari aktiboa",
|
||||
"force-mono-audio": "Behartu mono audioa",
|
||||
"learn-more-about-params": "URL parametroez gehiago ikasi hemen ",
|
||||
"more-than-four-can-join": "Lau gonbidatu hauen lekuak adibidea besterik ez dira. Lau gonbidatu baino gehiago batu daitezke.",
|
||||
"forward-to-room": "Bidali",
|
||||
"send-direct-chat": "<i class=\"las la-envelope\"></i> Mezua",
|
||||
"disconnect-guest": "Eskegi",
|
||||
"voice-chat": "<i class=\"las la-microphone\" style=\"color:#090\"></i> Bakarrik hitz egin",
|
||||
"add-to-scene": "Gehitu 1.eszenara",
|
||||
"mute-guest": "Mututu gonbidatua",
|
||||
"More-scene-options": "Eszena aukera gehiago",
|
||||
"mute-scene": "Eszena mututu",
|
||||
"force-keyframe": "Ostadarra konpondu",
|
||||
"stats-remote": " Eszena baloreak",
|
||||
"additional-controls": "Kontrol gehigarriak",
|
||||
"solo-video": "Nabarmendu gonbidatua",
|
||||
"hide-guest": "Ezkutatu gonbidatua ",
|
||||
"toggle-remote-speaker": "Gonbidatua mututu",
|
||||
"toggle-remote-display": "Gonbidatua itsutu",
|
||||
"order-down": "<i class=\"las la-minus\"></i>",
|
||||
"order-up": "<i class=\"las la-plus\"></i>",
|
||||
"change-url": "Aldatu URL-a",
|
||||
"change-params": "URL parametroak",
|
||||
"record-local": " Grabazioa lokala",
|
||||
"record-remote": " Urruneko grabazioa",
|
||||
"change-to-low-quality": " <i class=\"las la-video-slash\"></i>",
|
||||
"change-to-medium-quality": " <i class=\"las la-video\"></i>",
|
||||
"change-to-high-quality": " <i class=\"las la-binoculars\"></i>",
|
||||
"advanced-audio-settings": "<i class=\"las la-sliders-h\"></i> Audio ezaugarriak",
|
||||
"advanced-camera-settings": "<i class=\"las la-sliders-h\"></i> Bideo ezaugarriak",
|
||||
"select-local-image": "Aukeratu irudi lokala",
|
||||
"close-settings": "Itxi ezarpenak",
|
||||
"advanced": "Aurreratua ",
|
||||
"open-in-new-tab": "Ireki fitxa berrian",
|
||||
"copy-to-clipboard": "Kopiatu arbelean",
|
||||
"send-chat": "Bidali",
|
||||
"apply-new-guest-settings": "Ezaugarriak ezarri",
|
||||
"cancel": "Ezeztatu",
|
||||
"invisible-guests": "Ikusezin",
|
||||
"available-languages": "Hizkuntza erabilgarriak:",
|
||||
"add-more-here": "Gehitu gehiago hemen!",
|
||||
"add-to-calendar": "Gehitu xehetasunak egutegian:",
|
||||
"add-to-google-calendar": "Gehitu Google egutegian",
|
||||
"add-to-outlook-calendar": "Gehitu Outlook egutegian",
|
||||
"add-to-yahoo-calendar": "Gehitu Yahoo egutegian",
|
||||
"push-to-talk-enable": " Gaitu zuzendariaren mikrofonoa edo bideoa<br>(gonbidatuek soilik ikusi dezakete hau)",
|
||||
"remote-monitoring": "Urruneko monitorizazioa",
|
||||
"fade-videos-in": "Lausotu bideoak",
|
||||
"show-guest-tips": "Erakutsi gonbidatuei konfigurazio aholkuak",
|
||||
"green-background": "Atzealde berdea",
|
||||
"add-margin": "Jarri marjinak bideoei",
|
||||
"fill-video-space": "Moztu bideoa egokitzeko",
|
||||
"vertical-aspect-ratio": "Bideo bertikal modua",
|
||||
"add-to-scene2": "Gehitu 2.eszenara",
|
||||
"user-raised-hand": "Jaitsi eskua",
|
||||
"unmute": "piztu",
|
||||
"unhide-guest": "azaldu",
|
||||
"undeafen": "entzun",
|
||||
"unblind": "ikusarazi",
|
||||
"close": "itxi",
|
||||
"send-message": "bidali mezua<s pan=\"\"> </s>",
|
||||
"record-director-local": " Grabazioa",
|
||||
"director-muted-you": "Zuzendariak isildu zaitu.",
|
||||
"mirror-video": "Ispilua",
|
||||
"request-upload": " Eskatu fitxategia",
|
||||
"edit-url": "Aldatu URLa",
|
||||
"dog-face": "Txakur belarriak eta sudurra",
|
||||
"compatibility-mode": "Bateragarritasun modua",
|
||||
"disable-animated-mixing": "Desaktibatu animazioak",
|
||||
"create-timer": "Sortu tenporizadorea",
|
||||
"toggle-control-video": "Ezkutatu edo erakutsi kontrol barra",
|
||||
"invite-saved-to-cookie": "Gonbidapena cookie batean gorde da",
|
||||
"logo-header": "\n\t\t\t\t\t<font id=\"qos\">V</font>DO.Ninja \n\t\t\t\t",
|
||||
"only-director-can-hear-you": "Momentu honetan zuzendariak bakarrik entzun zaitzake.",
|
||||
"privacy-disabled": "Pribatutasun oharra: jarraitzen baduzu, zuzendariak zure kamara eta mikrofonoa urrunetik kontrolatu ahalko ditu.",
|
||||
"join-the-room-basic": "Join room as participant",
|
||||
"face-mesh": "Face mesh (slow load)",
|
||||
"anonymous-mask": "Anonymous mask",
|
||||
"application-audio-capture": "For application-specific audio capture, <a href=\"https://docs.vdo.ninja/audio\" style=\"color: #007AC8;\">see here</a>",
|
||||
"allow-effects-invite": "Allow video effects to be used",
|
||||
"show-welcome-message": "Show welcome message",
|
||||
"prefix-screenshare": "Prefix screenshare IDs",
|
||||
"animate-mixing": "Animate mixing",
|
||||
"picture-in-picture": "Picture-in-picture",
|
||||
"chrome-cast": "Cast..",
|
||||
"join-room": "Join room",
|
||||
"join-room-with-mic": "Join room with Microphone",
|
||||
"join-room-with-camera": "Join Room with Camera",
|
||||
"share-screen-with-room": "Screenshare with Room",
|
||||
"share-your-mic": "Share your Microphone",
|
||||
"share-your-camera": "Share your Camera",
|
||||
"share-your-screen": "Share your Screen",
|
||||
"click-start-to-join": "Click Start to Join",
|
||||
"waiting-for-mic-to-load": "Waiting for mic to load",
|
||||
"waiting-for-camera-to-load": "Waiting for Camera to load",
|
||||
"welcome-to-obs-ninja-chat": "\n\t\t\t\t\tWelcome! You can send text messages directly to connected peers from here.\n\t\t\t\t"
|
||||
},
|
||||
"placeholders": {
|
||||
"join-by-room-name-here": "Sartu gela izena batzeko",
|
||||
"enter-a-room-name-here": "gelaren izena",
|
||||
"optional-room-password-here": "gelaren hautazko pasahitza",
|
||||
"optional": "Hautazkoa",
|
||||
"give-this-media-source-a-name-optional-": "media iturriaren izena (hautazkoa)",
|
||||
"add-an-optional-password": "aukerazko pasahitza",
|
||||
"enter-room-name-here": "gelaren izena",
|
||||
"enter-chat-message-to-send-here": "Bidali nahi den mezua hemen sartu",
|
||||
"enter-the-room-name-here": "gelaren izena",
|
||||
"enter-the-room-password-here": "Gelaren pasahitza",
|
||||
"enter-your-message-here": "Idatzi hemen mezua"
|
||||
},
|
||||
"miscellaneous": {
|
||||
"start": "HASI",
|
||||
"new-display-name": "Izen berria jarri stream honi",
|
||||
"submit-error-report": "Sakatu OK VDO.Ninja-ra akatsen erregistroak bidaltzeko. Akatsen erregistroek informazio pribatua izan ditzakete.",
|
||||
"director-redirect-1": "Zuzendariak URL honetara bideratu nahi zaitu: ",
|
||||
"director-redirect-2": "\n\nSakatu OK bideratua izateko.",
|
||||
"add-a-label": "Gehitu etiketa",
|
||||
"audio-processing-disabled": "Gonbidatu honekin audio prozesatzea kenduta dago. Ezin da isildu edo bolumena aldatu",
|
||||
"not-the-director": "<font color='red'>Ez zara gela honetako zuzendaria. Kontrolik gabe egongo zara. Zuzendariak alde egitean, gela erreklamatzen saia zaitezke.</font>",
|
||||
"room-is-claimed": "Gelara sartu den lehenengo pertsona da zuzendaria.\n\nEskatu irteteko eta berritu orrialdea",
|
||||
"room-is-claimed-codirector": "The room is already claimed by someone else.\n\nTrying to join as a co-director...",
|
||||
"streamid-already-published": "Argitaratzen ari zaren stream IDa dagoeneko erabiltzen ari dira.\n\nSaiatu beste gonbidapen esteka batekin edo berritu berriro saiatzeko.\n\nDeskonektatuta izango zara.",
|
||||
"director": "Zuzendaria",
|
||||
"unknown-user": "Erabiltzaile ezezaguna",
|
||||
"room-test-not-good": "\"Test\" gelaren izena oso erabilia da eta agian ez da segurua.\n\nZiur zaude jarraitu nahi duzula?",
|
||||
"load-previous-session": "Aurreko saioaren ezarpenak berrerabili nahi dituzu?",
|
||||
"enter-password": "Mesedez, sartu pasahitza behean: \n\n(Oharra: pasahitzek letra larriak eta xeheak bereizten dituzte eta ez zaizu ohartaraziko zuzena ez denean.)",
|
||||
"enter-password-2": "Mesedez, sartu pasahitza behean: \n\n(Oharra: pasahitzak maiuskulak eta minuskulak bereizten dituzte.)",
|
||||
"enter-director-password": "Sartu zuzendariaren pasahitza:\n\n(Oharra: Pasahitzek letra xehe eta larriak desberdintzen dituzte, eta gaizki sartuz gero ez zaizu ohartaraziko.)",
|
||||
"password-incorrect": "Pasahitza okerra zen.\n\nSaiatu berriro.",
|
||||
"enter-display-name": "Mesedez, sartu zure bistaratzeko izena:",
|
||||
"enter-new-display-name": "Idatzi stream honetan bistaratzeko izen berria",
|
||||
"what-bitrate": "Zein bit tasatan grabatu nahi zenuke? (kbps)",
|
||||
"enter-website": "Sartu webgunearen URLa partekatzeko",
|
||||
"press-ok-to-record": "Sakatu OK grabatzen hasteko. Sakatu berriro gelditzeko eta deskargatzeko.\n\nAbisua: mantendu aktibo arakatzailearen fitxa grabatzen jarraitzeko.\n\nNahi izanez gero, bideoaren bit tasa lehenetsia alda dezakezu behean (kbps)",
|
||||
"no-streamID-provided": "Ez da stream IDrik eman; ausazko bat sortuko da.\n\nStream ID: ",
|
||||
"alphanumeric-only": "Informazioa: zenbakiak eta letrak soilik erabili behar dira stream IDan.\n\nKaraktere iraingarriak azpimarra batez ordezkatu dira",
|
||||
"stream-id-too-long": "Stream IDak 45 karaktere alfanumeriko baino gutxiago izan behar ditu.\n\nLuzera egokituko da.",
|
||||
"share-with-trusted": "Partekatu konfiantzazkoekin soilik",
|
||||
"pass-recommended": "Pasahitza jartzea gomendatzen da",
|
||||
"insecure-room-name": "Gelaren izena ez da segurua.",
|
||||
"allowed-chars": "Onartutako karaktereak",
|
||||
"transfer": "mugitu",
|
||||
"armed": "armatua",
|
||||
"transfer-guest-to-room": "Bidali gonbidatuak gelara:\n\n(Kontuan izan gelek pasahitz bera partekatu behar dutela)",
|
||||
"transfer-guest-to-url": "Bidali gonbidatuak beste helbide batera.\n\n(Gonbidatuek onartu beharko dute)",
|
||||
"change-url": "aldatu esteka",
|
||||
"mute-in-scene": "Isiltasuna eszenan",
|
||||
"unmute-guest": "Gonbidatua entzungai",
|
||||
"undeafen": "entzun",
|
||||
"deafen": "Mututu gonbidatua",
|
||||
"unblind": "ikusarazi",
|
||||
"blind": "Itsutu gonbidatua",
|
||||
"unmute": "piztu",
|
||||
"mute-guest": "Mututu gonbidatua",
|
||||
"unhide": "gonbidatua azaldu",
|
||||
"hide-guest": "ezkutatu gonbidatua",
|
||||
"confirm-disconnect-users": "Ziur zaude erabiltzaile horiek deskonektatu nahi dituzula?",
|
||||
"confirm-disconnect-user": "Ziur zaude erabiltzaile hau deskonektatu nahi duzula?",
|
||||
"enter-new-codirector-password": "Enter a co-director password to use",
|
||||
"control-room-co-director": "Control Room: Co-Director",
|
||||
"signal-meter": "Video packet loss indicator of video preview; green is good, red is bad. Flame implies CPU is overloaded. May not reflect the packet loss seen by scenes or other guests.",
|
||||
"waiting-for-the-stream": "Waiting for the stream. Tip: Adding &cleanoutput to the URL will hide this spinner, or click to retry, which will also hide it.",
|
||||
"main-director": "Main Director",
|
||||
"share-a-screen": "Share a screen",
|
||||
"stop-screen-sharing": "Stop screen sharing",
|
||||
"you-have-been-transferred": "You've been transferred to a different room",
|
||||
"you-are-no-longer-a-co-director": "You are no longer a co-director as you were transferred.",
|
||||
"transferred": "Transferred",
|
||||
"room-changed": "Your room has changed"
|
||||
}
|
||||
}
|
||||
@ -165,7 +165,30 @@
|
||||
"disable-animated-transitions-during-video-mixing": "Disable animated transitions during video mixing",
|
||||
"allow-the-guest-to-select-a-file-to-upload-to-the-director-once-shared-it-will-show-in-the-chat-as-a-download-link-": "Allow the guest to select a file to upload to the director. Once shared, it will show in the chat as a download link.",
|
||||
"set-a-countdown-timer-that-this-guest-sees": "Set a countdown timer that this guest sees",
|
||||
"enter-a-room-name-to-quick-join": "Enter a room name to quick join"
|
||||
"enter-a-room-name-to-quick-join": "Enter a room name to quick join",
|
||||
"will-remember-the-room-prompting-you-the-next-time-you-visit-if-you-wish-to-load-this-director-s-room-again": "Will remember the room, prompting you the next time you visit if you wish to load this director's room again",
|
||||
"create-a-third-stream": "Create a Third Stream",
|
||||
"share-a-website-with-your-guests-iframe-": "Share a website with your guests (IFRAME)",
|
||||
"hold-ctrl-or-cmd-and-click-to-spotlight-this-video": "Hold CTRL (or CMD) and click to spotlight this video",
|
||||
"add-group-chat": "Add Group Chat",
|
||||
"if-checked-the-director-can-be-added-to-scenes-as-if-a-guest-otherwise-the-director-will-never-appear-in-a-scene-": "If checked, the director can be added to scenes as if a guest. Otherwise, the director will never appear in a scene.",
|
||||
"add-your-camera": "Add your Camera",
|
||||
"experimental": "experimental",
|
||||
"adjust-the-amount-of-effect-applied": "Adjust the amount of effect applied",
|
||||
"remote-screenshare": "Remote Screenshare",
|
||||
"the-guest-will-be-able-to-select-digital-video-effects-to-apply-": "The guest will be able to select digital video effects to apply.",
|
||||
"use-this-link-as-a-browser-source-to-capture-the-video-or-audio": "Use this link as a Browser Source to capture the video or audio",
|
||||
"show-a-custom-welcome-message-to-the-joining-guest-of-this-invite-link": "Show a custom welcome message to the joining guest of this invite link",
|
||||
"add-remove-from-group-1": "Add/remove from group 1",
|
||||
"add-remove-from-group-2": "Add/remove from group 2",
|
||||
"add-remove-from-group-3": "Add/remove from group 3",
|
||||
"add-remove-from-group-4": "Add/remove from group 4",
|
||||
"add-remove-from-group-5": "Add/remove from group 5",
|
||||
"add-remove-from-group-6": "Add/remove from group 6",
|
||||
"the-solo-view-link-of-the-director-s-video-": "The solo view link of the Director's video.",
|
||||
"only-the-director-s-video-will-be-visible-to-guests-and-within-group-scenes": "Only the director's video will be visible to guests and within group scenes",
|
||||
"allow-for-remote-co-directors": "Allow for remote co-directors",
|
||||
"jump-to-the-documentation": "Jump to the documentation"
|
||||
},
|
||||
"innerHTML": {
|
||||
"logo-header": "<font id=\"qos\" style=\"color: white;\">O</font>BS.Ninja ",
|
||||
@ -357,7 +380,10 @@
|
||||
"picture-in-picture": "Picture-in-picture",
|
||||
"chrome-cast": "Cast..",
|
||||
"join-room": "Join room",
|
||||
"waiting-for-mic-to-load": "Waiting for mic to load"
|
||||
"waiting-for-mic-to-load": "Waiting for mic to load",
|
||||
"join-the-room-basic": "Join room as participant",
|
||||
"allow-effects-invite": "Allow video effects to be used",
|
||||
"show-welcome-message": "Show welcome message"
|
||||
},
|
||||
"placeholders": {
|
||||
"join-by-room-name-here": "Rejoindre via le nom de salle ici",
|
||||
@ -420,6 +446,17 @@
|
||||
"unhide": "unhide guest",
|
||||
"hide-guest": "hide guest",
|
||||
"confirm-disconnect-users": "Are you sure you wish to disconnect these users?",
|
||||
"confirm-disconnect-user": "Are you sure you wish to disconnect this user?"
|
||||
"confirm-disconnect-user": "Are you sure you wish to disconnect this user?",
|
||||
"enter-new-codirector-password": "Enter a co-director password to use",
|
||||
"control-room-co-director": "Control Room: Co-Director",
|
||||
"signal-meter": "Video packet loss indicator of video preview; green is good, red is bad. Flame implies CPU is overloaded. May not reflect the packet loss seen by scenes or other guests.",
|
||||
"waiting-for-the-stream": "Waiting for the stream. Tip: Adding &cleanoutput to the URL will hide this spinner, or click to retry, which will also hide it.",
|
||||
"main-director": "Main Director",
|
||||
"share-a-screen": "Share a screen",
|
||||
"stop-screen-sharing": "Stop screen sharing",
|
||||
"you-have-been-transferred": "You've been transferred to a different room",
|
||||
"you-are-no-longer-a-co-director": "You are no longer a co-director as you were transferred.",
|
||||
"transferred": "Transferred",
|
||||
"room-changed": "Your room has changed"
|
||||
}
|
||||
}
|
||||
@ -165,7 +165,30 @@
|
||||
"disable-animated-transitions-during-video-mixing": "Disable animated transitions during video mixing",
|
||||
"allow-the-guest-to-select-a-file-to-upload-to-the-director-once-shared-it-will-show-in-the-chat-as-a-download-link-": "Allow the guest to select a file to upload to the director. Once shared, it will show in the chat as a download link.",
|
||||
"set-a-countdown-timer-that-this-guest-sees": "Set a countdown timer that this guest sees",
|
||||
"enter-a-room-name-to-quick-join": "Enter a room name to quick join"
|
||||
"enter-a-room-name-to-quick-join": "Enter a room name to quick join",
|
||||
"will-remember-the-room-prompting-you-the-next-time-you-visit-if-you-wish-to-load-this-director-s-room-again": "Will remember the room, prompting you the next time you visit if you wish to load this director's room again",
|
||||
"create-a-third-stream": "Create a Third Stream",
|
||||
"share-a-website-with-your-guests-iframe-": "Share a website with your guests (IFRAME)",
|
||||
"hold-ctrl-or-cmd-and-click-to-spotlight-this-video": "Hold CTRL (or CMD) and click to spotlight this video",
|
||||
"add-group-chat": "Add Group Chat",
|
||||
"if-checked-the-director-can-be-added-to-scenes-as-if-a-guest-otherwise-the-director-will-never-appear-in-a-scene-": "If checked, the director can be added to scenes as if a guest. Otherwise, the director will never appear in a scene.",
|
||||
"add-your-camera": "Add your Camera",
|
||||
"experimental": "experimental",
|
||||
"adjust-the-amount-of-effect-applied": "Adjust the amount of effect applied",
|
||||
"remote-screenshare": "Remote Screenshare",
|
||||
"the-guest-will-be-able-to-select-digital-video-effects-to-apply-": "The guest will be able to select digital video effects to apply.",
|
||||
"use-this-link-as-a-browser-source-to-capture-the-video-or-audio": "Use this link as a Browser Source to capture the video or audio",
|
||||
"show-a-custom-welcome-message-to-the-joining-guest-of-this-invite-link": "Show a custom welcome message to the joining guest of this invite link",
|
||||
"add-remove-from-group-1": "Add/remove from group 1",
|
||||
"add-remove-from-group-2": "Add/remove from group 2",
|
||||
"add-remove-from-group-3": "Add/remove from group 3",
|
||||
"add-remove-from-group-4": "Add/remove from group 4",
|
||||
"add-remove-from-group-5": "Add/remove from group 5",
|
||||
"add-remove-from-group-6": "Add/remove from group 6",
|
||||
"the-solo-view-link-of-the-director-s-video-": "The solo view link of the Director's video.",
|
||||
"only-the-director-s-video-will-be-visible-to-guests-and-within-group-scenes": "Only the director's video will be visible to guests and within group scenes",
|
||||
"allow-for-remote-co-directors": "Allow for remote co-directors",
|
||||
"jump-to-the-documentation": "Jump to the documentation"
|
||||
},
|
||||
"innerHTML": {
|
||||
"logo-header": "<font id=\"qos\" style=\"color: white;\">O</font>BS.Ninja ",
|
||||
@ -357,7 +380,10 @@
|
||||
"picture-in-picture": "Picture-in-picture",
|
||||
"chrome-cast": "Cast..",
|
||||
"join-room": "Join room",
|
||||
"waiting-for-mic-to-load": "Waiting for mic to load"
|
||||
"waiting-for-mic-to-load": "Waiting for mic to load",
|
||||
"join-the-room-basic": "Join room as participant",
|
||||
"allow-effects-invite": "Allow video effects to be used",
|
||||
"show-welcome-message": "Show welcome message"
|
||||
},
|
||||
"placeholders": {
|
||||
"join-by-room-name-here": "Join by Room Name here",
|
||||
@ -420,6 +446,17 @@
|
||||
"unhide": "unhide guest",
|
||||
"hide-guest": "hide guest",
|
||||
"confirm-disconnect-users": "Are you sure you wish to disconnect these users?",
|
||||
"confirm-disconnect-user": "Are you sure you wish to disconnect this user?"
|
||||
"confirm-disconnect-user": "Are you sure you wish to disconnect this user?",
|
||||
"enter-new-codirector-password": "Enter a co-director password to use",
|
||||
"control-room-co-director": "Control Room: Co-Director",
|
||||
"signal-meter": "Video packet loss indicator of video preview; green is good, red is bad. Flame implies CPU is overloaded. May not reflect the packet loss seen by scenes or other guests.",
|
||||
"waiting-for-the-stream": "Waiting for the stream. Tip: Adding &cleanoutput to the URL will hide this spinner, or click to retry, which will also hide it.",
|
||||
"main-director": "Main Director",
|
||||
"share-a-screen": "Share a screen",
|
||||
"stop-screen-sharing": "Stop screen sharing",
|
||||
"you-have-been-transferred": "You've been transferred to a different room",
|
||||
"you-are-no-longer-a-co-director": "You are no longer a co-director as you were transferred.",
|
||||
"transferred": "Transferred",
|
||||
"room-changed": "Your room has changed"
|
||||
}
|
||||
}
|
||||
@ -1,171 +1,194 @@
|
||||
{
|
||||
"titles": {
|
||||
"toggle-the-chat": "Toggle the Chat",
|
||||
"mute-the-speaker": "Mute the Speaker",
|
||||
"mute-the-mic": "Mute the Mic",
|
||||
"disable-the-camera": "Disable the Camera",
|
||||
"settings": "Settings",
|
||||
"hangup-the-call": "Hangup the Call",
|
||||
"show-help-info": "Show Help Info",
|
||||
"language-options": "Language Options",
|
||||
"tip-hold-ctrl-command-to-select-multiple": "tip: Hold CTRL (command) to select Multiple",
|
||||
"ideal-for-1080p60-gaming-if-your-computer-and-upload-are-up-for-it": "Ideal for 1080p60 gaming, if your computer and upload are up for it",
|
||||
"better-video-compression-and-quality-at-the-cost-of-increased-cpu-encoding-load": "Better video compression and quality at the cost of increased CPU encoding load",
|
||||
"disable-digital-audio-effects-and-increase-audio-bitrate": "Disable digital audio-effects and increase audio bitrate",
|
||||
"the-guest-will-not-have-a-choice-over-audio-options": "The guest will not have a choice over audio-options",
|
||||
"the-guest-will-only-be-able-to-select-their-webcam-as-an-option": "The guest will only be able to select their webcam as an option",
|
||||
"hold-ctrl-and-the-mouse-wheel-to-zoom-in-and-out-remotely-of-compatible-video-streams": "Hold CTRL and the mouse wheel to zoom in and out remotely of compatible video streams",
|
||||
"add-a-password-to-make-the-stream-inaccessible-to-those-without-the-password": "Add a password to make the stream inaccessible to those without the password",
|
||||
"add-the-guest-to-a-group-chat-room-it-will-be-created-automatically-if-needed-": "Add the guest to a group-chat room; it will be created automatically if needed.",
|
||||
"customize-the-room-settings-for-this-guest": "Customize the room settings for this guest",
|
||||
"hold-ctrl-or-cmd-to-select-multiple-files": "Hold CTRL (or CMD) to select multiple files",
|
||||
"enter-an-https-url": "Enter an HTTPS URL",
|
||||
"toggle-the-chat": "チャットを切り替える",
|
||||
"mute-the-speaker": "スピーカーをミュートにする",
|
||||
"mute-the-mic": "マイクをミュートする",
|
||||
"disable-the-camera": "カメラを無効にする",
|
||||
"settings": "設定",
|
||||
"hangup-the-call": "通話を切断する",
|
||||
"show-help-info": "ヘルプを表示する",
|
||||
"language-options": "言語設定",
|
||||
"tip-hold-ctrl-command-to-select-multiple": "ヒント:CTRL(command)を押しながら複数選択する",
|
||||
"ideal-for-1080p60-gaming-if-your-computer-and-upload-are-up-for-it": "お使いのパソコンと回線がそれに適している場合は、1080p60ゲームに最適です",
|
||||
"better-video-compression-and-quality-at-the-cost-of-increased-cpu-encoding-load": "CPUのエンコード負荷が増加する代わりに、より良い映像圧縮と品質",
|
||||
"disable-digital-audio-effects-and-increase-audio-bitrate": "デジタルオーディオエフェクトを無効にして、オーディオビットレートを上げます",
|
||||
"the-guest-will-not-have-a-choice-over-audio-options": "ゲストはオーディをオプションを選択することはできません",
|
||||
"the-guest-will-only-be-able-to-select-their-webcam-as-an-option": "ゲストはオプションとして自分のウェブカメラのみを選択できます",
|
||||
"hold-ctrl-and-the-mouse-wheel-to-zoom-in-and-out-remotely-of-compatible-video-streams": "CTRL+マウスホイールで、対応する映像配信をリモートでズームイン/アウトすることができます",
|
||||
"add-a-password-to-make-the-stream-inaccessible-to-those-without-the-password": "パスワードを追加して、パスワードがない人は配信にアクセスできないようにします",
|
||||
"add-the-guest-to-a-group-chat-room-it-will-be-created-automatically-if-needed-": "グループチャットルームにゲストを追加する。必要に応じて自動的に作成されます。",
|
||||
"customize-the-room-settings-for-this-guest": "このゲストのルーム設定をカスタマイズする",
|
||||
"hold-ctrl-or-cmd-to-select-multiple-files": "CTRL(またはCMD)を押しながら複数ファイルを選択する",
|
||||
"enter-an-https-url": "HTTPS URLを入力する",
|
||||
"lucy-g": "Lucy G",
|
||||
"flaticon": "Flaticon",
|
||||
"creative-commons-by-3-0": "Creative Commons BY 3.0",
|
||||
"gregor-cresnar": "Gregor Cresnar",
|
||||
"add-this-video-to-any-remote-scene-1-": "Add this Video to any remote '&scene=1'",
|
||||
"forward-user-to-another-room-they-can-always-return-": "Forward user to another room. They can always return.",
|
||||
"start-recording-this-stream-experimental-views": "Start Recording this stream. *experimental*' views",
|
||||
"force-the-user-to-disconnect-they-can-always-reconnect-": "Force the user to Disconnect. They can always reconnect.",
|
||||
"change-this-audio-s-volume-in-all-remote-scene-views": "Change this Audio's volume in all remote '&scene' views",
|
||||
"remotely-mute-this-audio-in-all-remote-scene-views": "Remotely Mute this Audio in all remote '&scene' views",
|
||||
"disable-video-preview": "Disable Video Preview",
|
||||
"low-quality-preview": "Low-Quality Preview",
|
||||
"high-quality-preview": "High-Quality Preview",
|
||||
"send-direct-message": "Send Direct Message",
|
||||
"advanced-settings-and-remote-control": "Advanced Settings and Remote Control",
|
||||
"toggle-voice-chat-with-this-guest": "Toggle Voice Chat with this Guest",
|
||||
"join-by-room-name-here": "Enter a room name to quick join",
|
||||
"join-room": "Join room",
|
||||
"share-a-screen-with-others": "Share a Screen with others",
|
||||
"alert-the-host-you-want-to-speak": "Alert the host you want to speak",
|
||||
"record-your-stream-to-disk": "Record your stream to disk",
|
||||
"cancel-the-director-s-video-audio": "Cancel the Director's Video/Audio",
|
||||
"submit-any-error-logs": "Submit any error logs",
|
||||
"add-group-chat-to-obs": "Add Group Chat to OBS",
|
||||
"for-large-group-rooms-this-option-can-reduce-the-load-on-remote-guests-substantially": "For large group rooms, this option can reduce the load on remote guests substantially",
|
||||
"which-video-codec-would-you-want-used-by-default-": "Which video codec would you want used by default?",
|
||||
"you-ll-enter-as-the-room-s-director": "You'll enter as the room's director",
|
||||
"add-your-camera-to-obs": "Add your Camera to OBS",
|
||||
"remote-screenshare-into-obs": "Remote Screenshare into OBS",
|
||||
"create-reusable-invite": "Create Reusable Invite",
|
||||
"encode-the-url-so-that-it-s-harder-for-a-guest-to-modify-the-settings-": "Encode the URL so that it's harder for a guest to modify the settings.",
|
||||
"more-options": "More Options",
|
||||
"youtube-video-demoing-how-to-do-this": "Youtube Video demoing how to do this",
|
||||
"invite-a-guest-or-camera-source-to-publish-into-the-group-room": "Invite a guest or camera source to publish into the group room",
|
||||
"if-enabled-the-invited-guest-will-not-be-able-to-see-or-hear-anyone-in-the-room-": "If enabled, the invited guest will not be able to see or hear anyone in the room.",
|
||||
"use-this-link-in-the-obs-browser-source-to-capture-the-video-or-audio": "Use this link in the OBS Browser Source to capture the video or audio",
|
||||
"if-enabled-you-must-manually-add-a-video-to-a-scene-for-it-to-appear-": "If enabled, you must manually add a video to a scene for it to appear.",
|
||||
"disables-echo-cancellation-and-improves-audio-quality": "Disables Echo Cancellation and improves audio quality",
|
||||
"audio-only-sources-are-visually-hidden-from-scenes": "Audio-only sources are visually hidden from scenes",
|
||||
"guest-will-be-prompted-to-enter-a-display-name": "Guest will be prompted to enter a Display Name",
|
||||
"display-names-will-be-shown-in-the-bottom-left-corner-of-videos": "Display Names will be shown in the bottom-left corner of videos",
|
||||
"request-1080p60-from-the-guest-instead-of-720p60-if-possible": "Request 1080p60 from the Guest instead of 720p60, if possible",
|
||||
"the-default-microphone-will-be-pre-selected-for-the-guest": "The default microphone will be pre-selected for the guest",
|
||||
"the-default-camera-device-will-selected-automatically": "The default camera device will selected automatically",
|
||||
"the-guest-won-t-have-access-to-changing-camera-settings-or-screenshare": "The guest won't have access to changing camera settings or screenshare",
|
||||
"the-guest-will-not-see-their-own-self-preview-after-joining": "The guest will not see their own self-preview after joining",
|
||||
"guests-will-have-an-option-to-poke-the-director-by-pressing-a-button": "Guests will have an option to poke the Director by pressing a button",
|
||||
"add-an-audio-compressor-to-the-guest-s-microphone": "Add an audio compressor to the guest's microphone",
|
||||
"add-an-equalizer-to-the-guest-s-microphone-that-the-director-can-control": "Add an Equalizer to the guest's microphone that the director can control",
|
||||
"the-guest-can-only-see-the-director-s-video-if-provided": "The guest can only see the Director's video, if provided",
|
||||
"the-guest-s-microphone-will-be-muted-on-joining-they-can-unmute-themselves-": "The guest's microphone will be muted on joining. They can unmute themselves.",
|
||||
"have-the-guest-join-muted-so-only-the-director-can-unmute-the-guest-": "Have the guest join muted, so only the director can Unmute the guest.",
|
||||
"make-the-invite-url-encoded-so-parameters-are-harder-to-tinker-with-by-guests": "Make the invite URL encoded, so parameters are harder to tinker with by guests",
|
||||
"move-the-user-to-another-room-controlled-by-another-director": "Move the user to another room, controlled by another director",
|
||||
"send-a-direct-message-to-this-user-": "Send a Direct Message to this user.",
|
||||
"remotely-change-the-volume-of-this-guest": "Remotely change the volume of this guest",
|
||||
"mute-this-guest-everywhere": "Mute this guest everywhere",
|
||||
"start-recording-this-remote-stream-to-this-local-drive-experimental-": "Start Recording this remote stream to this local drive. *experimental*'",
|
||||
"the-remote-guest-will-record-their-local-stream-to-their-local-drive-experimental-": "The Remote Guest will record their local stream to their local drive. *experimental*",
|
||||
"shift-this-video-down-in-order": "Shift this Video Down in Order",
|
||||
"current-index-order-of-this-video": "Current Index Order of this Video",
|
||||
"shift-this-video-up-in-order": "Shift this Video Up in Order",
|
||||
"remote-audio-settings": "Remote Audio Settings",
|
||||
"advanced-video-settings": "Advanced Video Settings",
|
||||
"activate-or-reload-this-video-device-": "Activate or Reload this video device.",
|
||||
"load-the-next-guest-in-queue": "Load the next guest in queue",
|
||||
"create-a-secondary-stream": "Create a Secondary Stream",
|
||||
"add-to-calendar": "Add to Calendar",
|
||||
"the-director-will-be-visible-in-scenes-as-if-a-performer-themselves-": "The director will be visible in scenes, as if a performer themselves.",
|
||||
"useful-if-you-want-to-perform-and-direct-at-the-same-time": "Useful if you want to perform and direct at the same time",
|
||||
"start-streaming": "start streaming",
|
||||
"if-disabled-the-invited-guest-will-not-be-able-to-see-or-hear-anyone-in-the-room-": "If disabled, the invited guest will not be able to see or hear anyone in the room.",
|
||||
"if-disabled-you-must-manually-add-a-video-to-a-scene-for-it-to-appear-": "If disabled, you must manually add a video to a scene for it to appear.",
|
||||
"guests-not-actively-speaking-will-be-hidden": "Guests not actively speaking will be hidden",
|
||||
"increase-video-quality-that-guests-in-room-see-": "Increase video quality that guests in room see.",
|
||||
"the-guest-will-not-be-asked-for-a-video-device-on-connection": "The guest will not be asked for a video device on connection",
|
||||
"toggle-solo-voice-chat": "Toggle Solo Voice Chat",
|
||||
"add-to-scene-2": "Add to Scene 2",
|
||||
"add-to-scene-3": "Add to Scene 3",
|
||||
"add-to-scene-4": "Add to Scene 4",
|
||||
"add-to-scene-5": "Add to Scene 5",
|
||||
"add-to-scene-6": "Add to Scene 6",
|
||||
"add-to-scene-7": "Add to Scene 7",
|
||||
"hide-this-guest-everywhere": "Hide this guest everywhere",
|
||||
"set-to-default-audio-channel": "Set to Default Audio Channel",
|
||||
"set-to-audio-channel-1": "Set to Audio Channel 1",
|
||||
"set-to-audio-channel-2": "Set to Audio Channel 2",
|
||||
"set-to-audio-channel-3": "Set to Audio Channel 3",
|
||||
"set-to-audio-channel-4": "Set to Audio Channel 4",
|
||||
"set-to-audio-channel-5": "Set to Audio Channel 5",
|
||||
"toggle-the-remote-guest-s-speaker-output": "Toggle the remote guest's speaker output",
|
||||
"toggle-the-remote-guest-s-display-output": "Toggle the remote guest's display output",
|
||||
"set-to-audio-channel-6": "Set to Audio Channel 6",
|
||||
"set-to-audio-channel-7": "Set to Audio Channel 7",
|
||||
"set-to-audio-channel-8": "Set to Audio Channel 8",
|
||||
"add-this-video-to-any-remote-scene-1-": "この映像を任意のリモート '&scene=1' に追加する",
|
||||
"forward-user-to-another-room-they-can-always-return-": "ユーザーを別室に転送する。移動した人はいつでも戻ることができます。",
|
||||
"start-recording-this-stream-experimental-views": "この配信の録画を開始します。 *experimental*' views",
|
||||
"force-the-user-to-disconnect-they-can-always-reconnect-": "ユーザーを強制的に切断させる。ユーザーはいつでも再接続できます。",
|
||||
"change-this-audio-s-volume-in-all-remote-scene-views": "すべてのリモート '&scene' ビューで、このオーディオの音量を変更する。",
|
||||
"remotely-mute-this-audio-in-all-remote-scene-views": "すべてのリモート '&scene' ビューで、このオーディオをリモートでミュートすることができます。",
|
||||
"disable-video-preview": "映像プレビューを無効にする",
|
||||
"low-quality-preview": "低品質プレビュー",
|
||||
"high-quality-preview": "高品質プレビュー",
|
||||
"send-direct-message": "ダイレクトメッセージを送る",
|
||||
"advanced-settings-and-remote-control": "高度な設定とリモートコントロール",
|
||||
"toggle-voice-chat-with-this-guest": "このゲストとのボイスチャットをトグルする",
|
||||
"join-by-room-name-here": "ルーム名を入力してクイック参加",
|
||||
"join-room": "部屋に参加",
|
||||
"share-a-screen-with-others": "画面を共有する",
|
||||
"alert-the-host-you-want-to-speak": "話したいことをホストに伝える",
|
||||
"record-your-stream-to-disk": "配信をディスクに録画する",
|
||||
"cancel-the-director-s-video-audio": "ディレクターの映像/オーディオをキャンセルする",
|
||||
"submit-any-error-logs": "エラーログを提出する",
|
||||
"add-group-chat-to-obs": "OBSにグループチャットを追加する",
|
||||
"for-large-group-rooms-this-option-can-reduce-the-load-on-remote-guests-substantially": "大人数の部屋では、このオプションにより遠隔地にいるゲストの負担を大幅に軽減することができます。",
|
||||
"which-video-codec-would-you-want-used-by-default-": "デフォルトで使用したいビデオコーデックは?",
|
||||
"you-ll-enter-as-the-room-s-director": "部屋のディレクターとして入室する",
|
||||
"add-your-camera-to-obs": "OBSにカメラを追加する",
|
||||
"remote-screenshare-into-obs": "OBSへのリモート画面共有",
|
||||
"create-reusable-invite": "再利用可能な招待状を作成する",
|
||||
"encode-the-url-so-that-it-s-harder-for-a-guest-to-modify-the-settings-": "URLを記号化して、ゲストが設定を変更しにくくする",
|
||||
"more-options": "その他のオプション",
|
||||
"youtube-video-demoing-how-to-do-this": "Youtube動画で紹介しています",
|
||||
"invite-a-guest-or-camera-source-to-publish-into-the-group-room": "ゲストやカメラソースを招待して、グループルームに公開する。",
|
||||
"if-enabled-the-invited-guest-will-not-be-able-to-see-or-hear-anyone-in-the-room-": "有効にすると、招待されたゲストは、部屋にいる人を見たり聞いたりすることができなくなります。",
|
||||
"use-this-link-in-the-obs-browser-source-to-capture-the-video-or-audio": "OBS Browser Sourceにこのリンクを使って、ビデオまたはオーディオをキャプチャします。",
|
||||
"if-enabled-you-must-manually-add-a-video-to-a-scene-for-it-to-appear-": "有効にすると、動画を表示させるために手動でシーンに追加する必要があります。",
|
||||
"disables-echo-cancellation-and-improves-audio-quality": "エコーキャンセル機能を無効化し、音質向上",
|
||||
"audio-only-sources-are-visually-hidden-from-scenes": "音声のみのソースは、シーンから視覚的に隠れます",
|
||||
"guest-will-be-prompted-to-enter-a-display-name": "ゲストはDisplay Nameを入力するよう促されます",
|
||||
"display-names-will-be-shown-in-the-bottom-left-corner-of-videos": "動画の左下にディスプレイネームが表示されます",
|
||||
"request-1080p60-from-the-guest-instead-of-720p60-if-possible": "可能であれば、720p60の代わりに1080p60をゲストにリクエストしてください。",
|
||||
"the-default-microphone-will-be-pre-selected-for-the-guest": "ゲスト用にデフォルトのマイクがあらかじめ選択されています",
|
||||
"the-default-camera-device-will-selected-automatically": "デフォルトのカメラデバイスが自動的に選択されます",
|
||||
"the-guest-won-t-have-access-to-changing-camera-settings-or-screenshare": "ゲストはカメラ、スクリーンシェアの設定変更にアクセスできない",
|
||||
"the-guest-will-not-see-their-own-self-preview-after-joining": "ゲストは参加後、自分のセルフプレビューを見ることができない",
|
||||
"guests-will-have-an-option-to-poke-the-director-by-pressing-a-button": "ゲストはボタンを押すことでディレクターを突くオプションがあります",
|
||||
"add-an-audio-compressor-to-the-guest-s-microphone": "ゲストのマイクにオーディオコンプレッサーを追加する",
|
||||
"add-an-equalizer-to-the-guest-s-microphone-that-the-director-can-control": "ゲストのマイクにイコライザーを追加し、ディレクターがコントロールできるようにする",
|
||||
"the-guest-can-only-see-the-director-s-video-if-provided": "ゲストは、提供された場合のみ、ディレクターの映像を見ることができます",
|
||||
"the-guest-s-microphone-will-be-muted-on-joining-they-can-unmute-themselves-": "参加時、ゲストのマイクはミュートされます。自分でミュートを解除することができます。",
|
||||
"have-the-guest-join-muted-so-only-the-director-can-unmute-the-guest-": "ゲストをミュートで参加させ、ディレクターだけがゲストのミュートを解除できるようにする。",
|
||||
"make-the-invite-url-encoded-so-parameters-are-harder-to-tinker-with-by-guests": "招待状をURL記号化することで、ゲストにパラメータをいじられにくくする",
|
||||
"move-the-user-to-another-room-controlled-by-another-director": "別のディレクターが操作する別の部屋にユーザーを移動させる。",
|
||||
"send-a-direct-message-to-this-user-": "このユーザーにダイレクトメッセージを送信する。",
|
||||
"remotely-change-the-volume-of-this-guest": "このゲストの音量をリモートで変更する",
|
||||
"mute-this-guest-everywhere": "このゲストをどこでもミュートする",
|
||||
"start-recording-this-remote-stream-to-this-local-drive-experimental-": "このリモート配信をローカルドライブへの記録を開始します。*実験的*'",
|
||||
"the-remote-guest-will-record-their-local-stream-to-their-local-drive-experimental-": "リモートゲストは、自分のローカル配信をローカルドライブに録画します。*実験的*",
|
||||
"shift-this-video-down-in-order": "この映像を順番に下にずらしていく",
|
||||
"current-index-order-of-this-video": "この映像の現在のインデックス順",
|
||||
"shift-this-video-up-in-order": "この映像を順番に上へずらす",
|
||||
"remote-audio-settings": "リモート音声設定",
|
||||
"advanced-video-settings": "映像の詳細設定",
|
||||
"activate-or-reload-this-video-device-": "この映像デバイスを有効化または再読み込みする。",
|
||||
"load-the-next-guest-in-queue": "次のゲストをキューに入れる",
|
||||
"create-a-secondary-stream": "二次的配信を作成する",
|
||||
"add-to-calendar": "カレンダーに追加",
|
||||
"the-director-will-be-visible-in-scenes-as-if-a-performer-themselves-": "ディレクターは、まるで自分が演者であるかのように、シーンに表示されます",
|
||||
"useful-if-you-want-to-perform-and-direct-at-the-same-time": "演じると同時に演出したい場合に便利です。",
|
||||
"start-streaming": "配信開始",
|
||||
"if-disabled-the-invited-guest-will-not-be-able-to-see-or-hear-anyone-in-the-room-": "無効の場合、ゲストは部屋にいる人の顔を見たり、声を聞いたりすることができなくなります。",
|
||||
"if-disabled-you-must-manually-add-a-video-to-a-scene-for-it-to-appear-": "無効の場合は、動画を表示するために手動でシーンに追加する必要があります。",
|
||||
"guests-not-actively-speaking-will-be-hidden": "積極的に発言しないゲストは非表示になります",
|
||||
"increase-video-quality-that-guests-in-room-see-": "部屋にいるゲストが見る映像の画質を上げる",
|
||||
"the-guest-will-not-be-asked-for-a-video-device-on-connection": "接続時にゲストにビデオデバイスを要求しない",
|
||||
"toggle-solo-voice-chat": "ソロボイスチャットを切り替える",
|
||||
"add-to-scene-2": "シーン2に追加",
|
||||
"add-to-scene-3": "シーン3に追加",
|
||||
"add-to-scene-4": "シーン4に追加",
|
||||
"add-to-scene-5": "シーン5に追加",
|
||||
"add-to-scene-6": "シーン6に追加",
|
||||
"add-to-scene-7": "シーン7に追加",
|
||||
"hide-this-guest-everywhere": "このゲストをどこにでも隠す",
|
||||
"set-to-default-audio-channel": "デフォルトのオーディオチャンネルに設定",
|
||||
"set-to-audio-channel-1": "オーディオチャンネル1に設定",
|
||||
"set-to-audio-channel-2": "オーディオチャンネル2に設定",
|
||||
"set-to-audio-channel-3": "オーディオチャンネル3に設定",
|
||||
"set-to-audio-channel-4": "オーディオチャンネル4に設定",
|
||||
"set-to-audio-channel-5": "オーディオチャンネル5に設定",
|
||||
"toggle-the-remote-guest-s-speaker-output": "リモートゲストのスピーカー出力のトグルする",
|
||||
"toggle-the-remote-guest-s-display-output": "リモートゲストのディスプレイ出力をトグルする",
|
||||
"set-to-audio-channel-6": "オーディオチャンネル6に設定",
|
||||
"set-to-audio-channel-7": "オーディオチャンネル7に設定",
|
||||
"set-to-audio-channel-8": "オーディオチャンネル8に設定",
|
||||
"force-the-remote-sender-to-issue-a-keyframe-to-all-scenes-fixing-pixel-smearing-issues-": "Force the remote sender to issue a keyframe to all scenes, fixing Pixel Smearing issues.",
|
||||
"remotely-reload-the-guest-s-page-with-a-new-url": "Remotely reload the guest's page with a new URL",
|
||||
"change-user-parameters": "Change user parameters",
|
||||
"solo-this-video-everywhere": "Solo this video everywhere",
|
||||
"request-the-statistics-of-this-video-in-any-active-scene": "Request the statistics of this video in any active scene",
|
||||
"cannot-see-videos": "Cannot see videos",
|
||||
"cannot-hear-others": "Cannot hear others",
|
||||
"see-director-only": "See director only",
|
||||
"show-mini-preview": "Show Mini preview",
|
||||
"raise-hand-button": "Raise hand button",
|
||||
"show-labels": "Show labels",
|
||||
"transfer-to-a-new-room": "Transfer to a new Room",
|
||||
"enable-custom-password": "Enable custom password",
|
||||
"improve-performance-and-quality-with-this-tip": "Improve performance and quality with this tip",
|
||||
"allow-the-guests-to-pick-a-virtual-backscreen-effect": "Allow the guests to pick a virtual backscreen effect",
|
||||
"this-low-fi-video-codec-uses-very-little-cpu-even-with-dozens-of-active-viewers-": "This low-fi video codec uses very little CPU, even with dozens of active viewers.",
|
||||
"the-active-speakers-are-made-visible-automatically": "The active speakers are made visible automatically",
|
||||
"add-this-video-to-any-remote-scene-2-": "Add this Video to any remote '&scene=2'",
|
||||
"add-to-scene-8": "Add to Scene 8",
|
||||
"share-a-website-as-an-embedded-iframe": "Share a website as an embedded iFRAME",
|
||||
"room-settings": "Room Settings",
|
||||
"your-audio-and-video-settings": "Your audio and video Settings",
|
||||
"you-can-also-enable-the-director-s-video-output-afterwards-by-clicking-the-setting-s-button": "You can also enable the director`s Video Output afterwards by clicking the Setting`s button",
|
||||
"allow-for-remote-stat-monitoring-via-the-monitoring-tool": "Allow for remote stat monitoring via the monitoring tool",
|
||||
"the-guest-will-be-asked-if-they-want-to-reload-the-previous-link-when-revisiting": "The guest will be asked if they want to reload the previous link when revisiting",
|
||||
"the-guest-s-self-video-preview-will-appear-tiny-in-the-top-right": "The guest's self-video preview will appear tiny in the top right",
|
||||
"videos-use-an-animated-transition-when-being-remixed": "Videos use an animated transition when being remixed",
|
||||
"remotely-reload-the-guest-s-page-with-a-new-url": "リモートでゲストのページを新しいURLで再読み込みする",
|
||||
"change-user-parameters": "ユーザーパラメーターの変更",
|
||||
"solo-this-video-everywhere": "この映像をあらゆる場所に設置する",
|
||||
"request-the-statistics-of-this-video-in-any-active-scene": "この映像の統計情報を任意のアクティブシーンで要求する",
|
||||
"cannot-see-videos": "映像を見ることができない",
|
||||
"cannot-hear-others": "他の人の声が聞こえない",
|
||||
"see-director-only": "ディレクターのみ見れる",
|
||||
"show-mini-preview": "ミニプレビューを表示",
|
||||
"raise-hand-button": "挙手ボタン",
|
||||
"show-labels": "ラベルを表示する",
|
||||
"transfer-to-a-new-room": "新しい部屋へ移動",
|
||||
"enable-custom-password": "カスタムパスワードの有効化",
|
||||
"improve-performance-and-quality-with-this-tip": "このヒントで性能と品質を向上させる",
|
||||
"allow-the-guests-to-pick-a-virtual-backscreen-effect": "ゲストがバーチャルバックスクリーン効果を選べるようにする",
|
||||
"this-low-fi-video-codec-uses-very-little-cpu-even-with-dozens-of-active-viewers-": "このローファイ・ビデオコーデックは、数十人のアクティブな視聴者がいても、CPUをほとんど使用しません。",
|
||||
"the-active-speakers-are-made-visible-automatically": "アクティブスピーカーは自動的に可視化されます",
|
||||
"add-this-video-to-any-remote-scene-2-": "この映像を任意のリモート '&scene=2' に追加する。",
|
||||
"add-to-scene-8": "シーン8に追加",
|
||||
"share-a-website-as-an-embedded-iframe": "iFRAMEを埋め込んでウェブサイトを共有する",
|
||||
"room-settings": "部屋設定",
|
||||
"your-audio-and-video-settings": "オーディオと映像の設定",
|
||||
"you-can-also-enable-the-director-s-video-output-afterwards-by-clicking-the-setting-s-button": "設定ボタンをクリックすると、ディレクターの映像出力を有効にすることができます。",
|
||||
"allow-for-remote-stat-monitoring-via-the-monitoring-tool": "モニタリングツールによる遠隔地からの統計監視を可能にする。",
|
||||
"the-guest-will-be-asked-if-they-want-to-reload-the-previous-link-when-revisiting": "ゲストは、再訪問時に前のリンクを再読み込みするかどうかを尋ねられます。",
|
||||
"the-guest-s-self-video-preview-will-appear-tiny-in-the-top-right": "ゲストの映像プレビューは右上に小さく表示されます",
|
||||
"videos-use-an-animated-transition-when-being-remixed": "リミックス時に映像がアニメーションで切り替わる",
|
||||
"show-some-prep-suggestions-to-the-guests-on-connect": "Show some prep suggestions to the guests on connect",
|
||||
"set-the-background-color-to-bright-green": "Set the background color to bright green",
|
||||
"fade-videos-in-over-500ms": "Fade videos in over 500ms",
|
||||
"add-a-10px-margin-around-all-video-elements": "Add a 10px margin around all video elements",
|
||||
"playback-the-video-with-mono-channel-audio": "Playback the video with mono-channel audio",
|
||||
"have-the-videos-fit-their-respective-areas-even-if-it-means-cropping-a-bit": "Have the videos fit their respective areas, even if it means cropping a bit",
|
||||
"have-videos-be-aligned-with-sizing-designed-for-vertical-video": "Have videos be aligned with sizing designed for vertical video",
|
||||
"copy-this-stream-id-to-the-clipboard": "Copy this Stream ID to the clipboard",
|
||||
"click-here-to-edit-the-label-for-this-stream-changes-will-propagate-to-all-viewers-of-this-stream": "Click here to edit the label for this stream. Changes will propagate to all viewers of this stream",
|
||||
"this-will-ask-the-remote-guest-for-permission-to-change": "This will ask the remote guest for permission to change",
|
||||
"a-direct-solo-view-of-the-video-audio-stream-with-nothing-else-its-audio-can-be-remotely-controlled-from-here": "A direct solo view of the video/audio stream with nothing else. Its audio can be remotely controlled from here",
|
||||
"this-guest-raised-their-hand-click-this-to-clear-notification-": "This guest raised their hand. Click this to clear notification.",
|
||||
"increase-this-at-your-peril-changes-the-total-inbound-video-bitrate-per-guest-mobile-devices-excluded-webp-mode-also-excluded-": "Increase this at your peril. Changes the total inbound video bitrate per guest; mobile devices excluded. Webp-mode also excluded.",
|
||||
"hide-this-window": "Hide this window",
|
||||
"cycle-the-cameras": "Cycle the Cameras",
|
||||
"have-screen-shares-stream-id-s-use-a-predictable-prefixed-value-instead-of-a-random-one-": "Have screen-shares stream ID's use a predictable prefixed value instead of a random one.",
|
||||
"toggle-solo-voice-chat-or-hold-ctrl-cmd-when-selecting-to-make-it-two-way-private-": "Toggle solo voice chat or hold CTRL/CMD when selecting to make it two-way private.",
|
||||
"transfer-any-file-to-the-group": "Transfer any file to the group",
|
||||
"transfer-any-file": "Transfer any file",
|
||||
"the-camera-will-load-in-a-default-safe-mode-that-may-work-if-other-modes-fail-": "The camera will load in a default safe-mode that may work if other modes fail.",
|
||||
"disable-animated-transitions-during-video-mixing": "Disable animated transitions during video mixing",
|
||||
"allow-the-guest-to-select-a-file-to-upload-to-the-director-once-shared-it-will-show-in-the-chat-as-a-download-link-": "Allow the guest to select a file to upload to the director. Once shared, it will show in the chat as a download link.",
|
||||
"set-a-countdown-timer-that-this-guest-sees": "Set a countdown timer that this guest sees",
|
||||
"enter-a-room-name-to-quick-join": "Enter a room name to quick join"
|
||||
"set-the-background-color-to-bright-green": "グリーンバックを設定する",
|
||||
"fade-videos-in-over-500ms": "500ms以上で映像をフェードインする",
|
||||
"add-a-10px-margin-around-all-video-elements": "すべての映像の周囲に 10px のマージンを追加します。",
|
||||
"playback-the-video-with-mono-channel-audio": "モノラルチャンネル音声で映像を再生する",
|
||||
"have-the-videos-fit-their-respective-areas-even-if-it-means-cropping-a-bit": "映像は、多少トリミングしてでも、それぞれの領域に収まるようにする",
|
||||
"have-videos-be-aligned-with-sizing-designed-for-vertical-video": "縦型用に設計されたサイズで映像を整列させる",
|
||||
"copy-this-stream-id-to-the-clipboard": "このStream IDをクリップボードにコピーする",
|
||||
"click-here-to-edit-the-label-for-this-stream-changes-will-propagate-to-all-viewers-of-this-stream": "このストリームのラベルを編集するには、ここをクリックしてください。変更は、このストリームのすべての視聴者に反映されます。",
|
||||
"this-will-ask-the-remote-guest-for-permission-to-change": "これは、リモートゲストに変更の許可を求めるものです。",
|
||||
"a-direct-solo-view-of-the-video-audio-stream-with-nothing-else-its-audio-can-be-remotely-controlled-from-here": "何もない状態で映像・音声ストリームを直接見ることができます。その音声はここからリモートコントロールできます",
|
||||
"this-guest-raised-their-hand-click-this-to-clear-notification-": "このゲストは手を挙げました。これをクリックすると、通知が解除されます。",
|
||||
"increase-this-at-your-peril-changes-the-total-inbound-video-bitrate-per-guest-mobile-devices-excluded-webp-mode-also-excluded-": "これを増やすと危険です。モバイルデバイスを除く、ゲストごとの受信ビデオビットレートの合計を変更します。Webp-modeも除外されます。",
|
||||
"hide-this-window": "このウィンドウを隠す",
|
||||
"cycle-the-cameras": "カメラをサイクルさせる",
|
||||
"have-screen-shares-stream-id-s-use-a-predictable-prefixed-value-instead-of-a-random-one-": "スクリーンシェアのStreamIDに、ランダムな値ではなく、予測可能なプレフィックス値を使用する。",
|
||||
"toggle-solo-voice-chat-or-hold-ctrl-cmd-when-selecting-to-make-it-two-way-private-": "ソロボイスチャットの切り替え、またはCTRL/CMDを押しながら選択すると、双方向のプライベートチャットになります。",
|
||||
"transfer-any-file-to-the-group": "任意のファイルをグループに転送する",
|
||||
"transfer-any-file": "任意のファイルを転送する",
|
||||
"the-camera-will-load-in-a-default-safe-mode-that-may-work-if-other-modes-fail-": "カメラはデフォルトのセーフモードでロードされ、他のモードが失敗した場合に動作する可能性があります。",
|
||||
"disable-animated-transitions-during-video-mixing": "ビデオミキシング時のアニメーショントランジションの無効化",
|
||||
"allow-the-guest-to-select-a-file-to-upload-to-the-director-once-shared-it-will-show-in-the-chat-as-a-download-link-": "ゲストがディレクターにアップロードするファイルを選択できるようにします。共有されると、ダウンロードリンクとしてチャットに表示されます。",
|
||||
"set-a-countdown-timer-that-this-guest-sees": "このゲストへのカウントダウンタイマーを設定する",
|
||||
"enter-a-room-name-to-quick-join": "ルーム名を入力してクイックジョイン",
|
||||
"will-remember-the-room-prompting-you-the-next-time-you-visit-if-you-wish-to-load-this-director-s-room-again": "Will remember the room, prompting you the next time you visit if you wish to load this director's room again",
|
||||
"create-a-third-stream": "Create a Third Stream",
|
||||
"share-a-website-with-your-guests-iframe-": "Share a website with your guests (IFRAME)",
|
||||
"hold-ctrl-or-cmd-and-click-to-spotlight-this-video": "Hold CTRL (or CMD) and click to spotlight this video",
|
||||
"add-group-chat": "Add Group Chat",
|
||||
"if-checked-the-director-can-be-added-to-scenes-as-if-a-guest-otherwise-the-director-will-never-appear-in-a-scene-": "If checked, the director can be added to scenes as if a guest. Otherwise, the director will never appear in a scene.",
|
||||
"add-your-camera": "Add your Camera",
|
||||
"experimental": "experimental",
|
||||
"adjust-the-amount-of-effect-applied": "Adjust the amount of effect applied",
|
||||
"remote-screenshare": "Remote Screenshare",
|
||||
"the-guest-will-be-able-to-select-digital-video-effects-to-apply-": "The guest will be able to select digital video effects to apply.",
|
||||
"use-this-link-as-a-browser-source-to-capture-the-video-or-audio": "Use this link as a Browser Source to capture the video or audio",
|
||||
"show-a-custom-welcome-message-to-the-joining-guest-of-this-invite-link": "Show a custom welcome message to the joining guest of this invite link",
|
||||
"add-remove-from-group-1": "Add/remove from group 1",
|
||||
"add-remove-from-group-2": "Add/remove from group 2",
|
||||
"add-remove-from-group-3": "Add/remove from group 3",
|
||||
"add-remove-from-group-4": "Add/remove from group 4",
|
||||
"add-remove-from-group-5": "Add/remove from group 5",
|
||||
"add-remove-from-group-6": "Add/remove from group 6",
|
||||
"the-solo-view-link-of-the-director-s-video-": "The solo view link of the Director's video.",
|
||||
"only-the-director-s-video-will-be-visible-to-guests-and-within-group-scenes": "Only the director's video will be visible to guests and within group scenes",
|
||||
"allow-for-remote-co-directors": "Allow for remote co-directors",
|
||||
"jump-to-the-documentation": "Jump to the documentation"
|
||||
},
|
||||
"innerHTML": {
|
||||
"logo-header": "<font id=\"qos\" style=\"color: white;\">O</font>BS.Ninja ",
|
||||
@ -357,7 +380,10 @@
|
||||
"picture-in-picture": "Picture-in-picture",
|
||||
"chrome-cast": "Cast..",
|
||||
"join-room": "Join room",
|
||||
"waiting-for-mic-to-load": "Waiting for mic to load"
|
||||
"waiting-for-mic-to-load": "Waiting for mic to load",
|
||||
"join-the-room-basic": "Join room as participant",
|
||||
"allow-effects-invite": "Allow video effects to be used",
|
||||
"show-welcome-message": "Show welcome message"
|
||||
},
|
||||
"placeholders": {
|
||||
"join-by-room-name-here": "Join by Room Name here",
|
||||
@ -420,6 +446,17 @@
|
||||
"unhide": "unhide guest",
|
||||
"hide-guest": "hide guest",
|
||||
"confirm-disconnect-users": "Are you sure you wish to disconnect these users?",
|
||||
"confirm-disconnect-user": "Are you sure you wish to disconnect this user?"
|
||||
"confirm-disconnect-user": "Are you sure you wish to disconnect this user?",
|
||||
"enter-new-codirector-password": "Enter a co-director password to use",
|
||||
"control-room-co-director": "Control Room: Co-Director",
|
||||
"signal-meter": "Video packet loss indicator of video preview; green is good, red is bad. Flame implies CPU is overloaded. May not reflect the packet loss seen by scenes or other guests.",
|
||||
"waiting-for-the-stream": "Waiting for the stream. Tip: Adding &cleanoutput to the URL will hide this spinner, or click to retry, which will also hide it.",
|
||||
"main-director": "Main Director",
|
||||
"share-a-screen": "Share a screen",
|
||||
"stop-screen-sharing": "Stop screen sharing",
|
||||
"you-have-been-transferred": "You've been transferred to a different room",
|
||||
"you-are-no-longer-a-co-director": "You are no longer a co-director as you were transferred.",
|
||||
"transferred": "Transferred",
|
||||
"room-changed": "Your room has changed"
|
||||
}
|
||||
}
|
||||
@ -165,7 +165,30 @@
|
||||
"disable-animated-transitions-during-video-mixing": "Disable animated transitions during video mixing",
|
||||
"allow-the-guest-to-select-a-file-to-upload-to-the-director-once-shared-it-will-show-in-the-chat-as-a-download-link-": "Allow the guest to select a file to upload to the director. Once shared, it will show in the chat as a download link.",
|
||||
"set-a-countdown-timer-that-this-guest-sees": "Set a countdown timer that this guest sees",
|
||||
"enter-a-room-name-to-quick-join": "Enter a room name to quick join"
|
||||
"enter-a-room-name-to-quick-join": "Enter a room name to quick join",
|
||||
"will-remember-the-room-prompting-you-the-next-time-you-visit-if-you-wish-to-load-this-director-s-room-again": "Will remember the room, prompting you the next time you visit if you wish to load this director's room again",
|
||||
"create-a-third-stream": "Create a Third Stream",
|
||||
"share-a-website-with-your-guests-iframe-": "Share a website with your guests (IFRAME)",
|
||||
"hold-ctrl-or-cmd-and-click-to-spotlight-this-video": "Hold CTRL (or CMD) and click to spotlight this video",
|
||||
"add-group-chat": "Add Group Chat",
|
||||
"if-checked-the-director-can-be-added-to-scenes-as-if-a-guest-otherwise-the-director-will-never-appear-in-a-scene-": "If checked, the director can be added to scenes as if a guest. Otherwise, the director will never appear in a scene.",
|
||||
"add-your-camera": "Add your Camera",
|
||||
"experimental": "experimental",
|
||||
"adjust-the-amount-of-effect-applied": "Adjust the amount of effect applied",
|
||||
"remote-screenshare": "Remote Screenshare",
|
||||
"the-guest-will-be-able-to-select-digital-video-effects-to-apply-": "The guest will be able to select digital video effects to apply.",
|
||||
"use-this-link-as-a-browser-source-to-capture-the-video-or-audio": "Use this link as a Browser Source to capture the video or audio",
|
||||
"show-a-custom-welcome-message-to-the-joining-guest-of-this-invite-link": "Show a custom welcome message to the joining guest of this invite link",
|
||||
"add-remove-from-group-1": "Add/remove from group 1",
|
||||
"add-remove-from-group-2": "Add/remove from group 2",
|
||||
"add-remove-from-group-3": "Add/remove from group 3",
|
||||
"add-remove-from-group-4": "Add/remove from group 4",
|
||||
"add-remove-from-group-5": "Add/remove from group 5",
|
||||
"add-remove-from-group-6": "Add/remove from group 6",
|
||||
"the-solo-view-link-of-the-director-s-video-": "The solo view link of the Director's video.",
|
||||
"only-the-director-s-video-will-be-visible-to-guests-and-within-group-scenes": "Only the director's video will be visible to guests and within group scenes",
|
||||
"allow-for-remote-co-directors": "Allow for remote co-directors",
|
||||
"jump-to-the-documentation": "Jump to the documentation"
|
||||
},
|
||||
"innerHTML": {
|
||||
"logo-header": "<font id=\"qos\" style=\"color: white;\">O</font>BS Ninja",
|
||||
@ -357,7 +380,10 @@
|
||||
"picture-in-picture": "Picture-in-picture",
|
||||
"chrome-cast": "Cast..",
|
||||
"join-room": "Join room",
|
||||
"waiting-for-mic-to-load": "Waiting for mic to load"
|
||||
"waiting-for-mic-to-load": "Waiting for mic to load",
|
||||
"join-the-room-basic": "Join room as participant",
|
||||
"allow-effects-invite": "Allow video effects to be used",
|
||||
"show-welcome-message": "Show welcome message"
|
||||
},
|
||||
"placeholders": {
|
||||
"join-by-room-name-here": "Ga binnen met een kamer naam",
|
||||
@ -420,6 +446,17 @@
|
||||
"unhide": "unhide guest",
|
||||
"hide-guest": "hide guest",
|
||||
"confirm-disconnect-users": "Are you sure you wish to disconnect these users?",
|
||||
"confirm-disconnect-user": "Are you sure you wish to disconnect this user?"
|
||||
"confirm-disconnect-user": "Are you sure you wish to disconnect this user?",
|
||||
"enter-new-codirector-password": "Enter a co-director password to use",
|
||||
"control-room-co-director": "Control Room: Co-Director",
|
||||
"signal-meter": "Video packet loss indicator of video preview; green is good, red is bad. Flame implies CPU is overloaded. May not reflect the packet loss seen by scenes or other guests.",
|
||||
"waiting-for-the-stream": "Waiting for the stream. Tip: Adding &cleanoutput to the URL will hide this spinner, or click to retry, which will also hide it.",
|
||||
"main-director": "Main Director",
|
||||
"share-a-screen": "Share a screen",
|
||||
"stop-screen-sharing": "Stop screen sharing",
|
||||
"you-have-been-transferred": "You've been transferred to a different room",
|
||||
"you-are-no-longer-a-co-director": "You are no longer a co-director as you were transferred.",
|
||||
"transferred": "Transferred",
|
||||
"room-changed": "Your room has changed"
|
||||
}
|
||||
}
|
||||
@ -165,7 +165,30 @@
|
||||
"disable-animated-transitions-during-video-mixing": "Disable animated transitions during video mixing",
|
||||
"allow-the-guest-to-select-a-file-to-upload-to-the-director-once-shared-it-will-show-in-the-chat-as-a-download-link-": "Allow the guest to select a file to upload to the director. Once shared, it will show in the chat as a download link.",
|
||||
"set-a-countdown-timer-that-this-guest-sees": "Set a countdown timer that this guest sees",
|
||||
"enter-a-room-name-to-quick-join": "Enter a room name to quick join"
|
||||
"enter-a-room-name-to-quick-join": "Enter a room name to quick join",
|
||||
"will-remember-the-room-prompting-you-the-next-time-you-visit-if-you-wish-to-load-this-director-s-room-again": "Will remember the room, prompting you the next time you visit if you wish to load this director's room again",
|
||||
"create-a-third-stream": "Create a Third Stream",
|
||||
"share-a-website-with-your-guests-iframe-": "Share a website with your guests (IFRAME)",
|
||||
"hold-ctrl-or-cmd-and-click-to-spotlight-this-video": "Hold CTRL (or CMD) and click to spotlight this video",
|
||||
"add-group-chat": "Add Group Chat",
|
||||
"if-checked-the-director-can-be-added-to-scenes-as-if-a-guest-otherwise-the-director-will-never-appear-in-a-scene-": "If checked, the director can be added to scenes as if a guest. Otherwise, the director will never appear in a scene.",
|
||||
"add-your-camera": "Add your Camera",
|
||||
"experimental": "experimental",
|
||||
"adjust-the-amount-of-effect-applied": "Adjust the amount of effect applied",
|
||||
"remote-screenshare": "Remote Screenshare",
|
||||
"the-guest-will-be-able-to-select-digital-video-effects-to-apply-": "The guest will be able to select digital video effects to apply.",
|
||||
"use-this-link-as-a-browser-source-to-capture-the-video-or-audio": "Use this link as a Browser Source to capture the video or audio",
|
||||
"show-a-custom-welcome-message-to-the-joining-guest-of-this-invite-link": "Show a custom welcome message to the joining guest of this invite link",
|
||||
"add-remove-from-group-1": "Add/remove from group 1",
|
||||
"add-remove-from-group-2": "Add/remove from group 2",
|
||||
"add-remove-from-group-3": "Add/remove from group 3",
|
||||
"add-remove-from-group-4": "Add/remove from group 4",
|
||||
"add-remove-from-group-5": "Add/remove from group 5",
|
||||
"add-remove-from-group-6": "Add/remove from group 6",
|
||||
"the-solo-view-link-of-the-director-s-video-": "The solo view link of the Director's video.",
|
||||
"only-the-director-s-video-will-be-visible-to-guests-and-within-group-scenes": "Only the director's video will be visible to guests and within group scenes",
|
||||
"allow-for-remote-co-directors": "Allow for remote co-directors",
|
||||
"jump-to-the-documentation": "Jump to the documentation"
|
||||
},
|
||||
"innerHTML": {
|
||||
"logo-header": "<font id=\"qos\" style=\"color: white;\">O</font>BS Ninja - Pig Latin",
|
||||
@ -357,7 +380,10 @@
|
||||
"picture-in-picture": "Picture-in-picture",
|
||||
"chrome-cast": "Cast..",
|
||||
"join-room": "Join room",
|
||||
"waiting-for-mic-to-load": "Waiting for mic to load"
|
||||
"waiting-for-mic-to-load": "Waiting for mic to load",
|
||||
"join-the-room-basic": "Join room as participant",
|
||||
"allow-effects-invite": "Allow video effects to be used",
|
||||
"show-welcome-message": "Show welcome message"
|
||||
},
|
||||
"placeholders": {
|
||||
"join-by-room-name-here": "Erehay ouyay ancay epray-enerategay",
|
||||
@ -420,6 +446,17 @@
|
||||
"unhide": "unhide-guestA",
|
||||
"hide-guest": "hide-guestA",
|
||||
"confirm-disconnect-users": "Are you sure you wish to disconnect these users?",
|
||||
"confirm-disconnect-user": "Are you sure you wish to disconnect this user?"
|
||||
"confirm-disconnect-user": "Are you sure you wish to disconnect this user?",
|
||||
"enter-new-codirector-password": "Enter a co-director password to use",
|
||||
"control-room-co-director": "Control Room: Co-Director",
|
||||
"signal-meter": "Video packet loss indicator of video preview; green is good, red is bad. Flame implies CPU is overloaded. May not reflect the packet loss seen by scenes or other guests.",
|
||||
"waiting-for-the-stream": "Waiting for the stream. Tip: Adding &cleanoutput to the URL will hide this spinner, or click to retry, which will also hide it.",
|
||||
"main-director": "Main Director",
|
||||
"share-a-screen": "Share a screen",
|
||||
"stop-screen-sharing": "Stop screen sharing",
|
||||
"you-have-been-transferred": "You've been transferred to a different room",
|
||||
"you-are-no-longer-a-co-director": "You are no longer a co-director as you were transferred.",
|
||||
"transferred": "Transferred",
|
||||
"room-changed": "Your room has changed"
|
||||
}
|
||||
}
|
||||
@ -165,7 +165,30 @@
|
||||
"disable-animated-transitions-during-video-mixing": "Disable animated transitions during video mixing",
|
||||
"allow-the-guest-to-select-a-file-to-upload-to-the-director-once-shared-it-will-show-in-the-chat-as-a-download-link-": "Allow the guest to select a file to upload to the director. Once shared, it will show in the chat as a download link.",
|
||||
"set-a-countdown-timer-that-this-guest-sees": "Set a countdown timer that this guest sees",
|
||||
"enter-a-room-name-to-quick-join": "Enter a room name to quick join"
|
||||
"enter-a-room-name-to-quick-join": "Enter a room name to quick join",
|
||||
"will-remember-the-room-prompting-you-the-next-time-you-visit-if-you-wish-to-load-this-director-s-room-again": "Will remember the room, prompting you the next time you visit if you wish to load this director's room again",
|
||||
"create-a-third-stream": "Create a Third Stream",
|
||||
"share-a-website-with-your-guests-iframe-": "Share a website with your guests (IFRAME)",
|
||||
"hold-ctrl-or-cmd-and-click-to-spotlight-this-video": "Hold CTRL (or CMD) and click to spotlight this video",
|
||||
"add-group-chat": "Add Group Chat",
|
||||
"if-checked-the-director-can-be-added-to-scenes-as-if-a-guest-otherwise-the-director-will-never-appear-in-a-scene-": "If checked, the director can be added to scenes as if a guest. Otherwise, the director will never appear in a scene.",
|
||||
"add-your-camera": "Add your Camera",
|
||||
"experimental": "experimental",
|
||||
"adjust-the-amount-of-effect-applied": "Adjust the amount of effect applied",
|
||||
"remote-screenshare": "Remote Screenshare",
|
||||
"the-guest-will-be-able-to-select-digital-video-effects-to-apply-": "The guest will be able to select digital video effects to apply.",
|
||||
"use-this-link-as-a-browser-source-to-capture-the-video-or-audio": "Use this link as a Browser Source to capture the video or audio",
|
||||
"show-a-custom-welcome-message-to-the-joining-guest-of-this-invite-link": "Show a custom welcome message to the joining guest of this invite link",
|
||||
"add-remove-from-group-1": "Add/remove from group 1",
|
||||
"add-remove-from-group-2": "Add/remove from group 2",
|
||||
"add-remove-from-group-3": "Add/remove from group 3",
|
||||
"add-remove-from-group-4": "Add/remove from group 4",
|
||||
"add-remove-from-group-5": "Add/remove from group 5",
|
||||
"add-remove-from-group-6": "Add/remove from group 6",
|
||||
"the-solo-view-link-of-the-director-s-video-": "The solo view link of the Director's video.",
|
||||
"only-the-director-s-video-will-be-visible-to-guests-and-within-group-scenes": "Only the director's video will be visible to guests and within group scenes",
|
||||
"allow-for-remote-co-directors": "Allow for remote co-directors",
|
||||
"jump-to-the-documentation": "Jump to the documentation"
|
||||
},
|
||||
"innerHTML": {
|
||||
"logo-header": "<font id=\"qos\" style=\"color: white;\">O</font>BS.Ninja ",
|
||||
@ -357,7 +380,10 @@
|
||||
"picture-in-picture": "Picture-in-picture",
|
||||
"chrome-cast": "Cast..",
|
||||
"join-room": "Join room",
|
||||
"waiting-for-mic-to-load": "Waiting for mic to load"
|
||||
"waiting-for-mic-to-load": "Waiting for mic to load",
|
||||
"join-the-room-basic": "Join room as participant",
|
||||
"allow-effects-invite": "Allow video effects to be used",
|
||||
"show-welcome-message": "Show welcome message"
|
||||
},
|
||||
"placeholders": {
|
||||
"join-by-room-name-here": "Introduza aqui numa sala pelo seu nome",
|
||||
@ -420,6 +446,17 @@
|
||||
"unhide": "unhide guest",
|
||||
"hide-guest": "hide guest",
|
||||
"confirm-disconnect-users": "Are you sure you wish to disconnect these users?",
|
||||
"confirm-disconnect-user": "Are you sure you wish to disconnect this user?"
|
||||
"confirm-disconnect-user": "Are you sure you wish to disconnect this user?",
|
||||
"enter-new-codirector-password": "Enter a co-director password to use",
|
||||
"control-room-co-director": "Control Room: Co-Director",
|
||||
"signal-meter": "Video packet loss indicator of video preview; green is good, red is bad. Flame implies CPU is overloaded. May not reflect the packet loss seen by scenes or other guests.",
|
||||
"waiting-for-the-stream": "Waiting for the stream. Tip: Adding &cleanoutput to the URL will hide this spinner, or click to retry, which will also hide it.",
|
||||
"main-director": "Main Director",
|
||||
"share-a-screen": "Share a screen",
|
||||
"stop-screen-sharing": "Stop screen sharing",
|
||||
"you-have-been-transferred": "You've been transferred to a different room",
|
||||
"you-are-no-longer-a-co-director": "You are no longer a co-director as you were transferred.",
|
||||
"transferred": "Transferred",
|
||||
"room-changed": "Your room has changed"
|
||||
}
|
||||
}
|
||||
@ -116,7 +116,7 @@
|
||||
"set-to-audio-channel-8": "Установить 8 аудио-каналом",
|
||||
"force-the-remote-sender-to-issue-a-keyframe-to-all-scenes-fixing-pixel-smearing-issues-": "Заставить источник сигнала прислать ключевой кадр для исправления рассыпания пикселей в картинке.",
|
||||
"remotely-reload-the-guest-s-page-with-a-new-url": "Обновить адрес ссылки удаленно перегрузив страницу пользователя",
|
||||
"change-user-parameters": "Изменить параметры пользователя",
|
||||
"change-user-parameters": "Изменить параметры пользователя",
|
||||
"solo-this-video-everywhere": "Сделать видео единственно активным везде",
|
||||
"request-the-statistics-of-this-video-in-any-active-scene": "Запросить по данному видео статистику из любой активной сцены",
|
||||
"cannot-see-videos": "никого не видит",
|
||||
@ -164,13 +164,36 @@
|
||||
"disable-animated-transitions-during-video-mixing": "Отключить анимированную смену видео",
|
||||
"allow-the-guest-to-select-a-file-to-upload-to-the-director-once-shared-it-will-show-in-the-chat-as-a-download-link-": "Разрешить гостю посылать файлы ведущему. После загрузки файл будет отображен в чате ссылкой для скачивания.",
|
||||
"set-a-countdown-timer-that-this-guest-sees": "Включить таймер обратного отсчета для гостей",
|
||||
"enter-a-room-name-to-quick-join": "Введите название комнаты для быстрого подключения"
|
||||
"enter-a-room-name-to-quick-join": "Введите название комнаты для быстрого подключения",
|
||||
"will-remember-the-room-prompting-you-the-next-time-you-visit-if-you-wish-to-load-this-director-s-room-again": "Will remember the room, prompting you the next time you visit if you wish to load this director's room again",
|
||||
"create-a-third-stream": "Create a Third Stream",
|
||||
"share-a-website-with-your-guests-iframe-": "Share a website with your guests (IFRAME)",
|
||||
"hold-ctrl-or-cmd-and-click-to-spotlight-this-video": "Hold CTRL (or CMD) and click to spotlight this video",
|
||||
"add-group-chat": "Add Group Chat",
|
||||
"if-checked-the-director-can-be-added-to-scenes-as-if-a-guest-otherwise-the-director-will-never-appear-in-a-scene-": "If checked, the director can be added to scenes as if a guest. Otherwise, the director will never appear in a scene.",
|
||||
"add-your-camera": "Add your Camera",
|
||||
"experimental": "experimental",
|
||||
"adjust-the-amount-of-effect-applied": "Adjust the amount of effect applied",
|
||||
"remote-screenshare": "Remote Screenshare",
|
||||
"the-guest-will-be-able-to-select-digital-video-effects-to-apply-": "The guest will be able to select digital video effects to apply.",
|
||||
"use-this-link-as-a-browser-source-to-capture-the-video-or-audio": "Use this link as a Browser Source to capture the video or audio",
|
||||
"show-a-custom-welcome-message-to-the-joining-guest-of-this-invite-link": "Show a custom welcome message to the joining guest of this invite link",
|
||||
"add-remove-from-group-1": "Add/remove from group 1",
|
||||
"add-remove-from-group-2": "Add/remove from group 2",
|
||||
"add-remove-from-group-3": "Add/remove from group 3",
|
||||
"add-remove-from-group-4": "Add/remove from group 4",
|
||||
"add-remove-from-group-5": "Add/remove from group 5",
|
||||
"add-remove-from-group-6": "Add/remove from group 6",
|
||||
"the-solo-view-link-of-the-director-s-video-": "The solo view link of the Director's video.",
|
||||
"only-the-director-s-video-will-be-visible-to-guests-and-within-group-scenes": "Only the director's video will be visible to guests and within group scenes",
|
||||
"allow-for-remote-co-directors": "Allow for remote co-directors",
|
||||
"jump-to-the-documentation": "Jump to the documentation"
|
||||
},
|
||||
"innerHTML": {
|
||||
"innerHTML": {
|
||||
"join-room": "Подключиться",
|
||||
"join-room-with-mic": "Подключиться с микрофоном",
|
||||
"join-room-with-camera": "Подключиться с камерой",
|
||||
"copy-this-url": "Вставьте эту ссылку в OBS \"<Браузер\"",
|
||||
"copy-this-url": "Вставьте эту ссылку в OBS \"<Браузер\"",
|
||||
"share-screen-with-room": "Показать экран",
|
||||
"share-your-mic": "Использовать микрофон",
|
||||
"share-your-camera": "Использовать камеру",
|
||||
@ -352,7 +375,9 @@
|
||||
"toggle-control-video": "Toggle control bar",
|
||||
"picture-in-picture": "Картинка-в-картинке",
|
||||
"chrome-cast": "Показать видео через..",
|
||||
"allow-effects-invite": "Разрешить использование видео-эффектов"
|
||||
"allow-effects-invite": "Разрешить использование видео-эффектов",
|
||||
"join-the-room-basic": "Join room as participant",
|
||||
"show-welcome-message": "Show welcome message"
|
||||
},
|
||||
"placeholders": {
|
||||
"join-by-room-name-here": "Подключиться по названию комнаты",
|
||||
@ -415,6 +440,17 @@
|
||||
"unhide": "Показать гостя",
|
||||
"hide-guest": "Скрыть гостя",
|
||||
"confirm-disconnect-users": "Точно хотите отключить этих пользователей?",
|
||||
"confirm-disconnect-user": "Точно хотите отключить пользователя?"
|
||||
"confirm-disconnect-user": "Точно хотите отключить пользователя?",
|
||||
"enter-new-codirector-password": "Enter a co-director password to use",
|
||||
"control-room-co-director": "Control Room: Co-Director",
|
||||
"signal-meter": "Video packet loss indicator of video preview; green is good, red is bad. Flame implies CPU is overloaded. May not reflect the packet loss seen by scenes or other guests.",
|
||||
"waiting-for-the-stream": "Waiting for the stream. Tip: Adding &cleanoutput to the URL will hide this spinner, or click to retry, which will also hide it.",
|
||||
"main-director": "Main Director",
|
||||
"share-a-screen": "Share a screen",
|
||||
"stop-screen-sharing": "Stop screen sharing",
|
||||
"you-have-been-transferred": "You've been transferred to a different room",
|
||||
"you-are-no-longer-a-co-director": "You are no longer a co-director as you were transferred.",
|
||||
"transferred": "Transferred",
|
||||
"room-changed": "Your room has changed"
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -165,7 +165,30 @@
|
||||
"disable-animated-transitions-during-video-mixing": "Disable animated transitions during video mixing",
|
||||
"allow-the-guest-to-select-a-file-to-upload-to-the-director-once-shared-it-will-show-in-the-chat-as-a-download-link-": "Allow the guest to select a file to upload to the director. Once shared, it will show in the chat as a download link.",
|
||||
"set-a-countdown-timer-that-this-guest-sees": "Set a countdown timer that this guest sees",
|
||||
"enter-a-room-name-to-quick-join": "Enter a room name to quick join"
|
||||
"enter-a-room-name-to-quick-join": "Enter a room name to quick join",
|
||||
"will-remember-the-room-prompting-you-the-next-time-you-visit-if-you-wish-to-load-this-director-s-room-again": "Will remember the room, prompting you the next time you visit if you wish to load this director's room again",
|
||||
"create-a-third-stream": "Create a Third Stream",
|
||||
"share-a-website-with-your-guests-iframe-": "Share a website with your guests (IFRAME)",
|
||||
"hold-ctrl-or-cmd-and-click-to-spotlight-this-video": "Hold CTRL (or CMD) and click to spotlight this video",
|
||||
"add-group-chat": "Add Group Chat",
|
||||
"if-checked-the-director-can-be-added-to-scenes-as-if-a-guest-otherwise-the-director-will-never-appear-in-a-scene-": "If checked, the director can be added to scenes as if a guest. Otherwise, the director will never appear in a scene.",
|
||||
"add-your-camera": "Add your Camera",
|
||||
"experimental": "experimental",
|
||||
"adjust-the-amount-of-effect-applied": "Adjust the amount of effect applied",
|
||||
"remote-screenshare": "Remote Screenshare",
|
||||
"the-guest-will-be-able-to-select-digital-video-effects-to-apply-": "The guest will be able to select digital video effects to apply.",
|
||||
"use-this-link-as-a-browser-source-to-capture-the-video-or-audio": "Use this link as a Browser Source to capture the video or audio",
|
||||
"show-a-custom-welcome-message-to-the-joining-guest-of-this-invite-link": "Show a custom welcome message to the joining guest of this invite link",
|
||||
"add-remove-from-group-1": "Add/remove from group 1",
|
||||
"add-remove-from-group-2": "Add/remove from group 2",
|
||||
"add-remove-from-group-3": "Add/remove from group 3",
|
||||
"add-remove-from-group-4": "Add/remove from group 4",
|
||||
"add-remove-from-group-5": "Add/remove from group 5",
|
||||
"add-remove-from-group-6": "Add/remove from group 6",
|
||||
"the-solo-view-link-of-the-director-s-video-": "The solo view link of the Director's video.",
|
||||
"only-the-director-s-video-will-be-visible-to-guests-and-within-group-scenes": "Only the director's video will be visible to guests and within group scenes",
|
||||
"allow-for-remote-co-directors": "Allow for remote co-directors",
|
||||
"jump-to-the-documentation": "Jump to the documentation"
|
||||
},
|
||||
"innerHTML": {
|
||||
"logo-header": "<font id=\"qos\" style=\"color: white;\">O</font>BS.Ninja ",
|
||||
@ -357,7 +380,10 @@
|
||||
"picture-in-picture": "Picture-in-picture",
|
||||
"chrome-cast": "Cast..",
|
||||
"join-room": "Join room",
|
||||
"waiting-for-mic-to-load": "Waiting for mic to load"
|
||||
"waiting-for-mic-to-load": "Waiting for mic to load",
|
||||
"join-the-room-basic": "Join room as participant",
|
||||
"allow-effects-invite": "Allow video effects to be used",
|
||||
"show-welcome-message": "Show welcome message"
|
||||
},
|
||||
"placeholders": {
|
||||
"join-by-room-name-here": "Join by Room Name here",
|
||||
@ -420,6 +446,17 @@
|
||||
"unhide": "unhide guest",
|
||||
"hide-guest": "hide guest",
|
||||
"confirm-disconnect-users": "Are you sure you wish to disconnect these users?",
|
||||
"confirm-disconnect-user": "Are you sure you wish to disconnect this user?"
|
||||
"confirm-disconnect-user": "Are you sure you wish to disconnect this user?",
|
||||
"enter-new-codirector-password": "Enter a co-director password to use",
|
||||
"control-room-co-director": "Control Room: Co-Director",
|
||||
"signal-meter": "Video packet loss indicator of video preview; green is good, red is bad. Flame implies CPU is overloaded. May not reflect the packet loss seen by scenes or other guests.",
|
||||
"waiting-for-the-stream": "Waiting for the stream. Tip: Adding &cleanoutput to the URL will hide this spinner, or click to retry, which will also hide it.",
|
||||
"main-director": "Main Director",
|
||||
"share-a-screen": "Share a screen",
|
||||
"stop-screen-sharing": "Stop screen sharing",
|
||||
"you-have-been-transferred": "You've been transferred to a different room",
|
||||
"you-are-no-longer-a-co-director": "You are no longer a co-director as you were transferred.",
|
||||
"transferred": "Transferred",
|
||||
"room-changed": "Your room has changed"
|
||||
}
|
||||
}
|
||||
@ -78,6 +78,7 @@ const updateList = [
|
||||
"fr",
|
||||
"it",
|
||||
"ja",
|
||||
"eu",
|
||||
"nl",
|
||||
"pig",
|
||||
"pt",
|
||||
|
||||
@ -157,7 +157,30 @@
|
||||
"disable-animated-transitions-during-video-mixing": "Disable animated transitions during video mixing",
|
||||
"allow-the-guest-to-select-a-file-to-upload-to-the-director-once-shared-it-will-show-in-the-chat-as-a-download-link-": "Allow the guest to select a file to upload to the director. Once shared, it will show in the chat as a download link.",
|
||||
"set-a-countdown-timer-that-this-guest-sees": "Set a countdown timer that this guest sees",
|
||||
"enter-a-room-name-to-quick-join": "Enter a room name to quick join"
|
||||
"enter-a-room-name-to-quick-join": "Enter a room name to quick join",
|
||||
"will-remember-the-room-prompting-you-the-next-time-you-visit-if-you-wish-to-load-this-director-s-room-again": "Will remember the room, prompting you the next time you visit if you wish to load this director's room again",
|
||||
"create-a-third-stream": "Create a Third Stream",
|
||||
"share-a-website-with-your-guests-iframe-": "Share a website with your guests (IFRAME)",
|
||||
"hold-ctrl-or-cmd-and-click-to-spotlight-this-video": "Hold CTRL (or CMD) and click to spotlight this video",
|
||||
"add-group-chat": "Add Group Chat",
|
||||
"if-checked-the-director-can-be-added-to-scenes-as-if-a-guest-otherwise-the-director-will-never-appear-in-a-scene-": "If checked, the director can be added to scenes as if a guest. Otherwise, the director will never appear in a scene.",
|
||||
"add-your-camera": "Add your Camera",
|
||||
"experimental": "experimental",
|
||||
"adjust-the-amount-of-effect-applied": "Adjust the amount of effect applied",
|
||||
"remote-screenshare": "Remote Screenshare",
|
||||
"the-guest-will-be-able-to-select-digital-video-effects-to-apply-": "The guest will be able to select digital video effects to apply.",
|
||||
"use-this-link-as-a-browser-source-to-capture-the-video-or-audio": "Use this link as a Browser Source to capture the video or audio",
|
||||
"show-a-custom-welcome-message-to-the-joining-guest-of-this-invite-link": "Show a custom welcome message to the joining guest of this invite link",
|
||||
"add-remove-from-group-1": "Add/remove from group 1",
|
||||
"add-remove-from-group-2": "Add/remove from group 2",
|
||||
"add-remove-from-group-3": "Add/remove from group 3",
|
||||
"add-remove-from-group-4": "Add/remove from group 4",
|
||||
"add-remove-from-group-5": "Add/remove from group 5",
|
||||
"add-remove-from-group-6": "Add/remove from group 6",
|
||||
"the-solo-view-link-of-the-director-s-video-": "The solo view link of the Director's video.",
|
||||
"only-the-director-s-video-will-be-visible-to-guests-and-within-group-scenes": "Only the director's video will be visible to guests and within group scenes",
|
||||
"allow-for-remote-co-directors": "Allow for remote co-directors",
|
||||
"jump-to-the-documentation": "Jump to the documentation"
|
||||
},
|
||||
"innerHTML": {
|
||||
"logo-header": "\n\t\t\t\t\t<font id=\"qos\">O</font>BS.Ninja \n\t\t\t\t",
|
||||
@ -346,7 +369,10 @@
|
||||
"share-your-screen": "Share your Screen",
|
||||
"click-start-to-join": "Click Start to Join",
|
||||
"waiting-for-mic-to-load": "Waiting for mic to load",
|
||||
"waiting-for-camera-to-load": "Waiting for Camera to load"
|
||||
"waiting-for-camera-to-load": "Waiting for Camera to load",
|
||||
"join-the-room-basic": "Join room as participant",
|
||||
"allow-effects-invite": "Allow video effects to be used",
|
||||
"show-welcome-message": "Show welcome message"
|
||||
},
|
||||
"placeholders": {
|
||||
"join-by-room-name-here": "приєднано до кімнати тут ",
|
||||
@ -409,6 +435,17 @@
|
||||
"unhide": "unhide guest",
|
||||
"hide-guest": "hide guest",
|
||||
"confirm-disconnect-users": "Are you sure you wish to disconnect these users?",
|
||||
"confirm-disconnect-user": "Are you sure you wish to disconnect this user?"
|
||||
"confirm-disconnect-user": "Are you sure you wish to disconnect this user?",
|
||||
"enter-new-codirector-password": "Enter a co-director password to use",
|
||||
"control-room-co-director": "Control Room: Co-Director",
|
||||
"signal-meter": "Video packet loss indicator of video preview; green is good, red is bad. Flame implies CPU is overloaded. May not reflect the packet loss seen by scenes or other guests.",
|
||||
"waiting-for-the-stream": "Waiting for the stream. Tip: Adding &cleanoutput to the URL will hide this spinner, or click to retry, which will also hide it.",
|
||||
"main-director": "Main Director",
|
||||
"share-a-screen": "Share a screen",
|
||||
"stop-screen-sharing": "Stop screen sharing",
|
||||
"you-have-been-transferred": "You've been transferred to a different room",
|
||||
"you-are-no-longer-a-co-director": "You are no longer a co-director as you were transferred.",
|
||||
"transferred": "Transferred",
|
||||
"room-changed": "Your room has changed"
|
||||
}
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user