Zusammenfassung
Werkzeuge/Technolgie
Programmieren: C++, Visual Studio 2010
Anwendungsbereich: Video-Streaming mobile Netze
WEB: HTTP, jQuery mobile, CSS, HTML5, JavaScript
Technologie: HTTP-PULL, JPEG Transcoding
Inhaltsverzeichnis
Für das digitale Videoüberwachungssystem GeViScope der Firma GEUTEBRÜCK GmbH sollte eine Möglichkeit entwickelt werden über mobile Netze und Smartphones verschiedener Hersteller auf die Live- und aufgezeichneten Bild-Daten des Systems zugreifen zu können. Problematisch ist dabei die Vielzahl von Video-Kanälen, die in einer Überwachungsanlage in Betrieb sind. Diese müssen in der Web-Nutzeroberfläche des Smartphones auf einfache Weise selektiert werden können. Eine zusätzliche Problematik ist die Tatsache, dass die originalen Bilddaten in unterschiedlichen Formaten (H.264, MPEG-2, JPEG) und Auflösungen bis in den Megapixel-Bereich vorliegen.
Weitere Anforderungen bestehen im Zugriff auf gespeicherte Video-Daten und der Steuerung von Peripheriegeräten der Sicherheitsanlagen wie z. B. Dome-Kameras oder Meldepunkten.
Die Anwendung sollte unabhängig vom Hersteller der verwendeten Smartphones oder PADs sein und sich automatisch den Gegebenheiten wie Bildschirmauflösungen des jeweiligen Gerätes oder Darstellungsmodus wie Quer- und Hochformat anpassen.
Wegen der Anforderung der Herstellerunabhängigkeit in Bezug auf die Wiedergabe Geräte wurde G-WalknView als Web-Anwendung implementiert. Eine Web-Anwendung hat zwar nicht die Freiheitsgrade einer nativen Anwendung in Bezug auf die Ausnutzung aller Möglichkeiten des jeweiligen Endgerätes. Dafür bietet sie die notwendige Flexibilität in Bezug auf die Nutzung von Geräten verschiedener Hersteller. Die Web-Browser der verschiedenen Smartphone Hersteller bieten mittlerweile umfangreiche Möglichkeiten für die Anpassung einer Web-Anwendung und von deren graphischer Nutzeroberfläche an die jeweiligen Gerätebedingungen. So sind z. B. folgende Informationen für eine Web-Anwendung zugänglich, welche im vorliegenden Fall die Entwicklung dedizierter nativer APPs z. B. für iPhone oder Android Smartphones überflüssig gemacht haben:
Mittels dieser über JavaScript zugänglichen Informationen kontrolliert die Web Anwendung automatisch ihre eigene Präsentation auf dem Smartphone oder PAD. Die Bilder am Eingang des Beitrages zeigen z. B. die unterschiedliche Darstellung von G-WalknView auf einem Apple iPhone im Landscape oder Portrait Modus.
Das Problem der Vielfalt der Kompressionsverfahren der originalen Video-Datenströme wurde durch Transcodieren gelöst. Nach wie vor ist das MJPEG Verfahren das einzige Verfahren, welches in allen heute auf Smartphones verfügbaren Web-Browsern durchgängig genutzt werden kann, um sowohl Live- als auch gespeicherte Video-Streams zur Darstellung zu bringen. Die vom Smartphone Nutzer angeforderten Videokanäle werden in Echtzeit vom Quellformat auf das MJPEG Format transcodiert. Zusätzlich erfolgt eine automatische Anpassung der Bildauflösung an die Gegebenheiten des Wiedergabegerätes. Hat z. B. der originale Video-Stream eine Auflösung von FullHD (1920x1080 Pixel), so ist es nicht sinnvoll Bilder mit dieser Auflösung zu einem Gerät zu übertragen, welches diese nur mit kleinerer Auflösung z. B. 320x240 Pixeln darstellen kann. Die automatische Auflösungsanpassung reduziert die notwendige Übertragungsbandbreite für ein Bild und erhöht damit auch die Bildrate mit der ein Smartphone Client die Live- und Speicherbilder wiedergeben kann. Alternativ kann der Nutzer des Smartphones manuell einen individuellen Kompromiss aus Bildrate und Auflösung auswählen und den Server-seitigen MJPEG-Encoder direkt steuern. Damit kann der Anwender für seine Kanäle individuell wählen ob flüssige Bildrate oder hohe Qualität der Einzelbilder den Vorrang bei niedrigen mobilen Netz-Bandbreiten haben soll.
Als Transport-Protokoll wurde ein HTTP-PULL Verfahren implementiert. Dieser Ansatz garantiert die Verfügbarkeit von Videobildern in allen Smartphone Browsern, welche JavaScript unterstützen. HTTP-PULL ist nicht das optimale Transport-Protokoll für Bilddaten. Der große Vorteil liegt aber im Gegensatz zu alternativen Verfahren in der Plattform-übergreifenden Verfügbarkeit, was wiederum die Unabhängigkeit vom Wiedergabegerät sicherstellt.
Für die Steuerung der Wiedergabe von Speicher-Bildern und für Dome Kameras des Überwachungssystems wurde ein spezielles Protokoll auf Basis von URL Parametern entwickelt. Die Bedienhandlungen im Nutzer-Interface von G-WalknView im Browser des Smartphones werden in HTTP Requests umgewandelt, welche die Parameter enthalten, die vom HTTP Server des G-WalknView Projektes an das Überwachungssystem weitergegeben werden. G-WalknView nimmt dabei eine Protokollumsetzung der HTTP Requests auf die nativen Kommandos des Überwachungssystems vor.
G-WalknView ist ein Windows HTTP Server. Dieser verbindet sich über den GEUTEBRÜCK GeViScope SDK mit der Überwachungsanlage und stellt über seine WEB Schnittstelle in MJPEG transkodierte Bilddaten bereit. Diese werden über HTTP zum Client transportiert. Für die plattformübergreifende Entwicklung war der Einsatz verschiedener Werkzeuge nötig. C++ wurde zur Entwicklung des HTTP Servers und Services verwendet. HTML, CSS, jQuery Mobile und JavaScript sind die Client seitigen Technologien von G-WalknView. Das Bild zeigt die Grobarchitektur des Produktes.
Mit G-WalknView wurde durch medialan eine Web Anwendung geschaffen, welche mittlerweile verbreiteten Einsatz beim Smartphone Zugriff auf DVR Technik der Firma GEUTEBRÜCK gefunden hat. Die Anwendung zeigt, dass auch nicht native APPs die Eigenschaften verschiedener Smartphones und Pads optimal ausnutzen können. Aus Anwendersicht unterscheidet sich die Web APP nicht von einer nativen APP in Bezug auf die erreichte und gewünschte Bedienfunktionalität. Durch das Konzept einer Web APP konnte das Ziel der Plattformunabhängigkeit erreicht werden. G-WalknView wird mittlerweilse auf Apple-iPhones, iPads, auf Samsung und anderen Android basierten Smartphones und Pads und auf Microsoft Windows Phone erfolgreich eingesetzt, um jederzeit und von jedem Ort Zugriff auf Bildinformationen erlangen zu können.