If you are using version 3.18.0 (or higher) of our platform-sdk package, it has the added ability to configure a maximum stream resolution for Unreal Pixel Streaming applications of up to 4k (3840 x 2160).
Ensuring Stream Stability
By increasing the stream resolution, the bandwidth requirements for users streaming the model will significantly increase. Please see our Streaming Frame Rate & Bandwidth document for full details.
We have observed significant instability in the Unreal pixel streaming plugin when streaming at resolutions above 1080p, and found that much of this instability has been addressed by Epic in the 5.0.3 release for Unreal Engine; so if you plan on using higher streaming resolutions, we recommend updating to UE 5.0.3 or later.
Unreal's pixel streaming plugin may reduce the resolution of the stream to compensate in limited bandwidth situations, causing instability in the stream. If you intend to use resolution settings higher than 1080p, we strongly recommend passing
-PixelStreamingWebRTCDegradationPreference="MAINTAIN_RESOLUTION"
as a runtime parameter for your model in the PureWeb Console. This will improve the stability of streaming in Unreal Engine versions below 5.0.3, and improve the visual quality (albeit at the expense of framerate).
There are two other options available, depending on the behaviour you want in your streaming experience:
-PixelStreamingWebRTCDegradationPreference="MAINTAIN_FRAMERATE"
-PixelStreamingWebRTCDegradationPreference="BALANCED"
Configuring High Resolution Streaming
To set the maximum stream resolution, there are a few steps that need to be followed.
Modify the VideoStream component
In your custom web client code, find the VideoStream tag in the App.tsx file. At the bottom of the tag, add a line to define the resolution:
Resolution={streamResolutionConfiguration(Resolution.qhd)}
Of course, you may want to use a different value than qhd. The full list of available parameters can be found at the bottom of this document.
The full VideoStream tag should now look something like this:
<VideoStream
<VideoRef={videoRef}
Emitter={props.InputEmitter}
Stream={props.VideoStream}
UseNativeTouchEvents={props.UseNativeTouchEvents}
UsePointerLock={props.UsePointerLock}
PointerLockRelease={props.PointerLockRelease}
Resolution={streamResolutionConfiguration(Resolution.qhd)}
/>
/>
Add a resolution parameter
Alternatively, you could define the resolution parameter in the client.json file. To do this, add the parameter and desired value like so:
“resolution”: “qhd”
Add necessary imports
Regardless of which option you choose above, you'll also need to add the following imports into your App.tsx file:
import {
streamResolutionConfiguration
} from '@pureweb/platform-sdk';
import {
VideoStream
} from '@pureweb/platform-sdk-react';
Passing Properties via URL
You can also pass a resolution parameter into your web client application via URL parameters like so:
https://your-url.com?resolution=qhd
Valid Resolution Parameters
The parameter you provide will define the maximum stream resolution. See the list below for the parameters and their respective resolution values.
Parameter | Resolution |
sxga | 1280 x 1024 |
hd | 1366 x 768 |
hdplus | 1600 x 900 |
fhd | 1920 x 1080 |
wuxga | 1920 x 1200 |
qhd | 2560 x 1440 |
wqhd | 3440 x 1440 |
uhd | 3840 x 2160 |