GStreamer-VR-Plugins: SPHVR gibt sphärische Videos im VR-Headset wieder

Collabora-Entwickler Lubosz Sarnecki beschreibt in einem Beitrag vom 4. Juli 2016 GStreamer-VR-Plugins und den Python-Player SPHVR. Die Werkzeuge verarbeiten sphärische Videos für Virtual-Reality-Headsets und verbinden die Wiedergabe mit GStreamer-Pipelines.

Das zugehörige GitHub-Projekt bündelt die Plugins unter der LGPLv2. Zum Stand des Beitrags gehörten GStreamer, die OpenGL-Plugins, OpenHMD und GTK+ zu den Bausteinen. Die Pipeline kann damit sowohl Videodaten auf eine Kugel abbilden als auch die Ausgabe für ein Headset und ein Desktopfenster aufteilen.

VR-Wiedergabe mit OpenHMD und OpenGL

Sarnecki setzt für die ersten Sensorfunktionen auf OpenHMD. Die Darstellung übernimmt ein OpenGL-basierter Compositor, der equirektangulär gespeicherte Videos auf eine sphärische Fläche projiziert. Für die Ausgabe nennt der Entwickler unter anderem die GStreamer-Elemente vrcompositor und hmdwarp. Eine frühere Lösung für die Oculus Rift DK1 war noch auf die stereoskopische Anzeige beschränkt und bot kein Headset-Tracking. Eine spätere Unterstützung für OSVR war als nächster Ausbau vorgesehen.

Stereoskopische GStreamer-Ausgabe mit einer Straßenansicht für ein VR-Headset

SPHVR ist als Python-Player für sphärische Videos angelegt. Der Player kann eine lokale Datei oder URL öffnen, die Anzeige auf einem Oculus Rift DK2 erkennen und über die GStreamer-Overlay-Schnittstelle ein zweites Fenster auf dem Desktop anlegen. Das ist für Demonstrationen und Tests relevant, weil die Headsetansicht parallel auf einem normalen Monitor kontrolliert werden kann.

Kinect-Punktwolken als weitere Pipeline

Neben der Videowiedergabe enthält das Projekt einen noch unfertigen Quellbaustein für libfreenect2. Damit lassen sich Tiefendaten einer Kinect v2 in eine Punktwolke überführen. Sarnecki beschreibt die Punktwolke als 3D-Szene, die bereits auf einem Headset ausgegeben werden kann. Für die Übertragung der vollständigen Tiefeninformationen fehlte im Beitrag noch die Unterstützung von 16-Bit-Gleitkommapuffern in gst-video.

Die technische Ausrichtung knüpft an die damalige Entwicklung von VR-Werkzeugen in Engines an. In der Unreal Engine 4.7 waren bereits eine VR-Vorschau und weitere Rendering-Funktionen für Entwickler hinzugekommen. GStreamer verfolgt hier einen anderen Ansatz über Medienpipelines, Sensorzugriff und frei kombinierbare Ausgabestufen.

Weitere News

Weitere News

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein