Entwicklung von Videokonferenz-Apps
Kunde
Ein europäisches Unternehmen, das Online-Plattformen für digitales Fernsehen, Videostreaming und Videokonferenzen entwickelt. Seine Lösungen basieren auf WebRTC für Tizen, WebOS und Android.
Herausforderung
Entwicklung einer Videokonferenzsoftware und einer mobilen Anwendung für Smart-TVs, Set-Top-Boxen und Desktop-Computer, um eine Bild-in-Bild-Funktion bereitzustellen.
Lösung
1. Konzeptentwicklung
Wir entwickelten ein Konzept für eine Softwarelösung für Fernseher und eine mobile Anwendung, die eine Bild-in-Bild-Funktion für Videokonferenzen ermöglicht. Dabei dient ein Android- oder iOS-Smartphone als Videokamera und ein Smart-TV als alternativer Videoempfänger. Nutzer können auswählen, ob das aktuelle Video auf ihrem Fernseher oder Smartphone angezeigt werden soll.
2. Softwareentwicklung
Unser Entwicklungsteam entwickelte Software, die auf jedem Fernseher mit WebRTC-Unterstützung für Tizen, WebOS und Android ausgeführt werden kann. Für das Projekt unseres Kunden verwendeten wir die gängigsten Open-Source-Softwarekomponenten:
- v4l2 für die Videoaufnahme;
- Gstreamer für die Kodierung/Dekodierung;
- OpenGL für die Bildschirmausgabe;
- AudioRecord für die Audioein- und -ausgabe;
- WebRTC für das Videostreaming.
Dadurch stellten wir die Unterstützung folgender Plattformen sicher:
- Desktop-Computer: Linux / Windows / MacOS.
- Set-Top-Boxen: RDK, AOSP, Linux, AndroidTV.
- Mobilgeräte: Android, iOS.
- Smart-TVs: Tizen, WebOS.
- Das System ist relativ einfach aufgebaut und besteht aus zwei Hauptkomponenten – dem Server und einer Client-Anwendung für Nutzer:
Abbildung 1. Architektur des Videokonferenzsystems
Für die Übertragung von Audio-/Videostreams zwischen dem Server und den Clients wurde WebRTC gewählt. Diese Open-Source-Technologie bietet folgende Vorteile:
- geringe Latenz
- hohes Sicherheitsniveau;
- plattformübergreifende Lösung;
- Open-Source-Charakter.
Als Videokonferenzserver verwendeten wir den Kurento Media Server. Kurento ist ein WebRTC-Medienserver mit Client-APIs, der die Entwicklung komplexer Videoanwendungen vereinfacht.
Der Kurento Media Server unterstützt Gruppenkommunikation, Transkodierung, Aufzeichnung, Mischung, Übertragung und Routing audiovisueller Datenströme. Er ist in C/C++ geschrieben und integriert und erweitert die Funktionen von GStreamer. Außerdem verfügt er über eine modulare Architektur, die die einfache Integration von Medienverarbeitungsalgorithmen von Drittanbietern ermöglicht. Der Server unterstützt mehrere Konferenzräume.
Wir entwickelten außerdem eine mobile Anwendung mit zwei Betriebsmodi. In beiden Modi verwendet das Mobiltelefon sein Mikrofon und seine Kamera zur Audio-/Videoaufnahme. Der wesentliche Unterschied zwischen den Modi liegt im verwendeten Display und der Audioausgabe für eingehende Audio-/Videostreams. Bei der ersten Option werden der Lautsprecher und das Display des Smartphones verwendet. Bei der zweiten Option kommt ein Smart-TV zum Einsatz.
Um die Kommunikation mit einem Smart-TV sicherzustellen, verwendeten unsere Ingenieure das DIAL-Protokoll (Discovery and Launch).
Die Anwendungsarchitektur für beide Varianten ist in den folgenden Abbildungen dargestellt:
Abbildung 2. Client-Architektur im Modus 1
Abbildung 3. Client-Architektur im Modus 2
Geschäftlicher Nutzen
Der Kunde erhielt ein neues Softwareprodukt, das Nutzern ein komfortables und effektives Werkzeug für Videokonferenzen mit Bild-in-Bild-Funktion über ihre Fernseher und Smartphones bietet.
Darüber hinaus unterstützt die Lösung mehrere Plattformen, darunter Desktop-Computer, Mobilgeräte und Smart-TVs, und ist damit für eine große Zahl von Nutzern zugänglich. Der Kunde plant, diese Lösung in verschiedene Softwareprodukte für Geschäftstreffen, betreutes Online-Fitnesstraining und das gemeinsame Ansehen von Videoinhalten zu integrieren.







































