Pixel Streaming 4.27.2 can not start Turn Server


When I start Turn Server,there are some problems like this. Where is the “C:\coturn.pid”?

Reading screen shots from images doesn’t help anyone, and can’t be searched for by forum find or search engines.

I suggest you copy the bits of text that are important (the command you run, and the error you see) and paste it inside a code block, to make it easier for people to answer your question.

Starting with some text describing “I’m doing X based on instructions at Y, I expect to see output Z but I instead see outcome Q” would also make it easier for others to answer.

That being said – my guess from reading what I can from the error message (in a language I don’t understand) would be that you have trouble connecting to api.ipify.org – check the network connectivity and API requirements for that service.

Thinks!
I want to start turn server of UE 4.27.2 Pixel Streaming.
I search in Google find that the coturn server can not run under Windows.
So when I run command Start_TURNServer.ps1. There is a error like this

Running: turnserver.exe -p -r PixelStreaming -X 127.0.0.1 -E DESKTOP-GEK0OI3 -L DESKTOP-GEK0OI3 --no-cli --no-tls --no-dtls --pidfile “C:\coturn.pid” -f -a -v -n -u PixelStreamingUser:AnotherTURNintheroad
Start-Process : The command cannot be run because of the following error: the system cannot find the location of the specified file
C:\Users\Unrea\Desktop\SignallingWebServer\platform_scripts\cmd\Start_TURNServer.ps1:34 character: 1

  • Start-Process -FilePath $ProcessExe -ArgumentList $Arguments -NoNewWi …
  •   + CategoryInfo          : InvalidOperation: (:) [Start-Process],InvalidOperationException
      + FullyQualifiedErrorId : InvalidOperationException,Microsoft.PowerShell.Commands.StartProcessCommand

And what do we do when some script tries to run an executable it doesn’t find?

I solved this problem. I install the coturn from Github in Ubuntu system.

So, what the root cause for that? and i also had it, but that command(the printed line: Running: turnserver.exe -p -r PixelStreaming -X 127.0.0.1 -E DESKTOP-HI7F3V0 -L DESKTOP-HI7F3V0 --no-cli --no-tls --no-dtls --pidfile “turnserver.pid” -f -a -v -n -u ) i can run by command console/powershell on the coturn folder.

that is the issue of command string format or the variables? the following is from start_TURNSERVER.ps1.

$TurnUsername = “PixelStreamingUser”
$TurnPassword = “AnotherTURNintheroad”
$Realm = “PixelStreaming”
$ProcessExe = “turnserver.exe”
$Arguments = “-p $TurnPort -r $Realm -X $PublicIP -E 127.0.0.1 -L 127.0.0.1 --no-cli --no-tls --no-dtls --pidfile "C:\coturn.pid” -f -a -v -n -u $TurnUsername`:$TurnPassword"

Add arguments passed to script to Arguments for executable

$Arguments += $args

Push-Location $PSScriptRoot\coturn
Write-Output “Running: $ProcessExe $Arguments”

pause

Start-Process -FilePath $ProcessExe -ArgumentList “$Arguments” -NoNewWindow

The log:
Start_Common.ps1 is running with the following parameters:

TURN server : 127.0.0.1:
Public IP address : 127.0.0.1
Cirrus server command line arguments:

Private IP: DESKTOP-HI7F3V0
TURN port:

Running: turnserver.exe -p -r PixelStreaming -X 127.0.0.1 -E DESKTOP-HI7F3V0 -L DESKTOP-HI7F3V0 --no-cli --no-tls --no-dtls --pidfile “turnserver.pid” -f -a -v -n -u PixelStreamingUser:AnotherTURNintheroad
Start-Process : This command cannot be run due to the error: The system cannot find the file specified.
At E:\workshop\prj\unreal\multipleInst\build\WindowsNoEditor\Samples\PixelStreaming\WebServers\SignallingWebServer\plat
form_scripts\cmd\Start_TURNServer.ps1:35 char:1

  • Start-Process -FilePath $ProcessExe -ArgumentList $Arguments -NoNewWi …
  •   + CategoryInfo          : InvalidOperation: (:) [Start-Process], InvalidOperationException
      + FullyQualifiedErrorId : InvalidOperationException,Microsoft.PowerShell.Commands.StartProcessCommand

I suggest that you can run Coturn Server in Cloud Linux System. Do not use the Coturn Server in project folder.

I also have this problem, how did you solve it

After try some connects via the internet to my local machine (behind NAT) with UE4.27, I saw that the STUN free server is not suite for my case.
I have take some days to try to run own TURN server in the same Windows machine, here below are steps I have taken to make the TURN Server works, hope this help the person who need Pixel Streaming:

Step 1: Open port that you want the TURN server listens to:

  • Get your local IP address, type ‘ipconfig’ in CMD, look around IPv4 Address to know your local IP
  • Access to the router address, common is 192.168.1.1, give the username and password, choose Network → NAT → Input External/Internal Port → Input Local IP Address
    (ask your sysadmin if you are not familiar or don’t have privilege)

Note: I assume that you have had a port for the client browser connect to, this is about how to setup the TURN server

Step 2: Firewall Inbound/Outbound Rules: add the same port (both UDP/TCP) for the TURN server (not test TURN server work without UDP or TCP yet)

Step 3: Edit the Start_TURNServer.ps1 file:

  • Add “.\” before “$ProcessExe” in the Start_TURNServer.ps1 file, like this:
    Start-Process -FilePath .$ProcessExe -ArgumentList $Arguments -NoNewWindow
  • Change the port of the $TurnPort=“…” to your port have been opened

Step 4: Edit the Start_Common.ps1 file:

  • Find your public IP, google to get it, “my public ip” is keyword
  • Change the line $global:PublicIP = “stun.l.google.com” to $global:PublicIP = “your public ip”, example: 14.234.234.10
  • Change $global:TurnServer = $global:PublicIP + “:” to $global:TurnServer = $global:PublicIP + “:your-port” (position 1)
  • $global:TurnServer = $global:publicip + “:” to $global:TurnServer = $global:publicip + “:your-port” (position 2)

Step 5: Run TURN server

  • Run the setup.ps1 file
  • Run Start_WithTURN_SignallingServer.ps1

Step 6: Test

  • Run UE Streaming Project with command:
    yourproject.exe -PixelStreamingIP=localhost -PixelStreamingPort=8888 -AudioMixer -RenderOffScreen
  • Open a Chrome/Firefox/Safari on other internet, type your public IP (with port if not default 80)
1 Like

您好,我想问一下最终是怎么解决的呢?我看了一下Win_Ngo那位朋友的回答第四步找不到 $global:PublicIP = “stun.l.google.com”以及$global:TurnServer = $global:PublicIP + “:”,想问问您广域网的具体部署是什么流程呢?

Thanks @winngo for you detailed, and as a reminder, it is best to output the command line, and try it as the one command on console/shell to check if it is wrong, because maybe the script changed during version updated.

Regards