Black bars are the empty strips that appear above, below or beside the stream when the picture does not fill the window. They are not a fault in the connection. They appear when the picture the Unreal app sends is not the same shape as the viewer's window, and the usual cause is a resolution that has been locked inside the app.
Think of the viewer's window as a wall, and the video as a poster pinned to it. The stream page is laid out in two layers:
If the poster is exactly the size of the wall, the wall is hidden. If the poster is a different shape, it is scaled down until it fits, and part of the wall stays uncovered. That uncovered part is what a viewer sees as a bar. It is black only because the background is black — with a white background the same strips would be white bars.
| The picture is… | compared with the window | The viewer sees |
|---|---|---|
| the same size and shape | e.g. 1920 × 1080 in a 1920 × 1080 window | a full picture, no bars |
| wider | e.g. 1920 × 1080 in a 1000 × 900 window | bars above and below |
| taller (narrower) | e.g. 1920 × 1080 in a 1900 × 800 window | bars left and right |
The cure is a picture made for the window: if the window is 1600 × 900, the picture has to be 1600 × 900. In the digital world this size is the resolution — width and height in pixels, such as 1920 × 1080 or 1280 × 720.
With Browser Resolution set to Dynamic (the default), this happens by itself while the stream runs:
Step 3 only happens if the app listens. An Unreal project can fix its own resolution, and then it keeps rendering that size whatever the browser asks for. Common places where that is done:
r.SetRes, at start-up or on a timer.UGameUserSettings::SetScreenResolution
or r.SetRes.The browser keeps asking for the window's size, the app keeps answering with its own, and the picture is scaled to fit — with bars.
This is why such an app looks fine to the person who built it and not to others. A viewer whose window happens to be exactly the locked size sees no bars. Every viewer with a different window size — a laptop, an ultrawide monitor, a phone, a page with a sidebar — sees them.
| Browser Resolution | App locks its resolution? | Result |
|---|---|---|
| Dynamic | No | Picture follows every window. No bars. |
| Dynamic | Yes | Bars for every viewer whose window is not the locked size. |
| Custom (fixed size) | — | One size for everybody, by choice. Bars wherever the window is a different shape. |
SetScreenResolution and r.SetRes.If the bars still appear after this, contact support with the app name and a screenshot.
Last updated