In some cases it may be necessary to provide command line arguments to your game when it starts up. Here's how to set it up in the PureWeb Console.
How to use Command Line Arguments
Log into your console account and select the project that contains the model you want to provide command line arguments for.
Click on the ellipsis in the bottom-right corner of the model tile.
Click on "Details" at the top of the pop-up menu.
Click on the "Runtime Customizations" button to expand the section, then enter your desired command line arguments into the "Command Line Arguments" text box.
For Unreal game packages, the PureWeb Reality platform makes use of the following parameters:
Unreal only: Pixel streaming Best Practices
Unreal's Pixel streaming has Quality of Service (QoS) built in to adjust the streaming quality in real time depending on the end user's bandwidth and quality of connection. By default, if pixel streaming deems the connection as insufficient it will favor frame rate and drop resolution in order to keep up with the stream.
The behavior of when and how to adjust the QoS can be changed with a number of command line arguments and you can find an extensive list here. From our experience, here are the most impactful ones to improve the streaming and visual quality in every-day circumstances:
-PixelStreamingWebRTCDegradationPreference="MAINTAIN_RESOLUTION" -PixelStreamingWebRTCMinBitrate=2500000 -PixelStreamingWebRTCLowQpThreshold=20
What does this mean?
PixelStreamingWebRTCDegradationPreference decides what to do with the stream if there is a drop in bandwidth or connection quality. By default, this is set to "MAINTAIN_FRAMERATE" which will turn your stream into a pixelated mess. Using "MAINTAIN_RESOLUTION" will keep a sharp image, but may drop the frame rate.
To ensure the bitrate of a stream does not fall below a certain threshold in very difficult network conditions, users can set this to a minimum (in bps) using the PixelStreamingWebRTCMinBitrate parameter. For-instance: Using your favourite online search engine you can find out that the bandwidth recommendation for 720p is around 2.5 Mbps, which converts to 2500000 bps and your command line parameter works out to -PixelStreamingWebRTCMinBitrate=2500000. You can adjust this value as needed.
Note: To test a lower bandwidth quality setting, temporarily change this parameter to -PixelStreamingWebRTCMaxBitrate=<value>. This will set a max value so you can see in real-time what the quality will drop to if your minimum bitrate is reached.
PixelStreamingWebRTCLowQpThreshold sets a framerate threshold value as to when pixel streaming reconsiders the streaming quality. In this example, if the framerate drops below 20 fps, quality may be adjusted. You can drop or raise this value as you see fit for your use case.