diff --git a/README.md b/README.md
index 4c9fe3ee..b3e5170a 100644
--- a/README.md
+++ b/README.md
@@ -2,7 +2,7 @@
-
Free WebRTC - SFU - Simple, Secure, Scalable Real-Time Video Conferences with support for up to 4k resolution. It's compatible with all major browsers and platforms
+Free WebRTC - SFU - Simple, Secure, Scalable Real-Time Video Conferences with support for up to 8k resolution and 60fps. It's compatible with all major browsers and platforms
diff --git a/public/js/RoomClient.js b/public/js/RoomClient.js
index 04900b1c..91270ea0 100644
--- a/public/js/RoomClient.js
+++ b/public/js/RoomClient.js
@@ -9,7 +9,7 @@
* @license For commercial or closed source, contact us at license.mirotalk@gmail.com or purchase directly via CodeCanyon
* @license CodeCanyon: https://codecanyon.net/item/mirotalk-sfu-webrtc-realtime-video-conferences/40769970
* @author Miroslav Pejic - miroslav.pejic.85@gmail.com
- * @version 1.5.36
+ * @version 1.5.37
*
*/
@@ -1626,6 +1626,30 @@ class RoomClient {
},
}; // video cam constraints ultra high bandwidth
break;
+ case '6k':
+ videoConstraints = {
+ audio: false,
+ video: {
+ width: { exact: 6144 },
+ height: { exact: 3456 },
+ deviceId: deviceId,
+ aspectRatio: 1.777,
+ frameRate: frameRate,
+ },
+ }; // video cam constraints Very ultra high bandwidth
+ break;
+ case '8k':
+ videoConstraints = {
+ audio: false,
+ video: {
+ width: { exact: 7680 },
+ height: { exact: 4320 },
+ deviceId: deviceId,
+ aspectRatio: 1.777,
+ frameRate: frameRate,
+ },
+ }; // video cam constraints Very ultra high bandwidth
+ break;
default:
break;
}
@@ -2230,7 +2254,6 @@ class RoomClient {
d = document.createElement('div');
d.className = 'Camera';
d.id = id + '__video';
- d.style.display = isHideALLVideosActive ? 'none' : 'block';
elem = document.createElement('video');
elem.setAttribute('id', id);
!remoteIsScreen && elem.setAttribute('name', remotePeerId);
@@ -2272,7 +2295,7 @@ class RoomClient {
pn.className = html.pin;
ha = document.createElement('button');
ha.id = id + '__hideALL';
- ha.className = html.hideALL;
+ ha.className = html.hideALL + ' focusMode';
sf = document.createElement('button');
sf.id = id + '___' + remotePeerId + '___sendFile';
sf.className = html.sendFile;
@@ -2359,8 +2382,17 @@ class RoomClient {
this.checkPeerInfoStatus(peer_info);
if (!remoteIsScreen && remotePrivacyOn) this.setVideoPrivacyStatus(remotePeerId, remotePrivacyOn);
if (remoteIsScreen && !isHideALLVideosActive) pn.click();
- this.sound('joined');
- handleAspectRatio();
+ if (isHideALLVideosActive) {
+ isHideALLVideosActive = false;
+ const children = this.videoMediaContainer.children;
+ const btnsHA = document.querySelectorAll('.focusMode');
+ for (let child of children) {
+ child.style.display = 'block';
+ }
+ btnsHA.forEach((btn) => {
+ btn.style.color = 'white';
+ });
+ }
console.log('[addConsumer] Video-element-count', this.videoMediaContainer.childElementCount);
if (!this.isMobileDevice) {
this.setTippy(pn.id, 'Toggle Pin', 'bottom');
@@ -2378,6 +2410,8 @@ class RoomClient {
this.setTippy(ko.id, 'Eject', 'bottom');
}
this.setPeerAudio(remotePeerId, remotePeerAudio);
+ handleAspectRatio();
+ this.sound('joined');
break;
case mediaType.audio:
elem = document.createElement('audio');
@@ -6383,7 +6417,7 @@ class RoomClient {
// HANDLE VIDEO
// ###################################################
- handleHA(uid, myVideoContainerId) {
+ handleHA(uid, videoContainerId) {
let btnHa = this.getId(uid);
if (btnHa) {
btnHa.addEventListener('click', (e) => {
@@ -6398,15 +6432,15 @@ class RoomClient {
isHideALLVideosActive = !isHideALLVideosActive;
e.target.style.color = isHideALLVideosActive ? 'lime' : 'white';
if (isHideALLVideosActive) {
- const myVideoContainer = this.getId(myVideoContainerId);
- myVideoContainer.style.width = '100%';
- myVideoContainer.style.height = '100%';
+ const videoContainer = this.getId(videoContainerId);
+ videoContainer.style.width = '100%';
+ videoContainer.style.height = '100%';
} else {
resizeVideoMedia();
}
const children = this.videoMediaContainer.children;
for (let child of children) {
- if (child.id != myVideoContainerId) {
+ if (child.id != videoContainerId) {
child.style.display = isHideALLVideosActive ? 'none' : 'block';
}
}
diff --git a/public/views/Room.html b/public/views/Room.html
index 69138723..c078d8b6 100644
--- a/public/views/Room.html
+++ b/public/views/Room.html
@@ -388,6 +388,8 @@ access to use this app.
🎥 FULL HD
🎥 2k
🎥 4K
+
🎥 6k
+
🎥 8K
@@ -397,6 +399,7 @@ access to use this app.
max frame-per-second
+ 60 - frame-per-second
30 - frame-per-second
15 - frame-per-second
5 - frame-per-second
@@ -410,6 +413,7 @@ access to use this app.
max frame-per-second
+ 60 - frame-per-second
30 - frame-per-second
15 - frame-per-second
5 - frame-per-second
diff --git a/public/views/landing.html b/public/views/landing.html
index a977261d..0849a1c5 100644
--- a/public/views/landing.html
+++ b/public/views/landing.html
@@ -191,7 +191,7 @@
WebCam Streaming
Having the webcam on, allows participants to make a deeper connection with
- you. Up to 4k resolution.
+ you. Up to 8k resolution and 60fps.