In Eagle 3D Streaming, resolution is the number of pixels in the picture each viewer receives. It is set once, in the app configuration, and it is the single setting with the largest effect on how the stream looks and how much internet each viewer needs. There are two choices, and the right one depends on who is watching.
In the Control Panel the setting is Browser Resolution, on the Common tab of the app configuration. It offers two things: Dynamic and Custom.
| Choice | What every viewer gets |
|---|---|
| Dynamic — match the viewer's window | A picture exactly the size of the area it is displayed in, changing again whenever that viewer resizes the window or turns their phone. Two people watching at once can be receiving two different sizes. |
| Custom — a fixed resolution | One size, chosen once, the same for everybody. If it does not match a viewer's window the picture is scaled to fit, exactly as a video is. |
Dynamic (match the viewer's window) is the default, and is what a configuration saved before this setting existed does too.
While a viewer is watching, the Eagle 3D Streaming page measures the area the video occupies and asks the Unreal application to render at that size. It does this again every time the area changes — a resized window, a rotated phone, a sidebar opening on the host page — at most about three times a second, so a slow drag of a window corner does not turn into hundreds of resolution changes.
The result is a picture that is never scaled and never soft from being stretched. On a large monitor it is large. On a phone it is small, which is why the same application looks softer on a phone than on a desktop: the frame really is smaller, and correctly so.
Screen scaling counts, so a 4K laptop is usually fine. The size asked for is measured in the browser's own pixels, not the screen's. A 4K laptop running Windows at 200 % scaling reports a 1920-wide window and streams at 1920 wide. The large sizes come from large desktop monitors running at 100 % scaling, where the window really is 2560 or 3840 pixels across.
Some applications crop on a phone held upright. In a tall, narrow window a few applications lose the right-hand side of the scene, with no black bars to show that anything is missing. That is a camera setting inside the Unreal project, not a fault in the stream: the camera's Aspect Ratio Axis Constraint is set to Maintain Y FOV, which holds the vertical field of view fixed and narrows the horizontal one as the window narrows. Setting it to Maintain X FOV in the project fixes it. Most applications are unaffected.
Choosing Custom shows two boxes, width and height. These are the four standard sizes to type into them, with the connection speed a viewer needs for each:
| Size | Known as | Suits |
|---|---|---|
| 1280 × 720 | 720p HD | The safe choice. Works on most home connections, and on mobile data. |
| 1920 × 1080 | 1080p Full HD | Most streams. Needs a good connection. |
| 2560 × 1440 | 1440p QHD | A fast, wired connection. |
| 3840 × 2160 | 4K UHD | A very fast connection, and a great deal of the streaming machine. |
Any other width and height works too. Use one when the application has to render one exact size — a kiosk screen, a video wall, an ultrawide monitor, a portrait display.
These are the speeds a viewer's connection needs. A stream that is mostly still — a paused scene, a menu — uses far less than one where the camera is moving, and the figures below are for the moving case, because that is the moment a connection that is only just fast enough starts to struggle.
| Size | Recommend the viewer has | What real sessions used |
|---|---|---|
| 1280 × 720 | about 10 Mbps | 2,547 sessions measured: about 1.8 Mbps most of the time, rising to about 8.2 Mbps when the picture was busy. |
| 1920 × 1080 | about 15 Mbps | 1,305 sessions measured: about 2.4 Mbps most of the time, rising to about 9.3 Mbps when the picture was busy. |
| 2560 × 1440 | around 25 Mbps (estimated) | Only 4 sessions ran at this size. That is too few to call a measurement, so the figure is worked out from the pixel count against 1080p. |
| 3840 × 2160 | 35 Mbps or more (estimated) | Only 1 session ran at this size. The figure is worked out from the pixel count against 1080p. |
The recommended figures are deliberately higher than the busiest measured ones. A connection that only just meets the average stutters the moment the picture starts moving, which is exactly when somebody is looking at it.
There is a ceiling. A single stream is capped at 20 Mbps however fast the viewer's connection is. At 1280 × 720 and 1920 × 1080 that cap is never reached. At 3840 × 2160 it is the limit on how good the picture can get, which is part of why 4K is rarely worth its cost for a remote viewer.
These two are easy to confuse, and knowing the difference explains most of what a stream does on a slow connection.
| Resolution | Quality | |
|---|---|---|
| What it is | How many pixels the picture has. | How much detail survives being compressed into the bandwidth available. |
| Who sets it | This setting, or the viewer's window. | The stream itself, second by second. |
| When the connection slows | Does not change. | Drops, and the picture goes soft and blocky. |
So the common assumption — it adapts, so a slow connection will be fine — is half true. What adapts is the quality. The size stays exactly where it was set. Asking for a big picture on a slow connection does not produce a smaller picture; it produces a big blurry one.
If the audience is unknown — a link on a public website, a QR code at an event — 1280 × 720 fixed is the setting that disappoints nobody. It looks slightly softer on a large monitor and it works on a phone on mobile data, which is the trade most audiences want made for them.
Configurations saved before this setting existed follow each viewer's window, which is the default. Nothing needs changing unless a fixed size is wanted.
Older configurations set to 720p, 1080p or Max are treated as a fixed size: the player follows the window only when the setting is exactly Dynamic. If an older configuration is meant to follow the window, open it and choose Dynamic.
Guests invited into a session watch at a fixed size and cannot change it. Only the person who started the session drives the resolution, so one viewer resizing a window never resizes the picture for everybody else.
When the stream is embedded in your own website, the resolution can be changed at runtime instead of being fixed in the configuration — pinned to a size, or released to follow the window again. Both calls are on Controlling the stream, along with the reason a raw resolution command does not work.
Last updated