> ## Content Index
> Fetch the complete content index at: https://obsguides.com/llms.txt
> Use this file to discover other available public pages before exploring further.

# How to set up OBS for streaming: service, bitrate and a test stream
- URL: https://obsguides.com/setup-obs-for-streaming/
- Published: 2026-11-08T13:25:00.000Z
- Updated: 2026-11-09T14:59:54.000Z
- Description: Build a first OBS stream from the limits that matter: platform settings, sustainable upload, output size, encoder load and a rehearsal that checks picture, sound and delivery.
- Author: Ryan Parker
- Tags: Streaming and overlays

To set up OBS for streaming, connect the intended channel through the streaming wizard, then fit bitrate and output size to your upload connection and the service’s requirements. I’d start with a private or bandwidth-only rehearsal, because the OBS preview can’t confirm delivery to viewers. Check the sound, run the intended workload and use Stats to distinguish a connection problem from an overloaded encoder.

The controls below use OBS Studio 33\. This setup is for one conventional video stream. It keeps the scene layout, outgoing picture, encoder and network connection separate, so a problem at one stage doesn’t send you changing every setting.

## Keep the first connection out of public view

Have a scene with the intended picture and microphone ready before tuning the stream. If the preview is empty, add or select the intended capture source and confirm that it appears in the scene. Changing bitrate won’t make a missing source appear.

Make the destination ready too. For YouTube, [first-time live enablement can take up to 24 hours](https://support.google.com/youtube/answer/2907883?hl=en&ref=obsguides.com), so do it before the day of an event. [Create a test stream with **Private** visibility](https://obsguides.com/stream-to-youtube-with-obs/). Check the event's **Auto-start** setting before sending anything from OBS, because [visibility and automatic starting belong to the YouTube stream](https://support.google.com/youtube/answer/9854503?hl=en&ref=obsguides.com).

**Do this before the wizard's bandwidth test:** check what the channel will expose. OBS's bandwidth-test warning says it may send randomized video without audio to the channel, and recommends private visibility and temporarily disabling saved broadcasts where possible. A button labeled “test” doesn’t itself provide privacy. Twitch has a separate bandwidth-only route, covered in the rehearsal section below.

## Connect the service and apply a baseline

1. Open **Tools > Auto-Configuration Wizard**. The [OBS Quick Start Guide](https://obsproject.com/kb/quick-start-guide?ref=obsguides.com) describes it as the starting point for the intended job, hardware resources and streaming network conditions.
2. Choose **Optimize for streaming, recording is secondary**. Work through Video Settings, then select the destination in **Stream Information**.
3. Choose the actual service, such as **Twitch** or **YouTube - RTMPS**. Where offered, use [**Connect Account (recommended)**](https://obsguides.com/connect-twitch-to-obs/) and confirm the correct channel. Use **Use Stream Key (advanced)** when you need the manual route. A custom provider needs the server address and key supplied by that provider, not a guessed Twitch or YouTube address.
4. Review any bandwidth-test warning before continuing. At Final Results, read the proposed encoder, bitrate and scaled resolution, then choose **Apply Settings**.
5. Open **Settings > Stream** and verify the service and connected account, or the intended server and key. For Twitch, clear **Enable Enhanced Broadcasting** for this conventional single-stream walkthrough. Its automatic multi-quality mode can control stream settings, so it needs a different setup. Review the output settings against the full workload you intend to broadcast.

[![OBS Studio Auto-Configuration Wizard, Usage Information page, with Optimize for streaming, recording is secondary selected and Next ready](https://storage.ghost.io/c/1f/f4/1ff41619-63d0-4562-aeda-c43118aa7da0/content/images/2026/11/03-obs-studio-ui-setup-obs-for-streaming-0-07d7faa94b8f.webp)](https://storage.ghost.io/c/1f/f4/1ff41619-63d0-4562-aeda-c43118aa7da0/content/images/2026/11/03-obs-studio-ui-setup-obs-for-streaming-0-07d7faa94b8f.webp?ref=obsguides.com)

Pick the streaming option on the first page and click Next; the wizard then walks through Video Settings and Stream Information before its Final Results.

Keep a stream key out of messages and visible screen captures. YouTube's [stream key guidance](https://support.google.com/youtube/answer/9854503?hl=en&ref=obsguides.com) describes the key as the credential connecting the encoder to the stream and provides a reset control. For a destination with a different connection route, check its encoder instructions before entering a custom address. The [streaming setup guides](https://obsguides.com/tag/streaming/) cover related jobs once the first connection is established.

## Give bitrate a budget before choosing the picture

Use a stable **upload** figure from the connection you’ll broadcast on, with its normal shared traffic. Download speed doesn’t set this budget. OBS recommends starting video bitrate at [roughly 75% of total upload speed](https://obsproject.com/kb/stream-connection-troubleshooting?ref=obsguides.com); the route to the ingest server may require less. Use Ethernet where available, and remember that a speed-test result isn’t proof of sustained delivery to that server.

For the first rehearsal, I’d put **video plus audio** inside that 75% allowance. That’s a conservative adaptation of OBS's video-only starting guidance. It leaves more room for variation and other traffic. The delivery test still decides whether the connection can sustain the result.

| Example stable upload | 75% combined budget | Room for video after 128 kbps audio |
| --------------------- | ------------------- | ----------------------------------- |
| 5 Mbps                | 3,750 kbps          | 3,622 kbps                          |
| 10 Mbps               | 7,500 kbps          | 7,372 kbps                          |
| 20 Mbps               | 15,000 kbps         | 14,872 kbps                         |

These are arithmetic examples, not measured connections or resolution presets. Multiply Mbps by 1,000 to compare with OBS's kbps fields, then subtract the audio bitrate you’ll send. Choose a video bitrate below the remaining budget *and* within the selected service's guidance. More upload capacity doesn’t grant a higher platform limit.

## Keep the canvas; size the outgoing stream

Open **Settings > Video**. If OBS says video output is active, stop the stream, recording or other active output before changing these controls. In the order shown:

1. **Base (Canvas) Resolution:** keep the size used to arrange the scene. Don’t shrink the canvas merely to reduce the stream's workload.
2. **Output (Scaled) Resolution:** choose the picture size sent out. For example, a 1920x1080 scene can produce a 1280x720 stream without repositioning its sources. The [OBS overview distinguishes canvas size from scaled output](https://obsproject.com/kb/obs-studio-overview?ref=obsguides.com).
3. **Common FPS Values:** start at 30 fps when capacity is uncertain. Move to 60 only when the motion warrants it and the rehearsal supports it. OBS notes that 60 fps requires more resources than 30.

[![OBS Studio Settings, Video page: Base (Canvas) Resolution 1920x1080, Output (Scaled) Resolution 1280x720, Bicubic filter, 30 fps](https://storage.ghost.io/c/1f/f4/1ff41619-63d0-4562-aeda-c43118aa7da0/content/images/2026/11/03-obs-studio-ui-setup-obs-for-streaming-1-eaca40daa665.webp)](https://storage.ghost.io/c/1f/f4/1ff41619-63d0-4562-aeda-c43118aa7da0/content/images/2026/11/03-obs-studio-ui-setup-obs-for-streaming-1-eaca40daa665.webp?ref=obsguides.com)

Leave Base (Canvas) Resolution at the size you arranged the scene in and set the stream size in Output (Scaled) Resolution, here 1280x720 at 30 fps.

A 720p30 output is a sensible first rehearsal choice when the available capacity is unclear, but it still needs a bitrate that fits the destination. Keep the current downscale filter while establishing whether the connection and encoder can sustain the output; changing several processing choices at once makes the result harder to interpret.

## Set the service bitrate and encoder

Open **Settings > Output** and use **Output Mode: Simple** for this first setup. Simple streaming uses CBR and applies service recommendations. Keep **Ignore streaming service setting recommendations** unchecked in **Settings > Stream > Advanced Options**. You don’t need Advanced mode just to find a constant-bitrate switch.

Set **Video Bitrate** from the budget and the destination. For a conventional Twitch H.264 stream, the Twitch entry in the [OBS 33.0.1 services file](https://raw.githubusercontent.com/obsproject/obs-studio/33.0.1/plugins/rtmp-services/data/services.json?ref=obsguides.com) lists a 6,000 kbps maximum video recommendation. Stay lower if your connection needs it. This is the value in that OBS profile, not a claim about every Twitch encoding feature.

YouTube's numbers differ. Its [H.264 encoder settings](https://support.google.com/youtube/answer/2853702?hl=en&ref=obsguides.com) give 720p at 30 fps a 3 Mbps minimum and an 8 Mbps recommended video bitrate; the full table for 1080p and 60 fps is in the [YouTube streaming guide](https://obsguides.com/stream-to-youtube-with-obs/).

The minimum isn’t a promise of good detail in every scene. In the 10 Mbps upload example, the cautious video budget is 7,372 kbps, so YouTube's recommended 8,000 kbps for 720p30 already exceeds it. A lower value within YouTube's stated range needs a motion rehearsal. If even the minimum for your chosen format won’t fit, choose a smaller format from the platform's table. Don’t raise bitrate past the connection budget to preserve a resolution label.

Next, set **Audio Bitrate** for the destination. YouTube recommends **128 kbps for stereo audio**; use that figure in the example budget when sending AAC stereo. For another service, use its own audio recommendation. Leave recording and Replay Buffer controls alone until the stream is established, unless recording at the same time is part of the workload you need to rehearse.

For **Video Encoder**, pick a hardware H.264 entry OBS offers for this service, or **Software (x264)** if none appears. On an Intel Mac, streaming needs x264, because the [OBS hardware guide](https://obsproject.com/kb/hardware-encoding?ref=obsguides.com) restricts Apple VT streaming to Apple Silicon. The [trade-offs per GPU](https://obsguides.com/obs-encoder-settings/) are in the encoder guide; for this first stream, take the hardware entry and let Stats show whether it keeps up.

Keep the remaining encoder controls at the wizard or service values while establishing a baseline. If you already use Advanced output, retain the platform's CBR and keyframe requirements: YouTube recommends two-second keyframes and says not to exceed four seconds. Adjust encoder effort after Stats identifies encoding as the constrained stage; keep bitrate within the service and connection limits.

## Put the intended sound into the mix

Speak into the intended microphone and play the game, presentation or other program audio. Each should move the corresponding **Audio Mixer** meter. If the wrong device responds or nothing moves, select the intended device in **Settings > Audio**, as the [OBS audio setup instructions](https://obsproject.com/kb/quick-start-guide?ref=obsguides.com) describe. Moving meters confirm sound has reached OBS; listening to the resulting output confirms what the viewer receives.

**On macOS:** use [OBS Studio > Review App Permissions](https://obsproject.com/kb/macos-permissions-guide?ref=obsguides.com) if the microphone, camera or screen source lacks permission. For program sound, OBS 30 and later on macOS 13 or higher provides [macOS Audio Capture for desktop or application audio](https://obsproject.com/kb/macos-desktop-audio-capture-guide?ref=obsguides.com); macOS Screen Capture can also carry sound. Don’t assume that following a Windows Desktop Audio step created the Mac source you need.

After changing **Video**, **Output** or **Audio** controls, click **Apply**, then **OK** in Settings to save the changes and return to the main window.

Make a short local recording and listen for missing speech, a program that overwhelms the voice, duplicated sound and an unexpected source. Correct that mix before a viewer is waiting. This recording checks the local picture and sound; it doesn’t send data to the streaming ingest server.

## Choose latency on the platform

Latency is the time between an event and the viewer seeing it. Lowering it makes conversation easier, but reduces the player's room to absorb delivery fluctuations. It doesn’t repair insufficient upload or an overloaded encoder.

On YouTube, open **Stream Settings > Stream latency** in Live Control Room. [YouTube describes three latency choices](https://support.google.com/youtube/answer/7444635?hl=en&ref=obsguides.com): Normal for non-interactive streams, Low for limited interaction and Ultra-low for close conversation. Lower modes expose viewers more directly to delivery trouble and can increase buffering. Low and Ultra-low don’t support 4K. For a first rehearsal without audience interaction, Normal gives a useful baseline; choose a lower mode when the actual event needs it and rehearse that mode too.

Keep **Settings > Advanced > Stream Delay** disabled unless you deliberately want to delay the outgoing stream. If you change it, apply the change before the network rehearsal.

## Rehearse the real workload and read Stats

Use the actual scene, game or presentation, microphone, camera and intended frame rate for a few minutes. Include motion and sound similar to the event. YouTube's [pre-stream guidance calls for representative audio and movement](https://support.google.com/youtube/answer/2853702?hl=en&ref=obsguides.com), followed by monitoring stream-health messages.

### YouTube: use the Private test event

Select the Private test event and verify Auto-start before choosing **Start Streaming** in OBS. Confirm that the intended event receives the picture, inspect its health messages and listen through the viewer path. The [YouTube encoder workflow](https://support.google.com/youtube/answer/2907883?hl=en&ref=obsguides.com) separates encoder output from the Go live decision, subject to the event’s automatic-start setting.

### Twitch: test delivery without live viewers

On Twitch, two routes send to the ingest server without going live: **Enable Bandwidth Test Mode** in **Settings > Stream > Advanced Options** for a linked account, or a manual key ending in `?bandwidthtest=true`, the [RTMP test suffix Twitch documents](https://dev.twitch.tv/docs/video-broadcast/?ref=obsguides.com); the full steps are in the guide to [connecting Twitch to OBS](https://obsguides.com/connect-twitch-to-obs/). When the check is finished, choose **Stop Streaming**, clear the switch or remove the suffix, then click **Apply**, then **OK**, or your next broadcast won’t reach viewers.

Open **Docks > Stats** during the network rehearsal. **View > Stats** opens a separate window if you prefer. Press **Reset** before each comparison, then watch which counter grows under the representative workload.

[![OBS Stats window during a live bandwidth test at 30 fps: Stream row LIVE with Dropped Frames (Network) at 0 / 7200, Reset and Close buttons](https://storage.ghost.io/c/1f/f4/1ff41619-63d0-4562-aeda-c43118aa7da0/content/images/2026/11/03-obs-studio-ui-setup-obs-for-streaming-2-d6ba243039a3.webp)](https://storage.ghost.io/c/1f/f4/1ff41619-63d0-4562-aeda-c43118aa7da0/content/images/2026/11/03-obs-studio-ui-setup-obs-for-streaming-2-d6ba243039a3.webp?ref=obsguides.com)

Press Reset before each run, then watch the Stream row's Dropped Frames (Network) for delivery trouble and the two lag counters above it for local load.

| Stats counter                      | Constrained stage                               | First response                                                                                                                                                        |
| ---------------------------------- | ----------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Dropped Frames (Network)           | Delivery from the computer to the ingest server | Lower the sending bitrate or try another ingest server. An encoder preset doesn’t fix this route.                                                                     |
| Frames missed due to rendering lag | Composing the scene                             | Reduce competing GPU work, cap the game's frame rate or simplify the scene; reduce output size/FPS if needed.                                                         |
| Skipped frames due to encoding lag | Encoding the outgoing picture                   | Reduce output size/FPS or [revisit the encoder](https://obsguides.com/obs-encoder-settings/). More upload capacity doesn’t give the encoder more processing capacity. |

OBS's [connection troubleshooting guide](https://obsproject.com/kb/stream-connection-troubleshooting?ref=obsguides.com) places network loss on the path to ingest, while its [encoding-performance guidance](https://obsproject.com/kb/encoding-performance-troubleshooting?ref=obsguides.com) covers local rendering and encoding pressure. If the network row keeps climbing, continue with the [dropped frames diagnosis](https://obsguides.com/obs-dropped-frames/). Keep the two local-processing counters separate from it.

When changing a setting, stop the output where required, change the constrained stage and repeat the same workload. If the public event will include a simultaneous recording, add that to the rehearsal too. Save the settings that held up, confirm the intended event's visibility before the real start, and leave Stats visible for the first broadcast.