While it's possible to stream most content to Apple Vision Pro directly over the internet, having the ability to use Apple Vision Pro as an HDMI display can still be useful.
Since Apple Vision Pro does not support connecting to an HDMI input directly or using an HDMI capture card, we have to be a little creative to make this work. NDI provides the ability to stream HDMI content over a local network with really low latency, and it works great with Apple Vision Pro.
This page shows the setup I’m using.
- HDMI NDI Encoder
- Personally, I recommend the Kiloview N40, as it supports streaming up to 4K60 while being fan-less, and can use USB-C as a power input.
- Kiloview N60 comes with more features, but it’s larger and has a fan.
- Vxio app
- I made this one, you can also use other NDI monitor apps as well.
- Separately, Finn made Castaway that makes it possible to use a USB Capture Card + Mac/iPad instead of an NDI encoder. It's a more cost effective option for most people I imagine.
- To ensure high video quality, an NDI stream typically consumes significantly more bandwidth than a typical H.264/H.265 stream. Before purchasing the encoder, make sure your network can support data transfers at that speed.
- For 4K60 stream, the bandwidth required is typically around 250~300mbps. If you're having issue to stream smoothly, try go to the encoder's settings page and reduce the streaming quality.
- You can test this with some free software NDI encoders.
- Since this setup requires encode and decode the video content, it is not latency free. From my experience, I typically see 3~4 frames (~50ms, same as moonlight based on my measurement) of delay from the content source.
Setting up an NDI encoder is pretty straightforward. Just connect the device to your local network via Ethernet, supply power, and connect the HDMI input to the encoder.
If the visionOS shows the Local Network permission dialog, and after granting the permission the app still shows searching, you may need to force close the app, and reopen it.
After that, you should be able to see the encoder show up as a source in the Vxio app. Select the source, and you'll get your HDMI display 🎉
Depending on the NDI encoder, the default audio queue size might be too small for some devices. In that situation, try increasing the audio queue size so that the audio no longer experiences abrupt stops between samples.
If your Wi-Fi channel is congested, you can try force N40 to use UDP instead of Multi-TCP. In my experience, UDP performs a lot better in those network condition. You can do so from the N40's configuration UI, select NDI Connection -> Multi-TCP Disallowed.

I was able to make this setup portable by getting one of those mini router (GL.iNet Beryl AX) with a LAN port.
#AppleVisionPro #visionOS
@KhaosT thank you thank you thank you for color space override! I'm glad to see it was already helpful in a non-VR context :)
As @lightsailvr said, yeah, the HDR unfortunately doesn't carry over to the immersive view. I think you're right that this is a limitation of RealityKit. Might be necessary to somehow create the immersive viewing environment in Unity.
One more thing...could we actually bug you to add P3-D65 PQ (ST2084) as an option for the override? This is actually the mastering spec for Apple Immersive Video. I'm sitting in my grading suite now, looking at a video we graded to P3-D65 on my reference HDR monitor. When I look at that video in VXIO via NDI having chosen 2100 PQ as the override, all the colors look too saturated and cartoonish. This is expected behaviour of viewing something mastered in a smaller color space in a larger color space (aka, viewing P3-D65 in 2020).
Amazing, and again, thank you.