WebRTC findet ein neues Zuhause in Embedded Systems

Web Real-time Communication (WebRTC) is an open-source technology, which allows developers to integrate real-time video and audio communication capabilities into web and mobile applications, and, as of lately, connected devices.

Das Internet der Dinge boomt. Damit steigt auch die Zahl der kamerabasierten vernetzten Geräte, die Mediendaten in Echtzeit produzieren und sie an einen PC oder ein Smartphone senden können.

Doch es gibt einen Haken.

Die meisten Nutzer brauchen keine eigenständige Anwendung, um Audio- oder Videoclips abzuspielen. Sie können hierfür ihre Browser nutzen. Um eine IP-Kamera in einen Browser zu integrieren, könnte man Adobe Flash verwenden. Doch ab Ende 2020 wird Adobe Flash von den wichtigsten Browsern nicht mehr unterstützt. Darüber hinaus gibt es HLS und MPEG-Dash. Doch diese sind nicht auf Live-Streaming mit niedriger Latenzzeit zugeschnitten. Und schließlich gibt es WebRTC – eine relativ neue Technologie, die im Moment vielleicht noch nicht die maximale Geräteabdeckung bietet, aber in Bezug auf die Leistung ihre Wettbewerber leicht übertrifft.

Dieser Artikel gibt Antworten auf die Fragen: Was sind die Vorteile von WebRTC? Was sind potenzielle Use Cases von WebRTC im IoT? Wie kann diese Technologie mit vernetzten Geräten integriert werden?

WebRTC: Einführung

WebRTC wurde von Global IP Solutions, dem Pionier für Videokonferenzen und VoIP, erstellt und 2010 von Google übernommen.

  • WebRTC stellt eine Peer-to-Peer-Kommunikation zwischen Web- oder mobilen Browsern her, ohne zusätzliche Plugins,
  • ermöglicht den Zugriff auf Kamera und Mikrofon eines Gadgets und 
  • ist in der Lage, Mediendateien mit einer Verzögerung von nur einer halben Sekunde zu streamen. 

WebRTC gilt inzwischen als die Lösung für den Transfer von Mediendateien in Echtzeit. Offensichtliche Use Cases dieser Technologie sind daher Anwendungen für Audio- und Videokonferenzen sowie Tools für die Zusammenarbeit im Team.

Wie funktioniert WebRTC?

Um eine Sitzung zwischen zwei Nutzern zu beginnen, sollten sich die Browser gegenseitig lokalisieren und die Erlaubnis erhalten, Mediendateien in Echtzeit auszutauschen.

Eine Herausforderung stellen dabei die Network Access Translation (NAT)-Geräte oder Firewalls dar, die die Laptops oder Smartphones schützen. Im Gegensatz zu HTTPS-Websites, deren Standort dem gesamten Internet bekannt ist, verfügen Laptops und Smartphones nicht über statische Webadressen.

To set up a phone or video call with a user outside a home network, WebRTC utilizes Session Traversal Utilities for NAT (STUN) and Traversal Using Relays around NAT (TURN) servers, along with signaling/communication protocols.

Für einen Telefon- oder Videoanruf mit einem Nutzer außerhalb des Heimnetzwerks verwendet WebRTC Session Traversal Utilities for NAT (STUN) und Traversal Using Relays around NAT (TURN) Server zusammen mit Signalisierungs-/Kommunikationsprotokollen. Zu den Kommunikationsprotokollen gehören:

  • Das Session Initiation Protocol (SIP). Es baut die Sitzung auf, hält sie aufrecht und beendet sie.
  • Das Session Description Protocol (SDP). Es überträgt die Mediendateien.
  • Das Interactive Connectivity Establishment (ICE)-Protocol. Es generiert und findet den kürzesten Weg zur Übertragung von Medien zwischen Geräten.

Vor WebRTC basierte die Echtzeit-Medienkommunikation auf C/C++. Dies verzögerte die Entwicklung maßgeschneiderter Konferenz- und Kollaborationstools und erhöhte ihre Kosten. Obwohl WebRTC nach wie vor C/C++ verwendet, müssen sich Entwickler nicht mehr in diesen Layers vergraben – WebRTC hat eine JavaScript-API und diese reicht aus, um Anwendungen zu erstellen, die mit Browsern interagieren.

Vorteile von WebRTC

  • Die Technologie ist nicht auf ein bestimmtes Netzwerk beschränkt. Sie wird von den vier führenden Browsern unterstützt: Safari, Chrome, Firefox und Microsoft Edge.
  • WebRTC funktioniert als eine clientseitige Echtzeit-Medien-Engine, die anpassbar und erweiterbar ist: Sie ermöglicht neben der Übertragung von Medieninhalten auch die Übertragung anderer Datentypen.
  • WebRTC bietet mehr Sicherheit: Die Technologie verschlüsselt die zwischen den Geräten ausgetauschten Daten mithilfe von Datagram Transport Layer Security (DTLS) und Secure Real-Time Protocol (SRTP) und benachrichtigt die Nutzer vor dem Zugriff auf die Kamera und das Mikrofon ihres Computers.  
  • WebRTC regelt den Datenverkehr entsprechend der Breitbandgeschwindigkeit des Nutzers.
  • WebRTC ist eine Web-Technologie. Daher erleichtert sie es, die Client-Seite einer Anwendung zu entwickeln.
  • Die Echtzeit-Kommunikations-Engine ermöglicht es Entwicklern, Medieninhalte mit anderen Datentypen zu überlagern.

Wie man WebRTC in IoT-Lösungen integriert

Beim Konzept des Internet der Dinge geht es um Datenaustausch in Echtzeit – und genau das kann WebRTC besonders gut.

Die Technologie könnte zum Beispiel eine willkommene Ergänzung zu einem RFID-basierten Sicherheitssystem für Einzelhandelsgeschäfte sein. Zusätzlich zu den Warensicherungsetiketten und EAS-Antennen könnte die Lösung eine IP-Kamera haben: Sie überwacht den Kundenverkehr und streamt Videodaten in Echtzeit an eine Webanwendung auf dem Computer des Sicherheitsmanagers. Wenn ein gestohlener Artikel den Alarm auslöst, kann der Manager das Signal mit Kameraaufnahmen zuordnen und den Ladendieb identifizieren.

Man kann das WebRTC Native Code Package zusammenstellen, um eine Peer-Verbindung ohne einen zwischengeschalteten Media Server herzustellen. WebRTC ist jedoch eine browserbasierte Technologie, d. h. sie wird von den meisten IoT-Geräten und Embedded Systems nicht direkt unterstützt.

In Bezug auf das Thema Smarte Kameras ist zu berücksichtigen: Auf die Daten, die von intelligenten Sicherheitssystemen außerhalb eines privaten Netzwerks erzeugt werden, kann in der Regel nicht zugegriffen werden. Dadurch wird verhindert, dass Nutzer Industrieanlagen und vernetzte Wohnungen aus der Ferne überwachen.

Aus diesem Grund bietet derzeit keine IoT-Lösung für Unternehmen oder Verbraucher WebRTC als Standard an.

WebRTC mit GStreamer an Embedded Systems anpassen

GStreamer ist ein freies Pipeline-basiertes Framework zur Erstellung von Multimedia-Streaming-Anwendungen für Desktop, vernetzte Geräte und Server. Es hat seinen Funktionsumfang mit einer nativen WebRTC-API ergänzt. Mit GStreamer kann man wesentlich flexibler und einfacher arbeiten als mit den offiziellen WebRTC Native APIs.

GStreamer soll einwandfreie Leistung ermöglichen. Das Framework kann man mit einem Wasserleitungssystem vergleichen. Die Mediendaten sind das Wasser in den Rohren und die GStreamer-Pipelines sind die Wasserleitungen. Diese Wasserleitungen sind in der Lage, die Qualität und Quantität des Wassers auf dem Weg von der öffentlichen Wasserversorgung (Gerät Eins) zur privaten Wasserversorgung (Gerät Zwei) zu verändern.

Angenommen, das Quellgerät kann Videodateien lesen. Wir können einen Rohrbogen (GStreamer demuxer) bauen, um die ausgehenden Daten in Audio- und Videodatenströme zu trennen. Die Daten werden über h264 (Video) und Opus (Audio) in der Pipeline dekodiert und an das Zielgerät oder an die Cloud übertragen, wo sie mit ML-Algorithmen analysiert werden können.

Bei GStreamer werden diese funktionalen Rohrbögen „Elemente“ genannt. Sie können in 2 Arten unterteilt werden: Quellen-Elemente erzeugen Daten und Senken-Elemente nehmen Daten an. Die Elemente wiederum haben Pads – Schnittstellen zur Außenwelt, die es Entwicklern ermöglichen, Elemente nach ihren Fähigkeiten miteinander zu verbinden. Darüber hinaus verfügt GStreamer über integrierte Synchronisationsmechanismen. Damit werden Audio- und Video-Samples in der richtigen Reihenfolge und zum richtigen Zeitpunkt abgespielt.

Newsletter
 

WebRTC und GStreamer für Embedded-Software-Lösungen

Mit WebRTC und GStreamer können zum Beispiel intelligentere Smart-Home-Lösungen und Systeme für Unternehmenssicherheit aufgebaut werden. Einige Beispiele, wie GStreamer für die Entwicklung von Embedded-Software genutzt werden kann:

  • Intelligente Überwachung. Es gibt zwar seit Jahren traditionelle Videoüberwachungsanlagen (CCTV) für öffentliche und private Räume, aber sie treffen keine unabhängigen Entscheidungen und müssen rund um die Uhr beaufsichtigt werden. Mit WebRTC können Hersteller von IP-Kameras Video- und Audioeffekte auf Videostreams anwenden. Außerdem ist der Zugriff auf Kameraaufnahmen von außerhalb des Firewall-Netzwerks möglich und man kann spezielle Plugins zur Erkennung von Einbrüchen oder Unfällen implementieren. Auf diese Weise wird die Kameraintelligenz näher an den Edge gebracht.
  • Geteilte Augmented Reality. Ein Außendienstmitarbeiter kann über ein intelligentes Headset direkt von einem Experten vor Ort Anweisungen in Echtzeit erhalten: Er platziert digitale Markierungen, Schemata und Text in einem gemeinsam genutzten Augmented-Reality-Raum. Ähnlich können E-Learning-Unternehmen, Experten der Schönheitsindustrie und Einzelhandelsmarken, die das Kundenerlebnis personalisieren möchten, vorgehen.
  • Intelligenter Transport. Im Automotive-Sektor kann WebRTC Ingenieuren helfen, durch eine Kombination aus bordeigenen Kameras, Sensoren, Radargeräten und einer Hochfrequenzverbindung mit einem Bordcomputer (oder dem eines Flottendisponenten) ein hervorragendes Navigations- und Fahrerlebnis zu schaffen. 

Je mehr Embedded-Software-Entwickler GStreamer entdecken, desto mehr WebRTC-basierte vernetzte Produkte werden wir bald sehen. Beispiele sind industrielle Lösungen für Fernwartung von Geräten, Smart Home-Produkte, telemedizinische Anwendungen, intelligente Kraftfahrzeuge, die Echtzeit-Telemetriedaten sammeln, und Wearables.

Dank RESTful APIs können Drittanbieter relativ einfach eine WebRTC-basierte Kommunikation starten und Sensordaten von vernetzten Geräten verwenden, um Warnmeldungen auszulösen oder Audioanrufe und Videositzungen zu organisieren. WebRTC ist eine neue Sicherheitsstufe im Bereich IoT-Lösungen und kann als sicherer Kanal zur Datenübertragung genutzt werden. Und schließlich gibt es noch viel mehr als Audio- und Video-Streaming: Ein WebRTC-gestütztes Smart Home-Sicherheitssystem kann beispielsweise Live-Videos produzieren und anhand der Daten eines vernetzten Schlosses erkennen, welche Tür offen ist.

Über den Autor

Dmitry Zhadinets ist Embedded-Software-Entwickler bei Softeq. Mit einem Doktortitel in Sprachanalyse und -synthese und über zehn Jahren Erfahrung in der Entwicklung von Embedded Systems ist Dmitry Zhadinets an mehreren CCTV-Projekten für Unternehmen beteiligt und interessiert sich besonders für Technologien zur Übertragung von Mediendateien. Er ist seit 2002 in der IT-Branche tätig.