Quest GStreamer brings low-latency H.264 to Unity on Quest 3
A GitHub repository details a native Unity plugin, 'Quest GStreamer', designed for low-latency H.264 RTP/UDP video streaming to Meta Quest 3 headsets. The plugin leverages GStreamer, Android MediaCodec, and a Vulkan zero-copy render path to integrate video streams into Unity applications.
Key Takeaways
- The plugin targets Unity 2022.3 LTS on Meta Quest 3, with Android ARM64 and Vulkan only.
- Video input is H.264 over RTP/UDP, using a GStreamer udpsrc/RTP/H.264 parse chain.
- The native path runs through Android MediaCodec, then AImageReader/AHardwareBuffer, then a Vulkan blit into a Unity RenderTexture.
- The repo ships prebuilt ARM64 libraries in UnityAssets/QuestGStreamer/Plugins/Android/libs/arm64-v8a.
- Default runtime state includes Stalled after 1.5 seconds without UDP packets, with RestartStream() required after the sender returns.
Why It Matters
This gives Unity developers a concrete native path for getting H.264 streams onto Quest 3 with a low-latency pipeline rather than a generic desktop-style player stack. The scope is narrow—Quest 3, Android ARM64, Vulkan, and RTP/UDP—but that specificity matters for teams building headset-native video experiences. The repo also exposes clear runtime states, including Stalled and Failed, which makes sender health observable inside Unity. The next thing to watch is whether the project’s prebuilt ARM64 plugin binaries remain aligned with the listed Android NDK r25.2.9519653 and GStreamer Android universal 1.26.9 build instructions.
Read full article at github.com