<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/introducing-gstreamer-vr-plug-ins-and-sphvr-24rsghszf" -->

---
title: Introducing GStreamer VR Plug-ins and SPHVR | daily.dev
description: A Collabora engineer introduces gst-plugins-vr, a set of GStreamer plug-ins for viewing spherical (equirectangular) video on VR headsets like the Oculus DK2....
canonical: https://daily.dev/posts/introducing-gstreamer-vr-plug-ins-and-sphvr-24rsghszf
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Introducing GStreamer VR Plug-ins and SPHVR | daily.dev
og:description: A Collabora engineer introduces gst-plugins-vr, a set of GStreamer plug-ins for viewing spherical (equirectangular) video on VR headsets like the Oculus DK2....
og:url: https://daily.dev/posts/introducing-gstreamer-vr-plug-ins-and-sphvr-24rsghszf
og:image: https://api.daily.dev/og/posts/24RsGhSzF.png
og:image:alt: Introducing GStreamer VR Plug-ins and SPHVR
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Introducing GStreamer VR Plug-ins and SPHVR

**[Collabora Blog](https://daily.dev/sources/collabora)** · 10 min read · 0 upvotes · 0 comments

## Summary

A Collabora engineer introduces gst-plugins-vr, a set of GStreamer plug-ins for viewing spherical (equirectangular) video on VR headsets like the Oculus DK2. The work includes a vrcompositor element for stereo rendering with IMU tracking via OpenHMD, an hmdwarp element for lens distortion correction, and SPHVR, a Python-based spherical video player built on these plug-ins. The post also covers the math behind spherical projections, the limitations of stereoscopic video vs. true 3D point clouds, early Kinect v2 point cloud streaming via libfreenect2, and future plans for OSVR support, more projection types, and mesh construction from point clouds.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://www.collabora.com/news-and-blog/blog/2016/07/04/introducing-gstreamer-vr-plug-ins-and-sphvr>

## Questions this post answers

### How do I view equirectangular spherical video in GStreamer with a VR headset?

The gst-plugins-vr plug-ins provide a vrcompositor element for stereo rendering with IMU tracking and an hmdwarp element for lens distortion correction. A working pipeline looks like: gst-launch-1.0 uridecodebin uri=file:///path/to/video.mp4 ! glupload ! glcolorconvert ! videorate ! vrcompositor ! video/x-raw(memory:GLMemory),width=1920,height=1080,framerate=75/1 ! hmdwarp ! gtkglsink. OpenHMD is used for headset sensor input.

_Developers building GStreamer-based VR pipelines track gst-plugins-vr updates and related multimedia tooling on daily.dev._

### How does GStreamer handle lens distortion correction for VR headsets like the Oculus DK2?

Lens distortion (barrel distortion) is corrected using a fragment shader approach in the hmdwarp GStreamer element. The lens attributes are hardcoded for the Oculus DK2 but are planned to be extended to the HTC Vive and other headsets via OSVR support. The shader method was chosen for simplicity and low performance overhead.

_Engineers integrating VR rendering into GStreamer pipelines find relevant discussions and updates on daily.dev._

## Similar posts on daily.dev

- [This Sphere Holds Entire 3D Gaussian Splatting World](https://daily.dev/posts/this-sphere-holds-entire-3d-gaussian-splatting-world-vobkwpeht) · 80 LEVEL · 3 upvotes · 0 comments
- [VR without glasses for WebGL](https://daily.dev/posts/vr-without-glasses-for-webgl-atwhnoka9) · Hacker News · 0 upvotes · 0 comments
- [Stream High-Fidelity Spatial Computing Content to Any Device with NVIDIA CloudXR 6.0](https://daily.dev/posts/stream-high-fidelity-spatial-computing-content-to-any-device-with-nvidia-cloudxr-6-0-dewoyjdpd) · NVIDIA Developer · 0 upvotes · 0 comments
- [Room360: Video-to-3D Spatial Reconstruction Platform](https://daily.dev/posts/room360-video-to-3d-spatial-reconstruction-platform-qofbpihck) · Hugging Face · 0 upvotes · 0 comments

---

Tags: [#vr](https://daily.dev/tags/vr)

[View this post on daily.dev](https://daily.dev/posts/introducing-gstreamer-vr-plug-ins-and-sphvr-24rsghszf)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Introducing GStreamer VR Plug-ins and SPHVR","url":"https://daily.dev/posts/introducing-gstreamer-vr-plug-ins-and-sphvr-24rsghszf","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/introducing-gstreamer-vr-plug-ins-and-sphvr-24rsghszf"},"datePublished":"2026-08-11T08:55:37.804Z","dateModified":"2026-08-11T09:24:11.253Z","description":"A Collabora engineer introduces gst-plugins-vr, a set of GStreamer plug-ins for viewing spherical (equirectangular) video on VR headsets like the Oculus DK2....","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/873226d7a24a19990e884a7daf55a4d8?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/873226d7a24a19990e884a7daf55a4d8?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Collabora Blog","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Collabora Blog","logo":"https://media.daily.dev/image/upload/s--ZGZ0FjqS--/f_auto,q_auto/v1786438306/logos/collabora?_a=BAMAMicg0","url":"https://daily.dev/sources/collabora"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/introducing-gstreamer-vr-plug-ins-and-sphvr-24rsghszf","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"vr","timeRequired":"PT10M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Collabora Blog","item":"https://daily.dev/sources/collabora"},{"@type":"ListItem","position":3,"name":"Introducing GStreamer VR Plug-ins and SPHVR"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/introducing-gstreamer-vr-plug-ins-and-sphvr-24rsghszf#faq","mainEntity":[{"@type":"Question","name":"How do I view equirectangular spherical video in GStreamer with a VR headset?","acceptedAnswer":{"@type":"Answer","text":"The gst-plugins-vr plug-ins provide a vrcompositor element for stereo rendering with IMU tracking and an hmdwarp element for lens distortion correction. A working pipeline looks like: gst-launch-1.0 uridecodebin uri=file:///path/to/video.mp4 ! glupload ! glcolorconvert ! videorate ! vrcompositor ! video/x-raw(memory:GLMemory),width=1920,height=1080,framerate=75/1 ! hmdwarp ! gtkglsink. OpenHMD is used for headset sensor input. Developers building GStreamer-based VR pipelines track gst-plugins-vr updates and related multimedia tooling on daily.dev."}},{"@type":"Question","name":"How does GStreamer handle lens distortion correction for VR headsets like the Oculus DK2?","acceptedAnswer":{"@type":"Answer","text":"Lens distortion (barrel distortion) is corrected using a fragment shader approach in the hmdwarp GStreamer element. The lens attributes are hardcoded for the Oculus DK2 but are planned to be extended to the HTC Vive and other headsets via OSVR support. The shader method was chosen for simplicity and low performance overhead. Engineers integrating VR rendering into GStreamer pipelines find relevant discussions and updates on daily.dev."}}]}
```

