Be Right Back Screen [2026]: 12 Steps in 30 Min
![Be Right Back Screen [2026]: 12 Steps in 30 Min](https://ivipid.com/blog/wp-content/uploads/2026/10/be-right-back-screen-2026-gen-1024x585.webp)
What a Be Right Back Screen Does, and What It Cannot Do · Prerequisites and Versions · Pick the Right Source Type for Your BRB Screen · Steps 1 to 3: Plan the Scene Set, Fix the Canvas, Design the Artwork · Steps 4 and 5: Render a Clean 10-Second Loop with FFmpeg · Steps 6 and 7: Build the BRB Scene and Add the Looping Video · Steps 8 and 9: Add a Countdown Overlay with a Browser Source · Steps 10 and 11: Audio Rules, Hotkeys and a Quick Transition · Step 12: Switch Scenes with One Command Using the WebSocket Server · Test the Scene Before You Go Live on Twitch or YouTube · Common Pitfalls That Ruin a BRB Screen · Troubleshooting: 10 Problems and Their Fixes · Advanced Tips for a Better BRB Screen · The Complete Working Project · Questions creators ask
A be right back screen is a dedicated OBS scene that replaces your live feed while you step away, and you can build a good one in about 30 minutes: a looped background video, a countdown overlay, a muted mic and a single hotkey. This tutorial builds the whole thing in OBS Studio 33.0.1, the current hotfix release of the 33.0 line, using FFmpeg for the loop, one local HTML file for the timer and a short Python script for one-key switching.
Most streamers no longer live on a single platform. Streamlabs‘ own September 2026 ranking data credits TheBurntPeanut with 8.28 million hours watched on YouTube Gaming and 8.10 million on Twitch, roughly 16.4 million hours across both. One BRB scene covers both services, because OBS sends the same canvas to whichever destination you connect.
This guide lives in our stream intros and overlays hub, next to the starting soon and ending scenes. By the end you will have a BRB scene with a clean 10-second loop, a timer that restarts every time the scene appears, music that stops the moment you leave, and a script that flips between Live and BRB without touching the mouse.
What a Be Right Back Screen Does, and What It Cannot Do
A BRB screen keeps your stream alive while you are away. The connection to Twitch or YouTube stays open, viewers keep chatting, and the picture they see is the scene you chose instead of an empty desk or a frozen game frame. That is the whole job.
It does not pause anything. Your VOD or archive keeps recording, the viewer count keeps ticking, and any live microphone stays live unless you mute it. Many creators learn the last point on stream. A pretty BRB graphic with an open mic is the classic mistake, and Step 10 fixes it with a rule you set once.
What belongs on the screen? Four things carry most of the value. A plain status line that says you are away. A return estimate, so people know whether to wait or leave. Your handle or channel name, because clips of this moment travel without context. And some motion, so viewers can tell the stream has not frozen. OBS Project’s own Stream Layout Tutorial 3 walks through the same basic recipe: create a new scene with the plus icon under the scenes list, add an image or animated GIF, and remember that source order in the list decides what sits in front.
What should stay off the screen? Anything you would not want clipped. A BRB scene gets screenshotted more than most people expect, so skip private details, skip a visible desktop, and skip hard promises like “back in 2 minutes” unless you mean it. A timer that hits zero while you are still gone looks worse than no timer at all, which is why the countdown built later ends on a soft message instead of a hard zero.
Chat etiquette matters as much as the visuals. Say out loud that you are stepping away before you switch, because the first thing a viewer does when the picture changes is ask what happened. A pinned chat message or a bot command that prints your return estimate saves you from answering the same question twelve times when you come back.
One more boundary: this is a scene, not a stream state. If you need to stop for an hour, end the stream and let the platform’s offline page do its work. A BRB screen suits breaks measured in minutes, such as a drink, a delivery, a bathroom run or a technical fix you can finish quickly.
Prerequisites and Versions
You need OBS Studio 33.0.1 or newer. OBS Studio 33.0.0 arrived on October 23, 2026, and the 33.0.1 hotfix followed on October 29. According to the release notes, the hotfix fixes a crash on startup when you are logged into a service integration, which matters here because most Twitch and YouTube streamers stay logged in through OBS. Release coverage also reports fixes for the Twitch and YouTube login paths, so update before you build anything.
Version 33.0 is a big one for anyone using the Browser Source, which is half of this project. The official notes describe a massive update to the framework behind browser sources and docks, covering the jump from the July 2024 release to September 2026. Existing third-party plugins keep loading from the legacy locations until OBS Studio 34.0, so your old plugins should still work today, but plan to move them.
| Component | Version or requirement | Why it matters here |
|---|---|---|
| OBS Studio | 33.0.1 (October 29, 2026) | Scenes, Media Source, Browser Source, built-in WebSocket server |
| macOS | 13.0 or newer | Minimum listed on the OBS download page |
| Ubuntu | 24.04 support removed in 33.0 | Official packages dropped it, so check your distro before updating |
| NVIDIA driver | 570 or newer for NVENC | Minimum raised in OBS 32.2 and still the floor if you encode on an NVIDIA GPU |
| FFmpeg | A current stable build | Renders the looping MP4 and the transparent WebM |
| Python | A current Python 3 release | Runs the one-key scene switcher |
| obsws-python | Latest version from PyPI | Talks to the OBS WebSocket server |
What you get on the free plan
OBS Studio is free and open source, so the free plan is the whole product: unlimited scenes, every source type used below, no watermark and no length limit. FFmpeg and Python cost nothing either. The only paid item anywhere in this tutorial is background music, if you decide to license a track instead of using a free one.
If you stream through Streamlabs instead, its own pages describe Streamlabs Desktop as a free Windows and macOS app and list a Streamlabs Plugin for OBS Studio as a separate product, with Ultra as the paid tier. The scene, source and hotkey steps below carry over almost unchanged to Streamlabs Desktop, though menu names differ a little.
Before you start, create a folder called brb-project somewhere with a short path and no spaces, such as C:\obs\brb-project or ~/obs/brb-project. Paths with spaces and accents are the root of several troubleshooting entries later.
Pick the Right Source Type for Your BRB Screen
OBS gives you at least six ways to put a BRB graphic on screen. The right one depends on how much motion you want and how much CPU you can spare. A static PNG costs almost nothing. A looped video costs a little. A browser page costs the most, because it runs a small web engine inside OBS.
| Source | Best for | Loops | Transparency | Main risk |
|---|---|---|---|---|
| Image (PNG, JPG) | Zero-risk fallback | No motion | PNG only | Viewers may think the stream froze |
| Image (animated GIF) | Quick motion, small file | Yes | Basic | Banding and a low colour count |
| Media Source (MP4) | Full-colour animated background | Yes, tick the loop box | No | Hardware decoding glitches |
| Media Source (WebM with alpha) | Animated layer over another background | Yes | Yes | Needs a VP9 file encoded with an alpha channel |
| Browser Source (local HTML) | Live countdown, chat-linked widgets | Page-driven | Yes, with a transparent page | Blank source after path or engine problems |
| Image Slide Show | Rotating tips or sponsor cards | Yes | Per image | Mixed image sizes |
The project in this guide stacks three of them. A Media Source plays the MP4 loop as the background. A Browser Source draws the countdown and status text on top with a transparent page. A plain Image source sits at the bottom of the stack as a fallback, so if the video ever fails to load you still show a branded frame instead of black.
Why not do everything in one browser page? You could. A CSS animation can replace the video loop, and the file would be tiny. The catch is reliability. If the browser engine stalls, your whole BRB goes blank. A video file plays through OBS’s media pipeline, which is a separate path, so the two layers fail independently and one usually survives.
GIF versus MP4 is the other common fork. A GIF is easy and works everywhere. An H.264 MP4 usually comes out smaller for the same length. Pick GIF only when the artwork is flat and graphic, such as a pixel-art mascot.
Many creators also ask about the Color Source plus a Text source. It works in a pinch, and it is the fastest BRB you can build, around a minute. It looks plain, but it never breaks. Keep one saved as an emergency scene called BRB-Plain. You will see it again in the advanced tips.
Steps 1 to 3: Plan the Scene Set, Fix the Canvas, Design the Artwork
Step 1. Update OBS and check the canvas. Install OBS Studio 33.0.1 from the official download page, then open Settings, Video. Set Base (Canvas) Resolution and Output (Scaled) Resolution to 1920×1080 and the frame rate to 30. Every asset in this project is built at that size, and a mismatch is the top reason BRB art looks soft or cropped. If you stream at 60 fps for gameplay, keep 60 in OBS and the 30 fps loop will still play fine, since OBS repeats frames.
Step 2. Plan the scene set. A BRB scene never works alone. Viewers move through a short story: you start, you play, you pause, you finish. Give each beat its own scene and name them plainly so a hotkey or script can find them.
| Scene name | Job | Audio | How you reach it |
|---|---|---|---|
| Starting Soon | Holds the lobby while chat gathers | Music on, mic muted | Auto on stream start or by hotkey |
| Live | Your main content | Mic on, game audio on | Hotkey or script |
| BRB | Short break | Music on, mic muted, game muted | One hotkey, one script call |
| Ending | Thanks, raid or host message, socials | Music on, mic muted | Hotkey |
| BRB-Plain | Emergency fallback | Mic muted | Hotkey only |
Keep the names exactly as written, with matching capitals. The Python script in Step 12 looks them up by name, and a stray space will make it fail with a not-found error.
Step 3. Design the artwork. Make one 1920×1080 PNG called brb_background.png. Use any editor you like. Keep the centre quiet, because the countdown will sit there. Put your logo in one corner, leave a comfortable margin on every side so platform overlays and player controls never cover text, and use a dark, low-contrast background. A bright, busy BRB screen is tiring to look at, and some viewers leave the tab open on a second monitor for ten minutes.
Type needs the same care. At 1080p, keep the main label above 100 pixels tall and nothing below 36 pixels, because a viewer on a phone sees the whole frame shrunk to a few inches. Pick one typeface and two weights. Check contrast by squinting at the preview: if the countdown disappears when you squint, the colour pair is too close.
If you would rather start from a ready-made animated logo, the animated logo intro theme page lists the style, so you can export a short clip and use it as the corner mark. Whatever you pick, check the licence before you stream with it.
Save the PNG in brb-project/assets/. Your folder should now look like this.
brb-project/
assets/
brb_background.png (1920x1080, made in Step 3)
brb_loop.mp4 (rendered in Step 4)
brb_music.mp3 (a track you have the rights to stream)
overlay/
brb.html (countdown page, Step 8)
scripts/
brb_switch.py (scene switcher, Step 12)
Steps 4 and 5: Render a Clean 10-Second Loop with FFmpeg
Step 4. Turn the still into a loop. Why render a loop at all when OBS can show a PNG? Because motion tells viewers the stream is alive. The command below takes your PNG and applies a slow breathing zoom. The zoom is set up so the last frame matches the first, and the loop restarts without a visible jump.
cd brb-project/assets
ffmpeg -loop 1 -framerate 30 -i brb_background.png -t 10 \
-vf "scale=3840:2160,zoompan=z='1.04+0.04*sin(2*PI*on/300)':x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)':d=1:s=1920x1080:fps=30,format=yuv420p" \
-c:v libx264 -preset slow -crf 18 -g 60 -movflags +faststart -an \
brb_loop.mp4
Here is what each part does. -loop 1 repeats the single image. -t 10 stops after 10 seconds. The scale=3840:2160 step upsizes the source before zooming, which stops the shimmer you get when zoompan rounds to whole pixels on a slow move. -g 60 places a keyframe every two seconds. -an drops audio, because the music will live in its own source. On Windows, run the command in PowerShell and replace each trailing backslash with a backtick, or put it all on one line.
Step 5. Verify the file. Never trust a render until you have read its properties back. A one-line ffprobe call tells you whether the resolution, codec and length came out as planned.
ffprobe -v error -select_streams v:0 \
-show_entries stream=codec_name,width,height,pix_fmt,r_frame_rate,duration \
-of default=nw=1 brb_loop.mp4
# Expected output:
codec_name=h264
width=1920
height=1080
pix_fmt=yuv420p
r_frame_rate=30/1
duration=10.000000
If any line differs, fix it now. A pix_fmt of yuv444p is the usual surprise, because many hardware decoders refuse it and OBS then shows a black rectangle. The format=yuv420p filter in the command prevents that.
Render settings
| Setting | Value used in this project | Reason |
|---|---|---|
| Resolution | 1920×1080 | Matches the OBS canvas, so no scaling cost |
| Frame rate | 30 fps | Enough for a slow zoom, small file |
| Length | 10 seconds | Short enough to keep the file small, long enough to hide the repeat |
| Video codec | H.264, yuv420p, CRF 18 | Plays on every hardware decoder |
| Keyframe interval | Every 60 frames | Clean seeking on loop restart |
| Container | MP4 with faststart | Opens quickly from a local file |
| Audio | None | Music is a separate source you can mute |
| Transparent version | WebM, VP9, yuva420p | Only needed if you layer the clip over another background |
If you want the animated layer to float over a different background, such as a webcam freeze-frame, render a transparent version from a PNG sequence that already has an alpha channel. Name the frames frame_0001.png and up.
ffmpeg -framerate 30 -i frame_%04d.png \
-c:v libvpx-vp9 -pix_fmt yuva420p -b:v 0 -crf 30 -auto-alt-ref 0 \
brb_alpha.webm
The -auto-alt-ref 0 flag matters. Without it, VP9 can drop the alpha channel on some builds, and the clip comes out with a solid black background that no OBS setting will undo.
Steps 6 and 7: Build the BRB Scene and Add the Looping Video
Step 6. Create the scene and the fallback layer. In the Scenes dock, click the plus icon and name the new scene exactly BRB. Then click the plus icon in the Sources dock, choose Image, name it BRB Fallback, and point it at brb_background.png. Right-click the source, choose Transform, then Fit to Screen. This is your safety net, and it sits at the bottom of the source list.
Order matters in OBS. Sources higher in the list draw in front of lower ones. So the bottom of the list should be the fallback image, then the looping video above it, then the browser overlay, then music, which draws nothing. Drag items in the Sources dock until the order matches.
Step 7. Add the loop as a Media Source. Add a Media Source, name it BRB Loop, tick Local File and browse to brb_loop.mp4. Set these options:
- Loop: ticked, so playback restarts after the last frame.
- Restart playback when source becomes active: ticked, so every visit to the BRB scene begins at frame 0.
- Use hardware decoding when available: unticked at first. Turn it on later only if CPU use is a problem and the video plays cleanly.
- Show nothing when playback ends: unticked, so the last frame never vanishes.
- Close file when inactive: ticked, which frees the file handle when you leave the scene.
Right-click the source and choose Transform, then Fit to Screen. The loop should now fill the canvas. Click the BRB scene in the Scenes dock and look at the preview. You should see the artwork breathing very slightly. If the picture is black, jump to the troubleshooting section and check the decoding option first.
One setting trips up the loop more than any other: the restart box. Leave it unticked and the video keeps playing silently in the background while you are in another scene. When you return to BRB it may be mid-zoom, which looks fine for this loop but looks broken for anything with a clear start, such as a logo reveal. Tick the box and the behaviour is the same every time.
What about file size? A 10-second 1080p loop of a mostly static picture compresses very well, so the MP4 stays small and loads from disk without a hiccup. If you ever swap in a busier animation, check the file size before you stream and keep CRF at 18 to 23, since lower numbers raise quality and file size together.
Want the same trick for an intro sting at the start of the stream? The intro themes list gives resolution, length and frame rate for each style, which is exactly what you need to match to your OBS canvas before you add one to the Starting Soon scene.
Steps 8 and 9: Add a Countdown Overlay with a Browser Source
Step 8. Write the overlay page. Save the following as overlay/brb.html. It draws a title, a countdown and a handle line on a transparent background. The countdown starts from the number of minutes in the URL, and falls back to 5 if you give none. When it reaches zero it switches to a soft message instead of sitting at 00:00.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>BRB overlay</title>
<style>
:root { --accent: #ff5a36; --text: #f4f1ea; }
html, body {
margin: 0; width: 1920px; height: 1080px; overflow: hidden;
background: transparent;
font-family: "Segoe UI", Arial, sans-serif; color: var(--text);
}
.wrap {
position: absolute; inset: 0; display: flex; flex-direction: column;
align-items: center; justify-content: center; gap: 20px;
text-shadow: 0 4px 24px rgba(0,0,0,.55);
}
#label { font-size: 140px; font-weight: 700; letter-spacing: 6px;
animation: breathe 4s ease-in-out infinite; }
#clock { font-size: 120px; font-variant-numeric: tabular-nums;
color: var(--accent); }
#handle { font-size: 40px; opacity: .85; margin-top: 30px; }
@keyframes breathe { 0%,100% { opacity: 1; } 50% { opacity: .78; } }
</style>
</head>
<body>
<div class="wrap">
<div id="label"></div>
<div id="clock"></div>
<div id="handle"></div>
</div>
<script>
const q = new URLSearchParams(location.search);
const minutes = Math.max(1, parseInt(q.get('minutes') || '5', 10));
document.getElementById('label').textContent = q.get('label') || 'Be right back';
document.getElementById('handle').textContent = q.get('handle') || '';
const end = Date.now() + minutes * 60 * 1000;
function tick() {
const left = Math.max(0, end - Date.now());
const m = String(Math.floor(left / 60000)).padStart(2, '0');
const s = String(Math.floor((left % 60000) / 1000)).padStart(2, '0');
document.getElementById('clock').textContent =
left > 0 ? m + ':' + s : 'Back any second now';
}
tick();
setInterval(tick, 250);
</script>
</body>
</html>
Two details in the code deserve a note. The page uses textContent rather than inserting HTML, so a label or handle you pass in the URL can never inject markup. And font-variant-numeric: tabular-nums keeps every digit the same width, which stops the clock from wobbling left and right as the seconds change.
Step 9. Add it to the scene. In the BRB scene, add a Browser Source named BRB Overlay. Tick Local file and browse to brb.html. Set Width to 1920 and Height to 1080. Then tick Refresh browser when scene becomes active, so the countdown restarts from the top each time you go on a break. Leave Shutdown source when not visible ticked as well, which stops the page from running while you play.
To pass your own minutes and handle, many streamers switch from Local file to a URL. Untick Local file and paste a file address in this shape, adjusting the path to your drive:
file:///C:/obs/brb-project/overlay/brb.html?minutes=8&handle=@yourchannel&label=Be%20right%20back
The preview should now show the breathing background, the large label and a ticking clock in your accent colour. If the browser layer is blank while the video plays, the page failed to load. Open the source properties and click Refresh cache of current page, then check the path. Because OBS 33.0 reportedly moved the browser engine from Chromium Embedded Framework 127 to 150, an old browser-source workaround you copied from a 2025 forum thread may no longer behave the same way. Test with a clean page first.
Restyling is a matter of editing the CSS at the top. Change --accent to your brand colour, swap the font stack for one installed on your machine, or lower the label size if your handle is long. Keep edits small and refresh the source after each one, so you always know which change broke the layout.
Steps 10 and 11: Audio Rules, Hotkeys and a Quick Transition
Step 10. Set the audio rule once. Open Settings, Hotkeys, and find the entries for your microphone: Mute and Push-to-mute. Open Edit, Advanced Audio Properties and check the Audio Monitoring and Tracks columns. The goal is simple. Whenever you land on BRB, your mic is off, your game audio is off, and a music source is on. Whenever you leave, the opposite is true.
The cleanest way to get there is to keep the music source inside the BRB scene only. Add a Media Source called BRB Music, point it at brb_music.mp3, tick Loop, and tick Restart playback when source becomes active. Because the source belongs to one scene, it is silent everywhere else. For your mic, add a hotkey that mutes it and bind that hotkey to the same key combination you use for BRB. Better still, let the script in Step 12 mute it for you.
Music deserves one honest paragraph. A BRB track plays to a live audience and gets stored in your archive, so use a track you have the rights to stream. Platform rules on copyrighted music differ by service and change over time, so read the current policy on the platform’s own help pages rather than assuming a track is safe. Free audio visualiser plugins exist too, for instance the Audio Waves Visualizer plugin on the OBS forums. Before you install anything like it, confirm it has a build for OBS 33.
Set the music volume low. A BRB track should sit well under your normal voice level, since viewers often have a second tab playing something else. Watch the mixer while the scene is active and keep the meter in the lower green zone. If you hear it clearly in your own headphones while talking, it is too loud.
Step 11. Bind hotkeys. Go to Settings, Hotkeys and search for each scene name. You will see a row called Switch to scene for each. Assign a key you can hit without looking, and use a combination that you will not press by accident, such as Ctrl+Alt+B for BRB and Ctrl+Alt+L for Live. Avoid single letters, because they fire while you type in chat.
Add a short transition so the change does not feel like a hard cut. In the Scene Transitions dock, choose Fade and set a short duration for scene changes. If you want panels that slide on and off, the Move transition is a separate plugin by a community developer, and it needs matching source names in both scenes to animate between them. With the plugin-loading rework in 33.0, make sure your copy is listed in the plugins settings after you update and restart OBS.
Step 12: Switch Scenes with One Command Using the WebSocket Server
Hotkeys work until a game grabs the keyboard or you are on a second machine. A script that talks to OBS over its built-in WebSocket server fixes both. Open Tools, WebSocket Server Settings, tick Enable WebSocket server and set a password. Note the port shown in the dialog. A fresh install usually shows 4455. Then install the Python client.
python -m pip install --upgrade obsws-python
Save the script below as scripts/brb_switch.py. It checks that both scenes exist, mutes your mic, switches to BRB, waits for the number of minutes you pass, then switches back and unmutes. Press Ctrl+C in the terminal to come back early.
import sys
import time
import obsws_python as obs
HOST, PORT, PASSWORD = "localhost", 4455, "change-me" # match the WebSocket dialog
LIVE, BRB = "Live", "BRB"
MIC = "Mic/Aux" # exact name in your mixer
def main(minutes: float) -> None:
cl = obs.ReqClient(host=HOST, port=PORT, password=PASSWORD, timeout=5)
scenes = [s["sceneName"] for s in cl.get_scene_list().scenes]
for name in (LIVE, BRB):
if name not in scenes:
sys.exit(f"Scene '{name}' not found. OBS has: {scenes}")
cl.set_input_mute(MIC, True)
cl.set_current_program_scene(BRB)
print(f"BRB on for {minutes} min. Ctrl+C returns to Live early.")
try:
time.sleep(minutes * 60)
except KeyboardInterrupt:
pass
cl.set_current_program_scene(LIVE)
cl.set_input_mute(MIC, False)
print("Back on Live, mic unmuted.")
if __name__ == "__main__":
main(float(sys.argv[1]) if len(sys.argv) > 1 else 5)
Run it with python scripts/brb_switch.py 5 for a five-minute break. A good run prints two lines and nothing else. If the mic name is wrong, the call fails with an error that names the missing input, so copy the name straight from the audio mixer, capital letters and slashes included.
$ python scripts/brb_switch.py 5
BRB on for 5.0 min. Ctrl+C returns to Live early.
Back on Live, mic unmuted.
Prefer clicking to typing? The Advanced Scene Switcher plugin can automate the same flow with timers and macros, for instance returning to Live after a set interval. Get manual switching working first. Add the plugin only once the basics are solid, and confirm it has a build for your OBS version.
Test the Scene Before You Go Live on Twitch or YouTube
Test with a private or unlisted broadcast, never your real audience. On YouTube, start a stream with visibility set to Unlisted or Private and watch it in a second tab. On Twitch, use a short test stream with your mic muted, or record locally and review the file. Whichever route you pick, run through this checklist before you trust the scene.
- Switch Live to BRB with the hotkey. The picture should change inside half a second.
- Look for the countdown. It should start from your chosen minutes, not from where it stopped last time.
- Speak into the mic. The meter should stay silent while BRB is active.
- Check the music. It should start with the scene and stop the moment you leave.
- Switch back to Live and confirm the mic meter moves again.
- Leave BRB on for a full minute and watch CPU use in the status bar at the bottom of OBS.
- Run the Python script once and confirm it logs the two lines shown earlier.
Platform details change, so read the numbers from the source rather than from a blog. Twitch keeps its creator guidance in Creator Camp, and its Creator Camp monetization path shows the dashboard side of running a channel. For ingest settings such as bitrate, resolution and keyframe interval, use the current recommendations shown in your Twitch Creator Dashboard or YouTube Live control room. Keep them identical across your tests and your real streams.
YouTube adds one point of its own. A stream that goes quiet or shows a still picture is still a live stream, so you are safe to sit on BRB, but do not treat a long BRB as a way to avoid ending the broadcast. The latency mode you pick also changes how fast your scene switch reaches viewers, so a low-latency stream shows your BRB sooner than a normal-latency one. Check the delay on your test stream and tell chat before you step away, not after.
Record the test and watch it back at full screen. Problems that hide in a small preview, such as a clipped handle, a jump at the loop point or a faint audio hiss from the music file, show up fast on playback. Fix what you see, run the checklist again, and only then trust the scene on a real stream.
The 33.0.1 hotfix is worth another mention here. The release notes list a startup crash while logged into a service integration, and coverage of the release reportedly adds fixes for the Twitch and YouTube login paths. If you build this project on 33.0.0 and see a crash right when OBS opens, update first, then retest.
Common Pitfalls That Ruin a BRB Screen
These six mistakes account for most BRB screens that look bad on stream. Each one takes under a minute to avoid.
- Leaving the mic open. A muted visual with a live mic broadcasts every sigh and phone call. Mute through the script or a hotkey, and look at the meter before you walk away.
- Forgetting to switch back. Viewers sit through ten minutes of BRB while you play happily on the other screen. Set a phone alarm at the same time you start the script, or let the script return to Live for you.
- Showing a desktop or webcam by accident. Do not build BRB from Display Capture. A notification, a password manager or a private chat can slip into a capture. Use only files you made.
- Using music you cannot stream. Copyright claims on archives are common and annoying. Pick a track with a clear licence, and keep the receipt or licence page in your project folder.
- A loop with a visible jump. If the first and last frames do not match, viewers see a hiccup every ten seconds. Use the sine-based zoom from Step 4, or crossfade the clip’s end into its start.
- Wrong canvas size. Art made at 1280×720 and stretched looks soft. Art made at 4K and not fitted ends up cropped. Build at 1920×1080 and use Fit to Screen.
A seventh habit helps too. Name your sources clearly. Media Source 3 tells you nothing at 2 a.m. in the middle of a stream, while BRB Loop tells you everything.
Troubleshooting: 10 Problems and Their Fixes
- The Media Source shows black. Untick Use hardware decoding when available, then re-open the properties. If it stays black, run the ffprobe check from Step 5 and confirm the pixel format is yuv420p.
- The video plays once and stops. The Loop box is unticked. Tick it, and also check that Show nothing when playback ends is off.
- The browser overlay is blank. Click Refresh cache of current page, then check the file path. Paths with spaces or accented characters fail more often than short ones, so move the project to something like
C:\obs\brb-project. - The countdown does not restart. Tick Refresh browser when scene becomes active in the Browser Source properties.
- The transparent WebM has a black background. The alpha channel did not survive the render. Re-encode from a PNG sequence with
-pix_fmt yuva420pand-auto-alt-ref 0. - An old plugin vanished after the 33.0 update. Plugin loading changed. Legacy locations keep working until OBS Studio 34.0, so look in Settings for the plugin list, reinstall a build made for OBS 33, and restart OBS.
- The Python script cannot connect. Check that the WebSocket server is enabled, that the port and password in the script match the dialog, and that OBS is running. A refused connection almost always means one of those three.
- The script says a scene was not found. Scene names are case-sensitive. Copy the name from the Scenes dock and paste it into the script.
- Music keeps playing after you leave BRB. The music source is likely a global audio device or sits in another scene too. Move it inside the BRB scene, and tick Restart playback when source becomes active.
- CPU use jumps on the BRB scene. The browser page and a high-resolution video can add up. Turn on hardware decoding for the loop, drop the Browser Source to its actual size, and keep Shutdown source when not visible ticked.
Still stuck? Open Help, Log Files, View Current Log in OBS and look near the bottom for lines mentioning your file names. A missing-file line there usually points straight at the cause.
Advanced Tips for a Better BRB Screen
Keep a plain emergency scene. The BRB-Plain scene from the scene table takes a minute to build: a Color Source, one Text source and nothing else. If a plugin update breaks your fancy scene while you are live, one hotkey puts a safe screen up.
Use the same file for three scenes. Nothing stops you from reusing brb_loop.mp4 in the Starting Soon and Ending scenes with different text on top. One render, three scenes, one consistent look. Share the source between scenes rather than duplicating it, so edits apply everywhere.
Add a rotating tips line. An Image Slide Show with three or four cards can show your socials, a Discord invite and the schedule. Set each card to stay up for a few seconds. Viewers waiting on a break read these, which turns dead air into useful air.
Mute the game from the script. The same WebSocket call that muted your mic works on any audio input. Add a second line for your game capture, and the whole audio rule lives in one place. Keep the input names in constants at the top of the file, so a rename is a one-line fix.
Make a vertical version. If you stream to a phone-first audience, build a second canvas version of the same art and keep text inside the central column. Streamlabs’ own pages reportedly describe support for one horizontal and one vertical destination on its free tier, so the idea of a dual layout is already common among streamers.
Render two lengths. A 10-second loop hides well. For something more dramatic, such as a short logo animation that plays once on entry, render a second file and place it above the loop. Set its Media Source to restart on activation and not to loop. It plays once as you arrive, and the quiet loop carries the rest of the break.
Drive the minutes from one place. The script takes a number of minutes and the browser page takes the same number in its URL. Keep both in sync by storing the value in a small text file or an environment variable, so a five-minute break never shows an eight-minute timer. A mismatch looks sloppy and takes ten seconds to prevent.
Back up the scene collection. After you finish, use Scene Collection, Export in OBS to save a copy next to your project folder. A plugin update or a bad crash then costs you a minute, not an evening.
The Complete Working Project
Here is the full recipe in one place, in the order you should run it. Treat it as a checklist you can tick off in a single sitting.
# 1. Folder
brb-project/assets brb-project/overlay brb-project/scripts
# 2. Art: brb_background.png at 1920x1080 in assets/
# 3. Loop
cd brb-project/assets
ffmpeg -loop 1 -framerate 30 -i brb_background.png -t 10 \
-vf "scale=3840:2160,zoompan=z='1.04+0.04*sin(2*PI*on/300)':x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)':d=1:s=1920x1080:fps=30,format=yuv420p" \
-c:v libx264 -preset slow -crf 18 -g 60 -movflags +faststart -an brb_loop.mp4
# 4. Verify
ffprobe -v error -select_streams v:0 \
-show_entries stream=codec_name,width,height,pix_fmt,r_frame_rate,duration \
-of default=nw=1 brb_loop.mp4
# 5. OBS scene "BRB", sources bottom to top:
# BRB Fallback (Image) -> BRB Loop (Media Source, loop + restart)
# -> BRB Overlay (Browser Source, local brb.html, refresh on activate)
# -> BRB Music (Media Source, loop + restart)
# 6. Hotkeys: Ctrl+Alt+B (BRB), Ctrl+Alt+L (Live), mic mute bound to BRB
# 7. Script
python -m pip install --upgrade obsws-python
python scripts/brb_switch.py 5
When all seven pieces are in place, your BRB takes one keypress or one command to start. It plays a clean 10-second loop, shows a fresh countdown, mutes the mic and swaps music in. The same pieces carry over to a Starting Soon scene and an Ending scene with only the text changed, which is why the folder layout earlier keeps assets separate from the overlay page.
For those two extra scenes, copy brb.html to starting.html and ending.html, then pass a different label in each Browser Source URL, such as Starting soon or Thanks for watching. The loop, the music rule and the script logic stay identical. You end up with one small kit that covers the whole arc of a stream.
Worth remembering for later: OBS Studio is an active project and ships often. Version 33.0.0 and 33.0.1 landed six days apart in October 2026. Re-test the whole checklist after any major update, and keep the exported scene collection so you can roll back fast.
Questions creators ask
How long should a be right back screen loop be? Ten seconds works well and is the length used in this project. It is long enough that viewers rarely spot the repeat and short enough to keep the file small. What matters more is that the last frame matches the first.
Do I need a separate BRB screen for Twitch and YouTube? No. OBS sends one canvas to whichever service you connect, so a single BRB scene serves both. You only need separate versions if you want different text, such as different handles for each platform.
Should I use a Media Source or a Browser Source for the animation? Use a Media Source for the background loop and a Browser Source for live elements like the countdown. The video plays through a separate path from the browser engine, so if one fails, the other usually survives.
Can I use an animated GIF as the BRB screen? Yes. OBS Project’s BRB tutorial says an Image source accepts both static files such as PNG or JPG and animated GIFs. GIFs are small and quick to set up, but they limit colour and can look banded, so an MP4 loop usually looks better.
Why does my mic still go out while the BRB scene is up? OBS does not mute a mic when you change scenes unless you set it up. Mute it with a hotkey or with the script in Step 12, then check the meter before you leave your desk.
Is OBS Studio free to use for this? Yes. OBS Studio is free and open source, and every feature used here is in the free build. Streamlabs also offers a free desktop app according to its own pages, with Ultra as an optional paid tier.
What changed in OBS 33 that affects my BRB screen? The browser engine behind Browser Sources got a major update, plugin loading was reworked with legacy locations supported until OBS Studio 34.0, and the 33.0.1 hotfix on October 29, 2026 fixed a startup crash tied to service logins. Test your countdown overlay and any plugins after you update.
How long can I stay on BRB? A few minutes is the sweet spot. For longer gaps, end the stream and go offline, since a long BRB gives viewers little reason to stay and no new content to watch.
- Your Video a channel-style intro theme
- Intro themes stream and channel intros
- Sample videos finished Vipid intros
- Vipid intro maker make a custom intro in the browser
Theo Vance
Theo Vance is the Intros & Templates Editor at Vipid, where he covers intro and outro makers, template libraries for CapCut, Canva and the major editors, slideshow and video-card tools, and stream starting screens. He compares makers on what matters before you hit render: watermark, export resolution, length limits, licence and price, and dates every check. He also looks after the Vipid theme archive, the 2011–2016 intros the site was built on.
![Free Twitch Overlays [2026]: 5 Sources, $0 vs $27/mo](https://ivipid.com/blog/wp-content/uploads/2026/11/free-twitch-overlays-2026-gen-800x450.webp)
![OBS vs ShadowPlay vs Medal [2026]: 3 Free Recorders](https://ivipid.com/blog/wp-content/uploads/2026/11/obs-vs-shadowplay-vs-medal-2026-gen-800x450.webp)
