nw  

MJPEG Multiplexer Web Service

Multiplexer Webservice Aufbau
Zusammenfassung

Mit dem entwickelten Open-Source mjpeg-multiplexer Tool können Streams im MJPEG Videoformat flexibel und parametrisierbar gemischt werden und als einzelner Stream ausgegeben werden. Der Fokus dieses Tools liegt auf der einfachen Bedienung, der Stabilität und der Performance. Es wurden mehrere Mischstrategien der Videos für verschiedene Einsatzzwecke implementiert und mittels Aktivitätserkennung können Streams mit viel Bewegungen prominent und im Fokus dargestellt werden.

Schlüsselbegriffe

  • MJPEG
  • MJPEG-Stream
  • Videoverarbeitung
  • libjpeg
  • libjpeg-turbo
  • golang
  • Aktivitätserkennung
  • Consecutive Frame Difference Method
  • Raspberry Pi
  • Raspberry Pi Camera
  • Crosscompile
  • Linux
  • Zielsetzung

    Das mjpeg-multiplexer Tool soll im SNF Forschungsprojekt Mitwelten zum Einsatz kommen. Das Zusammenfassen / Bündeln von mehreren Streams und die Ausgabe bildet die Grundfunktionalität des Tools ab. Beim Zusammenfassen der Streams soll zwischen verschiedenen Mischstrategien dieser Inputstreams gewählt werden können. Beispielsweise können zwei Inputstreams so zusammengesetzt werden, dass im Outputstream Bilder aus zwei unterschiedlichen Streams nebeneinander dargestellt werden. Weitere sinnvolle Strategien für die Kombination und Ausgabe von Streams sollen ausgearbeitet und implementiert werden. Als Erweiterung soll zusätzlich eine Auswertung der MJPEG-Streams über einzelne und auch über mehrere Frames untersucht werden, um beispielsweise die Aktivitäten der einzelnen Streams auszuwerten.

    Ausgangslage

    Im Rahmen des SNF Forschungsprojekts Mitwelten wurde ein System entwickelt, welches mittels Kameras die Biodiversität beobachtet. Dabei werden diese Kameras beispielsweise oberhalb von Pflanzen installiert. Als Kameras dienen Raspberry Pi Kameras (“Pi-Cams”), die an einem Raspberry Pi angeschlossen sind. Pro Standort einer Fallstudie des SNF Forschungsprojekt gibt es mehrere Cluster, um die Biodiversität zu beobachtet. Dabei sind alle diese Kamerasetups in der Lage, einen MJPEG-Videostream zur verfügen zu stellen. Es gibt keinen zentralen Dienst, welcher mehrere Streams zusammenfassen kann und für Klienten aufrufbar macht. Um einen solchen MJPEG-Stream zu starten, wird ein Tool benötigt, welches aus einem Kamerainput einen Stream erstellt und diesen im richtigen Format zur Verfügung stellt. Im Jahr 2021 wurde eine Fallstudie in den Basler Merian Gärten durchgeführt. Im Frühjahr 2022 wurde eine weitere Fallstudie im Dreispitz Areal in Basel gestartet.

    Ergebnisse

    Entwickelt wurde ein vollumfängliches Kommandozeilentool für das Mischen von MJPEG-Videostreams. Das Tool ist Open Source und variable einsetzbar. Folgende URL führt zum Projekt: GitHub Mitwelten Unsere Lösung bietet folgende Features:

  • plattformunabhängiges und portables mjpeg-multiplexer Tool
  • Parametrisieren via Kommandozeile
  • Lesen von MJPEG-Streams
  • Ausgeben von MJPEG-Streams
  • Robustes Fehlerhandling mit aussagekräftigem Log
  • Umsetzung unterschiedlicher Mischstrategien (Grid, Panel, Carousel)
  • Dynamische Priorisierung der Streams mittels Aktivitätserkennung
  • Erweiterungen wie Labels und Border
  • Automatische CI/CD Pipeline
  • Projektdaten

    Informatikprojekt 6
    Projektdauer: Februar 2022 - August 2022
    Aufwand: 720 Stunden
    Teamgrösse: 2 Personen

    Auftraggeber

    Forschungsprojekt Mitwelten, FHNW
    Leitung:
    Jan Torpus
    jan.torpus@fhnw.ch

    Projektteam

    Marc Bugmann
    Tobias Kunz

    Kontakt / Betreuer

    Thomas Amberg, thomas.amberg@fhnw.ch

    << zurück