Apr 27, 2021
Innerhalb weniger Monate eroberte COVID-19 die Welt, und die Fitnessbranche war unter den Branchen, die am stärksten betroffen waren. Diese Veränderung führte dazu, dass Videokonferenzplattformen zu einem Muss und sogar zu einer Kernfunktion für die meisten Fitness-Apps wurden.
Das bedeutete auch, dass wir sehr bald herausfinden mussten, welche Videokonferenzplattform am besten für unsere Kunden geeignet war, die ihren Nutzern (Fitnessprofis und Trainern) die Möglichkeit geben wollten, ihre Kurse virtuell abzuhalten.
Zu diesem Zweck haben wir 5 Videokonferenzplattformen analysiert, die sich leicht in Ihre Anwendung (Web, Mobile, Backend) integrieren lassen. Ausgangspunkt für die Analyse sind die folgenden Anforderungen und Annahmen:
Wenn man Anforderungen an Videokonferenzen stellt, fällt einem als erstes WebRTC ein. Aber was macht WebRTC eigentlich?
WebRTC ist eine Technologie, die von den meisten Browsern und mobilen Plattformen (Bibliotheken/SDKs) unterstützt wird und als Rahmenwerk die anfängliche Signalisierung, die P2P-Kommunikation und das Videostreaming abdeckt. Für eine endgültige Lösung reicht dieses Rahmenwerk jedoch nicht aus, da Sie in der Regel mehr als die Kernfunktionen und höchstwahrscheinlich ein Rahmenwerk oder eine Plattform benötigen, die WebRTC einbettet und mit einigen weiteren "letzten" Details versieht.
Auch wenn jeder Dienst bzw. jede Lösung andere Bezeichnungen verwendet, sollten wir davon ausgehen, dass wir sie verwenden werden:
ist eine Serveranwendung, die das WebRTC-Framework implementiert (wraps) und die Erstellung von Konferenzräumen und das Senden von Verbindungsdetails an die Teilnehmer ermöglicht, einschließlich aller anderen unterstützenden Dienste und Tools. Dieser Server kann selbst gehostet werden (Jitsi) oder als Dienst genutzt werden (Amazon Chime, Twilio Video, Zoom usw.).
kommuniziert zwischen den Client-Anwendungen und dem Videokonferenzserver. Der Anwendungsserver ist für die Erstellung eines Raums sowie für die Erstellung von Zugangstoken und deren sichere Übermittlung an die Client-Anwendungen verantwortlich. Der Anwendungsserver kann auch auf Ereignisse vom Videokonferenzserver/-dienst warten und darauf reagieren.
ist eine mobile oder Web-Anwendung, die eine Verbindung zu einem Videokonferenzraum herstellen kann. Client-Anwendungen sollten ein geeignetes SDK integrieren, das mit einem Videokonferenzserver kommunizieren und eine Verbindung herstellen kann. Das integrierte SDK (Bibliothek) bietet eine Implementierung für eine erfolgreiche Kommunikation und Unterstützung für WebRTC. Es kann auch eine grundlegende oder vollständige UI-Implementierung für Videokonferenzfunktionen wie Beitreten, Verlassen, Stummschalten, Audiowechsel, Kamerawechsel, Bildschirmfreigabe usw. bieten.
In der Abbildung unten sehen Sie die erforderlichen Schritte zum Aufbau einer Videokonferenz:

"Jitsi ist eine Sammlung von Open-Source-Projekten, die hochmoderne Videokonferenzfunktionen bereitstellen, die sicher, einfach zu bedienen und leicht selbst zu hosten sind." - Jitsi-Dokumentation.
Wie bereits erwähnt, ist die Lösung Open-Source und kann auf unserer Infrastruktur gehostet werden. Das bedeutet, dass sie in hohem Maße anpassbar ist und wir daher einen großen Aufwand für die Implementierung und Wartung erwarten sollten. Das Projekt befindet sich noch in der Entwicklung und hat eine überschaubare Community.
Auf der einen Seite nutzt unser Kunde es bereits in seinem Produkt für sichere Videokonferenzen und hat eine selbst gehostete Lösung, auf der anderen Seite arbeitet ein ganzes Team daran. Dies führte uns zu dem Schluss, dass wir für diese Art von Aufgaben einen dedizierten Backend-Entwickler mit WebRTC-Erfahrung benötigen.
Vorteile: Es ist quelloffen und anpassbar, hat eine bestehende Community, ist nicht auf Dienste von Drittanbietern und deren Einschränkungen angewiesen
Nachteile: Erhöhter Aufwand und Kosten für Hosting, laufende Wartung und Skalierung bei steigender Nutzerzahl
Zoom ermöglicht die Integration seiner Plattform und Funktionalitäten in andere Anwendungen durch Zoom SDK und Zoom API. SDK als Service sollte alle Funktionen unterstützen, die die Zoom-Anwendung standardmäßig unterstützt.
Das Zoom SDK ermöglicht den Beitritt zum Meeting (Raum) für nicht authentifizierte Benutzer, aber die Erstellung und das Hosting des Meetings erfordern eine Benutzerkennung. Back-End-Anwendungen müssen weiterhin Meetings erstellen und Token für die Teilnehmer generieren.
Vorteile: bewährte und bekannte Zoom-Infrastruktur und -Funktionen, vertraute Zoom-Benutzeroberfläche kann wiederverwendet werden
Nachteile: SDK-Größe (~90Mb), schlechte Dokumentation, SDK nicht auf dem neuesten Stand, unklare Preisgestaltung, Beispielcode nicht einfach zu integrieren
*Update: In der Zwischenzeit hat Zoom ein neues Video-SDK veröffentlicht, das vielversprechender aussieht. Die Hauptunterschiede sind leichtgewichtige Client-SDKs, eine einfach zu bedienende und sehr anpassbare Benutzeroberfläche, aber auch rohe Audio- und Video-Streams. Sie können den Vergleich hier nachlesen.
Twilio Programmable Video ist eine Cloud-Plattform, die es Entwicklern ermöglicht, Video- und Audio-Chat zu Web-, Android- und iOS-Anwendungen hinzuzufügen. Die Plattform bietet REST-APIs, SDKs und Hilfstools, die das Erfassen, Verteilen, Aufzeichnen und Rendern von Audio, Video und Bildschirmfreigaben in hoher Qualität vereinfachen. Twilio Programmable Video wurde auf WebRTC aufgebaut.
Der Dokumentation zufolge lässt sich der Dienst zuverlässig skalieren, SDKs sind für alle wichtigen Plattformen (Web und Mobile) verfügbar und gut getestet. Schnelles Bootstrapping und die Inbetriebnahme des Dienstes werden durch Quickstarts und Codebeispiele unterstützt. Twilio unterstützt E2E-verschlüsseltes Video (für 2 Teilnehmer), was für einige Lösungen wie Gesundheitstechnologie, kleine Räume (bis zu 4 Teilnehmer) und Gruppenräume (bis zu 50 Teilnehmer) wichtig ist. In der Zwischenzeit haben wir mit der Arbeit an einem neuen Projekt begonnen, das das Twilio Video SDK erfolgreich in seine Anwendung integriert hat.

Vorteile: Gute und ausführliche Dokumentation, die Architektur ist detailliert beschrieben, einfache Integration, leichtes SDK, komplette Apps als Integrationsbeispiele
Nachteile: Preis, Flexibilität, Zuverlässigkeit
Als Unternehmen ist Intertec auf AWS-Dienste angewiesen, daher sind die Erwartungen an das Amazon Chime SDK hoch. Das Amazon Chime SDK ist eine Reihe von Echtzeit-Kommunikationskomponenten, die Entwickler verwenden können, um ihren Web- oder Mobilanwendungen schnell Audio- und Videoanrufe sowie Screensharing-Funktionen hinzuzufügen. Entwickler können dieselbe Kommunikationsinfrastruktur und dieselben Services nutzen, die auch Amazon Chime, einen Online-Meeting-Service von AWS, antreiben, und in ihren Anwendungen ansprechende Erlebnisse bieten.
Vorteile: Amazon-Service (Skalierbarkeit und Leistung), unsere Anwendungsserver sind normalerweise auf AWS, Preis
Nachteile: schlechte Integration, Dokumentation und Beispielcode, großer Aufwand für die Integration in Client-Anwendungen, begrenzt auf 16 Videostreams, da es keinen zentralen Medienserver gibt.

*keine zentrale Medienserverkommunikation - laut Dokumentation, die nicht explizit ist, aber aus der Tatsache, dass nur 16 Videostreams erlaubt sind, Bandbreitenanforderungen und wie die Aufzeichnung implementiert werden kann, erfolgt die Medienstromkommunikation direkt zwischen den Peers und es gibt keinen zentralen Medienserver für das Streaming.
** New Zoom Video SDK wurde nicht in der Praxis getestet. Alle Daten in der Tabelle stammen aus der Dokumentationsseite.
Die Analyse ist abgeschlossen. Die vorgeschlagene Lösung ist Twilio und hier sind die Gründe dafür:
Wenn wir nicht auf Zeit und Aufwand beschränkt wären und Videokonferenzen das Kernfeature sind, würden wir Jitsi wahrscheinlich ernsthafter in Betracht ziehen und es ausprobieren, einfach weil wir gerne an Open-Source-Projekten arbeiten und wir alle Aspekte der Lösung kontrollieren können.

Goran Krstevski
Vertrauen bei führenden Unternehmen weltweit




Intertec


Aneta Pejchinoska


Intertec