Der Server meet2.scheible.it wurde eingestellt
Um in der derzeitigen Corona-Lage und in der Weihnachtszeit eine weitere Unterstützung zu liefern, habe ich mich entschieden, einen zusätzlichen Jitsi Meet Server einzurichten, der auch mit leistungsschwächeren Clients genutzt werden kann.
- Alternativer Server für leistungsschwächere Clients
- Kostenlose Nutzung des Jitsi Meet Servers in beliebiger Gruppengröße
- Datenschutzfreundliche Konfiguration und deutscher Serverstandort
- Reduzierte Videoauflösung und Deaktivierung einiger Funktionen
Das Ziel dieser Konfiguration ist die Nutzung von Jitsi Meet mit niedrigerer Bandbreite und mit älteren Rechnern, die weniger CPU-Power zur Verfügung haben. Dazu habe ich die maximale Video-Auflösung reduziert und Funktionen zur Audioaufbereitung und Effekte des Interface deaktiviert. Die grundsätzliche Funktion bleibt jedoch gleich und allgemein sind nur wenige Unterschiede erkennbar.
In Tests mit meinem Notebook hat sich gezeigt, dass die CPU-Last des Webbrowsers 50 % bis 66,7 % reduziert werden konnte. Getestet wurde es in einem Meeting mit drei Teilnehmern und einer aktivierten Webcam.
Konfiguration des Servers
Der neue Server hat die gleiche Grundkonfiguration wie meine Hauptinstanz, diese habe ich im Artikel „Meine eigene Jitsi Meet Instanz“ beschrieben. Er verwendet dieselben Einstellungen, um den Datenschutz zu verbessern und die Sicherheit zu erhöhen. Zusätzlich wurde dieser Server so konfiguriert, dass möglichst wenig Bandbreite und Last auf den Clients anfällt. Dazu habe ich mich an meinem Artikel „Geschwindigkeitsoptimierung von Jitsi Meet“ orientiert. Es wird ein Root-Server des Anbieters Netcup eingesetzt, der in einem Rechenzentrum in Nürnberg betrieben wird.
Der Webclient hat bei Jitsi Meet die Aufgabe, den eigenen Videostream der Webcam zu codieren, diesen Stream zu senden, die Oberfläche im Webbrowser zu rendern und die eingehenden Videostreams zu empfangen, zu decodieren und darzustellen.
Video-Auflösung und -Codierung
Die Codierung der Videos wird auf dem Prozessor (CPU) oder der Grafikkarte (GPU) durchgeführt. Umso größer die Anzahl der Videostreams, umso mehr Rechenleistung wird benötigt. Moderne CPUs unterstützen die Codierung mit speziellen Hardware-Funktionen, die deutlich effizienter sind. Das sorgt für weniger CPU-Last, was wiederum der Akkulaufzeit zugutekommt. Jitsi Meet verwendet als Codec VP8 oder H.264. Die Unterstützung für VP9 befindet sich momentan noch in der Entwicklung und wird in Zukunft zur Verfügung stehen. Beide Codecs werden seit der sechsten Generation der Intel-Core-Familie (Skylake) voll unterstützt. Diese Technik wird hier als Intel Quick Sync Video bezeichnet. Bei AMD bieten alle Ryzen CPUs den vollen Support. Gerade günstige oder kleinere Notebooks mit älteren Atom- oder Celeron-CPUs bieten jedoch keine Hardwareunterstützung und haben somit häufig Probleme.
Ich habe mich entschieden, den Codec H.264 bei diesem Server als Standard zu aktivieren, da er etwas älter ist und zumindest in der Theorie eine bessere Hardware-Unterstützung bietet. In Benchmarks ist der VP8 zum Teil besser, was die benötigte Bandbreite angeht. Da ich aber die Auflösung reduziert habe, ist dieser Punkt nicht so relevant. In der Konfiguration von Jitsi Meet kann der Codec H.264 zweimal definiert werden. Die Einstellung für die P2P-Verbindung habe ich nicht geändert, da ich P2P deaktiviert habe.
// /etc/jitsi/meet/meet2.scheible.it-config.js 170: preferH264: true 254: preferredCodec: 'H264',
Als Nächstes habe ich die typische Auflösung auf 240 Pixel und die höchste Auflösung auf 360 Pixel festgelegt. Die Anzahl der Pixel beschreibt dabei die Höhe des Webcam-Bildes. Eine Webcam mit einem 16:9 Seitenverhältnis überträgt somit eine maximale Auflösung von 640 × 360 Pixel.
// /etc/jitsi/meet/meet2.scheible.it-config.js 129: resolution: 240, 140: constraints: { 141: video: { 142: height: { 143: ideal: 240, 144: max: 360, 145: min: 180 146: } 147: } 148: },
Die obigen Einstellungen beziehen sich auf den Server. Weiter unten können weitere Einstellungen für den Client festgelegt werden. Hier kann auch die maximale Bitrate definiert werden, wobei ich die Werte leicht reduziert habe. Diese Optionen wurden erst kürzlich mit einem neuen Update hinzugefügt.
// /etc/jitsi/meet/meet2.scheible.it-config.js 242: videoQuality: { 261: maxBitratesVideo: { 262: low: 100000, 263: standard: 400000, 264: high: 1000000 265: }, 277: minHeightForQualityLvl: { 278: 240: 'standard', 279: 360: 'high' 280: } 281: },
Zusätzlich habe ich die Anzahl der Frames beim Teilen des Desktops auf ein Minimum gesenkt:
// /etc/jitsi/meet/meet2.scheible.it-config.js 179: desktopSharingFrameRate: { 180: min: 1, 181: max: 2 182: },
Audio-Funktionen
Jitsi Meet besitzt verschiedene Methoden, die die Audioqualität einer Konferenz verbessern. Diese Funktionen analysieren kontinuierlich das Audiosignal, wodurch CPU-Leistung benötigt wird. Gerade wenn Headsets verwendet werden, können diese Funktionen deaktiviert werden.
Die ersten Funktionen beziehen sich auf die automatische Anpassung der Lautstärke und die Erkennung eines lauten Mikrofons.
// /etc/jitsi/meet/meet2.scheible.it-config.js 89: disableAudioLevels: true, 101: enableNoisyMicDetection: false,
Alle weiteren Audio-Funktionen können mit dem Eintrag disableAP deaktiviert werden – AP steht für Audio Processing. Es ist nicht vorhanden und muss daher selbst hinzugefügt werden. Ich habe ihn ganz am Ende vor dem letzten Eintrag hinzugefügt.
// /etc/jitsi/meet/meet2.scheible.it-config.js 678: disableAP: true, 679: makeJsonParserHappy: 'even if last key had a trailing comma'
Interface Darstellung
Auf der Weboberfläche von Jitsi Meet können einige Funktionen deaktiviert werden, die viel Rechenleitung benötigen. Dazu gehört die Markierung des aktuellen Sprechers per Icon und mit einem blauen Rahmen. Dies sorgt dafür, dass die Oberfläche häufig aktualisiert werden muss. Mit zwei Optionen können diese Funktionen deaktiviert werden.
// /usr/share/jitsi-meet/interface_config.js 54: DISABLE_DOMINANT_SPEAKER_INDICATOR: true, 55: DISABLE_FOCUS_INDICATOR: true,
Jitsi Meet Artikelserie
Dieser Blogbeitrag ist Teil der Artikelserie „Videokonferenzen mit Jitsi Meet“, die sich mit dem Open-Source-Webkonferenzsystem Jitsi für Video-, Web- und Telefonkonferenzen beschäftigt. Die Artikelserie zu Jitsi Meet umfasst die folgenden Themen:
Jitsi Meet Artikel für Anwender
- Liste mit öffentlichen Jitsi Meet Instanzen
- Anleitung für Jitsi Meet Videokonferenzen
- Jitsi Meet Anleitung für Moderatoren
- Jitsi Meet für Smartphones und Tablets
- Jitsti Meet Nutzung per Desktop App
- Tipps und Tricks mit Jitsi Meet
- Meine eigene Jitsi Meet Instanz
- Jitsi Meet Server mit ressourcensparender Konfiguration
- Neuer Jitsi Meet Testserver (Nightly Builds)
- Virtuelle Webcam in Jitsi Meet verwenden
- Virtuelle Desktops für die Freigabe nutzen
- Neues zu Jitsi Meet – Update und Server
- Breakout Rooms in Jitsi Meet
Jitsi Meet Artikel für Administratoren
- Installation eines eigenen Jitsi Meet Servers
- Jitsi Meet unter Ubuntu 20.04 installieren
- Mehrere Jitsi Meet Varianten per API
- Geschwindigkeitsoptimierung von Jitsi Meet
- Das Design von Jitsi Meet anpassen
- Datenschutzfreundliche Konfiguration von Jitsi Meet
- Jitsi Meet Update Script
- Jitsi Meet Server Auslastung
- Jitsi Meet Statistik als Grafana Dashboard
- Neues Jitsi Meet Feature: Lobby Wartebereich
- Jitsti Meet und die Log4Shell Sicherheitslücke
Hallo Tobias,
vielen Dank für diesen guten Artikel.
Mir ist aufgefallen das bei folgenden Einstellungen ein einfaches Anführungszeichen fehlt bei ’standard‘
277: minHeightForQualityLvl: {
278: 240: ’standard‘,
279: 360: ‚high‘
280: }
281: }
Gruß Sascha Moritz