Streaming frame rate (fps) is dependent on game complexity (polygon count, lighting, particle effects, etc.), as well as the browser resolution, network latency, and the user's internet bandwidth.

On average networks, frame rates between 30 and 60 fps are typical when streaming multi-million polygon models at 720p to commodity grade end-user devices, and between 20 and 40 fps for 1080p. 720p streams require a minimum of 5Mbps, and we recommend 10-12 Mbps for 1080p.

Although pixel streaming does support it, 4K streaming uses five times more data than 1080p and requires the end user to have an absolute minimum of 25 Mbps of bandwidth.

For most experiences, we recommend allowing the streaming game to resize itself to fit the user's browser, rather than forcing a specific resolution.

In this case of Unreal, will adapt the quality of the stream dynamically, based on the bitrate between the client and the game. The default configuration for Unreal is to maintain frame rate and resolution, but to dial down the encoder quality. In low bitrate scenarios, the stream will begin to look smudged and blurry as encoder artifacts appear. It defaults to a low of 3000kbps, and if that can't be maintained, failure to keep up will result with the stream freezing, tearing, etc.

For Unity, the aspect ratio will not change, but the stream will still adjust to fill the browser in a best-fit manner.

Low Bandwidth Considerations

Consider leveraging the open source webrtc.org tools (or something similar) in your web client to test the user's connection, and then create a connection that fits their bandwidth. This might be by restricting the framerate or creating streaming window with a specific resolution resolution that can not be resized or set to full-screen.

If the user does not fulfill the desired requirements for a stream, your web client could display a helpful message to your users, rather than allowing them connect and have a poor experience.