Hello Jitsi Team,
I watched your last community call and like to support you by self hosting jitsi meet for schools.
But I or we as the community may need a few more pointers or documentation, the forum is great, but hard to track down “pro-tips”.
Context:
- A few friends and enthusiast want to help German schools to provide jitsi calls for classes (initially even just 1 class at a time) with a video call. German privacy guidelines are very prohibitive of US owned entities, even hosting in AWS …
- I have been installing various jitsi meet’s now in AWS, more info below. And I happy to contribute to better documentation
- We run jitsi on AWS on Ubuntu on c5.xlarge or c5.2xlarge, so far all modules on single server.
- Participants join the conferences with everything you can imagine, mobile, iPad, Android, Laptop Win/Mac, Firefox, Chromium, Chrome on iPad, Safari on ipad(works just without cam), Jitsi app, …
- Connectivity for participants ranges from pretty good, to 1 Mbit down/up or maybe even less.
Goal:
- class with 30 participants
- video can be low-res all the time
- audio lag/sync issue doesnt matter
- audio needs to be so that folks can understand each other
- only the last 3 speaker videos are visible (thats ok)
- at least the video of the moderator (teacher) should be visible to 80% of participants when she speaks
- moderator needs to login, kids just get the link and join after moderator got in
Basically trying to get to a self hosted jitsi that allows for somewhat OK conferences with the soft limit size of 35 participants, as mentioned in the other post.
What we did
- Installed common Debian method with secure domain following
https://github.com/jitsi/jitsi-meet/blob/master/doc/quick-install.md
https://github.com/jitsi/jicofo#secure-domain
And tested the domain with this that SSL is all green:
https://www.sslshopper.com/ssl-checker.html
Our changes in configs (apart what is anyway needed according to secure domain)
#increase some limits
printf “DefaultLimitNOFILE=65000\nDefaultLimitNPROC=65000\nDefaultTasksMax=65000\n” >> /etc/systemd/system.conf
printf “net.core.rmem_max=10485760\nnet.core.netdev_max_backlog=100000” >> /etc/sysctl.conf
sudo sysctl -w net.core.rmem_max=10485760
sudo sysctl -w net.core.netdev_max_backlog=100000
#changes in /etc/jitsi/jicofo/sip-communicator.properties
org.jitsi.jicofo.auth.DISABLE_AUTOLOGIN=true
org.jitsi.jicofo.MAX_SSRC_PER_USER=1000
#changes in /etc/jitsi/meet/-config.js
resolution: 320,
constraints: {
video: {
aspectRatio: 16 / 9,
height: {
ideal: 320,
max: 480,
min: 120
}
}
},
defaultLanguage: ‘de’,
startAudioMuted: 3,
startVideoMuted: 3,
channelLastN: 3,
enableLipSync: false,
requireDisplayName: true,
enableClosePage: true,
I also started an install for multi bridge, but with current goal, I stopped looking into this.
- Tried to follow this guide to get JVB2
apt-get remove jitsi-meet
apt-get install jitsi-videobridge2
- had some issues to get this right and only get JVB2 from unstable
- installed now all jitsi-meet from unstable
- got the awesome feature that the moderator can mute all participants
- but had initially a version where some mobile phones did not get the web page “follow to app” or so, an install a few hours later worked
- noticed I did not need to do the NAT related public/private settings in video bridge here
- Install the docker version
- Following: https://github.com/jitsi/docker-jitsi-meet
- oh man this install was a breeze
- not much testing yet, still need to get a sense, does this use already JVB2, does this set any of the recommended advanced configs? E.g. prosody0.11 epoll?
Results so far
- JVB1 and 2 gave similar results, JVB maybe a bit better, maybe issues come from jicofo
- some participants cant join, or drop out of calls (why?)
- some participants can see others on video, while others cant see the speaker, audio drops, …
- server shows little load (10-20% CPU), network is less than 100 Mbit, memory is very low and swap not touched
These parameters seemed to help the most
- channelLastN: 3,
- and all the limit changes on linux, got a lot of UDP errors in nginx log before
What we like to go for
- I like to basically dumb down jitsi to very basic functionality, in the assumption this could help, especially with low or bad bandwith participants
- maybe try to have jitsi-meet send only single low res video stream
- need to find a way to tell mobile apps to set low res video, and 1 stream only …
- ideally even find a way that participants maybe receive a single mixed video stream with audio stream, yes I know this is not the concept of jitsi
Questions / Asks
A) Does docker install use already JVB2?
How could I check this?
B) Can you share “all” the advanced configs you are currently trying and testing on meet.jit.si?
- what instance types do you use to allow for 35 participant soft-limit?
- do you think increasing to 16 vCPU would gain anything, even if CPU, network and mem seems not to bottleneck?
- what jitsi meet,videbridge,jicofo config do you use? Can you share the actual files?
- which settings for nginx and video bridge to set high file descriptors (where to set these, to what numbers)
- how to install prosody0.11 and enable epoll in an already installed jitsi environment/sever
C) How can I configure a single video stream from jitsi-meet?
Would the following do the trick?
disableSimulcast: true,
resolution: 240,
constraints: {
video: {
aspectRatio: 16 / 9,
height: {
ideal: 240,
max: 240,
min: 240
}
}
},
D) What other configs make sense to reduce complexity or potentially allow for more consistent experience? Especially for the range of end users with potentially low end network
- Someone mentioned a change here, what does ‘false’ for this setting mean, any impact on basic functionality?
openBridgeChannel: false,