E3DS Documents & Tutorials

Testing Unreal VR App Using Epic’s Signaling Server with a VR Headset

Before uploading your app to the Control Panel, it’s important to verify that it’s fully compatible with Pixel Streaming. To ensure your packaged build runs smoothly in a streaming environment, you should first test the app locally using Epic’s Pixel Streaming Signaling Server.

This test confirms that core Pixel Streaming features (e.g., streaming quality, interaction, and headset support) are working as expected.





Important:
From Step 1 to Step 10, perform everything on your computer. Step 11 should be done inside your VR headset.








Follow the steps to test your app locally using the Epic Signaling Server:


Step 1. Run get_ps_servers.bat


Path:

[Packaged Folder] > Windows > [Your Project Name] > Samples > PixelStreaming > WebServers > get_ps_servers.bat


Example:
If your project name is MyProject2, and you selected a folder named "Packaged Folder" during packaging, the path will be:
Packaged Folder > Windows > MyProject2 > Samples > PixelStreaming > WebServers > get_ps_servers.bat

image-20241228-151406.png
Figure 1. Run get_ps_servers.bat












Step 2. Wait for Dependencies to Download


Once you run the .bat file, a terminal will open, download required files, and close automatically.After downloading all required files the terminal will be automatically closed.


image-20241228-151910.png
Figure 2. Required files downloading









Step 3. Enable HTTPS in config.json


  1. Navigate to [Packaged Folder] > Windows > [Your Project Name] > Samples > PixelStreaming > WebServers > SignalingWebServer

    image-20250805-023614.png
    Figure 3. Edit config.json




  2. Open the config.json file and set: "useHttps": true

  3. Save the file.

image-20250805-023749.png
Fig 4. Enable HTTPS








Step 4. Add Certificate Files

Download the following ZIP file and extract its to the SignalingWebServer folder: Download Zip File

image-20250805-024904.png
Figure 5. Certificate folder extracted


Make sure the extracted folder includes the necessary certificate files.

image-20250805-025111.png
Fig 6. Contents inside certificate folder









Step 5. Run the Signaling Server


  1. Navigate to: [Packaged Folder] > Windows > [Your Project Name] > Samples > PixelStreaming > WebServers > SignalingWebServer > platform_scripts > cmd

  2. Run the run_local.bat file.

In newer versions of Unreal Engine, the file is renamed to Start.bat. Use that if run_local.bat is not present.


image-20241228-152724.png
Figure 7. Run run_local.bat or Start.bat


Important: Keep the terminal window open for the remainder of the steps









Step 6. Wait for Local Server Setup


  1. When the script runs, additional files will be downloaded.

  2. Once completed, leave the terminal open.


Don’t close the terminal for rest of the steps of this section



image-20241228-152502.png
Figure 8. Local signaling server started











Step 7. Create a Shortcut of Your App Executable


  1. Go to: [Packaged Folder] > Windows

  2. Locate the .exe file of your app (e.g., MyProject2.exe), right-click, and select Create Shortcut.


image-20241228-152958.png
Figure 9. Create shortcut











Step 8. Add Command-Line Arguments to the Shortcut


  1. Right-click the shortcut > Properties

    image-20241228-153036.png
    Figure 10. Edit shortcut properties


  2. In the Target field, after the existing path, add a space and then the following:

    -log -AudioMixer -PixelStreamingIP=localhost -PixelStreamingPort=8888 -RenderOffScreen -AllowPixelStreamingCommands -PixelStreamingEnableHMD -ResX=1920 -ResY=1080
    

Example:
"C:\Path\To\MyProject2.exe" -log -AudioMixer -PixelStreamingIP=localhost -PixelStreamingPort=8888 -RenderOffScreen -AllowPixelStreamingCommands -PixelStreamingEnableHMD -ResX=1920 -ResY=1080


image-20241228-153439.png
Figure 11. Final command line added



  1. Apply the changes









Step 9. Double click on the shortcut of the exe file to open it.


Keep the terminal window from Step 5 open while doing this.


image-20241020-071549.png
Figure 12. Launching the app



If you see an error like Encoder pending resolution exceeds device max capabilities, ensure the -ResX=1920 -ResY=1080 flags are included.

error.jpg
Figure 13. Encoder pending resolution exceeds device max capabilities










Step 10. : Get Your Local IP

  1. Go to your command prompt and type “ipconfig” and press “Enter” key.

    image-20250805-144332.png
    Figure 14. Finding IPV4 Address


  2. Copy IPV4 Address.

    image-20250805-144449.png
    Figure 15. Copy the IPV4 Address


Use the displayed IP address to open the stream on your VR headset browser.














Step 11. Open the Stream in Your VR Headset


Important:
Make sure your VR headset and the machine running the Unreal Engine application are connected to the same local network.


  1. On your VR headset, open the browser and enter the following URL using the local IP address you obtained in Step 10 on your computer:

    Example: If Step 10 showed your IP as 192.168.1.25, enter: https://192.168.1.25

  2. Press the XR button to launch immersive mode.

    xr.jpg
    Figure 16. Press the XR Button


Your app should now stream locally via Pixel Streaming.







Your App will start only if the Pixel Streaming plugin is enabled.

If the Pixel Streaming plugin wasn’t enabled before packaging your app, the stream won't launch. Instead, you’ll see a generic server interface. To enable pixel streaming go to Enable Pixel Streaming Section

image-20241020-074102.png
Figure 17. Pixel Streaming not enabled












Need help?

If you need any assistance, feel free to reach out through any of the following channels:

🛠️ Support Portal: Contact Our Support Team

💬 Discord Community (Faster Support): Join Our Discord Community

📧 Email Support: support@eagle3dstreaming.com


🆓 Get Started for free

 


Follow us on:

Facebook | GitHub | LinkedIn | YouTube