# OBS Studio — User Guide

## 1. Quick Start

OBS Studio (Open Broadcaster Software) is a free, open-source application for video recording and live streaming. It captures from multiple sources — displays, windows, cameras, capture cards, and more — composites them into scenes, and outputs to streaming services or local recordings. OBS Studio runs natively on Windows, macOS, and Linux.

**Key features:**

- Unlimited scenes with custom source layouts and transitions
- Real-time audio mixing with per-source volume controls, filters, and monitoring
- Hardware-accelerated encoding via NVENC, AMD AMF, Intel QSV, Apple VideoToolbox
- Streaming via RTMP/RTMPS to Twitch, YouTube, Kick, Facebook, and 200+ services, plus WebRTC (WHIP) output
- Recording in MKV, MP4, FLV, and MOV containers with automatic remuxing
- Studio Mode for live production with preview/program workflow
- Virtual Camera output for use in video calls (Zoom, Teams, Discord)
- Plugin and scripting extensibility (Lua, Python)
- Multiview for monitoring multiple scenes simultaneously

**Prerequisites:** A computer running Windows 10+ (x64 or ARM64), macOS 12+, or Ubuntu 22.04+ (or compatible Linux distribution). A GPU with up-to-date drivers is recommended for encoding performance.

**Install and launch (quickest path):**

=== "Windows"
    ```text
    Download the installer from https://obsproject.com/download
    Run the installer → Launch OBS Studio
    ```

=== "macOS"
    ```text
    Download the .dmg from https://obsproject.com/download
    Drag OBS Studio to Applications → Launch
    ```

=== "Ubuntu"
    ```bash
    sudo add-apt-repository ppa:obsproject/obs-studio
    sudo apt update && sudo apt install obs-studio
    ```

On first launch, the **Auto-Configuration Wizard** runs automatically. It tests your system, detects hardware encoders, and suggests optimal streaming/recording settings.

> [!TIP]
> The Auto-Configuration Wizard benchmarks your network and hardware. Run it even if you plan to customize settings later — it sets sensible defaults for resolution, bitrate, and encoder selection.

**What to try next:**

- Add your first source (display capture, window capture, or webcam) — see Core Usage below
- Configure your streaming service — see Configuration
- Start recording — just click **Start Recording** in the Controls dock

---

## 2. Installation

### System Requirements

| Component | Minimum | Recommended |
|-----------|---------|-------------|
| **OS** | Windows 10 (x64), macOS 12, Ubuntu 22.04 | Windows 11, macOS 14+, Ubuntu 24.04 |
| **CPU** | Dual-core 2 GHz | Quad-core 3 GHz+ |
| **RAM** | 4 GB | 8 GB+ |
| **GPU** | DirectX 10.1 / OpenGL 3.3 compatible | NVIDIA GTX 900+, AMD RX 400+, or Apple Silicon |
| **Disk** | 600 MB for installation | SSD recommended for recording |
| **Network** | 2 Mbps upload for streaming | 6+ Mbps for 1080p streaming |

### Installation Methods

=== "Windows (Installer)"
    ```text
    1. Download the installer from https://obsproject.com/download
    2. Run OBS-Studio-XX.X-Full-Installer-x64.exe
    3. Follow the installation wizard
    4. Launch OBS Studio from the Start Menu
    ```

=== "Windows (Portable)"
    ```text
    1. Download the .zip archive from https://obsproject.com/download
    2. Extract to any folder
    3. Run bin/64bit/obs64.exe
    ```

=== "macOS"
    ```text
    1. Download OBS-Studio-XX.X-macOS-Universal.dmg
    2. Open the .dmg and drag OBS Studio to /Applications
    3. On first launch, grant Screen Recording and Camera permissions in System Settings → Privacy & Security
    ```

=== "Ubuntu/Debian"
    ```bash
    sudo add-apt-repository ppa:obsproject/obs-studio
    sudo apt update
    sudo apt install obs-studio
    ```

=== "Flatpak (Linux)"
    ```bash
    flatpak install flathub com.obsproject.Studio
    flatpak run com.obsproject.Studio
    ```

=== "FreeBSD"
    ```bash
    pkg install -y obs-studio
    ```

=== "Building from Source"
    ```bash
    git clone --recursive https://github.com/obsproject/obs-studio.git
    cd obs-studio
    cmake -S . -B build -G Ninja
    cmake --build build --config RelWithDebInfo
    ```

> [!IMPORTANT]
> Building from source requires CMake 3.28+, a C17/C++17 compiler, Qt6, FFmpeg, and platform-specific dependencies. See the build prerequisites in the project wiki for your platform.

### Build Dependencies (Source Build)

| Dependency | Purpose |
|-----------|---------|
| CMake 3.28+ | Build system |
| Qt6 (Base, SVG) | GUI framework |
| FFmpeg (libavcodec, libavutil, libavformat) | Media encoding/decoding |
| jansson | JSON parsing |
| libcurl | HTTP requests |
| mbedTLS or OpenSSL | TLS for RTMPS |
| x264 | H.264 software encoding |
| Chromium Embedded Framework (CEF) | Browser source support |
| SWIG + LuaJIT/Python 3 | Scripting support |

### Post-Install Verification

After installation, launch OBS Studio. You should see:

```text
- The main window with a black preview area
- A Sources dock (empty)
- A Scenes dock with one default scene
- An Audio Mixer dock showing Desktop Audio and Mic/Aux
- A Controls dock with Start Streaming, Start Recording, etc.
```

> [!WARNING]
> On macOS, OBS Studio requires **Screen Recording** permission to capture displays and windows. If you skip this permission prompt, display and window captures will show black frames. Grant it in System Settings → Privacy & Security → Screen Recording.

### Installation Troubleshooting

### Error: OBS fails to start with a DirectX error (Windows)

**Cause:** Outdated GPU drivers or missing DirectX runtime.

**Solution:**
1. Update your GPU drivers from the manufacturer's website (NVIDIA, AMD, or Intel)
2. Install the latest DirectX End-User Runtime from Microsoft
3. Restart and try again

**Prevention:** Keep GPU drivers updated.

### Error: OBS crashes on startup (possibly browser source related)

**Cause:** Corrupted browser source cache or incompatible CEF version. Community issue #13348 reports this pattern.

**Solution:**
1. Launch OBS with the `--disable-browser` flag to confirm the cause
2. Clear the browser source cache: delete `~/.config/obs-studio/plugin_config/obs-browser/` (Linux) or equivalent on your OS
3. If using third-party plugins, try **Safe Mode** (offered after a crash) which disables third-party plugins

**Prevention:** Keep OBS updated and avoid mixing plugin versions.

### Error: Black screen on display/window capture (macOS)

**Cause:** Missing screen recording permissions.

**Solution:**
1. Open System Settings → Privacy & Security → Screen Recording
2. Enable OBS Studio in the list
3. Restart OBS Studio

### Error: No audio devices detected

**Cause:** Audio subsystem not initialized or wrong audio backend selected.

**Solution:**
1. Go to Settings → Audio
2. Verify Desktop Audio and Mic/Auxiliary Audio devices are set correctly
3. On Linux, ensure PulseAudio or PipeWire is running

### Error: `obs-studio` package not found (Ubuntu)

**Cause:** PPA not added.

**Solution:**
```bash
sudo add-apt-repository ppa:obsproject/obs-studio
sudo apt update
sudo apt install obs-studio
```

### Error: Virtual Camera not available after stopping (Linux)

**Cause:** The v4l2loopback kernel module gets into an inconsistent state. Community issue #12506 documents this behavior.

**Solution:**
1. Unload and reload the kernel module:
```bash
sudo modprobe -r v4l2loopback
sudo modprobe v4l2loopback
```
2. Restart OBS Studio

**Prevention:** Avoid rapidly starting/stopping the virtual camera.

### Error: Crash when renaming a newly created profile

**Cause:** Race condition when renaming a profile immediately after creation. Tracked as issue #12458.

**Solution:**
1. Create the profile
2. Close and reopen Settings before renaming
3. Then rename the profile

### Error: NVENC encoder initialization fails

**Cause:** NVIDIA drivers too old or GPU doesn't support NVENC.

**Solution:**
1. Update to the latest NVIDIA drivers
2. Verify your GPU supports NVENC (GTX 600 series or newer)
3. Check that `nvcuda.dll` (Windows) or `libcuda.so.1` (Linux) is present

### Error: High CPU usage with x264 encoding

**Cause:** Software encoding is CPU-intensive, especially at higher presets.

**Solution:**
1. Switch to a hardware encoder (NVENC, AMF, or QSV) in Settings → Output
2. If using x264, change the preset from `medium` to `veryfast` or `ultrafast`
3. Lower the output resolution

---

## 3. Configuration

OBS Studio stores configuration in INI-style files within the user's application data directory. Configuration is organized into **profiles** (encoding, streaming, and recording settings) and **scene collections** (scenes, sources, and their arrangement).

### Configuration Locations

| Platform | Path |
|----------|------|
| Windows | `%APPDATA%\obs-studio\` |
| macOS | `~/Library/Application Support/obs-studio/` |
| Linux | `~/.config/obs-studio/` |

### Key Configuration Files

| File | Purpose |
|------|---------|
| `global.ini` | Application-wide settings (renderer, language, update preferences) |
| `user.ini` | Per-user UI preferences (dock layout, preview state, snapping) |
| `basic/profiles/{name}/basic.ini` | Profile-specific output, video, audio, and streaming settings |
| `basic/profiles/{name}/service.json` | Streaming service configuration (service name, server, stream key) |
| `basic/scenes/{name}.json` | Scene collection definition (scenes, sources, transitions) |

### Essential Settings

#### Video Settings

| Setting | Default | Description |
|---------|---------|-------------|
| Base (Canvas) Resolution | Auto-detected | Internal rendering resolution |
| Output (Scaled) Resolution | Same as base | Resolution of the encoded output |
| Downscale Filter | Bicubic | Lanczos (sharper), Bicubic (balanced), Bilinear (fastest) |
| Common FPS Values | 30 | Frame rate for output (30 or 60 typical) |
| Renderer | Direct3D 11 (Windows) / OpenGL (other) | Graphics backend |

#### Audio Settings

| Setting | Default | Description |
|---------|---------|-------------|
| Sample Rate | 48 kHz | Audio sample rate |
| Channels | Stereo | Mono, Stereo, or surround layouts |
| Desktop Audio | Default | System audio capture device |
| Mic/Auxiliary Audio | Default | Microphone input device |
| Meter Decay Rate | Configurable | How quickly audio meters fall |
| Peak Meter Type | Sample Peak | Sample Peak or True Peak (ITU-R BS.1770) |

> [!TIP]
> Set the Peak Meter Type to **True Peak** for broadcast-standard loudness monitoring. This uses 5x oversampled Whittaker-Shannon interpolation for accurate peak measurement.

#### Streaming Service Setup

1. Open **Settings → Stream**
2. Select your service (Twitch, YouTube, Kick, Facebook, or Custom)
3. Enter your stream key
4. Select a server (or leave on Auto for services that support it)

For **Twitch** and **YouTube**, OBS supports OAuth integration — click **Connect Account** to authorize directly without manually copying stream keys.

> [!NOTE]
> OBS ships with a built-in services database (`services.json`) containing server lists and recommended settings for 200+ streaming platforms. This database updates automatically.

#### Output Settings (Simple Mode)

| Setting | Options | Recommendation |
|---------|---------|----------------|
| Video Bitrate | 1000–50000 Kbps | 4500–6000 for 1080p30 |
| Encoder | Hardware (NVENC, AMF, QSV, Apple VT) or Software (x264) | Hardware when available |
| Audio Bitrate | 64–320 Kbps | 160 for streaming, 320 for recording |
| Recording Format | MKV, MP4, FLV, MOV | MKV (crash-safe, remux later) |

For the full configuration reference including Advanced output mode, custom FFmpeg output, and all encoder-specific settings, see the Admin Guide.

---

## 4. Core Usage

### Understanding Scenes and Sources

OBS Studio uses a **scene/source** model:

- **Scenes** are canvas layouts that you switch between during a stream or recording
- **Sources** are individual capture elements (camera, display, image, text, etc.) placed within a scene
- Sources can be shared across scenes — changing a shared source updates it everywhere

### Source Types

| Source Type | Plugin | Description |
|-------------|--------|-------------|
| **Display Capture** | `linux-capture`, `mac-capture`, `win-capture` | Captures an entire monitor |
| **Window Capture** | `linux-capture`, `mac-capture`, `win-capture` | Captures a specific application window |
| **Game Capture** | `win-capture` | Hooks into game rendering (Windows only) |
| **Video Capture Device** | `win-dshow`, `mac-avcapture`, `linux-v4l2` | Webcam or capture card input |
| **Image** | `image-source` | Static image file (PNG, JPG, BMP, GIF) |
| **Image Slide Show** | `image-source` | Rotating images with configurable timing |
| **Media Source** | `obs-ffmpeg` | Video/audio file playback |
| **Browser Source** | `obs-browser` (CEF) | Embedded web page (alerts, overlays, widgets) |
| **Text (FreeType 2)** | `text-freetype2` | On-screen text with font/color customization |
| **Color Source** | `image-source` | Solid color rectangle |
| **Audio Input Capture** | Platform audio plugins | Captures a microphone or line input |
| **Audio Output Capture** | Platform audio plugins | Captures desktop/system audio |
| **VLC Video Source** | `vlc-video` | Video playback via VLC libraries |
| **Syphon Client** | `mac-syphon` | Captures Syphon output from other apps (macOS) |
| **AJA Capture** | `aja` | Professional AJA capture card input |
| **Decklink Capture** | `decklink` | Blackmagic Decklink capture card input |

### Adding a Source

1. In the **Sources** dock, click the **+** button
2. Select the source type from the list
3. Choose **Create new** or **Add Existing** (to share from another scene)
4. Configure source-specific properties in the dialog
5. Click **OK** — the source appears in the preview

### Arranging Sources

- **Drag** sources in the preview to reposition them
- **Drag handles** to resize
- **Right-click → Transform** for precise positioning (exact pixel coordinates, alignment, rotation)
- **Right-click → Order** to change z-order (bring to front, send to back)
- Sources higher in the Sources list are rendered on top (front)

> [!TIP]
> Enable **snapping** in Settings → General for alignment assistance. Sources snap to canvas edges, other sources, and center lines. The default snap distance is 10 pixels.

### Audio Mixing

The **Audio Mixer** dock shows volume controls for all audio sources in the current scene. Features include:

- **Volume sliders** with fader curves (Cubic, IEC, Logarithmic)
- **Mute/unmute** buttons per source
- **Volume locking** to prevent accidental changes
- **Audio monitoring** (off, monitor only, monitor and output)
- **Advanced Audio Properties** for per-source volume, sync offset, mono downmix, and audio track assignment
- **Vertical or horizontal** mixer layout (toggle via toolbar button)
- **Hide/show** sources and **pin** frequently used ones

> [!NOTE]
> OBS supports up to 6 audio tracks. Assign sources to specific tracks in Advanced Audio Properties. This lets you record separate audio tracks for microphone, desktop audio, and game audio for post-production editing.

### Transitions

OBS includes built-in scene transitions:

| Transition | Description |
|-----------|-------------|
| **Cut** | Instant switch (zero duration) |
| **Fade** | Smooth opacity crossfade |
| **Swipe** | Directional wipe effect |
| **Slide** | Sliding motion between scenes |
| **Stinger** | Custom video animation overlay |
| **Fade to Color** | Fades through a solid color |
| **Luma Wipe** | Uses a grayscale image as wipe pattern |

Configure transition type and duration in the **Scene Transitions** section of the main window.

### Studio Mode

Studio Mode splits the interface into **Preview** (left) and **Program** (right) panels:

- **Preview** shows the scene you are preparing
- **Program** shows what is currently live/recording
- Click **Transition** (or use a hotkey) to push Preview to Program
- Edit sources in Preview without affecting the live output

Enable Studio Mode via the **Studio Mode** button in the Controls dock or in Settings → General.

### Recording

1. **Configure output**: Settings → Output → Recording (format, path, encoder, quality)
2. Click **Start Recording** in the Controls dock
3. Click **Stop Recording** when finished
4. Find your recording in the configured output path

> [!WARNING]
> Use **MKV** format for recordings. If OBS crashes during an MP4 recording, the file will be corrupted and unrecoverable. MKV files survive crashes and can be losslessly remuxed to MP4 afterward via File → Remux Recordings.

### Streaming

1. Configure your streaming service (Settings → Stream)
2. Verify your output settings match the service's requirements
3. Click **Start Streaming** in the Controls dock
4. Monitor the status bar for dropped frames, bitrate, and connection quality

### Virtual Camera

OBS can output its composited video as a virtual camera device, usable in Zoom, Teams, Discord, Google Meet, and other video call applications.

1. Click **Start Virtual Camera** in the Controls dock
2. In your video call app, select **OBS Virtual Camera** as the camera device

On macOS, the virtual camera uses a CoreMediaIO Camera Extension (system extension). On Linux, it requires the `v4l2loopback` kernel module.

---

## 5. Common Tasks

### Stream to Twitch at 1080p60

**Goal:** Set up a high-quality Twitch stream.

**Prerequisites:** Twitch account, stream key, hardware encoder (recommended), 8+ Mbps upload.

**Steps:**
1. Go to Settings → Stream → select **Twitch** → enter your stream key (or Connect Account)
2. Go to Settings → Output → select **Simple** mode
3. Set Video Bitrate to **6000 Kbps**
4. Set Encoder to **Hardware (NVENC)** (or AMF/QSV if available)
5. Go to Settings → Video → set Output Resolution to **1920x1080**, FPS to **60**
6. Click **Start Streaming**

**Verify:** Check the status bar — bitrate should stabilize near 6000 Kbps with 0 dropped frames.

**If it fails:** Lower bitrate to 4500, reduce to 720p60, or switch to a closer ingest server.

### Record Gameplay with Separate Audio Tracks

**Goal:** Record with game audio and microphone on separate tracks for editing.

**Steps:**
1. Settings → Output → switch to **Advanced** mode
2. Under Recording, set Type to **Standard**, Format to **MKV**
3. Set Audio Tracks: check tracks **1** and **2**
4. Open **Edit → Advanced Audio Properties**
5. Assign Desktop Audio to Track 1 only, Mic to Track 2 only
6. Start recording — your MKV will contain two independent audio tracks

### Set Up a Webcam with Chroma Key (Green Screen)

**Goal:** Remove a green screen background from a webcam feed.

**Steps:**
1. Add a **Video Capture Device** source, select your webcam
2. Right-click the source → **Filters**
3. Click **+** under Effect Filters → select **Chroma Key**
4. Adjust **Similarity** (start at 400), **Smoothness** (start at 80), and **Key Color Spill Reduction**
5. Fine-tune until the background is cleanly removed

### Add a Browser Source Overlay (Stream Alerts)

**Goal:** Display alerts (follows, subscriptions, donations) on stream.

**Steps:**
1. Get your overlay URL from your alert provider (Streamlabs, StreamElements, etc.)
2. Add a **Browser Source** → paste the URL
3. Set dimensions to match your canvas (1920x1080 for full-screen overlays)
4. Position the source in your scene layout

> [!TIP]
> Browser sources support custom CSS. Use this to hide unwanted elements from the web page or style alerts to match your stream branding.

### Apply Audio Filters to a Microphone

**Goal:** Clean up microphone audio with noise suppression and compression.

**Steps:**
1. Right-click the Mic source in the Audio Mixer → **Filters**
2. Add filters in this order (processing chain matters):
   - **Noise Suppression** (RNNoise for AI-based, or Speex)
   - **Noise Gate** (Close Threshold: -32 dB, Open Threshold: -26 dB)
   - **Compressor** (Ratio: 3:1, Threshold: -18 dB, Attack: 6 ms, Release: 60 ms)
   - **Limiter** (Threshold: -3 dB)

### Import Settings from Another Streaming Application

OBS Studio can import profiles from other streaming software. Go to **Profile → Import** and select the profile format. The importer supports profiles from:

- XSplit
- OBS Classic
- Streamlabs OBS

### Remux a Recording from MKV to MP4

**Goal:** Convert a crash-safe MKV recording to a widely compatible MP4.

**Steps:**
1. Go to **File → Remux Recordings**
2. Select the `.mkv` file
3. Click **Remux** — the MP4 is created in the same directory

> [!NOTE]
> Remuxing is lossless and nearly instant — it repackages the video without re-encoding. Audio artifacts after remux (issue #13249) may indicate the original recording had timing issues.

### Use Multiview for Multi-Scene Monitoring

**Goal:** Monitor all scenes simultaneously on a second monitor.

**Steps:**
1. Go to **View → Multiview** (or right-click the preview → Multiview)
2. Select which monitor to display the multiview on
3. Click any scene in the multiview to switch to it (if mouse switching is enabled)

Multiview supports drawing scene names and safe areas as overlays, configurable in Settings → General.

### Set Up Hotkeys

**Goal:** Control OBS without clicking the UI.

**Steps:**
1. Go to Settings → Hotkeys
2. Assign keys for: Start/Stop Streaming, Start/Stop Recording, Scene switching, Mute/Unmute sources, Push-to-talk, Transition
3. Click **Apply**

Hotkeys work globally (even when OBS is not focused) unless you change the **Hotkey Focus** behavior in Settings → General. Options:

- **Never disable hotkeys** (default)
- **Disable hotkeys when main window is not active**
- **Disable hotkeys when main window or dialogs are not active**

### Configure Auto Scene Switching

OBS can automatically switch scenes based on the active window.

**Steps:**
1. Go to **Tools → Automatic Scene Switcher**
2. Add rules mapping window titles to scenes
3. Set a default scene for when no rules match
4. Enable **When a window is active, switch to scene**

### Use Scripting to Extend OBS

OBS supports scripting via **Lua** (LuaJIT) and **Python 3**:

1. Go to **Tools → Scripts**
2. Click **+** to add a script file (`.lua` or `.py`)
3. The script can create sources, register hotkeys, respond to events, and add UI elements

Scripts are loaded from the frontend-tools plugin and have full access to the OBS scripting API.

---

## 6. Troubleshooting

### Diagnostic Decision Tree

```text
OBS not working?
├── Won't start → Check GPU drivers, try Safe Mode, try --disable-browser
├── Black preview → Check source permissions (macOS), try different capture method
├── Dropped frames while streaming → Check network, lower bitrate, use hardware encoder
├── Encoding overloaded → Switch to hardware encoder, lower resolution/FPS, use faster x264 preset
├── Audio issues → Check Audio settings, verify device selection, check Advanced Audio Properties
├── Crash during use → Upload log (Help → Log Files), check issue tracker
└── Poor recording quality → Increase bitrate, use CQP/CRF mode, ensure SSD write speed
```

### Error: "Encoding overloaded! Consider turning down video settings."

**Cause:** The CPU cannot encode frames fast enough at current settings.

**Solution:**
1. Switch from x264 (software) to a hardware encoder (NVENC, AMF, QSV)
2. If using x264, change preset to `veryfast` or `superfast`
3. Lower output resolution (e.g., 1080p → 720p)
4. Lower frame rate (60 → 30 FPS)

**Prevention:** Use hardware encoding whenever possible. Modern GPUs handle encoding with negligible performance impact.

### Error: Dropped frames during streaming

**Cause:** Insufficient upload bandwidth, network congestion, or server issues.

**Solution:**
1. Run a speed test and verify upload bandwidth exceeds your bitrate by at least 50%
2. Lower the streaming bitrate
3. Try a different ingest server
4. Use RTMPS instead of RTMP if your service supports it
5. Close other applications consuming bandwidth

**Prevention:** Use a wired Ethernet connection. Avoid streaming over Wi-Fi when possible.

### Error: Preview shows black screen

**Cause:** Source permissions missing, wrong capture method, or GPU driver issue.

**Solution:**
1. **macOS**: Grant Screen Recording permission in System Settings
2. **Windows Game Capture**: Try Window Capture or Display Capture instead
3. **Windows Display Capture**: Disable hardware acceleration in the captured application
4. Check that the correct GPU is being used (multi-GPU systems)

### Error: Audio desync between video and audio

**Cause:** Audio source has different latency than video source.

**Solution:**
1. Open **Edit → Advanced Audio Properties**
2. Adjust the **Sync Offset** (positive to delay audio, negative to advance it)
3. Typical webcam audio offsets: 50–150 ms

### Error: OBS uses high CPU even when idle

**Cause:** Browser sources running JavaScript, excessive source count, or preview rendering at high resolution.

**Solution:**
1. Disable or remove unused browser sources
2. Check **Sources** for sources that are not visible but still active
3. In Settings → General, reduce preview FPS or disable preview when not streaming

### Error: DLSS Frame Generation frames not captured

**Cause:** Game Capture cannot hook DLSS Frame Generation interpolated frames. This is a known limitation documented in issue #13337.

**Solution:**
1. Use **Display Capture** instead of Game Capture
2. Alternatively, disable DLSS Frame Generation while streaming/recording

### Error: Audio Mixer buttons desync when controlled via WebSocket

**Cause:** WebSocket commands can change audio state without updating the mixer UI. Tracked as issue #13246.

**Solution:**
1. Click away from and back to the mixer to refresh the UI state
2. This is a cosmetic issue — the actual audio routing is correct

### Error: Non-functional toolbar buttons after inserting source in a folded group

**Cause:** UI state mismatch when sources are added to collapsed groups. Tracked as issue #13026.

**Solution:**
1. Expand the group, then collapse and expand again
2. Or restart OBS Studio

### Error: Integrations disconnect when renaming profile

**Cause:** OAuth tokens are tied to profile names. Renaming invalidates the association. Tracked as issue #9748.

**Solution:**
1. Reconnect integrations (Twitch, YouTube, Restream) after renaming a profile
2. Settings → Stream → Disconnect, then reconnect

### Error: "Always on top" sub-windows don't appear on top after launch

**Cause:** Window z-ordering is not restored correctly on startup. Tracked as issue #12072.

**Solution:**
1. Toggle "Always on top" off and on again for the affected window
2. Or restart OBS

> [!WARNING]
> Always upload your OBS log file when reporting issues. Go to **Help → Log Files → Upload Current Log File**. The log contains system information, loaded plugins, encoder details, and error messages that are essential for diagnosing problems. OBS also provides an online log analyzer at `obsproject.com/tools/analyzer`.

---

## 7. FAQ

### General

**Q: Is OBS Studio really free?**

Yes, OBS Studio is completely free and open-source under the GNU General Public License v2. There are no paid tiers, premium features, or subscriptions.

**Q: What platforms does OBS Studio support?**

Windows 10+ (x64 and ARM64), macOS 12+, and Linux (Ubuntu 22.04+, Flatpak, and other distributions). FreeBSD is also supported via community packages.

**Q: Can I run multiple instances of OBS Studio?**

Yes, launch OBS with the `--multi` flag to allow multiple instances. Each instance needs its own profile and scene collection to avoid conflicts.

**Q: Does OBS support portable mode?**

Yes, launch with the `--portable` flag. All configuration files will be stored in the OBS installation directory instead of the user's application data folder.

### Streaming

**Q: Which streaming services does OBS support?**

OBS ships with built-in support for 200+ services via the `rtmp-services` plugin, including Twitch, YouTube, Facebook Live, Kick, Amazon IVS, Restream, and many more. You can also use any custom RTMP/RTMPS/WHIP server.

**Q: Can I stream to multiple platforms simultaneously?**

OBS itself outputs to one service at a time. To multistream, use a restreaming service (like Restream) or configure multiple OBS output instances via plugins.

**Q: What is the maximum supported streaming bitrate?**

There is no hardcoded limit in OBS. The effective maximum depends on your upload bandwidth and the receiving service's limits (e.g., Twitch caps non-partners at 6000 Kbps, YouTube allows up to 51,000 Kbps for 4K).

**Q: What is WebRTC/WHIP output?**

The `obs-webrtc` plugin provides WHIP (WebRTC-HTTP Ingestion Protocol) output for ultra-low-latency streaming to services that support WebRTC ingestion.

### Recording

**Q: What recording format should I use?**

**MKV** is recommended because it is crash-resistant — if OBS or your system crashes, the file remains intact. Remux to MP4 afterward using File → Remux Recordings. MP4 files are corrupted if the recording is not properly finalized.

**Q: Can I record and stream at the same time?**

Yes. Enable **Automatically Record When Streaming** in Settings → General, or independently control streaming and recording with separate buttons/hotkeys. You can use different encoders, resolutions, and bitrates for streaming vs. recording.

**Q: What video codecs does OBS support?**

H.264 (via x264, NVENC, AMF, QSV, VideoToolbox), H.265/HEVC (via NVENC, AMF, QSV, VideoToolbox), and AV1 (via NVENC on RTX 40+ and AMF on RDNA 3+).

### Audio

**Q: How many audio tracks can I record?**

Up to 6 simultaneous audio tracks. Assign sources to tracks via Edit → Advanced Audio Properties.

**Q: What noise suppression methods are available?**

Two methods: **RNNoise** (AI/ML-based, included in `obs-filters` via the bundled RNNoise library) and **Speex** (traditional DSP-based). RNNoise generally provides better results for voice. NVIDIA Broadcast users can also use the `nv-filters` plugin for GPU-accelerated noise removal and virtual background.

**Q: Can I monitor audio through headphones while recording?**

Yes. In **Edit → Advanced Audio Properties**, set the **Audio Monitoring** column to **Monitor and Output** for sources you want to hear. Configure the monitoring device in Settings → Audio → Advanced → Monitoring Device.

### Plugins and Extensions

**Q: Where are plugins installed?**

Plugins are loaded from the `obs-plugins/` directory within the OBS installation path, and from `plugin_config/` in the user data directory. Third-party plugins typically install to one of these locations.

**Q: Can I disable third-party plugins?**

Yes. If OBS detects a crash on the previous launch, it offers **Safe Mode** which disables all third-party plugins. You can also launch with `--safe-mode` or `--disable-3p-plugins`.

**Q: What scripting languages does OBS support?**

OBS supports **Lua** (via LuaJIT) and **Python 3** through the `obs-scripting` module. Scripts can access the full OBS API to create sources, register callbacks, and add custom UI.

**Q: Does OBS have a WebSocket API for remote control?**

Yes, the `obs-websocket` plugin (bundled) provides a WebSocket server for programmatic control. Third-party tools like Stream Deck, Touch Portal, and custom applications connect via this API.

---

_Generated May 2026 from obsproject/obs-studio at 1b41b44. AI-generated documentation. The library is checked by sampling (three repositories so far); this guide was not individually reviewed. Verify against the project before relying on it. Unofficial; not affiliated with or reviewed by the project._
