Jitsi Meet features update
jitsi.org
jitsi.org
My use case is I take weekly music lessons, and now they are virtual. The problem is the DSP done on audio was designed for speech. If my teacher is explaining something then plays an example on his bass, it usually sounds terrible, maybe even inaudible.
I send him pre-recorded mp3s of cover songs; ideally he could listen to it and I could comment in real time about places where things could be improved. Instead, if he is playing any music on his system, I hear nothing -- no music, no talk. It seems like the software thinks "Hey, this participant is listening to non-conference audio, so I'll just mute him (at least on skype). I'd love there to be a half duplex audio button so none of the DSP shenanigans are needed, and a high quality audio stream would be sent.
https://support.zoom.us/hc/en-us/articles/115003279466-Prese...
Ogg-Vorbis may be an even better option for all kinds of reasons, but mp3 is more universally recognized.
There's not much reason not to use Opus, which has better quality/bitrate and lower latency.
https://en.wikipedia.org/wiki/Opus_(audio_format)#/media/Fil...
It should be a matter of giving it enough bandwidth and let it make good decisions based on that.
> navigator.mediaDevices.getUserMedia({audio: true}).then(...)
to get a stream of the input device, one can do:
> navigator.mediaDevices.getUserMedia({audio: { autoGainControl: false, noiseSuppression: false, echoCancellation: false }}).then(...)
similarly, an _existing_ input audio stream can have its settings changed while it's running like so:
> stream.applyConstraints({ autoGainControl: true, noiseSuppression: true, echoCancellation: true })
this for examples re-enables the processing that we put on voice by default.
This probably works everywhere, we've written a blog post about this that explain a few more things: https://blog.mozilla.org/webrtc/fiddle-of-the-week-audio-con....
If the website doesn't want to offer a control to switch this on/off, I'm confident this can be done by a browser extension in no time (which would have the benefit to work for all websites).
For music quality webRTC you need 3 things: disable audio processing, stereo=1 in the SDP and a way to limit bandwidth usage so it doesn't saturate the available bandwidth and create errors.
Disabling video is also really the best thing to do when recording for this reason (bandwidth saturation), and also Chromium will give you much superior experience. Safari and Firefox isn't quite there yet: Safari can't let you choose your output device and lacks some other useful features, and Firefox doesn't yet seem to allow stereo Opus, maybe that's changed since I tested. Microsoft Edge is now Chromium so you're good to go.
Of course all the chain has to be stereo, that goes without saying: input signal is stereo, negotiation has been done in stereo, having enough bandwidth is important (otherwise opus goes mono), and then playback has to be on stereo hardware (but that's the easy part).
Will this also fix this issue? So everyone will be able to hear everyone?
You will think you are in time with someone, but you will react when you hear/see them on your screen, which is maybe .15 seconds after they actually made the sound/movement. And then they will hear/see your reaction .15 seconds later again.
With rtt < 20ms that should make musical performances possible. After all, sound only travels less than four meters in 10ms. So this is just like singing in a choir (with more visual delay - but that can be solved by having a conductor).
Unfortunately I'm not aware of any software making that a practical reality, even with ftth.
There are all sorts of other latency that need to be taken into consideration too, and unfortunately in practice those do add up to live music being unplayable on pretty much any network.
There's a really interesting project called NINJAM https://www.cockos.com/ninjam/ which is designed for live music jam sessions. It flips this fundamental constraint on its head - instead of being real-time, it streams everyone else's output delayed by one bar (theoretically any interval >RTT I guess?). I haven't tried it, but it's a really cool idea.
Opus minimum frame size is actually 2.5ms: https://tools.ietf.org/html/rfc6716#section-2.1.4
Of course there's a ton of other potential sources of delay that make my fantasy hard to achieve, probably already starting at the typical USB microphones (in headsets/cameras).
USB should not really be an issue here, however.
Minimizing latency is certainly technically feasible, it's just hard for stupid reasons.
I just would like to hear everybody at the same time, but what I hear is always one person's sound getting preference over others. Or sounds just alternate randomly based on the volume, I'd guess.
You could try an app like Mumble, where you can turn that off (and also have other detail controls, at the cost of a bit more initial setup).
When you're speaking, you don't have to wonder if others can hear you because your microphone pulses in green visually as you speak. If your audio isn't working it shows in yellow with no pulsing, and you and everyone else can see your audio is not flowing.
Also, if someone else forgot to mute and their kid is making a ruckus, you can just mute them. You don't have to wait for a moment to interject and ask them verbally, you can just go ahead and do it.
Or, when you see someone else in their video feed trying to speak up, but they forgot to unmute, you just unmute them. No everyone saying, "you're muted" over each other.
It takes a second to get used to the idea that everyone has all the power, but in practice it just makes everything go way smoother.
They could but they won't because we live in a society. Which is great because that means we don't have to walk around in steel suits to avoid getting kicked in the pants.
I choose to trust the people I work with every day. And then as a bonus, I don't have to hear people yelling "you're muted!" at one another. We just get on with it.
Also, you're implying that one would only use this technology to communicate with people you work with every day. What about a meeting with outsiders/contractors/customers? You might not actually have those yourself, but someone usually has to do those.
Then, if one asshole starts unmuting maliciously, they get shunned real quick and then fired if they keep it up. We don't need to limit ourselves with draconian measures when social norms and expectations will already suffice.
The only legitimate use case I see for this is if you are working with e.g. elderly people who have a hard time understanding the whole thing and even then it shouldn't be possible without them clicking on "Yes" explicitly.
Then if I CHOOSE to mute myself out is nobody's business to unmute me. I do this for specific reasons and know hiw and when to unmute whrn needed.
It's Teamspeak and Discord like, so you need to connect to a server, either public or self-hosted, join or create a channel, and then you will be able to talk to everyone on that channel. This is perfect for permanent communities where people just hang out, but works for one-offs too. It works on Windows, Linux, Mac, iOS and Android, no web access. The server is also available for Raspberry Pi. Half of it is open-source, but the core SDK needs a license if you're developing with it. The program itself is free, even for commercial use.
It uses Opus and lets you adjust the quality and processing, so you can get a lot out of it. We've been using it in our community for about 10 years now, including for radio broadcasting, and we haven't managed to find anything better since. I know of one local radio station and recording studio who successfully use it for remote work now.
To get the best experience, disable all audio processing in the preferences, on the sound system pane, so duplex mode, automatic gain control and noise reduction should be off. If you're on Windows, use Windows Audio Session as the backend for lowest latency.
Then, connect to a server, I use the German one for public stuff, as I'm close to it geographically and you don't need to register for it, but use whichever you want. After connecting, create a channel with application set to music, bitrate set to 150000 and channels set to stereo. Those are, at least, the parameters I use, and they work great. You can adjust the rest as you see fit.
There are some video and screensharing capabilities as far as I know, but I haven't used them. Audio is definitely the primary focus. If you need any assistance, my username here at gmail dot com is the way to go.
[1] bearware.dk for desktop, App Store and Google Play for iOS and Android.
ps. I'm not affiliated with the company in any way, it's just a tool I use daily and would recommend to anyone who knows his way around the computer. It definitely doesn't pass the grandma test, though.
It's written by a music professor and geared toward using Zoom for music, but several of us Zoom newbies found it to be helpful more generally. He mentions the issue of disabling the speech-centric audio postprocessing.
http://musictechexplained.com/
Disclaimer: The author apparently makes his money selling eBooks, so you may want to skip through the several pages of promotional material at the beginning of his PDF to get to the good stuff.
They're quite responsive on GitHub ( https://github.com/jitsi/jitsi-meet ) and I'm sure additional details regarding any bottlenecks would be appreciated.
Identifying even modest improvements now could result in large memory and bandwidth resource savings over the next few weeks and months.
I've been wondering about videoconferencing scale, since Zoom seems to have handled a huge explosion in usage very well. Are they just very good at autoscaling AWS instances, or do they use cool tricks to reduce bandwidth?
If you switched to p2p instead, then each participant would need to send 10 streams instead of 1, and most people's upload bandwidth is much lower than their download (at least in the US).
It's possible for the server to make decisions on which video streams to forward (e.g. last x talkers) to reduce the number of outbound streams, but switching streams takes a bit of time (you'll need to get a new iframe from the just-switched-on participant) which affects the interactivity of the session.
Modern video codecs also allow for layering of into progressive levels of enhancement, so lower detail versions of the stream can be forwarded to participants will lower bandwidth without the server needing to transcode anything. (Not sure if Jitsi has implemented anything like that.)
There'd be a CPU/bandwidth tradeoff being made here, I wonder how the prices on standard cloud providers would compare.
Tradeoffs.
Firefox simulcast is still experimental (edit: and disabled by default), so Firefox is only sending HD to the video-bridge and no LD stream. The HD is then relayed to everyone even as a thumbnail.
If you don't need to see everyone's video all the time, set channelLastN: 5 or a similar number, and only the last N speakers video will be broadcast
If you don't need 720p (1280x720), change the constraints: video section to be something like 360p (640x360)
Enable layer suspension so that HD is not sent to the server when not needed: enableLayerSuspension: true
For my use case (around 10-15 friends, for informal meet-ups) it has worked spectacularly well.
Sounds like any of the $5/month VMs from the likes of DO, Linode, etc should handle this. Luckily there is a small hoster with a data center near me with similar specs/price. Their free offering on AWS works fine but it would be nice to get lower latency and have my own domain.
Thanks for sharing!
For example, language select box can be placed next to "Go" button (when creating meeting) and next to info button in the meeting. Also using "Accept-Language" HTTP header for choosing the language can be a good default. Another option is to add a language query parameter to the URL so that host can easily share meeting with a particular language.
Also if it would be great if some improvements can be made for low bandwitdh since there are people with slow connections and limited data plans. (On the other hand, there is already an option to lower video quality).
Other than that, kudos to Jitsi team for their great efforts and this great project.
> Updated translations
So it seems like they've been working on this.
This is the time when its truly needed. Firefox, Chrome and Edge should just sit in a room and not come out till its done.
https://docs.house.gov/meetings/JU/JU05/20190716/109793/HHRG...
Apple answers that users cannot, and adds:
"The App Store provides Apple’s users with access to third party apps, including web browsers. Browsers such as Chrome, Firefox, Microsoft Edge and others are available for users to download"
While forgetting to mention that all "Apple's policies require all iOS apps that browse the web to use the iOS built-in iOS WebKit-based rendering framework and WebKit JavaScript" [https://developer.apple.com/app-store/review/guidelines/], effectively meaning it's just a skin on top of WebKit, which is controlled by Apple.
I wish something good comes out of that investigation, but realistically, I don't see it happening.
1. Can you delete Safari on iOS?
No, but the "App Store provides Apple’s users with access to third party apps, including web browsers."
2. Can you set a third-party browser as the default browser?
No.
3. How about for opening links in bundled apps?
No, see questions 1 and 2.
4. Okay, so can these third-party browsers include their own rendering engine?
No, because "Apple can provide security updates to all our users quickly and accurately, no matter which browser they decide to download from the App Store."
5. What if a third-party browser introduced better security/privacy features?
See question 4 and it's "not our experience that competing web browsers have typically offered enhanced privacy or security that would protect users as adequately as our WebKit protections."
6. What features does Apple cut off to third-party browsers?
* WebRTC
* Service Workers
* Intelligent Tracking Protection
* Fullscreen APIJavaScript encryption/decryption seems to work fine for the most basic use cases, but if you have many streams you need to do encryption/decryption for you, you probably want to use native browser APIs for it or WebAssembly.
In other cases where encryption is used (e.g. fetch, webrtc itself, etc), often we ask the browser to do it due to, among other things, the performance benefit of not doing it in JS or WASM. I'd have to test using window.crypto.subtle.encrypt or tweetnacl something to check the overhead (I do see the webcodec examples show a write/readable stream which allows promise-based encryption). Arguably this could have been done at the conn level w/ raw RTC data instead of the media stream level so I wouldn't have to handle data channels separately, but I see the value in sharing with other use cases of client-side stream manip.
Edge is now Chromium, you need to invite Safari.
The mobile app I downloaded through F-Droid works incredibly well, and for those of you Firefox users who aren't having the best experience, I recommend using the Electron desktop app [https://github.com/jitsi/jitsi-meet-electron/releases].
I've been using the Jitsi Electron app in conjunction with OBS + the VirtualCam plugin to share games, videos and my desktop. Hopefully I can convert more Zoom users.
https://github.com/jitsi/jitsi-meet#security
https://github.com/jitsi/jitsi-meet/issues/409
Has this changed? In the end you could at least self-host though
While I'm sure it could be made worse, I didn't exactly hear anything good about LinkedIn pre-aquisition, either.
It is curious how Skype was started by Kazaa engineers basically to find a legit use for their p2p streaming tech, and now it's not even p2p anymore.
Also as another user mentioned, skype was a DOS vector for individual users.
I'm not sure I follow the Skype comparison. If you're talking about Skype historically (and it seems you are) - then that was before a lot of the strong privacy and encryption conversations were being had in the larger audience of consumers. Setting this comparison is a slippery slope. Yes, we know Skype was used and abused by nation state actors - but for the time encryption was not the norm. Things have changed and today misrepresenting encryption and privacy is a much more grave sin that consumers are more concerned about. Businesses lying or misrepresenting it should have been held accountable back then - but they only finally are now.
Not disagreeing but I think we have to remember that 99% of consumers are not HN tech gurus and really don’t care. They only care about the quality of the product/experience, and clearly Zoom has topped the market on those (similar to slack for enterprise chat).
[0] https://www.apple.com/privacy/ [1] https://www.cnet.com/news/apple-tied-to-new-privacy-website-...
That is an extremely. weak defense. There were plenty of other companies taking user security seriously. Many of our encryption standards and security certifications in use today were created in the 90s and 00s.
> "If you're talking about Skype historically (and it seems you are) - then that was before a lot of the strong privacy and encryption conversations were being had in the larger audience of consumers."
Note that I was speaking of "consumers" for the point in time referenced. Many of those consumers were not aware of why they should care about privacy or encryption, you seem to be conflating industry and consumers - of which I was making a much more specific point. This point is obvious when you look at the trend of total encrypted traffic volume which was not the majority in the 90s or 2000s compared to today - of which it is. For reference (and to put this in perspective) Facebook didn't start rolling out required encryption until 2012 [0] - less than 10 years ago. Today most of us couldn't fathom logging into a service that wasn't encrypted. So, while I feel you took my statement out of context - I'm also pointing out that consumer encryption wasn't generally taken seriously in consumer oriented services until into the 2010s.
I fail to see why this matters; let's assume this is true and everything else is just as bad (and a lot of stuff is just as bad, so this may be a fair assumption): the answer is that they should be put under the microscope too and forced to clean up their act and stop lying to users or putting them at risk unnecessarily with bad development processes. The answer is not to just say "meh, everyone else is just as bad" and keep using Zoom.
It doesn't need to be a part of Zoom's business model to watch everything so there's no excuse not to. And after that people will stop bringing this up every time their brand is named.
After all the zoom privacy/security nightmare stuff, we've started looking at alternatives, but we have a set of features we need that either aren't in Jitsi or we couldn't figure them out. So in the mean time we've been stuck with zoom.
* breakout rooms * annotations on screenshare (being able to draw on the presenter's screen) * something other than dropbox for exporting recordings
There may be other shortcomings, but we'd be willing to "downgrade" except for these that leave management going "well, i guess we'll just deal with the security issues of zoom rather than lose features"
is free software, has breakout rooms, collaborative drawing on slides, synchronized playing of youtube and a few other features.
Works quite well in my experience.
That pop-up alert that tells you that you are speaking while on mute is incredibly smart.
However, I like the product they are building. Keep it up! I hope the firefox issues will soon be a thing of the past (https://bugzilla.mozilla.org/buglist.cgi?status_whiteboard_t...)
In the linux philosophy there are other things that can do the audio sharing (like Pulseaudio loopback modules) but I guess no one should have to learn those in order to use the simple feature in this tool.
There are a few tracking tickets in Bugzilla for that effort.
...but not well. I can see why they disable it by default, even if I wish they included a button to proceed anyway.
Having to download an app increases the barrier compared to other solutions.
I am using it on firefox and it works anyway, but now my mom is being forced to use it for work and she's asking whether there are any problems (there aren't).
they should just take it away already, it's working well anyway.
So far I added features such as Poker planning and post is drawing. Any feedback welcome ;-)
A really nice perk is that you can have your room name URL, and the dial in number is the same for that URL, so if you reuse the same "room", you can just know the meeting ID and all, which I haven't really seen from other solutions.
Even better, to support virtual background: https://community.jitsi.org/t/virtual-backgrounds-using-gree...
Cheers.
4384 matches the latest versions I'm seeing for Ubuntu and Debian at https://jitsi.org/downloads/ under "Jitsi Desktop stable build line". For some reason other OSes seem to be much further behind.
Got a quick question if someone can answer. Is is some how possible to use OBS stream with Jitsi? For my use case, I work with an one MS-Excel window capture & my webcam input capture in the corner, to explain some concepts to my students.
Any help appreciated.
The next day I figured out that Riot's in-app video chat IS Jitsi. The world made sense again.
You can use these numbers and your usual conference size to calculate how much data you'd use and then calculate the cost of that.
Would be perfect if I didn’t have to download the app.