Display casting

Hi all developers, I want to cast a display of my Nreal light to a TV monitor. But, according to the official support, such kind of feature isn’t/won’t be published officially, although it is used internally… I think many developers need the feature to share the display to surrounding audience in a demonstration. Does anyone have a solution, an idea, a workaround?

I posted the same question on the old slack community and got an clue from Jan:

According to him and Starshell, we can stream an Nreal display to a computer by RTP. If anyone has done it, I would like to know detail steps and whether his step means that I can stream an Nreal display to a computer by video capture feature which officially supported (https://developer.nreal.ai/develop/unity/video-capture).

I hope anyone help me. Thank you.

Hi,

it’s simple. In the old slack channel I posted the steps, but here again. I used the Freeware VLC media player for that, but you can use any video player that can replay RTP streams.

  • Take the video capture example from the SDK and replace the file path with “rtp://ip_of_your_computer:12345”. You can use any other port, but then you have to use the same port in the SDP file too (see later).

  • Install the VLC (if you don’t have it already) on your computer.

  • Create a text file on your computer with the extension *.sdp

  • Copy this lines into the file:
    s=ESP H264+AAC STREAM
    m=video 12345 RTP/AVP 96
    a=rtpmap:96 H264/90000

  • Start the video recording in your nreal app. Then open the SDP file with VLC and you will see the video stream from you nreal glasses :nerd_face:

8 Likes

Great! Thank you @Starshell! I will try it!

@Starshell yeah you posted some steps, but they were inconsistent because you referred to a post from “Marian” but his post is deleted now. thats why he asks here again.

No problem @jan. I am happy to help.

I tried this today, but was not able to get this to work. VLC on the PC span for 10 seconds trying to connect then aborted. Are there any additional changes, like firewall, that need to be made to the PC? Ta.

You have to ensure that your phone can see and access the pc in your network (e.g. try to ping your PC’s IP). And of course you need to open the UDP port you used for streaming in your firewall (in my example the UDP port 12345)

I tried your steps but I also was not able to get this to work as @mgrayson. I turned off the firewall. I checked my glasses and PC are on the same network and the ping works between them (when the fireall is off). I changed the VideoCapture2LocalExample.cs like this:

I still didn’t get this to work - was hoping to try again very soon, but do let me know if you have any success @matsu

Isn’t this in the docs also a possibility?
First Person Stream

I don’t found the files but maybe someone else can help with this ?

1 Like

Thank you for the link. I will try it later.

I am also interested in this, anyone have the files?

If i try this, i get the error "Could not open output file ‘rtp://192.168.1.16:12345’ ", on the glasses, did you used the m_VideoCapture.StartRecordingAsync() method for this ?

I tried this today,but i got an error with “live555 error: no data received in 10s, aborting” when I open the SDP file

It worked! I used a port 8080 and could see the image on VLC player.

1 Like

you could also use GStreamer:

gst-launch-1.0 -v udpsrc port=12345 caps = "application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, payload=(int)96" ! rtph264depay ! decodebin ! videoconvert ! autovideosink

It worked for me on port 8080 (didn’t try port 12345), but I have a delay of around 2 seconds.
Is there a way to speed this up?

I am facing the same. 1 - 2 secons of delay…

I also have a seceral seconds delay.

FYI:

I could not do the streaming cast with “.NET Standard 2.0” of Api Compatibility Configuration setting in the Player settings while I could do it with “.NET 4.x”.