1. Stream stats
NOALBS reads the bitrate and connection state from the ingest server. For that, the right stats URL and the right stream name have to be entered.
What NOALBS monitors, how it controls OBS and what the most important settings are for in practice.
NOALBS stands for "Nginx OBS Automatic Low Bitrate Switching". It regularly checks the stats of your RTMP, SRT or SRTLA server and controls OBS through its built-in WebSocket interface.
If the incoming bitrate drops or the mobile stream disappears completely, NOALBS automatically switches to a fallback scene you prepared. Once the signal is stable again, it can switch back to the live scene.
Phone / encoder
↓
RTMP, SRT or SRTLA server → stats → NOALBS → OBS WebSocket
├→ live
├→ low
└→ brb
brb scene you prepared. BRB stands for "be right back" and describes the temporary state better than "offline".NOALBS reads the bitrate and connection state from the ingest server. For that, the right stats URL and the right stream name have to be entered.
The values it reads are compared against limits you set. Only after several bad readings does a scene switch happen.
NOALBS picks the scene you want through OBS WebSocket 5.x. By default, OBS uses port 4455 for this.
| NOALBS state | Typical OBS scene | Used when |
|---|---|---|
normal | live | The mobile stream is stable and above the bitrate you set. |
low | low | There's still a signal, but the bitrate no longer supports a clean picture. |
offline | brb | The stream is temporarily disconnected or has practically no usable data. offline is only NOALBS's technical name for the state. |
The names in the config have to match the names of your OBS scenes exactly. Upper and lower case and spaces matter.
start: opening scene before the actual live signalende: closing scene at the end of the streampause: a pause or privacy scene you trigger manuallyrefresh: scene used to force a media source to restartstart, live, low, brb, pause, ende and refresh. All names are lowercase. An extra OBS scene named offline isn't intended.| Setting | Meaning | Example |
|---|---|---|
low | Below this bitrate, the stream counts as degraded. | 1000 kbit/s |
offline | Below this bitrate, the offline state is detected technically and OBS switches to the brb scene. | 100 kbit/s |
rtt | High SRT round-trip time above which the stream counts as bad. | 1500 ms |
rttOffline | Very high SRT round-trip time above which it switches to offline. | 3500 ms |
| Function | What it does |
|---|---|
bitrateSwitcherEnabled | Turns automatic scene switching on or off. |
onlySwitchWhenStreaming | Switches scenes only while OBS itself is streaming to a platform. For tests, false is often easier. |
instantlySwitchOnRecover | Switches back to the live scene right after recovery, without waiting through all the check attempts again. |
retryAttempts | Number of consecutive bad readings before the switch. With one check per second, five attempts is roughly five seconds. |
autoSwitchNotification | Allows notifications about automatic switches once the chat connection is set up. |
offlineTimeout | Can end the outgoing OBS stream automatically after a longer offline period. |
recordWhileStreaming | Starts a local OBS recording together with the live stream. |
NOALBS supports several stats sources. What always matters is that the NOALBS machine or container can reach the address.
"streamServer": {
"type": "Nginx",
"statsUrl": "http://SERVER-IP:8081/stat.xml",
"application": "live",
"key": "YOUR_STREAM_KEY"
}
"streamServer": {
"type": "SrtLiveServer",
"statsUrl": "http://127.0.0.1:8181/stats",
"publisher": "publish/live/YOUR_LONG_KEY"
}
NOALBS can also be used with an SRTLA relay from Redefined Streaming. The mobile stream then goes through the Redefined Streaming service to OBS, while NOALBS watches the stats provided for your own relay or feed.
In NOALBS you enter the stats URL and stream ID from the Redefined Streaming area. As soon as NOALBS can read bitrate and connection state from that, the automatic switches between live, low and brb work exactly as with your own SRTLA server.
Other supported sources include Node Media Server, Nimble, BELABOX, MediaMTX and WebSocket-based stats.

In OBS, turn on the WebSocket server under Tools → WebSocket Server Settings. NOALBS needs the host, port and password.
"software": {
"type": "Obs",
"host": "127.0.0.1",
"password": "YOUR_OBS_WEBSOCKET_PASSWORD",
"port": 4455
}
If NOALBS runs on the same computer as OBS, 127.0.0.1 is the easiest choice. If NOALBS runs on a different machine, the OBS WebSocket interface has to be reachable over the network and protected by a strong password.
The chat connection is optional. Automatic scene switching works without a chat bot. With a Twitch or Kick connection set up, additional commands are available depending on platform and version.
| Command | Purpose |
|---|---|
!bitrate | Shows the currently detected bitrate. |
!switch SZENE | Switches manually to an OBS scene. |
!privacy | Activates the prepared privacy scene. |
!refresh | Tries to rebuild the media source through the refresh scene. |
!trigger WERT | Changes the low-bitrate threshold while running. |
live.low.offline and switches OBS to brb.live. The media source restarts when the scene activates.onlySwitchWhenStreaming: false at first.live.low.brb.live scene come back.offline state and showing the brb scene.Current reference: the official NOALBS documentation on GitHub.
live, low and brb scenes exist in OBS and are spelled exactly the same.retryAttempts to your encoder bitrate instead of copying them blindly.low and brb and back to live on purpose once.Not necessarily. If NOALBS runs on the same computer as OBS, 127.0.0.1 is the easiest choice. If NOALBS is on a different machine, the OBS WebSocket interface has to be reachable over the network. Give it a strong password in that case.
Most of the time the stats URL or the stream name is wrong. NOALBS then reads no bitrate and treats the stream as offline. Check both first, and whether the NOALBS machine can reach that address at all.
The example values on this page are only a starting point. What fits depends on resolution, encoder bitrate, server and how fast you want it to react. Try the values with your own stream before you go live with them.
Yes. Automatic scene switching also works without a chat bot. The chat connection is optional. It adds commands and notifications, depending on platform and version.
Yes. Whether it's an SRTLA relay from Redefined Streaming or your own SRTLA server, NOALBS only needs to be able to read bitrate and connection state from the stats. You'll find more on building your own under setting up an SRTLA server.
A heartfelt thank you to the developers and contributors of NOALBS. Their work gives the IRL streaming community an open solution that detects stream dropouts and automatically switches OBS to a suitable scene.
If you want to use the project, look at the source code, report bugs or follow its development, you'll find everything in the official project:
Visit the official NOALBS project on GitHub
IRL4YOU is an independent information site and is not officially affiliated with the NOALBS project.
If you want to run Nginx-RTMP, NOALBS and OBS together on one Windows PC, there's a separate guide for that. It also explains why the historical Windows server package and the current NOALBS version have to be treated separately.
Want to use NOALBS but still unsure about connecting to your RTMP, SRT or SRTLA server? We help you set it up and tune the configuration to your own streaming workflow.
live, low and brb scenes