Community Tutorial: Where's my stream? TURN Server debugging for Pixel Streaming

Once a pixel streaming app goes up into the cloud, all sorts of networking problems can prevent end users from ever seeing it. The most common and important fix for your infrastructure is a TURN server, and this tutorial will show you how to set it up and debug it.

https://dev.epicgames.com/community/learning/tutorials/VY4X/unreal-engine-where-s-my-stream-turn-server-debugging-for-pixel-streaming

1 Like

Hey Stephen, I menage working Pixel Streaming on local network. But what if I want it on my web page to be and my PC to be server for one client, how to menage that ? I look multiple different tutorials and all of them point on Servers like Azure AWS etc, but I don’t want that at the moment, I want me to Pixel Stream during development process to just one client. When It is finished I would deploy to some other Server.
So is it possible to be direct Pixel streaming between me (really good Pc configuration) and client and how? Is there some tutorial or direction.
Note I am not IT so Stun and Turn are little blurry to me but I get a point.

It is possible to have external clients connect directly to the UE app on your computer for the purposes of pixel streaming. I could see a couple things getting in the way, such as security concerns, or making sure that your network and your client’s network allow such a connection (this is why TURN is necessary in many cases).

But the first thing to solve is letting external computers access your PC web server. You can find your computer’s public IP address by Googling “what’s my IP”. Lets say it’s xxx.x.x.x. And if you’re hosting your pixel streaming server on localhost port 80, then the public address of the server would be xxx.x.x.x:80. This is the address that external clients should access, but your network gateway / router will not enable this by default. I think the topic you need to address is “Port Forwarding”, where you tell your gateway (via its admin portal) to let traffic through to your exact public IP. And you’ll probably have to open up your PC’s firewall to also allow that same traffic to that port. Forgive me, I’m a little rusty on this topic at this point, but I know this is generally the right direction you’ll need to explore.

Thanks, you described everything that I done already and it works (dont ask me how I done) :smiley: Now I have to go in details and manage quality stream. If you find some good toutorial on this please share for more details. All the best!

Edit: I got WEBRTC Connection negotiated, that mean turn signal problem but I started server with turn
Edit2: so problem is you have to be precise with turn, stun, and the port numbers, you miss one number and it wont work:(
Problem solved :smiley:

I haven’t messed with quality settings before, but you reminded me of some notes I saw around the quality presets available in the new Pixel Streaming 2 plugin (UE 5.5+).

1 Like

Can I ask you one more question about pixel stream? :smiley: I Use Pixel Stream (not PS2) and it works great, I start it local, and when I send my IP anybody can see it. But when I start Pixel Stream my Performance in Task manager GPU go over 50% and I can hear fans starting to work although nobody is connected to my IP yet and my screen is blank. So my question is, is it possible for Pixel Streaming to be in some idle mode or something till somebody connect to IP then to go full performance, and again some idle mode when disconnect from PS. That way I would left my PC for longer open for Pixel Stream without waiting somebody to connect and disconnect, so my GPU and PC would have less stress? Is this possible in Pixel Stream 2? Thanks in advance :slight_smile:

Right, the UE app is always there running just like it would any other time you launch the application. I haven’t tried to fully hault all rendering before, but if I was you I would start with console command t.maxFPS 1 , which would set the app to 1 FPS. You might try zero. There is also pause to pause gameplay (not rendering).

There is a documentation page about the types of communication you can have between the UE app and the web server. In this case you’d hook up the FPS commands to events like “OnNewConnection” and “OnConnectionClosed”. And yes, all those old features are available in PS2, as well as newer functions.

1 Like